Compare commits

...

252 Commits

Author SHA1 Message Date
Chao MENG
d201c952d5 test patch installtion v1 2020-09-22 11:22:03 +08:00
Jane Ding
a467bd67a4 feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE (#5241)
https://jira.talendforge.org/browse/TUP-27654
2020-09-21 19:59:31 +08:00
Jane Ding
7706835b18 feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE (#5234)
https://jira.talendforge.org/browse/TUP-27654
2020-09-21 14:39:31 +08:00
Chao MENG
d8064e45ab fix(TUP-26413): Be able to compare metadata connection conflicts (#5222) (#5225)
https://jira.talendforge.org/browse/TUP-26413
2020-09-18 12:45:53 +08:00
Jane Ding
7346339a89 feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE (#5224)
* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
https://jira.talendforge.org/browse/TUP-27654

Signed-off-by: jding-tlnd <jding@talend.com>

* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
https://jira.talendforge.org/browse/TUP-27654

Signed-off-by: jding-tlnd <jding@talend.com>

* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
https://jira.talendforge.org/browse/TUP-27654

* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
https://jira.talendforge.org/browse/TUP-27654

Signed-off-by: jding-tlnd <jding@talend.com>

* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
https://jira.talendforge.org/browse/TUP-27654

Signed-off-by: jding-tlnd <jding@talend.com>

* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
https://jira.talendforge.org/browse/TUP-27654

Signed-off-by: jding-tlnd <jding@talend.com>

* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
https://jira.talendforge.org/browse/TUP-27654

Signed-off-by: jding-tlnd <jding@talend.com>

* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
https://jira.talendforge.org/browse/TUP-27654

Signed-off-by: jding-tlnd <jding@talend.com>

* fix(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
https://jira.talendforge.org/browse/TUP-27654

Signed-off-by: jding-tlnd <jding@talend.com>

* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
https://jira.talendforge.org/browse/TUP-27654
TUP-28598:[Bug] driver class show as mvn:SparkJDBC42-2.6.14.1018.jar is
wrong.

* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
TUP-28615:[Bug] Save the property to metadata will change Delta Lake to
JDBC.
https://jira.talendforge.org/browse/TUP-27654

* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
TUP-28610:[Bug] drag Delta Lake component from Palatte to job meet NPE.
https://jira.talendforge.org/browse/TUP-27654

* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
https://jira.talendforge.org/browse/TUP-27654
Hard code to filter unsupported components
Set useAutoCommit and autocommit default value as true

* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
TUP-28616:[Bug] in stat&logs/extra page, when select Delta Lake DB, it
shows as JDBC.
To fit on support database, delta lake should be filter
https://jira.talendforge.org/browse/TUP-27654

* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
set delta lake/jdbc default mapping
https://jira.talendforge.org/browse/TUP-27654

* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
https://jira.talendforge.org/browse/TUP-27654

* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
https://jira.talendforge.org/browse/TUP-27654

* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
https://jira.talendforge.org/browse/TUP-27654

* feat(TUP-27654):Databricks Delta Lake - Support ELT & MERGE
https://jira.talendforge.org/browse/TUP-27654
2020-09-18 12:01:20 +08:00
wang wei
9a18f18a76 fix(TDI-44745): FileInputDelimited fails to properly consume CipherInputStream(#5140) 2020-09-17 14:15:43 +08:00
Chao MENG
7a66f2715c Cmeng/patch/7.3/tup 28063 improve start (#5092)
* workitem(TUP-28063): Improve studio bundles reloading logic
https://jira.talendforge.org/browse/TUP-28063

* workitem(TUP-28063): Improve studio bundles reloading logic
https://jira.talendforge.org/browse/TUP-28063

* workitem(TUP-28063): Improve studio bundles reloading logic
https://jira.talendforge.org/browse/TUP-28063
2020-09-16 16:40:47 +08:00
Zhiwei Xue
33c569d7cb feat(TUP-28323):Improve the maven build time spent during login project (#5166) 2020-09-16 16:35:24 +08:00
bhe-talendbj
41d611a140 fix(TUP-28628): NPE because of context (#5206) 2020-09-16 15:46:28 +08:00
vdrokov
7381677f63 fix(TESB-29853): TESB-29819 Studio doesn't select model beans during exporting (#5002)
* fix(TESB-29819): Studio doesn't select model beans during exporting

* fix(TESB-29819) Studio doesn't select model beans during exporting
Alternative fix
2020-09-16 08:19:49 +02:00
pyzhou
0685203687 fix(TDI-44855):fix index out of bound error (#5212) 2020-09-16 12:26:04 +08:00
wang wei
02bd1c98e7 fix(TDI-44824): Observability: Update daikon-audit library version (#5205) 2020-09-15 20:26:41 +08:00
apoltavtsev
2115adb42e fix(TESB-29963) MQ Dependency issues in Runtime (#5104)
* fix(TESB-29963) MQ Dependency issues in Runtime

* Update JobJavaScriptOSGIForESBManager.java
2020-09-15 11:38:27 +02:00
wang wei
cfd4a491ea fix(TDI-44806): Observability: Add customization for event frequency (#5200)
* fix(TDI-44806): Observability: Add customization for event frequency

* adjust the key to "audit.interval"
2020-09-15 17:30:15 +08:00
hcyi
c1c0c5481b fix(TUP-28635):[bug] output path always be changed when path contains \ (#5209) 2020-09-15 14:51:49 +08:00
Zhiwei Xue
9b6eb4d7ab fix(TUP-28576):Reference projects routine POM file is modified and can't (#5204)
be committed to GIT
2020-09-15 09:56:07 +08:00
hcyi
ebb4502761 feat(TUP-23827):Runtime Lineage for studio. (#5003)
* feat(TUP-23827):Runtime Lineage for studio.

* feat(TUP-23827):improve the GUI of Runtime Lineage for studio.

* feat(TUP-23827):improve the GUI of Runtime Lineage for studio.

* feat(TUP-23827):TUP-28186[bug]runtimelineage.prefs better remove job
version

* feat(TUP-23827):update the text Runtime Lineage to lower case after
review

* fix(TDI-44670): Runtime Lineage - Finalize component part

* split audit log and runtime lineage log

* add a custom api for other feature and future

* feat(TUP-23827):only EE product can have runtime lineage。

* fix something

* fix trunjob

* fix(TDI-44735): remove the duplicated parameters info in message, user
can fetch it from customInfo json object

* fix(TDI-44734): Enhance output path system for logging of runtime json

* fix the compiler issue

* filter the special table field

* fix the compiler and NPE risk

* feat(TUP-23827):only support for DI jobs if selected "Use runtime
lineage for all jobs" .

* feat(TUP-28539):Enhance GUI of Runtime Lineage.

* feat(TUP-28539):improve for Enhance GUI of Runtime Lineage.

* fix the compiler issue

* feat(TUP-28539):remove Output path test and verify 。

Co-authored-by: wwang-talend <wwang@talend.com>
2020-09-14 18:42:55 +08:00
Emmanuel GALLOIS
38ce7af3e9 fix(TCOMP-1770): bump component-runtime to 1.1.25 2020-09-14 11:10:26 +02:00
pyzhou
e5c07ac253 fix(TDI-44855):tSSH append new line in the result (#5190) 2020-09-14 10:58:32 +08:00
AlixMetivier
176e3489ce fix(TBD-10885): refacto date and timestamp handling with dataset (#5149) 2020-09-10 14:48:45 +02:00
vyu-talend
65c980efdf fix(TDI-44846):fix the compliation error. (#5187) 2020-09-10 14:04:58 +08:00
nrousseau
2fb8abe293 fix(TUP-28487): fix performance issue (#5152)
* fix(TUP-28487): fix performance issue
2020-09-10 09:52:59 +08:00
vyu-talend
036736f589 fix(TDI-44803):attachment issue in tfileinputmail. (#5176) 2020-09-09 18:08:02 +08:00
OleksiiNimych
5b8b168860 fix(TDI-44759): tTeradataTPTExec fix SHOW_IF statement (#5147)
* fix(TDI-44759): tTeradataTPTExec fix SHOW_IF statement

* fix(TDI-44759): tTeradataTPTExec fix display of properties
2020-09-09 10:20:36 +03:00
Oleksandr Zhelezniak
ea82a11f32 chore(TDI-44765): remove guava:13.0 (#5168)
* remove guava:13.0 dependency use 20.0 instead of it
2020-09-09 09:58:49 +03:00
chmyga
81e7e49dcf fix(TCOMP-1749): validation with ActiveIf broken (#5121)
* Don't show validation results for hidden parameters

* Revalidate parameters on show/hide property change

Co-authored-by: Dmytro Chmyga <dmytro.chmyga@synapse.com>
2020-09-08 15:58:28 +03:00
Emmanuel GALLOIS
e5f2b94511 feat(TCOMP-1651): handle Dynamic for component-runtime components (#4861)
* feat(TCOMP-1651): bump component-runtime to 1.1.23-SNAPSHOT
- should be changed after the 1.1.23 release
* feat(TCOMP-1651): javajet update to Dynamic
* feat(TCOMP-1651): copyright update
* feat(TCOMP-1651): update javajet stubs
* feat(TCOMP-1651): update configuration javajet
* feat(TCOMP-1651): fix errors on configuration javajet
* feat(TCOMP-1651): bump component-runtime to 1.1.23
* feat(TCOMP-1651): bump component-runtime to 1.1.24-SNAPSHOT
* feat(TCOMP-1651): pass dynamic column metadatas to RecordConverters
* feat(TCOMP-1651): bump component-runtime to 1.1.24
2020-09-08 10:19:37 +02:00
Andrii Medvedenko
1b6f6cb3cb feat(TBD-10473): Hive input components for Dataproc distribution to work with Service account (#5114) 2020-09-08 02:34:40 +03:00
wang wei
e7a58886dc fix(TDI-44760): TMomOutput not changing the value of the queue (#5145) 2020-09-07 16:59:17 +08:00
wang wei
84d87eb37a fix(TDI-44678): tFileOutputXML make unexpected empty file (#5052) 2020-09-07 15:37:20 +08:00
vyu-talend
3506e3b76a feat(TDI-44720):implement pause and resume for redshift cluster. (#5141)
* feat(TDI-44720):implement pause and resume for redshift cluster.

* feat(TDI-44720):change show-if.
2020-09-04 14:28:02 +08:00
vyu-talend
60b1216d84 feat(TDI-44755):upgrade aws sdk version. (#5139) 2020-09-04 13:55:49 +08:00
hcyi
38635cfa1d fix(TUP-28258):tETLInput and tETLMap does not show datatypes for (#5124)
Snowflake DB on Import Metadata
2020-09-04 11:28:09 +08:00
Emmanuel GALLOIS
73c93317fd (TCOMP-1759): fix random order for columns in guessSchema in Studio (#5151) 2020-09-03 11:36:46 +02:00
Oleksandr Zhelezniak
584dd71b8b fix(TDI-44654): fixed NPE for tFTP (#5071)
* add info message about nullity of the ssl session context
* update version of commons-net-ftps-proxy [3.6.1-talend-20190819] -> [3.6.1-talend-20200902]
* update version of 'commons-net-ftps-proxy' in javajet ftp's components
* remove slf4j-log4j12 dependency
2020-09-03 10:17:24 +03:00
jzhao
7179453025 fix(TDI-30522): revert all fixes. (#5163)
* Revert "fix(TDI-30522): extra '(' removed (#5161)"

This reverts commit 9497eee89e.

* Revert "fix(TDI-30522): reworked fix. (#5109)"

This reverts commit 478a707a7c.
2020-09-02 15:00:08 +08:00
Dmytro Grygorenko
9497eee89e fix(TDI-30522): extra '(' removed (#5161)
* fix(TDI-30522): extra '(' removed

* fix(TDI-30522): missing '<%' restored
2020-09-01 20:42:10 +03:00
Dmytro Grygorenko
b8bae80459 TalendExcel: read password protected files. (#5132)
* fix(TDI-44743): read password protected files.

* fix(TDI-44743): use new library.

* fix(TDI-44743): Error message changed.
2020-09-01 16:11:08 +03:00
Oleksandr Zhelezniak
8827109f7f chore(TDI-44145): update commons-codec:1.14 (#5154)
* update commons-codec to 1.14 in javajets
* update internal libraries(libs_src) where was updated commons-codec
2020-09-01 15:26:43 +03:00
jzhao
a2ffcbba3e fix(TDI-44748):Error in method "add" for the component tFileOutputMSXML (#5133) 2020-09-01 15:07:13 +08:00
mbasiuk-talend
6c5c7bcfec feat(TDI-44730): upgrade snowflake driver to latest (#5150) 2020-09-01 09:52:41 +03:00
Dmytro Sylaiev
c5f8b26687 fix(TDI-44074): Fix performance for date mssql (#4638) (#5155) 2020-08-31 17:32:58 +03:00
Oleksandr Zhelezniak
614556ce8c fix(TDI-31162): remove interfere condition (#5120)
* remove interfere SPECIFY_DATASOURCE_ALIAS from the import condition of the tOracle components
2020-08-31 10:42:48 +03:00
Dmytro Grygorenko
478a707a7c fix(TDI-30522): reworked fix. (#5109)
* fix(TDI-30522): reworked fix.

* fix(TDI-30522): Closing bracket restored
2020-08-28 21:03:49 +03:00
Jane Ding
a7c9258846 Jding/tup 28440 (#5138)
* Add test suffix for test case support (#5136)

Co-authored-by: Michael Verrilli <mverrilli@talend.com>

* Mverrilli patch 7.3.1 iterate test fix (#5137)

* Add test suffix for test case support

* Fixed missing reference to className

* Update iterate_subprocess_header.javajet

Co-authored-by: Michael Verrilli <mverrilli@talend.com>

Co-authored-by: Michael Verrilli <mverrilli@talend.com>
2020-08-28 15:03:11 +08:00
Jane Ding
4f63e93995 Jding/73/tup 28085 error while compiling a kafka component with big data studio (#5089)
* fix(TUP-28085):Error while compiling a Kafka component with Big Data
studio
https://jira.talendforge.org/browse/TUP-28085
Signed-off-by: jding-tlnd <jding@talend.com>

* fix(TUP-28085):Error while compiling a Kafka component with Big Data
studio
https://jira.talendforge.org/browse/TUP-28085

Signed-off-by: jding-tlnd <jding@talend.com>
2020-08-28 14:01:41 +08:00
Emmanuel GALLOIS
9a44a3006f patch(TPS-4101): bump component-runtime to 1.1.15.2 (#5127) 2020-08-25 12:42:02 +02:00
Roman
59da4a3e14 fix(TDI-44063): add transitive xml-apis lib (#5128) 2020-08-25 11:48:42 +03:00
Dmytro Sylaiev
27928d664f fix(TDI-44394): Fix migration tcomp for javajet (#5129) 2020-08-25 11:07:09 +03:00
bhe-talendbj
e2bc6699fa fix(TUP-28308): build error and joblet maven xml file has incorrect values and Couldn't parse data error message (#5116)
* fix(TUP-28308): Check multiple version of joblets

* fix(TUP-28308): Revert unnecessary changes
2020-08-25 10:27:22 +08:00
hcyi
d840d36182 fix(TUP-28134):TCK Components shown as hidden by default in the palette (#5045)
settings
2020-08-25 09:57:02 +08:00
vdrokov
1492cf8130 fix(TESB-29980): Issue of tsendemail component deployed in runtime wi… (#5108)
* fix(TESB-29980): Issue of tsendemail component deployed in runtime with attachment

* TESB-29980 Simplified fix as it should cover Java 8 and 11.

Co-authored-by: Andreas Mattes <andreasmattes@operamail.com>
2020-08-24 19:00:21 +02:00
jiezhang-tlnd
bce81ea615 fix(TUP-28078)metadata folder generated under .../poms/jobs when create (#5075)
new connection in remote project
https://jira.talendforge.org/browse/TUP-28078
2020-08-24 10:28:58 +08:00
Emmanuel GALLOIS
c49a50b971 fix(TDI-44164): revert changes on talend.component.manager.m2.repository (#5111) 2020-08-21 17:19:39 +02:00
Roman
1f66234efa fix(TDI-44063): update xercesImpl dependency (#5004)
* fix(TDI-44063): update xercesImpl dependency (#4857)

* fix(TDI-44063): bump talend soap lib in maven dependency plugin

* fix(TDI-44063): back bundleID

* fix(TDI-44063): change GAV for soap lib
2020-08-21 17:46:20 +03:00
Dmytro Grygorenko
fd1fd16679 fix(TDI-44439): backport to "maintenance/7.3" (#5029)
* fix(TDI-44439): backport to "maintenance/7.3"

* fix(TDI-44439): in case dbName is null
2020-08-21 13:14:05 +03:00
Jane Ding
c7213657a5 fix(TUP-28338):[7.3.1] configuring Implicit tContextLoad in the job Goes (#5101)
* fix(TUP-28338):[7.3.1] configuring Implicit tContextLoad in the job Goes
on error after installing the patch 07_2020
https://jira.talendforge.org/browse/TUP-28338

Signed-off-by: jding-tlnd <jding@talend.com>

* fix(TUP-28338):[7.3.1] configuring Implicit tContextLoad in the job Goes
on error after installing the patch 07_2020
https://jira.talendforge.org/browse/TUP-28338

* fix(TUP-28338):[7.3.1] configuring Implicit tContextLoad in the job Goes
on error after installing the patch 07_2020
https://jira.talendforge.org/browse/TUP-28338

Signed-off-by: jding-tlnd <jding@talend.com>

* fix(TUP-28338):[7.3.1] configuring Implicit tContextLoad in the job Goes
on error after installing the patch 07_2020
https://jira.talendforge.org/browse/TUP-28338

Signed-off-by: jding-tlnd <jding@talend.com>
2020-08-20 18:35:55 +08:00
Pierre Teyssier
d362662fa1 fix(TDI-42668): replace hardcoded value 2020-08-20 04:27:31 +08:00
Andrii Medvedenko
5d53d880ed fix of tHiveInput (#5100)
tHiveInput with DataProc 1.4 in DI: no rows retrieved
2020-08-19 17:02:30 +03:00
Jane Ding
1d508903ea Jding/tup 28338 implicit context issue (#5097)
* fix(TUP-28338):[7.3.1] configuring Implicit tContextLoad in the job Goes
on error after installing the patch 07_2020
https://jira.talendforge.org/browse/TUP-28338

* fix(TUP-28338):[7.3.1] configuring Implicit tContextLoad in the job Goes
on error after installing the patch 07_2020
https://jira.talendforge.org/browse/TUP-28338

* fix(TUP-28338):[7.3.1] configuring Implicit tContextLoad in the job Goes
on error after installing the patch 07_2020
https://jira.talendforge.org/browse/TUP-28338
2020-08-19 18:49:00 +08:00
Mike Yan
87c312f5b5 fix(TESB-29957): Added properties for metrics (#5095)
* fix(TESB-29957):CI Fail to publish Microservice with Prometheus param

* fix(TESB-29957): Added contexts properties

* fix(TESB-29957): Added properties for metrics
2020-08-19 17:05:21 +08:00
Chao MENG
f206247506 fix(TUP-28295): UI Problem of TCOMPV0 in the recent 741NB and 731 (#5079)
Release + Aug. Nightly Build Patch
https://jira.talendforge.org/browse/TUP-28295
2020-08-17 15:43:56 +08:00
Mike Yan
c8ee01160c fix(TESB-29957): Added contexts properties (#5082)
* fix(TESB-29957):CI Fail to publish Microservice with Prometheus param

* fix(TESB-29957): Added contexts properties
2020-08-14 17:33:45 +08:00
Dmytro Grygorenko
8dd10f9d2d Update libraries: "httpclient-4.5.12" and "httpcore-4.4.13" (#4889)
* fix(TDI-44486): library update - "httpclient-4.5.12.jar"

* fix(TDI-44486): Updated httpcore and httpclient for all components.

* fix(TDI-44486): recent changes + "commons-codec-1.14.jar"
2020-08-14 11:53:53 +03:00
vyu-talend
fb83719828 feat(TDI-44630):support amazon EMR HA. (#5059)
* feat(TDI-44630):support amazon EMR HA.

* feat(TDI-44630):improve the error message.
2020-08-14 15:55:57 +08:00
Dmytro Sylaiev
3fa500b3ac tS3Connection setPathStyleAccess for better MinIO support (#5012) (#5076)
* Added a checkbox under Advanced settings of tS3Connection when a custom endpoint is used.
When MinIO is used via DNS/hostname this must be checked otherwise the operations fail.

* PathStyleAccess should only be used if a custom endpoint is enabled.

Co-authored-by: bgunics-talend <63251373+bgunics-talend@users.noreply.github.com>
2020-08-13 13:53:28 +03:00
Mike Yan
219c78267e fix(TESB-29957):CI Fail to publish Microservice with Prometheus param (#5073) 2020-08-13 17:38:54 +08:00
AlixMetivier
f43e648cd8 feat(TBD-10769): delta Features for R08 (#5067) 2020-08-13 10:16:58 +02:00
hzhao-talendbj
c69c81bba7 Hengzhao/backport73/tup 25103 (#5033)
* bugfix(TUP-25103):tELTMap - ctrl+space shortcut is not working to
retrieve easily job context

* TUP-25103

* Tup-25103

* tup-25103  use styleText

* tup-25103 add exception handler

* remove comments

* solve issues

* add doit false to avoid new line

* try replace "\r\n" to " " in tELTMssqlMap_main.javajet

* fix edit expression builder but sql tab not refresh

* remove comments and format

* improve code

* to fix other eltmap about multi-line expression  and import/export
expression from file

* remove javajet and remove buttons

* remove expressionbuilder

Co-authored-by: hwang <hwang@talend.com>
2020-08-13 13:56:20 +08:00
pyzhou
82a927aed4 feat(TDI-42668):update jar of tssh component branch 7.3 (#5038)
* feat(TDI-42668):update jar of tssh component

* fix status code

* fix error interactive

* support dsa

* fix compile error
2020-08-13 12:25:37 +08:00
Jane Ding
b507c601f2 fix(TUP-28180):[bug]Only latest version deleted from root pom when check (#5044)
"Exclude deleted items" and delete to recycle bin
https://jira.talendforge.org/browse/TUP-28180

Signed-off-by: jding-tlnd <jding@talend.com>
2020-08-13 10:42:52 +08:00
SunChaoqun
b7c7689554 Csun/tesb 29322/microservice monitoring expose camel metrics m73 (#5060)
Merge into maintenance/7.3 for patch  7.3.1-R2020-08 - 20200821, since master branch has been validated.
2020-08-13 10:42:06 +08:00
Dmytro Grygorenko
1dce8ebdb8 Revert "fix(TDI-30522): backport to "maintenance/7.3" branch (#4898)" (#5070)
This reverts commit 4380916dcf.
2020-08-12 11:20:05 +03:00
bhe-talendbj
dfb1157d92 fix(TUP-27374): Fix test case (#5055) (#5061) 2020-08-11 14:53:32 +08:00
SunChaoqun
3ee0dd2559 TESB-29133 Update dom4j to 2.1.3 (#5000) (#5053)
Co-authored-by: Maksym Sheverda <maksym.sheverda@synapse.com>

Co-authored-by: msheverda-talend <53863455+msheverda-talend@users.noreply.github.com>
Co-authored-by: Maksym Sheverda <maksym.sheverda@synapse.com>
2020-08-11 13:56:33 +08:00
wang wei
225ce06412 fix(TDI-44192): Update dom4j to 2.1.3 (#4899) 2020-08-11 10:21:07 +08:00
AlixMetivier
0a18ad8c80 fix(TBD-11052): fix dataset migration for csv value (#5051)
* fix(TBD-11052): wrong value was checked

* fix value
2020-08-10 09:39:02 +02:00
jiezhang-tlnd
b3fca54bde fix(TUP-27697)Studio throw NPE error when drag json item to job (#4967)
https://jira.talendforge.org/browse/TUP-27697
2020-08-10 10:58:25 +08:00
AlixMetivier
47b3c48580 fix(TBD-11052): add migration task for dataset API in delimited compo… (#5036) 2020-08-07 15:10:19 +02:00
wang wei
b14945f092 fix(TDI-44481): upgrade commons-beanutils to 1.9.4 (#4893) 2020-08-06 12:45:16 +08:00
bhe-talendbj
823443b922 bugfix(TUP-27374) Commandline doesn''t pick up the correct JVM arguments (#5028)
* fix(TUP-27374): Get default jvm arguments

* fix(TUP-27374): add back default vm arguments
2020-08-06 11:03:58 +08:00
Roman
6c7c7e2d0d fix(TDI-44658): rearrange parameters in UI for BigQueryBulkExec (#5035) 2020-08-05 09:54:26 +03:00
Oleksandr Zhelezniak
a05b884249 chore(TDI-44362): CVE. Remove commons logging (#5027)
* remove commons-logging library from mdm_transaction and webservice-input libraries
* bump version for talend-webservice-input [1.0.0-20170301]->[1.0.2]
* declare explicit version of maven-jar-plugin in talend-webservice-input dependency
* change group id of mdm_transaction
* update version of mdm_transaction [1]->[1.0.1]
* change import in javajet xml due to convension for the talend-webservice-input to [1.0.2/6.0.0]
2020-08-05 09:16:03 +03:00
Roman
a36c14163a chore(TDI-44551): rename parameter (#5030) 2020-08-04 17:38:10 +03:00
jiezhang-tlnd
efe395f1bb feat(TUP-27862)Add possibility to customize pattern for dates when (#4977)
retrieve table
2020-08-03 09:41:16 +08:00
wang wei
6353bf261a fix(TDI-44643): NPE exception on tWaitForSQLData with snowflake connection(#5006) 2020-07-31 11:23:59 +08:00
Chao MENG
441e39a51e fix(TUP-27953): tSalesforceInput component displays in-job (#4997)
tSalesforceConnection incorrectly
https://jira.talendforge.org/browse/TUP-27953

Conflicts:
	main/plugins/org.talend.designer.core.generic/src/main/java/org/talend/designer/core/generic/controller/ComponentRefController.java
2020-07-31 11:11:23 +08:00
Jane Ding
c803692a65 feat(TUP-25566)All the recycle bin should not be build or executed (#4961)
* feat(TUP-25566)All the recycle bin should not be build or executed
https://jira.talendforge.org/browse/TUP-25566

* feat(TUP-25566)All the recycle bin should not be build or executed
https://jira.talendforge.org/browse/TUP-25566
2020-07-31 02:35:41 +08:00
Dmytro Sylaiev
a2bef6021d fix(TDI-44512): Bump mscrm lib version for localprovider components (#4973) 2020-07-30 10:40:01 +03:00
sbliu
f6fe7cc804 TUP-27812 By upgrading asciidoctorj to 2.3.0 to upgrade jruby-stdlib then upgrade bctls-jdk15on to 1.62 2020-07-29 15:09:06 +08:00
bhe-talendbj
8c167c470d fix(TUP-28009): Save relationship index after version change (#4988) 2020-07-28 16:12:30 +08:00
kjwang
9c91e6cce0 Kjwang/fix tup 27879 library data.index (#4935)
Fix:TUP-27879 Shared user can't write library index file library_data.index
https://jira.talendforge.org/browse/TUP-27879
Improve the code fix a spelling errors
2020-07-28 09:16:09 +08:00
Dmytro Sylaiev
a003ea6a61 fix(TDI-44579): Hide encrypt button for parquet (#4979)
* fix(TDI-44579): Hide encrypt button for parquet

* fix(TDI-44579): Don't generate mskey when encrypt is hidden
2020-07-24 10:51:30 +03:00
hzhao-talendbj
dd6a40cd68 tup-27447 backport to 73 (#4823)
* tup-27447 backport to 73

* TUP-27447
fix duplicated jars in .bat
2020-07-24 11:13:45 +08:00
msheverda-talend
a67032cdfa TESB-29285, TESB-29284 Error occurred when execute a microservice jar which is built by a tresrequest job with embedded trestclient job (#4781)
* TESB-29285 Error occurred when execute a microservice jar which is built by a tresrequest job with embedded trestclient job

* TESB-29285 Error occurred when execute a microservice jar which is built by a tresrequest job with embedded trestclient job

* TESB-29285 Error occurred when execute a microservice jar which is built by a tresrequest job with embedded trestclient job

Co-authored-by: Maksym Sheverda <maksym.sheverda@synapse.com>
2020-07-23 11:32:01 +02:00
OleksiiNimych
2a38cf7a5b fix(TDI-44400): update google-cloud-bigquery (#4860) 2020-07-23 10:22:52 +03:00
Dmytro Grygorenko
4380916dcf fix(TDI-30522): backport to "maintenance/7.3" branch (#4898)
* fix(TDI-30522): backport to "maintenance/7.3" branch

* fix(TDI-30522): Fixed compile error for tMSSqlOutput component.

* fix(TDI-30522): Some more compile errors fixed.
2020-07-23 10:16:50 +03:00
Jane Ding
7c7e1efb24 fix json xpath issue (#4980) 2020-07-22 17:53:57 +08:00
jiezhang-tlnd
fc5dca5f67 fix(TUP-27588)tCreateTable data types mapping in the schema editor is (#4968)
always Mysql after dragging and dropping from database Metadata
2020-07-21 11:31:48 +08:00
apoltavtsev
54c951c4bd TESB-29647 Bundle version for Jobs is corrected 2020-07-20 13:44:37 +02:00
Richard Lecomte
320c282a09 TDI-44448 : AWS EMR version 5.29.0 (#4914)
* TDI-44448 : AWS EMR version 5.29.0

Co-authored-by: Pierre Teyssier <pteyssier@talend.com>
2020-07-17 15:38:25 +08:00
Jane Ding
d9bff92a85 fix(TUP-27179):Studio freezes on job importing/loading (#4682) (#4875)
* fix(TUP-27179):Studio freezes on job importing/loading
https://jira.talendforge.org/browse/TUP-27179

* fix(TUP-27179):Studio freezes on job importing/loading
https://jira.talendforge.org/browse/TUP-27179

* fix(TUP-27179):Studio freezes on job importing/loading
https://jira.talendforge.org/browse/TUP-27179
2020-07-17 11:51:54 +08:00
msheverda-talend
a360ffd1a7 TESB-29664 Reverting changes (#4954)
Co-authored-by: Maksym Sheverda <maksym.sheverda@synapse.com>
2020-07-16 18:07:28 +03:00
Roman
3d7aa5a71b fix(TDI-44562): replace all backslashes in GS path (#4949) 2020-07-16 10:52:13 +03:00
Roman
1bd53e9905 fix(TDI-44561): fix compile error when dieOnError is checked (#4944) 2020-07-16 08:04:55 +03:00
Dmytro Sylaiev
5580b4f8d2 feat(TDI-44476): Add parquet support for tReshiftUnload (#4908)
* feat(TDI-44476): Add parquet support for tReshiftUnload

* feat(TDI-44476): Hide comress property for parquet
2020-07-15 18:20:14 +03:00
Roman
9cbf21f766 feat(TDI-44466): add service account support for BulkExec and Output (#4909)
* feat(TDI-44466): add properties for service account

* feat(TDI-44466): add service account for BulkExec

* feat(TDI-44466): add service account for Output

* feat(TDI-44466): marked old auth type as deprecated

* feat(TDI-44466): rename param

* feat(TDI-44466): add migration task

* feat(TDI-44466): change default auth type

* feat(TDI-44466): rollback imports

* feat(TDI-44466): align dependencies

* feat(TDI-44466): hide auth type field when bulkfile exist
2020-07-15 14:24:52 +03:00
Roman
4f35e05d28 feat(TDI-38246): add new auth type to google storage family (align deps) (#4924)
* feat(TDI-38246): add new auth type to tGSConnection

* feat(TDI-38246): add auth to UI | add dependencies

* feat(TDI-38246): add new auth type to tGSBucketCreate

* feat(TDI-38246): add new auth type to tGSBucketDelete | small fixes

* feat(TDI-38246): add new auth type to tGSBucketExist

* feat(TDI-38246): add new auth type to tGSBucketList

* feat(TDI-38246): remove projectId from tGSBucketList

* feat(TDI-38246): add new auth type to tGSClose

* feat(TDI-38246): add filemap generation for blob

* feat(TDI-38246): add new auth type to tGSPut

* feat(TDI-38246): add new auth type to tGSDelete

* feat(TDI-38246): add new auth type to tGSList

* feat(TDI-38246): add new auth type to tGSGet

* feat(TDI-38246): add new auth type to tGSCopy

* feat(TDI-38246): remove projectID for service account auth type

* feat(TDI-38246): rename component properties

* feat(TDI-38246): extend locations for bucket creation

* feat(TDI-38246): remove dual locations

* feat(TDI-38246): change default auth type

* feat(TDI-38246): add migration task

* feat(TDI-38246): remove unused var

* feat(TDI-38246): improve migration task

* feat(TDI-38246): clean code

* feat(TDI-38246): correct showing some params when use exist connection

* feat(TDI-38246): mark all HMAC keys as deprecated

* feat(TDI-38246): avoid blob directories

* feat(TDI-38246): allign dependencies

* feat(TDI-38246): remove duplicate

* feat(TDI-38246): bump GCS lib version

* feat(TDI-38246): bump google api service storage

* feat(TDI-38246): update required deps

* feat(TDI-38246): align depepndencies for BigQuery family
2020-07-15 14:23:41 +03:00
wang wei
c3268d3afa fix(TDI-44482): CVE: org.apache.ant:ant:1.10.1 (#4902) 2020-07-15 18:01:48 +08:00
OleksiiNimych
f5c24520ca fix(TDI-44202): tCreateTable add support of Sybase (#4780) 2020-07-15 15:41:29 +08:00
pyzhou
0e30f970cf fix(TDI-44558):fix tJDBCSCDELT 65535 issue (#4938) 2020-07-15 15:24:58 +08:00
jzhao
8782a4840f fix(TDI-44453):tAdvancedFileOutputXML issue after upgrading to 7.3.1 (#4927) 2020-07-15 14:02:57 +08:00
apoltavtsev
248c7c6d74 feat(TESB-28826) Secure Password - Publish job with Password 2020-07-14 19:50:59 +02:00
wang wei
a2a3eb2fbf fix(TDI-44548): tacokit components can't be loaded (#4931) 2020-07-14 16:46:30 +08:00
msheverda-talend
0592a4ddcc TESB-29664 Random port will be used when REST Engpoint in tRESTRequest is empty (#4903)
Co-authored-by: Maksym Sheverda <maksym.sheverda@synapse.com>
2020-07-14 10:50:14 +03:00
wang wei
bf30eba808 fix(TDI-44167): SCD ELT components to support Databricks Delta (#4919) 2020-07-13 16:38:24 +08:00
vyu-talend
e16c6f379e fix(TDI-44377):fix tfileinputdelimited utf8bom issue (#4853)
* fix(TDI-44377):fix tfileinputdelimited utf8bom issue

* fix(TDI-44377):add a checkbox

* fix(TDI-44377):skip bom to fix tfileinputdelimited

* fix(TDI-44300):skip bom to fix issue
2020-07-13 14:17:03 +08:00
vyu-talend
863a874fb2 fix(TDI-44300):skip bom to fix issue (#4897) 2020-07-13 14:14:32 +08:00
wang wei
78b2702600 fix(TDI-44506): Failed to build job on TOS (#4900) 2020-07-13 10:16:59 +08:00
Roman
18a18ce336 feat(TDI-38246): add new auth type to Google Storage family (#4839)
* feat(TDI-38246): add new auth type to tGSConnection

* feat(TDI-38246): add auth to UI | add dependencies

* feat(TDI-38246): add new auth type to tGSBucketCreate

* feat(TDI-38246): add new auth type to tGSBucketDelete | small fixes

* feat(TDI-38246): add new auth type to tGSBucketExist

* feat(TDI-38246): add new auth type to tGSBucketList

* feat(TDI-38246): remove projectId from tGSBucketList

* feat(TDI-38246): add new auth type to tGSClose

* feat(TDI-38246): add filemap generation for blob

* feat(TDI-38246): add new auth type to tGSPut

* feat(TDI-38246): add new auth type to tGSDelete

* feat(TDI-38246): add new auth type to tGSList

* feat(TDI-38246): add new auth type to tGSGet

* feat(TDI-38246): add new auth type to tGSCopy

* feat(TDI-38246): remove projectID for service account auth type

* feat(TDI-38246): rename component properties

* feat(TDI-38246): extend locations for bucket creation

* feat(TDI-38246): remove dual locations

* feat(TDI-38246): change default auth type

* feat(TDI-38246): add migration task

* feat(TDI-38246): remove unused var

* feat(TDI-38246): improve migration task

* feat(TDI-38246): clean code

* feat(TDI-38246): correct showing some params when use exist connection

* feat(TDI-38246): mark all HMAC keys as deprecated

* feat(TDI-38246): avoid blob directories
2020-07-10 18:32:09 +03:00
kjwang
51d66a086e Fix: TUP-27545 Update context var name for jdbc drivers can not be updated to job automatically. (#4883)
* Fix: TUP-27545 Update context var name for jdbc drivers can not be
updated to job automatically.
https://jira.talendforge.org/browse/TUP-27545
2020-07-10 14:13:09 +08:00
Roman
93735786d2 feat(TDI-37016): Add dynamic support for tVerticaBulkExec (#4484) (#4884) 2020-07-09 15:32:05 +03:00
clesaec
006b9c00b9 fix(TDI-44455) : log dependencies for studio-integration module (#4874) 2020-07-09 11:28:25 +02:00
jiezhang-tlnd
4790a880e1 feat(TUP-27680)Can't use the database "MAPPING" parameter to decide the component UI if show (#4879)
* feat(TUP-27680)Can't use the database "MAPPING" parameter to decide the
component UI if show
https://jira.talendforge.org/browse/TUP-27680

* feat(TUP-27680)Can't use the database "MAPPING" parameter to decide the
component UI if show

* feat(TUP-27680)add junits
2020-07-09 17:14:06 +08:00
jiezhang-tlnd
a96fdec0a7 add junit caused by TDI-44284 (#4906) 2020-07-09 14:49:09 +08:00
hcyi
bde9640722 fix(TUP-27352):Traces enabled by default when using Memory Run (#4770) 2020-07-08 09:46:28 +08:00
Dmytro Grygorenko
a93372f60e fix(TDI-44355): Add contributor's real name. (#4891) 2020-07-07 13:13:16 +03:00
pyzhou
d1559451e4 feat(TDI-44284):Rename old tEXAxxx connectors in tExasolxxx (#4842)
* feat(TDI-44284):Rename old tEXAxxx connectors in tExasolxxx

* reformat and change filter

* reformat

* migration task

* change name

* change filter to tExasolConnection

* fix db unify

* fix(TDI-44284):rename EXA

* debug

* debug2

* debug3
2020-07-07 16:05:16 +08:00
vdrokov
6abc8d737d fix(TESB-29489): Compile error occurred in code if the route version is different with the routelet version (#4830) 2020-07-03 09:56:31 +03:00
hzhao-talendbj
69c9182794 Hengzhao/backport73/tup 27070 (#4786)
* Tup-27070

* TUP-27070  fix cross join cases (#4772)
2020-07-03 09:43:02 +08:00
jiezhang-tlnd
dc62c40afe fix(TUP-27588)tCreateTable data types mapping in the schema editor is (#4820) (#4864)
always Mysql after dragging and dropping from database Metadata
https://jira.talendforge.org/browse/TUP-27588
2020-07-02 17:28:13 +08:00
pyzhou
f7952374e4 Pyzhou/tdi 43899 jdbcscdelt type0 (#4835)
* feat(TDI-43899):tJDBCSCDELT type0

* mysql insert type0

* fix log

* snowflake type 0

* mssql type0

* exasol type 0

* postgres type0

* fix bug for exasol

* oracle type 0

* correct typo

* fix bug of oracle

* type correction
2020-07-02 16:46:43 +08:00
Jane Ding
de3f85fc35 Hwang/tup 26059 (#4436) (#4876)
* bugfix(TUP-26059):tELTPostgresqlMap lost its "DB Type" column for which
the value should be "BPCHAR"

Co-authored-by: hwang-talend <hwang@talend.com>
2020-07-02 14:48:09 +08:00
chmyga
e62819fd76 fix(TDI-44384): set csv options (#4821)
Co-authored-by: Dmytro Chmyga <dmytro.chmyga@synapse.com>
2020-07-02 08:57:04 +03:00
Dmytro Grygorenko
adca838561 fix(TDI-44412): Implemented optional component fail when no files found by mask. (#4858) 2020-06-30 14:16:09 +03:00
clesaec
e87cfa18a1 Clesaec/tcomp 1733 log4j pb (#4867)
* fix(TCOMP-1733) log dep pb
2020-06-29 18:03:22 +02:00
clesaec
961e39ef3b Clesaec/tdi 44320 active if form 7.3 (#4851)
* fix(TDI-44320) : change page creation method
2020-06-26 16:27:37 +02:00
OleksiiNimych
205d575bab feat(TDI-44039): internal_ip_only for tGoogleDataprocManage (#4763) 2020-06-25 12:04:53 +03:00
mbasiuk-talend
15a25708b6 Mbasiuk/tdi 44165 add null marker field (#4768)
* fix(TDI-44165): add checkbox and text property

* fix(TDI-44165): fix indentation

* fix(TDI-44165): fix indentation v2

* fix(TDI-44165): update nullMarke

* fix(TDI-44165): add null marker customization for BigqueryOB
2020-06-24 19:35:26 +03:00
Richard Lecomte
4468d89b0e TDI-44342 : Ignore microseconds in BigQuery datetime (#4798)
* TDI-44342 : Ignore microseconds in BigQuery datetime

* TDI-44342 : Ignore microseconds in BigQuery datetime

Fixed for BigQuerySQLRow component
2020-06-24 14:13:28 +02:00
OleksiiNimych
3a25678438 fix(TDI-44378): add correct generation of create table sql for Sybase (#4815) 2020-06-24 12:58:18 +03:00
Jane Ding
115ddb1b05 fix(TUP-27517):Implicit Context is not working with the Field Separator (#4832)
* fix(TUP-27517):Implicit Context is not working with the Field Separator
as ~~#*#~~
https://jira.talendforge.org/browse/TUP-27517

* fix(TUP-27517):Implicit Context is not working with the Field Separator
as ~~#*#~~
https://jira.talendforge.org/browse/TUP-27517

* fix(TUP-27517):Implicit Context is not working with the Field Separator
as ~~#*#~~
https://jira.talendforge.org/browse/TUP-27517
2020-06-24 14:30:20 +08:00
Chao MENG
e6a755129f fix(TUP-27497): [7.3.1] tPreJob with tHDFSConnection with kerberized (#4850)
fix(TUP-27497): [7.3.1] tPreJob with tHDFSConnection with kerberized cluster fails with simple authentication error
https://jira.talendforge.org/browse/TUP-27497
2020-06-23 18:28:10 +08:00
Chao MENG
1938ecc8af fix(TUP-27497): [7.3.1] tPreJob with tHDFSConnection with kerberized cluster fails with simple authentication error (#4805)
* fix(TUP-27497): [7.3.1] tPreJob with tHDFSConnection with kerberized
cluster fails with simple authentication error
https://jira.talendforge.org/browse/TUP-27497

* fix(TUP-27497): [7.3.1] tPreJob with tHDFSConnection with kerberized
cluster fails with simple authentication error
https://jira.talendforge.org/browse/TUP-27497
2020-06-23 09:33:29 +08:00
Dmytro Sylaiev
b15d901b27 Dsylaiev/tdi 44109 reintegrate feature for 7.3 (#4834)
* feat(TDI-44109): Regain use ftps library for FTP mode (#4737)

* feat(TDI-44109): Use ftps library for FTP mode

* fix(TDI-44109): fix compile error

* fix(TDI-44109): Fix compile error with the tFTPFileList

* feat(TDI-44109): Use ftps library for FTP mode

* Fix compile error for ftp protocol

* Fix log information for ftp protocol

* Fix compile error for sftp in tFTPDelete component

Co-authored-by: Dmytro Chmyga <dmytro.chmyga@synapse.com>

* fix(TDI-44109): Apply ZhaoJin's fix for FTPGet and Put

* fix(TDI-44109): Fix "move dir" pb on tFTPDelete

Co-authored-by: Dmytro Chmyga <dmytro.chmyga@synapse.com>
2020-06-22 11:51:31 +03:00
Dmytro Grygorenko
7f92ad83a1 fix(TDI-44355): Backport to 'maintenance/7.3' branch (#4844) 2020-06-22 11:23:07 +03:00
Jean-Philippe HAUTIN
66b0cf243b fix(TBD-10799): HDI4.0: DI tHiveConnection does not show any fields (#4838) 2020-06-18 12:17:16 +02:00
AlixMetivier
e8ec4d0337 fix(TBD-10454): fix hadoop conf in context with TMC (#4833) 2020-06-18 08:52:06 +02:00
Dmytro Sylaiev
1e30a7ea90 feat(TDI-44109): Revert Use ftps library for FTP mode (#4737)
This reverts commit c484ce75b4.
2020-06-17 10:47:18 +03:00
wang wei
debbd1107f fix(TDI-44380): Imported JDBC job has compile error : extra quotes around table name(#4810) 2020-06-16 13:18:14 +08:00
Jane Ding
35d279a32a fix(TUP-27509):[bug] testcase listed everytime when click "Detect and… (#4797)
* fix(TUP-27509):[bug] testcase listed everytime when click "Detect and (#4796)

update all jobs"
https://jira.talendforge.org/browse/TUP-27509

* Fix: TUP-27513 [Bug] Studio update job context variable name, the
testcase will add another context variable as built-in mode
https://jira.talendforge.org/browse/TUP-27513

Co-authored-by: kjwang-talend <kjwang@talend.com>
2020-06-12 15:58:05 +08:00
Roman
6416c9c9bb Revert "feat(TDI-37016): Add dynamic support for tVerticaBulkExec (#4484)" (#4803)
This reverts commit cc6a1bc1da.
2020-06-11 15:17:31 +03:00
Jean-Philippe HAUTIN
e03637981c fix(TBD-10661): HDI4.0: set output format to tsv in beeline (#4790) 2020-06-10 21:57:26 +02:00
chmyga
52c5ef7dfa Dchmyga/tdi 44281 fix missing log4j lib t set proxy (#4794)
* fix(TDI-44281): NoClassDefFound for tSetProxy

* Use slf4j instead of log4j in talend-proxy lib

* fix(TDI-44281): NoClassDefFound for tSetProxy

* Update talend-proxy lib version in components

* fix(TDI-44281): NoClassDefFound for tSetProxy

* Update talend-proxy lib for download during build process

Co-authored-by: Dmytro Chmyga <dmytro.chmyga@synapse.com>
2020-06-10 15:20:16 +03:00
Laurent BOURGEOIS
31b3974f81 fix(TBD-10285):Add contains predicate to expressions (#4613) (#4795) 2020-06-10 12:50:26 +02:00
wang wei
0507e76d5e fix(TDI-44172): Observability: Create new "component execution" event and emit it frequently (#4765) 2020-06-10 16:36:30 +08:00
Dmytro Sylaiev
c484ce75b4 feat(TDI-44109): Use ftps library for FTP mode (#4737)
* feat(TDI-44109): Use ftps library for FTP mode

* fix(TDI-44109): fix compile error

* fix(TDI-44109): Fix compile error with the tFTPFileList

* feat(TDI-44109): Use ftps library for FTP mode

* Fix compile error for ftp protocol

* Fix log information for ftp protocol

* Fix compile error for sftp in tFTPDelete component

Co-authored-by: Dmytro Chmyga <dmytro.chmyga@synapse.com>
2020-06-10 09:56:07 +03:00
Zhiwei Xue
212c74ebb4 fix(TUP-27315):Patch installation issues for zero install CI (#4782)
* fix(TUP-27315):Patch installation issues for zero install CI

* fix(TUP-27315): re-deploy tacokit jars before server start.

* Revert "fix(TUP-27315):Patch installation issues for zero install CI"

This reverts commit 0005265955.

* fix(TUP-27315): log errors when copy car dependencies failed rather than
block the process

* fix(TUP-27315): log errors when copy car dependencies failed rather than
block the process
2020-06-10 09:31:38 +08:00
Roman
489125e931 fix(TDI-44128): Update axis2 dependency CVE (#4684) 2020-06-09 12:46:58 +03:00
Sizhao Liu
c0b2bae68e feat(TUP-27160): searchable connectors (for 7.3) (#4778)
* feat(TUP-27157): searchable stitch connectors

* fix the item selection issue in palette + load latest UTM params + i18n

* add category for stitch connectors + exclude overlapping connectors

* add timeout for resource loading
2020-06-08 10:59:03 +08:00
pyzhou
1f6dd38d99 fix(TDI-44196):Jdbc use origin name for dynamic (#4779) 2020-06-05 17:47:51 +08:00
chmyga
954a123f66 fix(TDI-44247): tBigQueryInput illegal operation (#4722)
* Get location from jobreference for OAuth 2.0 authentication mode

Co-authored-by: Dmytro Chmyga <dmytro.chmyga@synapse.com>
2020-06-05 11:22:17 +03:00
vyu-talend
a40d2a2379 Vyu/tdi 44214 change default driver in mssql (#4724)
* feat(TDI-44214):Change default driver to Microsoft official

* feat(tdi-44214):add migration task.

* feat(TDI-44214):modify the plugin.xml file.

* feat(TDI-44214):add tdq components in migration task

* feat(TDI-44214):change migration task.
2020-06-05 10:58:22 +08:00
jiezhang-tlnd
e20d0e57b5 feat(TUP-27259)Change default driver to Microsoft official for MSSql in Metadata (#4736)
* feat(TUP-27259)Change default driver to Microsoft official for MSSql in
Metadata
https://jira.talendforge.org/browse/TUP-27259

* Update plugin.xml

* feat(TUP-27259)Change default driver to Microsoft official for MSSql in
Metadata
https://jira.talendforge.org/browse/TUP-27259

* feat(TUP-27259)Change default driver to Microsoft official for MSSql in
Metadata
2020-06-05 09:22:09 +08:00
pyzhou
e14e19e306 feat(TDI-44216):Redshift partner tracker (#4747)
* feat(TDI-44216):Redshift partner tracker

* add tRedshiftUnload

fix bug

* add tracker for tCreateTable
2020-06-04 17:16:57 +08:00
bhe-talendbj
94534daf40 fix(TUP-27053): backport (#4766) 2020-06-04 11:21:04 +08:00
OleksiiNimych
16e8c9a4fd fix(TDI-44115): remove xmlrpc_3.1.2 from studio (#4753) 2020-06-03 17:55:12 +03:00
OleksiiNimych
59f80736a2 fix(TDI-44115): update xmlrpc-client version (#4711) 2020-06-03 17:54:21 +03:00
OleksiiNimych
511c3ccbd0 fix(TDI-44104): update xmlrpc-common version (#4703) 2020-06-03 17:53:34 +03:00
undx
dbf67ed4bb fix(TDI-44174): Component manager is not thread safe
- this fixes the case when run as independent job is checked and the
  m2.repository automatically defaults to user's m2 in exported job.
- issue on singleton will be fix by component-runtime upgrade.
2020-06-03 09:57:11 +02:00
Emmanuel GALLOIS
29a09a75bc fix(TDI-44174): Component manager is not thread safe (#4714)
* fix(TDI-44174): Component manager is not thread safe

- this fixes the case when run as independent job is checked and the
  m2.repository automatically defaults to user's m2 in exported job.
- issue on singleton will be fix by component-runtime upgrade.

(cherry picked from commit 09386aa841)
2020-06-03 09:53:56 +02:00
Dmytro Grygorenko
a73c156a6a fix(TDI-30505): Backport fix from "master" (#4761) 2020-06-01 16:02:30 +03:00
bhe-talendbj
790fe2ccb4 fix(TUP-27053): fix junit test case (#4676) (#4762) 2020-06-01 17:42:12 +08:00
hcyi
b507ddda61 fix(TUP-26683): Inputs label in documentation not the same as (#4641) (#4749)
FlowDiagram
2020-06-01 11:23:08 +08:00
OleksiiNimych
6512df89ad fix(TDI-44169): update xmlrpc-client version (#4710) 2020-05-29 14:53:22 +03:00
OleksiiNimych
a5043f56e8 fix(TDI-44105): update xmlrpc-common version (#4699) 2020-05-29 14:52:49 +03:00
Dmytro Grygorenko
c8ef5195f8 fix(TDI-44269): Set Outline ERROR_MESSAGE values. (#4743) 2020-05-29 14:02:27 +03:00
Chao MENG
2c2bb17695 feat(TUP-26569): merge known conflicts automatically (#4757)
https://jira.talendforge.org/browse/TUP-26569
2020-05-29 10:59:30 +08:00
kjwang
95400d2a90 Kjwang/feat tup 26288 enhance context b73 (#4746)
Fix TUP-26288 Enhance context propagation over reference project
https://jira.talendforge.org/browse/TUP-26288
2020-05-27 17:11:10 +08:00
wang wei
39cf036547 fix(TDI-43833): tDBBulkExec bug when using PostGress driver (#4701) 2020-05-27 14:21:56 +08:00
Zhiwei Xue
2a39dcaab8 fix(TUP-27262): fix regression from tuj of wrong param location. 2020-05-27 12:43:25 +08:00
Zhiwei Xue
34e490dd0f fix(TUP-27199): revert previous fix and remove wrapping space for
condition.
2020-05-26 11:09:58 +08:00
hwang-talend
d1f7dea73c Hwang/tup 27199 (#4692) (#4695)
Hwang/tup 27199  bugfix(TUP-27199):DB version of sybase isn't hide for other database
on
tCreateTable
2020-05-25 10:40:05 +08:00
Zhiwei Xue
c767870d82 fix(TUP-27262): tAzureAdlsGen2Output component fails with class not
found error
2020-05-22 21:42:38 +08:00
Roman
cc6a1bc1da feat(TDI-37016): Add dynamic support for tVerticaBulkExec (#4484) 2020-05-21 10:20:22 +03:00
wang wei
fee90cdd2f fix(TDI-44066): Illegal argument exception in tsapbapi name field (#4668) 2020-05-21 11:12:46 +08:00
Roman
b8e0a55fb7 fix(TDI-43812): filemask not supported by tFTPRename (#4680) 2020-05-20 15:57:07 +03:00
hzhao-talendbj
447e26d05c Hengzhao/backport73/tup 26476 (#4709)
* hengzhao backport73 tup-36467

* Tup-26476 fix missing filterKind issue (#4609)
2020-05-20 20:04:45 +08:00
Mike Yan
8a24135a74 feat(TESB-24998): Interpret context variable at endpoint for Data Services and Routes (#4708)
* feat(TESB-24998): Add context bean for tRESTReuest

* fix(TESB-24998): Fix runtime running error with quotes in url header
2020-05-20 17:41:15 +08:00
hcyi
316f2f7e96 fix(TUP-26924):tELTXXX: link name won't be updated after updating (#4697)
"default table name" in tELTInput.
2020-05-20 14:32:16 +08:00
Christophe Le Saec
9693179a6e Merge branch 'maintenance/7.3' of https://github.com/Talend/tdi-studio-se into maintenance/7.3 2020-05-19 11:18:41 +02:00
Christophe Le Saec
567abbf3d4 fix(TDI-44191) : change module for tfilecopy 2020-05-19 11:17:05 +02:00
SunChaoqun
9a3617679d TESB-27806:Expose Talend Microservices Metrics in a monitoring system like Prometheus(#4700) 2020-05-19 10:54:42 +08:00
jzhao
215cf5fe8d feat(TDI-44179):support copy command in Azure synapse bulk load (#4681)
* feat(TDI-44179):support copy command in Azure synapse bulk load



* fix(TDI-44179):create table options



* fix(TDI-44179):add column to source field mapping



* fix(TDI-44179):change some parameter to list



* fix(TDI-44179):change default load method and add migrationtask



* fix(TDI-44179):only show "error file location" for csv file format



* fix(TDI-44179):fix some issue



* hide error file location for shared access key

* support context for field index

* correct sas token field
2020-05-18 18:45:06 +08:00
AlixMetivier
21be67d243 fix(TBD-10454): with TMC strip timestamp to get hadoop conf (#4679) (#4689) 2020-05-14 15:36:20 +02:00
Zhiwei Xue
717623b206 fix(TUP-26961):When save/delete a test case, it might break the poms/CI (#4656) 2020-05-14 10:16:24 +08:00
hcyi
ea13d1115d fix(TUP-27000):Talend Salesforce Einstein connector Repository (#4671)
connection issue in Talend 7.3
2020-05-14 10:06:25 +08:00
jzhao
af52c4df65 feat(TDI-43719):Enhance Azure SQL data warehouse (#4492)
* feat(TDI-43719):rename tSQLDWHXXX component to tAzureSynapseXXX

* feat(TDI-43719):rename the reference

* feat(TDI-43719):support adls gen2 in tAzureSynapseBulkExec

* feat(TDI-43719):add migration task

* feat(TDI-43719):change the family name

* change the family name and i18n which include DWH
2020-05-13 18:22:47 +08:00
wang wei
e934d2112c fix(TDI-44159): Data viewer on tSybaseInput get error in context model with sybase 16 anywhere database(#4661) 2020-05-13 14:42:53 +08:00
Richard Lecomte
385843d3be TDI-43935 : MsSQLRow NString type for prepared statement (#4651) 2020-05-12 13:11:01 +02:00
Dmytro Sylaiev
aae6ad44b5 Dsylaiev/tdi 39575 active directory for mssql (#4584)
* feat(TDI-39575): Add AD auth support for AzureSynapse

* feat(TDI-39575): Add AD Auth support for MsSQL components

* feat(TDI-39575): Provide AD feature for tCreateTable
2020-05-12 13:21:50 +03:00
undx
a5e1f73458 fix(TCOMP-1681): fix Windows path case 2020-05-12 10:31:40 +02:00
vyu-talend
47cebcbddf Vyu/tdi 43756 fix bug in sqsclient (#4648)
* feat(TDI-43756):extends STS AssumeRole fields.

* feat(TDI-43756):extends AssumeRole fields(v2).

* feat(TDI-43756):set Session duration not required.

* feat(TDI-43756):

* feat(TDI-43756):extends fields for SQS

* feat(TDI-43756):fix the mistakes.

* feat(TDI-43756):extends fields for tAmazonEMRXXX,tAamzonRedshiftManage.

* feat(TDI-43756):optimize code.

* feat(TDI-43756):retrieve changes on S3connection.xml

* feat(TDI-43756):fix duplicated variables.

* feat(TDI-43756):fix same error

* feat(TDI-43756):optimize codes.

* feat(TDI-43756):use default region(US_WEST_2) for sts.

* feat(TDI-43756):change default to US-EAST-1.

* feat(TDI-43756):fix bug in SQSClient.

* feat(TDI-43756):fix bug in CredentialsProvider.
2020-05-12 16:09:38 +08:00
Jane Ding
0efcfa2983 bugfix(TUP-26958):Test case: possible to remove input / output node (#4633) (#4674)
bugfix(TUP-26958):Test case: possible to remove input / output node

Co-authored-by: hwang-talend <hwang@talend.com>
2020-05-12 09:25:57 +08:00
vyu-talend
76b0a7a979 Fix(TDI-43770):upgrade httpcore,httpclient,commons-logging,codec
Conflicts:
	main/plugins/org.talend.designer.components.localprovider/components/tRedshiftConnection/tRedshiftConnection_java.xml
	main/plugins/org.talend.designer.components.localprovider/components/tRedshiftInput/tRedshiftInput_java.xml
	main/plugins/org.talend.designer.components.localprovider/components/tRedshiftOutput/tRedshiftOutput_java.xml
	main/plugins/org.talend.designer.components.localprovider/components/tRedshiftRow/tRedshiftRow_java.xml
	main/plugins/org.talend.designer.components.localprovider/components/tRedshiftUnload/tRedshiftUnload_java.xml
2020-05-11 17:11:58 +08:00
vyu-talend
045d5df5df feat(TDI-43754): upgrade AWS SDK. (#4520)
Conflicts:
	main/plugins/org.talend.designer.components.localprovider/components/tRedshiftConnection/tRedshiftConnection_java.xml
	main/plugins/org.talend.designer.components.localprovider/components/tRedshiftInput/tRedshiftInput_java.xml
	main/plugins/org.talend.designer.components.localprovider/components/tRedshiftOutput/tRedshiftOutput_java.xml
	main/plugins/org.talend.designer.components.localprovider/components/tRedshiftRow/tRedshiftRow_java.xml
	main/plugins/org.talend.designer.components.localprovider/components/tRedshiftUnload/tRedshiftUnload_java.xml
2020-05-11 17:11:49 +08:00
vyu-talend
453ca6e25a feat(TDI-43756):extends STS AssumeRole fields for S3. (#4547)
* feat(TDI-43756):extends STS AssumeRole fields.

* feat(TDI-43756):extends AssumeRole fields(v2).

* feat(TDI-43756):set Session duration not required.

* feat(TDI-43756):

* feat(TDI-43756):extends fields for SQS

* feat(TDI-43756):fix the mistakes.

* feat(TDI-43756):extends fields for tAmazonEMRXXX,tAamzonRedshiftManage.

* feat(TDI-43756):optimize code.

* feat(TDI-43756):retrieve changes on S3connection.xml

* feat(TDI-43756):fix duplicated variables.

* feat(TDI-43756):fix same error

* feat(TDI-43756):optimize codes.

* feat(TDI-43756):use default region(US_WEST_2) for sts.

* feat(TDI-43756):change default to US-EAST-1.
2020-05-11 17:11:40 +08:00
Zhiwei Xue
844d9e6c29 chore(TUP-26710):update version (#4672)
* chore(TUP-26710):update version

* Set version to 7.3.1 PATCH

* chore(TUP-26710):update version for feature.xml

Co-authored-by: Jenkins Continuous Build server <jenkins@tal-rd02.talend.lan>
2020-05-11 17:03:29 +08:00
hzhao-talendbj
9d218fbecf bugfix(TUP-26186):Use of the operators =, <=, <, >=, >, <> instead of (#4639) (#4664)
* bugfix(TUP-26186):Use of the operators =, <=, <, >=, >, <> instead of
EQ, LE, LT, GE, GT, NE

* bugfix(TUP-26186):Use of the operators =, <=, <, >=, >, <> instead of
EQ, LE, LT, GE, GT, NE

* bugfix(TUP-26186):Use of the operators =, <=, <, >=, >, <> instead of
EQ, LE, LT, GE, GT, NE

Co-authored-by: hwang-talend <hwang@talend.com>
2020-05-09 09:56:00 +08:00
Jane Ding
2e2c5f810d feat(TUP-16546)Prompt users for new password in Studio Connection when (#4508) (#4657)
* feat(TUP-16546)Prompt users for new password in Studio Connection when
AD/LDAP credentials change in TAC
https://jira.talendforge.org/browse/TUP-16546

* feat(TUP-16546)Prompt users for new password in Studio Connection when
AD/LDAP credentials change in TAC
https://jira.talendforge.org/browse/TUP-16546

* feat(TUP-16546)Prompt users for new password in Studio Connection when
AD/LDAP credentials change in TAC
https://jira.talendforge.org/browse/TUP-16546

* feat(TUP-16546)Prompt users for new password in Studio Connection when
AD/LDAP credentials change in TAC
https://jira.talendforge.org/browse/TUP-16546

* feat(TUP-16546)Prompt users for new password in Studio Connection when
AD or LDAP credentials change in TAC
https://jira.talendforge.org/browse/TUP-16546

* feat(TUP-16546)Prompt users for new password in Studio Connection when
AD/LDAP credentials change in TAC
https://jira.talendforge.org/browse/TUP-16546

* feat(TUP-16546)Prompt users for new password in Studio Connection when
AD/LDAP credentials change in TAC
https://jira.talendforge.org/browse/TUP-16546

* feat(TUP-16546):Prompt users for new password in Studio Connection when
AD or LDAP credentials change in TAC
https://jira.talendforge.org/browse/TUP-16546

* feat(TUP-16546):Prompt users for new password in Studio Connection when
AD/LDAP credentials change in TAC
https://jira.talendforge.org/browse/TUP-16546
2020-05-06 00:10:34 +08:00
Jane Ding
9c25ce552b fix(TUP-26639):Talend Cloud studio Issue -Changes to Context Parameter (#4653) (#4658)
Names is not reflected on the Connection for Snowflake
https://jira.talendforge.org/browse/TUP-26639
2020-05-04 19:14:19 +08:00
pyzhou
a42b25c9bb fix(TDI-44130):move log to finally (#4652) 2020-04-30 17:31:26 +08:00
Jane Ding
7d6e7e1c85 fix(TUP-26639):Talend Cloud studio Issues - Group context and (#4634) (#4646)
* fix(TUP-26639):Talend Cloud studio Issues - Group context and
connections
https://jira.talendforge.org/browse/TUP-26639

* fix(TUP-26639):Talend Cloud studio Issues - Group context and
connections
https://jira.talendforge.org/browse/TUP-26639
2020-04-27 23:21:04 +08:00
Zhiwei Xue
cfabaf818a fix(TUP-26809):Job zip should not contain jars from testcase only (#4635) 2020-04-27 18:05:09 +08:00
undx
e2f426e39f feat(TCOMP-1681): Make ESB Studio job export TaCoKit compliant
- OSGi assembly templates
- TaCoKit Studio part
- OSGi resources
2020-04-24 17:26:33 +02:00
pyzhou
ba1bf20653 fix(TDI-44051):add the real value to the db name (#4621)
* fix(TDI-44051):add the real value to the db name

* set dbName as name when db column is null

* workaround

* change back name
2020-04-24 11:24:14 +08:00
sbovsunovskyi
063db841c0 fix(TDI-44070): Unable to execute the job, receiving "Failed to gener… (#4625)
* fix(TDI-44070): Unable to execute the job, receiving "Failed to generate code." when using tAmazonRedshiftManage component.

* fix(TDI-44070): Unable to execute the job, receiving "Failed to generate code." when using tAmazonRedshiftManage component.

(cherry picked from commit 0fecec9635)
2020-04-21 16:36:37 +03:00
OleksiiNimych
a6640f95a9 fix(TDI-43995): Support listing any path and file (#4611)
* fix(TDI-43995): Support listing any path and file

* fix(TDI-43995): Updated Apache Commons Lang library and added diamond operator

* fix(TDI-43995): Remove Apache Commons Lang library
2020-04-16 10:49:20 +03:00
hzhao-talendbj
d01f8a7da9 TUP-26388 fix missing DB context value (#4614) (#4619)
* TUP-26388 fix missing DB context value

* fix missing db value issue

* remove useless isTcompv0
2020-04-15 09:51:20 +08:00
Zhiwei Xue
f8e9e01e31 fix(TUP-26728):Missing spark dependencies when using test cases (#4602) 2020-04-09 16:05:15 +08:00
hzhao-talendbj
94ff584488 TUP-26388 fix SQL script's syntax issue (#4603) (#4604)
* TUP-26388  fix SQL script's syntax issue

* TUP-26388  fix SQL script's syntax issue
2020-04-09 10:09:47 +08:00
OleksiiNimych
1db094edd3 fix(TDI-43795): Hide Single Insert Query action and mark it deprecated (#4588) 2020-04-07 22:48:48 +03:00
hzhao-talendbj
8b9fe33a86 fix(TUP-26388)Amazon Redshift Driver class not working with Implicit (#4585) (#4594)
* fix(TUP-26388)Amazon Redshift Driver class not working with Implicit
Context

* fix(TUP-26388)Amazon Redshift Driver class not working with Implicit
Context
2020-04-07 15:42:30 +08:00
Zhiwei Xue
4782321f64 fix(TUP-26482):[Studio] Studio is very slow to build the job(the (#4546)
performance issue)
2020-04-03 12:49:38 +08:00
Zhiwei Xue
12b61b8d5f fix(TUP-26233):[7.0.1] Sometimes , the ZIP file created by a commandline (#4569)
PublishJob is not correct, missing item files.
2020-03-31 18:27:42 +08:00
wang wei
8b26ef7e15 fix(TDI-43918): fix the risk of drop table if exception appear (#4572) 2020-03-30 17:48:04 +08:00
wang wei
8ac9327375 fix(TDI-43895): Teradata metadata not populating the fields properly in components(#4570) 2020-03-29 20:01:08 +08:00
hcyi
9f4810e59e fix(TUP-26580):DI job with Big Data components fail when using the (#4564)
custom hadoop conf file location feature.
2020-03-27 11:10:53 +08:00
jiezhang-tlnd
0f89caccfb fix(TUP-25963)Spark jobs - LOG4J_RUN_LEVEL not available in item (#4562)
https://jira.talendforge.org/browse/TUP-25963
2020-03-27 11:01:12 +08:00
hzhao-talendbj
c16c8f71f8 fix column names are same (#4551) (#4567) 2020-03-26 19:22:48 +08:00
clesaec
7ab0f2015a fix(TDI-43785) - big query repeated value managed (#4557) 2020-03-25 09:29:57 +01:00
Jane Ding
af43cd8973 fix(TUP-26576):Warning pops up cannot connect to the user libraries (#4553) (#4554)
artifact repository set in administrator
https://jira.talendforge.org/browse/TUP-26576
2020-03-25 09:21:16 +08:00
Dmytro Sylaiev
4169210118 Dsylaiev/tdi 43810 add ignore service attr checkbox for xml (#4539)
* fix(TDI-43810): Fix for xml component

* fix(TDI-43810): Do not ignore service attr when checkbox is hidden

* fix(TDI-43810): Use hashset instead of arraylist

* fix(TDI-43810): Minor refactoring
2020-03-24 12:32:47 +02:00
Jane Ding
3d185eeb95 fix(TUP-26231)Relative path not working in Talend v721 (#4530) (#4550)
* fix(TUP-26231)Relative path not working in Talend v721
https://jira.talendforge.org/browse/TUP-26231

* fix(TUP-26231)Relative path not working in Talend v721
https://jira.talendforge.org/browse/TUP-26231

* fix(TUP-26231)Relative path not working in Talend v721
https://jira.talendforge.org/browse/TUP-26231

* fix(TUP-26231):Relative path not working in Talend v721
https://jira.talendforge.org/browse/TUP-26231
2020-03-24 17:44:49 +08:00
Richard Lecomte
85a8f83baa TDI-43764 : MsSQL NVARCHAR (#4518)
* TDI-43764 : MsSQL NVARCHAR

Use setNString method for NVARCHAR and NCHAR columns only for MS driver

* TDI-43764 : MsSQL NVARCHAR

Use setNString method for NTEXT columns only for MS driver
2020-03-23 09:32:41 +01:00
Richard Lecomte
d3faad612e TDI-43764 : MsSQL NVARCHAR (#4491)
* TDI-43764 : MsSQL NVARCHAR

Use setNString method for NVARCHAR and NCHAR columns

* TDI-43764 : MsSQL NVARCHAR

Use setNString method for NVARCHAR and NCHAR columns
2020-03-23 09:32:32 +01:00
SunChaoqun
059c211971 TESB-28130:Duplicate dependencies in POM.xml for routes lead to compile issues(#4534) 2020-03-18 11:29:44 +08:00
Dmytro Sylaiev
ce028761e5 Dsylaiev/tdi 43605 fix using existing connection with rest tcompv0 (#4463)
* fix(TDi-43605): Fix adding tcompv0 components into tRest globalMap copy (#4367)

* fix(TDi-43605): Fix adding tcompv0 components into tRest globalMap copy

* fix(TDI-43605): Add referenced connection into globalMap copy for marketo

* fix(TDI-43605): Fix getting snowflake connection for plenty javajet components
2020-03-10 16:22:12 +02:00
wang wei
8c2a503063 fix(TDI-43619): Null Value Treated as <TALEND_NULL> in Subjob (#4488)
* fix(TDI-43619): Null Value Treated as <TALEND_NULL> in Subjob

* fix(TDI-43619): fix for all types to avoid the parse warn log or message
when null

* fix the compiler issue for password field
2020-03-10 16:19:18 +08:00
kjwang
ca7263b7a1 fix(TUP-26189): [7.2.1] snowflake metadata connection with proxy failure (#4498) (#4503)
https://jira.talendforge.org/browse/TUP-26189
2020-03-05 14:49:20 +08:00
Zhiwei Xue
04d41a8421 fix(TUP-26132):Cannot build a job by CI (maven) after updating multiple (#4442)
job versions
2020-03-05 14:37:40 +08:00
Zhiwei Xue
d35506dce1 fix(TUP-26213):Compilation issue after migration to v7.2 (#4478) 2020-03-05 09:54:09 +08:00
kjwang
5e05ca8947 Kjwang/fix tup 26264 t elt map generated query has extra symbols (#4489) (#4500)
* Fix TUP-26264 tELTMap generated query has extra symbols generated when
more input mapping in component
https://jira.talendforge.org/browse/TUP-26264

* Fix TUP-26264 tELTMap generated query has extra symbols generated when
more input mapping in component
https://jira.talendforge.org/browse/TUP-26264
2020-03-04 11:58:55 +08:00
vyu-talend
51f8af8aed Fix(TDI-43704):update mail jar. 2020-03-03 14:28:27 +08:00
Jenkins Continuous Build server
360f1a2612 Set version to 7.3.2 SNAPSHOT 2020-02-28 13:00:24 +01:00
Irene Wang
4f668f6a46 Update NOTICE.txt to 2020 2020-02-19 12:45:17 +01:00
jiezhang-tlnd
f75fed8fd8 Jzhang/bugfix/tup 26192 patch731 (#4462)
* fix(TUP-26192)supply choice of log4j1 / 2

* fix(TUP-26192)

* fix tos

* fix tos
2020-02-18 22:06:42 +08:00
hcyi
812ac5399d fix(TUP-25229):revert the fix of "Use this Component" (#4460) 2020-02-18 17:53:55 +08:00
AlixMetivier
d917b791d0 remove useless migration task (#4452) (#4453) 2020-02-18 10:28:58 +01:00
Mike Yan
9bc4abb02d fix(TESB-28247): consumer job is missing feature.xml by CI (#4451)
* fix(TESB-28247): consumer job is missing feature.xml by CI

* fix(TESB-28247): consumer job is missing feature.xml by CI
2020-02-18 14:28:12 +08:00
Mike Yan
3daedf72de fix(TESB-28240): Use final name for osgi bundle build pom (#4449) 2020-02-18 09:34:41 +08:00
Jenkins Continuous Build server
854ac0d1b1 Set version to 7.3.1 2020-02-14 13:38:41 +01:00
1079 changed files with 29157 additions and 14269 deletions

1
.gitignore vendored
View File

@@ -11,3 +11,4 @@ main/plugins/org.talend.designer.codegen/resources/sparkstreaming_header.javajet
main/plugins/org.talend.designer.codegen/resources/sparkstreaming_subprocess_footer.javajet
main/plugins/org.talend.designer.codegen/resources/sparkstreaming_subprocess_header.javajet
main/plugins/org.talend.designer.codegen/resources/routelet.skeleton
.DS_Store

View File

@@ -4,5 +4,6 @@ Huge thanks to these people who contributed in making Talend product better:
- [jlolling](https://github.com/jlolling) (Jan -and Miss- Lolling)
- [kirkalicious](https://github.com/kirkalicious) (Kirk Tarou)
- [mrizzato](https://github.com/mrizzato) (Massimiliano Rizzato)
- [overpackaging](https://github.com/overpackaging) (Steeve Dreux)
- [brazabr](https://github.com/brazabr) (Thiago Benvenuto)
- [phoflack](https://jira.talendforge.org/secure/ViewProfile.jspa?name=phoflack) (Philip Hoflack)

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.abstractmap.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.alfrescooutput.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.business.diagram.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.codegen.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.components.exchange.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.core.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.dbmap.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.documentation.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.fileoutputxml.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.gefabstractmap.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.mapper.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.maven.job.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.rowgenerator.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.runprocess.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.scd.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.webservice.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.xmlmap.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.expressionbuilder.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.presentation.onboarding.resource.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.presentation.onboarding.resource.tos.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.repository.ftp.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.repository.json.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.repository.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.repository.view.di.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.sbi.engines.client.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.spagic.engines.client.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.sqlbuilder.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.business.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.fragment.jars.di.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.help.tos.components.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.rcp.branding.tos.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.rcp.branding.tos.test.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.repository.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.sbi.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.spagic.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.tos.components.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.tos.core.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.tos.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.tos.libraries.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.abstractmap</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.alfrescooutput</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.business.diagram</artifactId>

View File

@@ -50,8 +50,11 @@ List<IConnection> allSubProcessConnection = codeGenArgument.getAllMainSubTreeCon
String cid = node.getUniqueName();
List<? extends INode> jobCatcherNodes = process.getNodesOfType("tJobStructureCatcher");
boolean enableLogStash = jobCatcherNodes != null && !jobCatcherNodes.isEmpty();
boolean logstashCurrent = !cid.startsWith("tJobStructureCatcher") && !cid.startsWith("talend") && enableLogStash;
boolean jobCatcherExists = jobCatcherNodes != null && !jobCatcherNodes.isEmpty();
INode jobCatcherNode = jobCatcherExists ? jobCatcherNodes.get(0) : null;
boolean enableLogStash = !Boolean.getBoolean("deactivate_extended_component_log") && jobCatcherExists;
boolean logstashCurrent = enableLogStash && !cid.startsWith("tJobStructureCatcher") && !cid.startsWith("talend");
if((codePart.equals(ECodePart.END))&&(stat || logstashCurrent)){
boolean iterateInVFComp = (node.getVirtualLinkTo() != null && node.getVirtualLinkTo() == EConnectionType.ITERATE);
@@ -86,11 +89,18 @@ if((codePart.equals(ECodePart.END))&&(stat || logstashCurrent)){
for(IConnection con:connSet){
INode source = con.getSource();
String sourceNodeId = source.getUniqueName();
String sourceLabel = ElementParameterParser.getValue(source, "__LABEL__");
String sourceNodeLabel = ((sourceLabel==null || "__UNIQUE_NAME__".equals(sourceLabel) || sourceLabel.contains("\"")) ? sourceNodeId : sourceLabel);
String targetLabel = ElementParameterParser.getValue(node, "__LABEL__");
String targetNodeLabel = ((targetLabel==null || "__UNIQUE_NAME__".equals(targetLabel) || targetLabel.contains("\"")) ? node.getUniqueName() : targetLabel);
String sourceNodeComponent = source.getComponent().getName();
for (INode jobStructureCatcher : jobCatcherNodes) {
%>
if(runStat.updateStatAndLog(execStat,enableLogStash,resourceMap,iterateId,"<%=con.getUniqueName()%>",2,0,
<%=jobStructureCatcher.getUniqueName()%>,"<%=sourceNodeId%>","<%=sourceNodeComponent%>","<%=node.getUniqueName()%>","<%=node.getComponent().getName()%>","<%="REJECT".equals(con.getConnectorName()) ? "reject" : "output"%>")) {
"<%=sourceNodeId%>","<%=sourceNodeLabel%>","<%=sourceNodeComponent%>","<%=node.getUniqueName()%>","<%=targetNodeLabel%>","<%=node.getComponent().getName()%>","<%="REJECT".equals(con.getConnectorName()) ? "reject" : "output"%>")) {
<%=jobStructureCatcher.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
}
<%
@@ -113,11 +123,18 @@ if((codePart.equals(ECodePart.END))&&(stat || logstashCurrent)){
for(IConnection con:connSet){
INode source = con.getSource();
String sourceNodeId = source.getUniqueName();
String sourceLabel = ElementParameterParser.getValue(source, "__LABEL__");
String sourceNodeLabel = ((sourceLabel==null || "__UNIQUE_NAME__".equals(sourceLabel) || sourceLabel.contains("\"")) ? sourceNodeId : sourceLabel);
String targetLabel = ElementParameterParser.getValue(node, "__LABEL__");
String targetNodeLabel = ((targetLabel==null || "__UNIQUE_NAME__".equals(targetLabel) || targetLabel.contains("\"")) ? node.getUniqueName() : targetLabel);
String sourceNodeComponent = source.getComponent().getName();
for (INode jobStructureCatcher : jobCatcherNodes) {
%>
if(runStat.log(resourceMap,iterateId,"<%=con.getUniqueName()%>",2,0,
<%=jobStructureCatcher.getUniqueName()%>,"<%=sourceNodeId%>","<%=sourceNodeComponent%>","<%=node.getUniqueName()%>","<%=node.getComponent().getName()%>","<%="REJECT".equals(con.getConnectorName()) ? "reject" : "output"%>")) {
"<%=sourceNodeId%>","<%=sourceNodeLabel%>","<%=sourceNodeComponent%>","<%=node.getUniqueName()%>","<%=targetNodeLabel%>","<%=node.getComponent().getName()%>","<%="REJECT".equals(con.getConnectorName()) ? "reject" : "output"%>")) {
<%=jobStructureCatcher.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
}
<%
@@ -150,6 +167,7 @@ if((codePart.equals(ECodePart.END))&&(stat || logstashCurrent)){
}
}
}
List<IMetadataTable> metadatas = node.getMetadataList();
if ((!node.isSubProcessStart())&&(NodeUtil.isDataAutoPropagated(node))) {
if (inputColName!=null) {
@@ -175,6 +193,117 @@ if((codePart.equals(ECodePart.END))&&(stat || logstashCurrent)){
}
}
}
//log runtime lineage
boolean enable_runtime_lineage_log = NodeUtil.isJobUsingRuntimeLineage(process) && jobCatcherExists && !cid.startsWith("tJobStructureCatcher") && !cid.startsWith("talend");
if(enable_runtime_lineage_log) {//}
List<? extends IConnection> outConns = node.getOutgoingConnections();
if(!outConns.isEmpty()) {
%>
if(tos_count_<%=node.getUniqueName() %> == 0) {
<%
//}
}
for (IConnection conn : outConns) {
if(!conn.getLineStyle().equals(EConnectionType.FLOW_MAIN) && !conn.getLineStyle().equals(EConnectionType.FLOW_MERGE) && !conn.getLineStyle().equals(EConnectionType.FLOW_REF)) {
continue;
}
IMetadataTable metadata = conn.getMetadataTable();
if (metadata==null) {
continue;
}
List<IMetadataColumn> columns = metadata.getListColumns();
if(columns == null || columns.isEmpty()) {
continue;
}
%>
class SchemaUtil_<%=conn.getUniqueName()%>_<%=conn.getMetadataTable().getTableName()%> {
public java.util.List<java.util.Map<String, String>> getSchema(final <%=NodeUtil.getPrivateConnClassName(conn) %>Struct <%=conn.getName()%>) {
java.util.List<java.util.Map<String, String>> schema = new java.util.ArrayList<>();
if(<%=conn.getName()%> == null) {
return schema;
}
java.util.Map<String, String> field = null;
<%
for(IMetadataColumn column : columns){
if("id_Dynamic".equals(column.getTalendType())) {
%>
routines.system.Dynamic dynamic = <%=conn.getName()%>.<%=column.getLabel()%>;
if(dynamic != null) {
for(routines.system.DynamicMetadata metadata : dynamic.metadatas) {
field = new java.util.HashMap<>();
field.put("name", metadata.getName());
field.put("origin_name", metadata.getDbName());
field.put("iskey", "" + metadata.isKey());
field.put("talend_type", metadata.getType());
field.put("type", metadata.getDbType());
field.put("nullable", "" + metadata.isNullable());
field.put("pattern", metadata.getFormat());
field.put("length", "" + metadata.getLength());
field.put("precision", "" + metadata.getPrecision());
schema.add(field);
}
}
<%
continue;
}
String pattern = column.getPattern();
if(pattern == null || pattern.isEmpty() || pattern.equals("\"\"")) {
pattern = "\"\"";
}
%>
field = new java.util.HashMap<>();
field.put("name", "<%=column.getLabel()%>");
field.put("origin_name", "<%=column.getOriginalDbColumnName()%>");
field.put("iskey", "<%=column.isKey()%>");
field.put("talend_type", "<%=column.getTalendType()%>");
field.put("type", "<%=column.getType()%>");
field.put("nullable", "<%=column.isNullable()%>");
field.put("pattern", <%=pattern%>);
field.put("length", "<%=column.getLength()%>");
field.put("precision", "<%=column.getPrecision()%>");
schema.add(field);
<%
}
%>
return schema;
}
}
java.util.List<java.util.Map<String, String>> schema_<%=conn.getUniqueName()%>_<%=conn.getMetadataTable().getTableName()%> = new SchemaUtil_<%=conn.getUniqueName()%>_<%=conn.getMetadataTable().getTableName()%>().getSchema(<%=conn.getName()%>);
<%
INode target = conn.getTarget();
String targetNodeId = target.getUniqueName();
String targetNodeComponent = target.getComponent().getName();
%>
<%=jobCatcherNode.getUniqueName()%>.addConnectionSchemaMessage("<%=node.getUniqueName()%>","<%=node.getComponent().getName()%>",
"<%=targetNodeId%>","<%=targetNodeComponent%>", "<%=conn.getUniqueName()%>" + iterateId, schema_<%=conn.getUniqueName()%>_<%=conn.getMetadataTable().getTableName()%>);
<%=jobCatcherNode.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
<%
}
if(!outConns.isEmpty()) {
//{
%>
}
<%
}
//{
}
//======================================TDI-17183 end=====================================
boolean traceCodeGenerated = false;
for (IConnection conn : node.getOutgoingConnections()) {

View File

@@ -8,6 +8,9 @@
org.talend.core.model.metadata.IMetadataColumn
org.talend.core.model.process.EConnectionType
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.process.EParameterFieldType
org.talend.designer.core.model.components.EParameterName
org.talend.designer.core.model.components.ElementParameter
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.utils.NodeUtil
org.talend.core.model.process.IConnectionCategory
@@ -140,10 +143,17 @@
connSet.addAll(node.getIncomingConnections(EConnectionType.FLOW_MAIN));
connSet.addAll(node.getIncomingConnections(EConnectionType.FLOW_MERGE));
List<? extends INode> jobCatcherNodes = node.getProcess().getNodesOfType("tJobStructureCatcher");
boolean enableLogStash = jobCatcherNodes != null && !jobCatcherNodes.isEmpty();
String cid = node.getUniqueName();
boolean logstashCurrent = !cid.startsWith("tJobStructureCatcher") && !cid.startsWith("talend") && enableLogStash;
List<? extends INode> jobCatcherNodes = node.getProcess().getNodesOfType("tJobStructureCatcher");
boolean jobCatcherExists = jobCatcherNodes != null && !jobCatcherNodes.isEmpty();
INode jobCatcherNode = jobCatcherExists ? jobCatcherNodes.get(0) : null;
boolean enableLogStash = !Boolean.getBoolean("deactivate_extended_component_log") && jobCatcherExists;
boolean logstashCurrent = enableLogStash && !cid.startsWith("tJobStructureCatcher") && !cid.startsWith("talend");
//about performance monitor, no way to support more than one job catcher component, also that is not necessary
final String subprocessName4Catcher = logstashCurrent ? jobCatcherNodes.get(0).getDesignSubjobStartNode().getUniqueName() : null;
if ((codePart.equals(ECodePart.BEGIN))&&(stat || logstashCurrent)&&connSet.size()>0) {
if(containsTPartitioner) {
@@ -181,13 +191,35 @@
if(!node.getComponent().useMerge()) {
if(stat && logstashCurrent) {
%>
runStat.updateStatAndLog(execStat,enableLogStash,iterateId,1,1<%for(IConnection con : connSet){%>,"<%=con.getUniqueName()%>"<%}%>);
if(runStat.update(execStat,enableLogStash,iterateId,1,1
<%for(IConnection con : connSet){
INode source = con.getSource();
String sourceNodeId = source.getUniqueName();
String sourceLabel = ElementParameterParser.getValue(source, "__LABEL__");
String sourceNodeLabel = ((sourceLabel==null || "__UNIQUE_NAME__".equals(sourceLabel) || sourceLabel.contains("\"")) ? sourceNodeId : sourceLabel);
String targetLabel = ElementParameterParser.getValue(node, "__LABEL__");
String targetNodeLabel = ((targetLabel==null || "__UNIQUE_NAME__".equals(targetLabel) || targetLabel.contains("\"")) ? node.getUniqueName() : targetLabel);
String sourceNodeComponent = source.getComponent().getName();
%>
,"<%=con.getUniqueName()%>","<%=sourceNodeId%>","<%=sourceNodeLabel%>","<%=sourceNodeComponent%>","<%=node.getUniqueName()%>","<%=targetNodeLabel%>","<%=node.getComponent().getName()%>"
<%}%>
)) {
<%=subprocessName4Catcher %>Process(globalMap);
}
<%
} else {
if(stat) {
%>
if(execStat){
runStat.updateStatOnConnection(iterateId,1,1<%for(IConnection con : connSet){%>,"<%=con.getUniqueName()%>"<%}%>);
runStat.updateStatOnConnection(iterateId,1,1
<%for(IConnection con : connSet){
%>
,"<%=con.getUniqueName()%>"
<%}%>
);
}
<%
}
@@ -195,7 +227,24 @@
if(logstashCurrent) {
%>
if(enableLogStash) {
runStat.log(iterateId,1,1<%for(IConnection con : connSet){%>,"<%=con.getUniqueName()%>"<%}%>);
if(runStat.updateLog(iterateId,1,1
<%for(IConnection con : connSet){
INode source = con.getSource();
String sourceNodeId = source.getUniqueName();
String sourceLabel = ElementParameterParser.getValue(source, "__LABEL__");
String sourceNodeLabel = ((sourceLabel==null || "__UNIQUE_NAME__".equals(sourceLabel) || sourceLabel.contains("\"")) ? sourceNodeId : sourceLabel);
String targetLabel = ElementParameterParser.getValue(node, "__LABEL__");
String targetNodeLabel = ((targetLabel==null || "__UNIQUE_NAME__".equals(targetLabel) || targetLabel.contains("\"")) ? node.getUniqueName() : targetLabel);
String sourceNodeComponent = source.getComponent().getName();
%>
,"<%=con.getUniqueName()%>","<%=sourceNodeId%>","<%=sourceNodeLabel%>","<%=sourceNodeComponent%>","<%=node.getUniqueName()%>","<%=targetNodeLabel%>","<%=node.getComponent().getName()%>"
<%}%>
)) {
<%=subprocessName4Catcher %>Process(globalMap);
}
}
<%
}
@@ -205,18 +254,62 @@
if(connection.getUniqueName().equals((String)codeGenArgument.getIncomingName())){
if(stat && logstashCurrent) {
%>
runStat.updateStatAndLog(execStat,enableLogStash,iterateId,1,1<%for(IConnection con : connSet){if(con.getUniqueName().equals((String)codeGenArgument.getIncomingName())){%>,"<%=con.getUniqueName()%>"<%}}%>);
if(runStat.update(execStat,enableLogStash,iterateId,1,1
<%for(IConnection con : connSet){
INode source = con.getSource();
String sourceNodeId = source.getUniqueName();
String sourceLabel = ElementParameterParser.getValue(source, "__LABEL__");
String sourceNodeLabel = ((sourceLabel==null || "__UNIQUE_NAME__".equals(sourceLabel) || sourceLabel.contains("\"")) ? sourceNodeId : sourceLabel);
String targetLabel = ElementParameterParser.getValue(node, "__LABEL__");
String targetNodeLabel = ((targetLabel==null || "__UNIQUE_NAME__".equals(targetLabel) || targetLabel.contains("\"")) ? node.getUniqueName() : targetLabel);
String sourceNodeComponent = source.getComponent().getName();
if(con.getUniqueName().equals((String)codeGenArgument.getIncomingName())){%>
,"<%=con.getUniqueName()%>","<%=sourceNodeId%>","<%=sourceNodeLabel%>","<%=sourceNodeComponent%>","<%=node.getUniqueName()%>","<%=targetNodeLabel%>","<%=node.getComponent().getName()%>"
<%}
}%>
)) {
<%=subprocessName4Catcher %>Process(globalMap);
}
<%
} else {
if(stat) {%>
if(execStat){
runStat.updateStatOnConnection(iterateId,1,1<%for(IConnection con : connSet){if(con.getUniqueName().equals((String)codeGenArgument.getIncomingName())){%>,"<%=con.getUniqueName()%>"<%}}%>);
runStat.updateStatOnConnection(iterateId,1,1
<%for(IConnection con : connSet){
if(con.getUniqueName().equals((String)codeGenArgument.getIncomingName())){%>
,"<%=con.getUniqueName()%>"
<%}
}%>
);
}
<%}
if(logstashCurrent) {%>
if(enableLogStash) {
runStat.log(iterateId,1,1<%for(IConnection con : connSet){if(con.getUniqueName().equals((String)codeGenArgument.getIncomingName())){%>,"<%=con.getUniqueName()%>"<%}}%>);
if(runStat.updateLog(iterateId,1,1
<%for(IConnection con : connSet){
INode source = con.getSource();
String sourceNodeId = source.getUniqueName();
String sourceLabel = ElementParameterParser.getValue(source, "__LABEL__");
String sourceNodeLabel = ((sourceLabel==null || "__UNIQUE_NAME__".equals(sourceLabel) || sourceLabel.contains("\"")) ? sourceNodeId : sourceLabel);
String targetLabel = ElementParameterParser.getValue(node, "__LABEL__");
String targetNodeLabel = ((targetLabel==null || "__UNIQUE_NAME__".equals(targetLabel) || targetLabel.contains("\"")) ? node.getUniqueName() : targetLabel);
String sourceNodeComponent = source.getComponent().getName();
if(con.getUniqueName().equals((String)codeGenArgument.getIncomingName())){%>
,"<%=con.getUniqueName()%>","<%=sourceNodeId%>","<%=sourceNodeLabel%>","<%=sourceNodeComponent%>","<%=node.getUniqueName()%>","<%=targetNodeLabel%>","<%=node.getComponent().getName()%>"
<%}
}%>
)) {
<%=subprocessName4Catcher %>Process(globalMap);
}
}
<%}
}
@@ -245,12 +338,107 @@
<%
log.startWork();
log.logCompSetting();
boolean enable_runtime_lineage_log = NodeUtil.isJobUsingRuntimeLineage(node.getProcess()) && jobCatcherExists && !cid.startsWith("tJobStructureCatcher") && !cid.startsWith("talend");
if(enable_runtime_lineage_log) {
%>
class ParameterUtil_<%=cid%>{
public java.util.Map<String, String> getParameter() throws Exception{
java.util.Map<String, String> component_parameters = new java.util.HashMap<>();
<%
java.util.Set<org.talend.core.model.process.EParameterFieldType> ignoredParamsTypes = new java.util.HashSet<org.talend.core.model.process.EParameterFieldType>();
ignoredParamsTypes.addAll(
java.util.Arrays.asList(
org.talend.core.model.process.EParameterFieldType.SCHEMA_TYPE,
org.talend.core.model.process.EParameterFieldType.SCHEMA_REFERENCE,
org.talend.core.model.process.EParameterFieldType.LABEL,
org.talend.core.model.process.EParameterFieldType.EXTERNAL,
org.talend.core.model.process.EParameterFieldType.MAPPING_TYPE,
org.talend.core.model.process.EParameterFieldType.IMAGE,
org.talend.core.model.process.EParameterFieldType.TNS_EDITOR,
org.talend.core.model.process.EParameterFieldType.WSDL2JAVA,
org.talend.core.model.process.EParameterFieldType.GENERATEGRAMMARCONTROLLER,
org.talend.core.model.process.EParameterFieldType.GENERATE_SURVIVORSHIP_RULES_CONTROLLER,
org.talend.core.model.process.EParameterFieldType.REFRESH_REPORTS,
org.talend.core.model.process.EParameterFieldType.BROWSE_REPORTS,
org.talend.core.model.process.EParameterFieldType.PALO_DIM_SELECTION,
org.talend.core.model.process.EParameterFieldType.GUESS_SCHEMA,
org.talend.core.model.process.EParameterFieldType.MATCH_RULE_IMEX_CONTROLLER,
org.talend.core.model.process.EParameterFieldType.MEMO_PERL,
org.talend.core.model.process.EParameterFieldType.DBTYPE_LIST,
org.talend.core.model.process.EParameterFieldType.VERSION,
org.talend.core.model.process.EParameterFieldType.TECHNICAL,
org.talend.core.model.process.EParameterFieldType.ICON_SELECTION,
org.talend.core.model.process.EParameterFieldType.JAVA_COMMAND,
org.talend.core.model.process.EParameterFieldType.TREE_TABLE,
org.talend.core.model.process.EParameterFieldType.VALIDATION_RULE_TYPE,
org.talend.core.model.process.EParameterFieldType.DCSCHEMA,
org.talend.core.model.process.EParameterFieldType.SURVIVOR_RELATION,
org.talend.core.model.process.EParameterFieldType.REST_RESPONSE_SCHEMA_TYPE,
org.talend.core.model.process.EParameterFieldType.BUTTON
)
);
for(org.talend.core.model.process.IElementParameter ep : org.talend.core.model.utils.NodeUtil.getDisplayedParameters(node)){
if(!ep.isLog4JEnabled() || ignoredParamsTypes.contains(ep.getFieldType())){
continue;
}
ElementParameter p = (ElementParameter)ep;
Object pluginValue = p.getTaggedValue("org.talend.sdk.component.source");
if(pluginValue != null && String.class.cast(pluginValue).equalsIgnoreCase("tacokit")) {
try {
if (!(Boolean) org.talend.core.runtime.IAdditionalInfo.class.cast(p).func("isPersisted")) {
continue;
}
} catch (Exception ex) {
//do nothing
}
%>
<%@ include file="./tacokit_runtime_log.javajet"%>
<%
continue;
}
String name = ep.getName();
java.util.Set<String> ignoredParamsNames = new java.util.HashSet<String>();
ignoredParamsNames.add("SQLPATTERN_VALUE");
ignoredParamsNames.add("ADDITIONAL_INSERT_COLUMNS");
ignoredParamsNames.add("ADDITIONAL_UPDATE_COLUMNS");
ignoredParamsNames.add("SELECTION_TABLE");
ignoredParamsNames.add("DIFFER_MESSAGE");
ignoredParamsNames.add("NO_DIFFER_MESSAGE");
if(ignoredParamsNames.contains(name)) {
//do nothing
} else if(org.talend.core.model.process.EParameterFieldType.PASSWORD.equals(ep.getFieldType())){
//not log password
}else{
String value = org.talend.core.model.utils.NodeUtil.getRuntimeParameterValue(node, ep);
%>
component_parameters.put("<%=name%>", String.valueOf(<%=value%>));
<%
}
}
%>
return component_parameters;
}
}
<%=jobCatcherNode.getUniqueName()%>.addComponentParameterMessage("<%=node.getUniqueName()%>", "<%=node.getComponent().getName()%>",
new ParameterUtil_<%=cid%>().getParameter());
<%=jobCatcherNode.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
<%
}
if(logstashCurrent) {
for (INode jobStructureCatcher : jobCatcherNodes) {
String label = ElementParameterParser.getValue(node, "__LABEL__");
String nodeLabel = ((label==null || "__UNIQUE_NAME__".equals(label) || label.contains("\"")) ? node.getUniqueName() : label);
%>
if(enableLogStash) {
<%=jobStructureCatcher.getUniqueName() %>.addCM("<%=node.getUniqueName()%>", "<%=node.getComponent().getName()%>");
<%=jobStructureCatcher.getUniqueName() %>.addCM("<%=node.getUniqueName()%>", "<%=nodeLabel%>", "<%=node.getComponent().getName()%>");
<%=jobStructureCatcher.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
}
<%

View File

@@ -24,6 +24,7 @@
org.talend.core.model.process.ProcessUtils
org.talend.core.model.components.IComponent
org.talend.core.model.components.EComponentType
org.talend.core.model.utils.NodeUtil
"
class="Footer"
skeleton="footer_java.skeleton"
@@ -108,6 +109,21 @@
exist_tSQLDB = true;
}
String[] tcompV0Components = new String[] {
"tAzureStorageConnection",
"tGoogleDriveConnection",
"tMarketoConnection",
"tSnowflakeConnection",
"tSalesforceConnection",
"tNetsuiteConnection",
"tMarkLogicConnection"
};
List<INode> tcompV0ComponentsList = new ArrayList<INode>();
for (String tcompV0Component : tcompV0Components) {
tcompV0ComponentsList.addAll((List<INode>)process.getNodesOfType(tcompV0Component));
}
boolean exist_tSCP = false;
List<INode> scpComponentsList = (List<INode>)process.getNodesOfType("tSCPConnection");
if (scpComponentsList.size() > 0) {
@@ -167,6 +183,8 @@
exist_tSalesforce = true;
}
List<INode> snowflakeComponentsList = (List<INode>)process.getNodesOfType("tSnowflakeConnection");
boolean exist_tSAP= false;
List<INode> sapComponentsList = (List<INode>)process.getNodesOfType("tSAPConnection");
if (sapComponentsList.size() > 0) {
@@ -258,7 +276,7 @@
}
%>
private PropertiesWithType context_param = new PropertiesWithType();
protected PropertiesWithType context_param = new PropertiesWithType();
public java.util.Map<String, Object> parentContextMap = new java.util.HashMap<String, Object>();
public String status= "";
@@ -447,7 +465,7 @@
lastStr = "";
}
}
enableLogStash = "true".equalsIgnoreCase(System.getProperty("monitoring"));
enableLogStash = "true".equalsIgnoreCase(System.getProperty("audit.enabled"));
<%if(isLog4jEnabled){%>
if(!"".equals(log4jLevel)){
@@ -501,8 +519,63 @@
break;
}
}
if(jobCatcherNode!=null) {
String location = ElementParameterParser.getValue(jobCatcherNode, "__LOCATION__");
boolean enableLogStash = !Boolean.getBoolean("deactivate_extended_component_log") && (jobCatcherNode!=null);
boolean enable_runtime_lineage_log = NodeUtil.isJobUsingRuntimeLineage(process) && (jobCatcherNode!=null);
if(enable_runtime_lineage_log) {
%>
java.util.Properties p_<%=jobCatcherNode.getUniqueName()%> = new java.util.Properties();
p_<%=jobCatcherNode.getUniqueName()%>.setProperty("root.logger", "runtime");
p_<%=jobCatcherNode.getUniqueName()%>.setProperty("encoding", "UTF-8");
p_<%=jobCatcherNode.getUniqueName()%>.setProperty("application.name", "Talend Studio");
p_<%=jobCatcherNode.getUniqueName()%>.setProperty("service.name", "Talend Studio Job");
p_<%=jobCatcherNode.getUniqueName()%>.setProperty("instance.name", "Talend Studio Job Instance");
p_<%=jobCatcherNode.getUniqueName()%>.setProperty("propagate.appender.exceptions", "none");
p_<%=jobCatcherNode.getUniqueName()%>.setProperty("log.appender", "file");
p_<%=jobCatcherNode.getUniqueName()%>.setProperty("appender.file.path", "runtime.json");
p_<%=jobCatcherNode.getUniqueName()%>.setProperty("appender.file.maxsize", "52428800");
p_<%=jobCatcherNode.getUniqueName()%>.setProperty("appender.file.maxbackup", "20");
p_<%=jobCatcherNode.getUniqueName()%>.setProperty("host", "false");
final String runtime_dir_<%=jobCatcherNode.getUniqueName()%> = System.getProperty("runtime.lineage.outputpath");
final String runtime_path_<%=jobCatcherNode.getUniqueName()%> = System.getProperty("runtime.lineage.appender.file.path");
if(runtime_path_<%=jobCatcherNode.getUniqueName()%>==null || runtime_path_<%=jobCatcherNode.getUniqueName()%>.isEmpty()) {
if(runtime_dir_<%=jobCatcherNode.getUniqueName()%>!=null && !runtime_dir_<%=jobCatcherNode.getUniqueName()%>.isEmpty()) {
System.setProperty("runtime.lineage.appender.file.path",
new StringBuilder().append(runtime_dir_<%=jobCatcherNode.getUniqueName()%>)
.append((runtime_dir_<%=jobCatcherNode.getUniqueName()%>.endsWith("/") || runtime_dir_<%=jobCatcherNode.getUniqueName()%>.endsWith("\\")) ? "" : java.io.File.separator)
.append(projectName)
.append(java.io.File.separatorChar)
.append(jobName)
.append(java.io.File.separatorChar)
.append(jobVersion)
.append(java.io.File.separatorChar)
.append("runtime_log_")
.append(new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(new java.util.Date()))
.append(".json")
.toString()
);
}
}
System.getProperties().stringPropertyNames().stream()
.filter(it -> it.startsWith("runtime.lineage.") && !"runtime.lineage.outputpath".equals(it))
.forEach(key -> p_<%=jobCatcherNode.getUniqueName()%>.setProperty(key.substring("runtime.lineage.".length()), System.getProperty(key)));
<%if(isLog4j1Enabled) {%>
org.apache.log4j.Logger.getLogger(p_<%=jobCatcherNode.getUniqueName()%>.getProperty("root.logger")).setLevel(org.apache.log4j.Level.DEBUG);
<%}%>
<%if(isLog4j2Enabled) {%>
org.apache.logging.log4j.core.config.Configurator.setLevel(p_<%=jobCatcherNode.getUniqueName()%>.getProperty("root.logger"), org.apache.logging.log4j.Level.DEBUG);
<%}%>
runtime_lineage_logger_<%=jobCatcherNode.getUniqueName()%> = org.talend.job.audit.JobEventAuditLoggerFactory.createJobAuditLogger(p_<%=jobCatcherNode.getUniqueName()%>);
<%
}
if(enableLogStash) {
String location = ElementParameterParser.getValue(jobCatcherNode, "__LOCATION__");
%>
if(enableLogStash) {
java.util.Properties properties_<%=jobCatcherNode.getUniqueName()%> = new java.util.Properties();
@@ -519,21 +592,21 @@
properties_<%=jobCatcherNode.getUniqueName()%>.setProperty("host", "false");
System.getProperties().stringPropertyNames().stream()
.filter(it -> it.startsWith("monitoring.audit.logger.properties."))
.forEach(key -> properties_<%=jobCatcherNode.getUniqueName()%>.setProperty(key.substring("monitoring.audit.logger.properties.".length()), System.getProperty(key)));
.filter(it -> it.startsWith("audit.logger."))
.forEach(key -> properties_<%=jobCatcherNode.getUniqueName()%>.setProperty(key.substring("audit.logger.".length()), System.getProperty(key)));
<%if(isLog4j1Enabled) {%>
org.apache.log4j.Logger.getLogger("audit").setLevel(org.apache.log4j.Level.DEBUG);
org.apache.log4j.Logger.getLogger(properties_<%=jobCatcherNode.getUniqueName()%>.getProperty("root.logger")).setLevel(org.apache.log4j.Level.DEBUG);
<%}%>
<%if(isLog4j2Enabled) {%>
org.apache.logging.log4j.core.config.Configurator.setLevel("audit", org.apache.logging.log4j.Level.DEBUG);
org.apache.logging.log4j.core.config.Configurator.setLevel(properties_<%=jobCatcherNode.getUniqueName()%>.getProperty("root.logger"), org.apache.logging.log4j.Level.DEBUG);
<%}%>
auditLogger_<%=jobCatcherNode.getUniqueName()%> = org.talend.job.audit.JobEventAuditLoggerFactory.createJobAuditLogger(properties_<%=jobCatcherNode.getUniqueName()%>);
}
<%
}
%>
%>
if(clientHost == null) {
clientHost = defaultClientHost;
@@ -619,7 +692,16 @@
} //endIf
%>
context.setContextType("<%=ctxParam.getName()%>", "<%=ctxParam.getType()%>");
if(context.getStringValue("<%=ctxParam.getName()%>") == null) {
context.<%=ctxParam.getName()%> = null;
} else {
<%//}B1 block%>
<%
String typeToGenerate ="String";
if( !(ctxParam.getType().equals("id_File") || ctxParam.getType().equals("id_Directory") ||ctxParam.getType().equals("id_List Of Value"))) {
typeToGenerate=JavaTypesManager.getTypeToGenerate(ctxParam.getType(),true);
}
if (ctxParam.getType().equals("id_Password")) {
%>
String pwd_<%=ctxParam.getName()%>_value = context.getProperty("<%=ctxParam.getName()%>");
@@ -637,13 +719,7 @@
}
}
<%
continue;
}
String typeToGenerate ="String";
if( !(ctxParam.getType().equals("id_File") || ctxParam.getType().equals("id_Directory") ||ctxParam.getType().equals("id_List Of Value"))) {
typeToGenerate=JavaTypesManager.getTypeToGenerate(ctxParam.getType(),true);
}
if(typeToGenerate.equals("java.util.Date")) {
} else if(typeToGenerate.equals("java.util.Date")) {
%>
try{
String context_<%=ctxParam.getName()%>_value = context.getProperty("<%=ctxParam.getName()%>");
@@ -702,6 +778,10 @@
}
<%
}
%>
<%//{B1 block%>
}
<%
}
%>
} <%/*close last method*/%>
@@ -872,20 +952,6 @@ if(execStat) {
}
%>
<%if (hadoopClusterIds.size() > 1) {%>
System.err.println("Only one hadoop configuration is allowed in one job!");
<%}%>
<%
// run tHadoopConfManager component if there is it.
if(!hadoopConfNodes.isEmpty()) {
INode hadoopConfNode = hadoopConfNodes.get(0);
%>
<%=createCallProcess(hadoopConfNode, className, false) %>
<%
}
%>
<%
//2. load implicit contextload
if(implicit_Context != null) {
@@ -908,6 +974,21 @@ this.globalResumeTicket = true;//to run tPreJob
}
%>
<%if (hadoopClusterIds.size() > 1) {%>
System.err.println("Only one hadoop configuration is allowed in one job!");
<%}%>
<%
// run tHadoopConfManager component if there is it.
if(!hadoopConfNodes.isEmpty()) {
INode hadoopConfNode = hadoopConfNodes.get(0);
if (hadoopConfNode.isStart()) {
%>
<%=createCallProcess(hadoopConfNode, className, false) %>
<%
}
}
%>
<%
//4. flush the begin msg
@@ -921,7 +1002,7 @@ this.globalResumeTicket = true;//to run tPreJob
<%
}
if(jobCatcherNode!=null) {
if(enableLogStash) {
%>
if(enableLogStash) {
<%=jobCatcherNode.getUniqueName() %>.addJobStartMessage();
@@ -1074,7 +1155,7 @@ this.globalResumeTicket = true;//to run tPostJob
<%
}
if(jobCatcherNode!=null) {
if(enableLogStash) {
%>
if(enableLogStash) {
<%=jobCatcherNode.getUniqueName() %>.addJobEndMessage(startTime, end, status);
@@ -1320,13 +1401,11 @@ if (execStat) {
} else {
type = "ftp";
}
if ("ftp".equals(type)) { %>
((com.enterprisedt.net.ftp.FTPClient) obj_conn).quit();
<%} else if ("sftp".equals(type)) { %>
if ("sftp".equals(type)) { %>
((com.jcraft.jsch.ChannelSftp) obj_conn).quit();
<%} else { %>
((org.apache.commons.net.ftp.FTPSClient) obj_conn).disconnect();
<%}%>
<%} else { %>
((org.apache.commons.net.ftp.FTPClient) obj_conn).disconnect();
<%}%>
}
<% } %>
} catch (java.lang.Exception e) {
@@ -1416,11 +1495,24 @@ if (execStat) {
private void closeGSConnections() {
try {
<% for (INode gsComponent : gsComponentsList) { %>
org.jets3t.service.impl.rest.httpclient.GoogleStorageService service_<%=gsComponent.getUniqueName()%> =
(org.jets3t.service.impl.rest.httpclient.GoogleStorageService)globalMap.get("service_<%=gsComponent.getUniqueName()%>");
if(service_<%=gsComponent.getUniqueName()%> !=null){
service_<%=gsComponent.getUniqueName()%>.shutdown();
}
<%
String authType = ElementParameterParser.getValue(gsComponent, "__AUTH_TYPE__");
if (authType.equals("USER_ACCOUNT_HMAC")){
%>
org.jets3t.service.impl.rest.httpclient.GoogleStorageService service_<%=gsComponent.getUniqueName()%> =
(org.jets3t.service.impl.rest.httpclient.GoogleStorageService)globalMap.get("service_<%=gsComponent.getUniqueName()%>");
if(service_<%=gsComponent.getUniqueName()%> !=null){
service_<%=gsComponent.getUniqueName()%>.shutdown();
}
<%
} else if (authType.equals("SERVICE_ACCOUNT")) {
%>
//Don't need to close storage when use google storage api
<%
}
%>
<% } %>
} catch (java.lang.Exception e) {
@@ -1501,12 +1593,14 @@ if (execStat) {
<% } %>
<% for (INode existNode : existComponentsList) { %>
connections.put("col_<%=existNode.getUniqueName()%>", globalMap.get("col_<%=existNode.getUniqueName()%>"));
<% } %>
<% }
<% for (INode salesforceNode : salesforceComponentsList) { %>
connections.put("conn_<%=salesforceNode.getUniqueName()%>", globalMap.get("conn_<%=salesforceNode.getUniqueName()%>"));
<% } %>
<% for (INode sapNode : sapComponentsList) { %>
for (INode tcompV0ConnectionNode : tcompV0ComponentsList) { %>
connections.put("<%=tcompV0ConnectionNode.getUniqueName()%>_connection", globalMap.get("<%=tcompV0ConnectionNode.getUniqueName()%>_connection"));
connections.put("<%=tcompV0ConnectionNode.getUniqueName()%>_COMPONENT_RUNTIME_PROPERTIES", globalMap.get("<%=tcompV0ConnectionNode.getUniqueName()%>_COMPONENT_RUNTIME_PROPERTIES"));
<% }
for (INode sapNode : sapComponentsList) { %>
connections.put("conn_<%=sapNode.getUniqueName()%>", globalMap.get("conn_<%=sapNode.getUniqueName()%>"));
<% } %>
<% for (INode gsNode : gsComponentsList) { %>
@@ -1570,7 +1664,7 @@ if (execStat) {
}
} else if (arg.startsWith("--log4jLevel=")) {
log4jLevel = arg.substring(13);
} else if (arg.startsWith("--monitoring") && arg.contains("=")) {//for trunjob call
} else if (arg.startsWith("--audit.enabled") && arg.contains("=")) {//for trunjob call
final int equal = arg.indexOf('=');
final String key = arg.substring("--".length(), equal);
System.setProperty(key, arg.substring(equal + 1));

View File

@@ -116,7 +116,11 @@ class IndexedRecordToRowStructGenerator {
routines.system.DynamicMetadata dynamicMetadata_<%=cid%> = new routines.system.DynamicMetadata();
org.apache.avro.Schema dynamicFieldSchema_<%=cid%> = dynamicField_<%=cid%>.schema();
// set name
dynamicMetadata_<%=cid%>.setName(dynamicField_<%=cid%>.name());
if("true".equals(dynamicField_<%=cid%>.getProp("ENABLE_SPECIAL_TABLENAME"))){
dynamicMetadata_<%=cid%>.setName(dynamicField_<%=cid%>.getProp("talend.field.dbColumnName"));
}else{
dynamicMetadata_<%=cid%>.setName(dynamicField_<%=cid%>.name());
}
// set db name
dynamicMetadata_<%=cid%>.setDbName(dynamicField_<%=cid%>.name());
// set nullable
@@ -166,6 +170,14 @@ class IndexedRecordToRowStructGenerator {
if (columnName.equals(dynamicColName)) {
%>
java.util.Map<String, Object> dynamicValue_<%=cid%> = (java.util.Map<String, Object>) <%=codeVarSchemaEnforcer%>.get(<%=i%>);
org.apache.avro.Schema dynSchema_<%=cid%> = ((org.talend.codegen.enforcer.OutgoingDynamicSchemaEnforcer) <%=codeVarSchemaEnforcer%>).getDynamicFieldsSchema();
for (org.apache.avro.Schema.Field dynamicField_<%=cid%> : dynSchema_<%=cid%>.getFields()){
String name = dynamicField_<%=cid%>.name();
if("true".equals(dynamicField_<%=cid%>.getProp("ENABLE_SPECIAL_TABLENAME"))){
dynamicValue_<%=cid%>.put(dynamicField_<%=cid%>.getProp("talend.field.dbColumnName"), dynamicValue_<%=cid%>.get(name));
dynamicValue_<%=cid%>.remove(name);
}
}
for (java.util.Map.Entry<String, Object> dynamicValueEntry_<%=cid%> : dynamicValue_<%=cid%>.entrySet()) {
<%=codeVarDynamic%>.setColumnValue(<%=codeVarDynamic%>.getIndex(dynamicValueEntry_<%=cid%>.getKey()), dynamicValueEntry_<%=cid%>.getValue());
}

View File

@@ -298,6 +298,15 @@ if(isRunInMultiThread){
}
<% } %>
}
//if the stored or passed value is "<TALEND_NULL>" string, it mean null
public String getStringValue(String key) {
String origin_value = this.getProperty(key);
if(NULL_VALUE_EXPRESSION_IN_COMMAND_STRING_FOR_CHILD_JOB_ONLY.equals(origin_value)) {
return null;
}
return origin_value;
}
<%
for (IContextParameter ctxParam :params)
@@ -380,8 +389,28 @@ public <%=JavaTypesManager.getTypeToGenerate(ctxParam.getType(),true)%> get<%=Ch
break;
}
}
boolean enableLogStash = jobCatcherNode != null;
if (stats || enableLogStash) {
boolean enableLogStash = !Boolean.getBoolean("deactivate_extended_component_log") && (jobCatcherNode!=null);
boolean enable_runtime_lineage_log = NodeUtil.isJobUsingRuntimeLineage(process) && (jobCatcherNode!=null);
if(jobCatcherNode!=null) {
%>
private final JobStructureCatcherUtils <%=jobCatcherNode.getUniqueName() %> = new JobStructureCatcherUtils(jobName, "<%=process.getId() %>", "<%=process.getVersion() %>");
<%
}
if(enable_runtime_lineage_log) {
%>
private org.talend.job.audit.JobAuditLogger runtime_lineage_logger_<%=jobCatcherNode.getUniqueName()%> = null;
<%
}
if (enableLogStash) {
%>
private org.talend.job.audit.JobAuditLogger auditLogger_<%=jobCatcherNode.getUniqueName()%> = null;
private RunStat runStat = new RunStat(<%=jobCatcherNode.getUniqueName() %>, System.getProperty("audit.interval"));
<%
} else if(stats) {
%>
private RunStat runStat = new RunStat();
<%
@@ -422,13 +451,6 @@ private RunTrace runTrace = new RunTrace();
<%
}
if(enableLogStash) {
%>
JobStructureCatcherUtils <%=jobCatcherNode.getUniqueName() %> = new JobStructureCatcherUtils(jobName, "<%=process.getId() %>", "<%=process.getVersion() %>");
org.talend.job.audit.JobAuditLogger auditLogger_<%=jobCatcherNode.getUniqueName()%> = null;
<%
}
for (INode metterCatcher : process.getNodesOfType("tFlowMeterCatcher")) {
%>
MetterCatcherUtils <%=metterCatcher.getUniqueName() %> = new MetterCatcherUtils("<%=process.getId() %>", "<%=process.getVersion() %>");

View File

@@ -12,6 +12,7 @@
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.designer.codegen.config.NodesSubTree
org.talend.core.model.process.IProcess
org.talend.core.model.process.ProcessUtils
org.talend.core.model.utils.NodeUtil
org.talend.core.model.process.IContextParameter
java.util.List
@@ -28,7 +29,13 @@ INode node = (INode)codeGenArgument.getArgument();
boolean containsTPartitioner = node.getProcess().getNodesOfType("tPartitioner").size() > 0 ? true : false;
boolean isRunJob = "tRunJob".equals(node.getComponent().getName());
IProcess process = node.getProcess();
boolean isTestContainer=ProcessUtils.isTestContainer(process);
String className = process.getName();
if (isTestContainer) {
className = className + "Test";
}
NodesSubTree subTree = (NodesSubTree) codeGenArgument.getSubTree();
ECodePart codePart = codeGenArgument.getCodePart();
//boolean trace = codeGenArgument.isTrace();
@@ -78,10 +85,10 @@ for (IConnection iterateConn : iterateConnSet) { //1
@Override
public Object put(String key, Object value) {
<%if(!isRunInMultiThread){%>
synchronized (<%=process.getName()%>.this.obj) {
synchronized (<%=className%>.this.obj) {
<%}%>
super.put(key, value);
return <%=process.getName()%>.this.globalMap.put(key, value);
return <%=className%>.this.globalMap.put(key, value);
<%if(!isRunInMultiThread){%>
}
<%}%>
@@ -158,7 +165,7 @@ for (IConnection iterateConn : iterateConnSet) { //1
synchronized (globalMap) {
this.globalMap = java.util.Collections.synchronizedMap(new ThreadedMap(globalMap));
<%}else{%>
synchronized (<%=process.getName()%>.this.obj) {
synchronized (<%=className%>.this.obj) {
this.globalMap = new ThreadedMap(globalMap);
<%}%>
}

View File

@@ -0,0 +1,121 @@
<%
//copy from configuration.javajet for tacokit
%>
<%
//TODO: modify this part for Maps and nested lists.
if (p.getFieldType() == EParameterFieldType.TABLE || p.getFieldType() == EParameterFieldType.TACOKIT_SUGGESTABLE_TABLE) {
java.util.List<java.util.Map<String, String>> tableValues = ElementParameterParser.createTableValues((java.util.List<java.util.Map<String, Object>>) p.getValue(), p);
String[] items = p.getListItemsDisplayCodeName();
String tableName = p.getName().replace('$', '.');
boolean primitiveTable = items.length == 1 && items[0].equals(tableName + "[]");
String tableNamePrefix = tableName + "[]";
for (int i = 0; i < tableValues.size(); i++) {
java.util.Map<String, String> lineValues = tableValues.get(i);
for (int j = 0; j < items.length; j++) {
String key = tableName + "[" + i + "]";
if (!primitiveTable) {
final String columnName = items[j].substring(tableNamePrefix.length(), items[j].length());
key = key + columnName;
}
String value = lineValues.get(items[j]);
if (!org.talend.core.model.utils.ContextParameterUtils.isDynamic(value)) {
value = org.talend.core.model.utils.TalendTextUtils.removeQuotes(value);
value = org.talend.core.model.utils.TalendTextUtils.addQuotes(value);
}
if(value==null || "null".equals(value.trim())) {
value = "(Object)null";
}
%>
component_parameters.put("<%=key%>",String.valueOf(<%=value%>));
<%
}
}
} else if(p.getFieldType() == EParameterFieldType.SCHEMA_TYPE) {
final String parameterName = p.getName();
IConnection connection = null;
final List<? extends IConnection> connections = NodeUtil.getOutgoingConnections(node, p.getContext());
if(connections != null && !connections.isEmpty()) {
connection = connections.get(0);
}
if(connection != null) {
IMetadataTable metaTable = connection.getMetadataTable();
List<IMetadataColumn> columns = metaTable.getListColumns();
for(int i = 0; i < columns.size(); i++) {
IMetadataColumn column = columns.get(i);
%>
component_parameters.put("<%=parameterName%>[<%=i%>]", "<%=column.getLabel()%>");
<%
}
}
} else if (p.getFieldType() == EParameterFieldType.TACOKIT_INPUT_SCHEMA) {
final String parameterName = p.getName();
IConnection connection = null;
final List<? extends IConnection> connections = NodeUtil.getIncomingConnections(node, p.getContext());
if(connections != null && !connections.isEmpty()) {
connection = connections.get(0);
}
if(connection != null) {
IMetadataTable metaTable = connection.getMetadataTable();
List<IMetadataColumn> columns = metaTable.getListColumns();
for(int i = 0; i < columns.size(); i++) {
IMetadataColumn column = columns.get(i);
%>
component_parameters.put("<%=parameterName%>[<%=i%>]", "<%=column.getLabel()%>");
<%
}
}
} else {
final String key;
if(!p.getName().contains("$")){
key = p.getName();
}else{
final StringBuilder keyBuilder = new StringBuilder();
for (String part : p.getName().split("\\.")) {
if (keyBuilder.length() != 0) {
keyBuilder.append(".");
}
if (part.contains("$") && !part.startsWith("$")) {
keyBuilder.append(part.replace("$", "."));
} else {
keyBuilder.append(part);
}
}
key = keyBuilder.toString();
}
String value = null;
if(p.getFieldType() == EParameterFieldType.PASSWORD) {
continue;
} else {
value = ElementParameterParser.getStringElementParameterValue(p);
if (!org.talend.core.model.utils.ContextParameterUtils.isDynamic(value)) {
value = org.talend.core.model.utils.TalendTextUtils.removeQuotes(value);
value = org.talend.core.model.utils.TalendTextUtils.addQuotes(value);
}
}
if (value != null) {
if(key.endsWith("$maxBatchSize")){
%>
<%
} else if(p.getFieldType() == EParameterFieldType.CLOSED_LIST) {
String valueTemp = org.talend.core.model.utils.TalendTextUtils.removeQuotes(value);
if ("".equals(valueTemp)) {
String[] listItemsDisplayCodeValue = p.getListItemsDisplayCodeName();
if(listItemsDisplayCodeValue != null && listItemsDisplayCodeValue.length > 0){
valueTemp = listItemsDisplayCodeValue[0];
value = org.talend.core.model.utils.TalendTextUtils.addQuotes(valueTemp);
}
}
}
if(value==null || "null".equals(value.trim())) {
value = "(Object)null";
}
%>
component_parameters.put("<%=key%>", String.valueOf(<%=value%>));
<%
} // else do not put value in configuration
}
%>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.codegen</artifactId>

View File

@@ -66,6 +66,7 @@ import org.talend.designer.codegen.model.CodeGeneratorEmittersPoolFactory;
import org.talend.designer.codegen.model.CodeGeneratorInternalTemplatesFactoryProvider;
import org.talend.designer.codegen.proxy.JetProxy;
import org.talend.designer.core.generic.model.Component;
import org.talend.designer.runprocess.ProcessorUtilities;
/**
* CodeGenerator.
@@ -353,8 +354,12 @@ public class CodeGenerator implements ICodeGenerator {
.getDefault().getService(IResourcesDependenciesService.class);
String resourcePathForContext = null;
if (process instanceof IProcess2) {
resourcePathForContext = resourceService.getResourcePathForContext(process,
contextPar.getValue());
String value = contextPar.getValue();
// for runtime
if (!ProcessorUtilities.isExportConfig()) {
contextPar.setType(JavaTypesManager.FILE.getId());
}
resourcePathForContext = resourceService.getResourcePathForContext(process, value);
} else {
// for PreviewFileInputContentDataProcess run
resourcePathForContext = resourceService.getResourceItemFilePath(contextPar.getValue());

View File

@@ -28,9 +28,9 @@ import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Optional;
import java.util.ResourceBundle;
import java.util.Set;
import java.util.concurrent.Semaphore;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.locks.Lock;
@@ -70,7 +70,6 @@ import org.talend.core.model.components.ComponentCategory;
import org.talend.core.model.components.ComponentManager;
import org.talend.core.model.components.ComponentProviderInfo;
import org.talend.core.model.components.ComponentUtilities;
import org.talend.core.model.components.EComponentType;
import org.talend.core.model.components.IComponent;
import org.talend.core.model.components.IComponentsFactory;
import org.talend.core.model.components.IComponentsHandler;
@@ -838,23 +837,21 @@ public class ComponentsFactory implements IComponentsFactory {
init(false);
}
for (IComponent comp : componentList) {
if (comp.getComponentType() != EComponentType.JOBLET) {
continue;
}
String comName = comp.getName();
if (comp != null && paletteType.equals(comp.getPaletteType())) {
if (comName.equals(name)) {
return comp;
} else if (new JobletUtil().matchExpression(comName)) {
String[] names = comName.split(":"); //$NON-NLS-1$
comName = names[1];
if (comName.equals(name)) {
return comp;
}
// check if reference joblet component presents
JobletUtil jobletUtils = new JobletUtil();
Optional<IComponent> result = jobletUtils.findComponentByName(componentList, name, paletteType);
if (!result.isPresent()) {
// check if any name matching joblet component presents
if (jobletUtils.matchExpression(name)) {
name = StringUtils.substringAfterLast(name, ":"); //$NON-NLS-1$
if (StringUtils.isNotBlank(name)) {
result = jobletUtils.findComponentByName(componentList, name, paletteType);
}
}
}
if (result.isPresent()) {
return result.get();
}
return null;
}
@@ -1086,4 +1083,24 @@ public class ComponentsFactory implements IComponentsFactory {
this.componentsHandler = componentsHandler;
}
/*
* (non-Javadoc)
*
* @see org.talend.core.model.components.IComponentsFactory#getComponentByDisplayName(java.lang.String,
* java.lang.String)
*/
@Override
public IComponent getComponentByDisplayName(String displayName, String paletteType) {
wait4InitialiseFinish();
if (componentList == null) {
init(false);
}
for (IComponent comp : componentList) {
if (comp != null && comp.getDisplayName().equals(displayName) && paletteType.equals(comp.getPaletteType())) {
return comp;
} // else keep looking
}
return null;
}
}

View File

@@ -60,6 +60,7 @@ public enum EInternalTemplate {
// just to have compiled templates
FOOTER_ROUTE("footer_route", "0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$
HEADER_ROUTE("header_route", "0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$
MICROSERVICE_APP_SECURITY("microservice_app_security","0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$
CAMEL_RUNIF("camel_run_if", "0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$
CAMEL_SPECIALLINKS("camel_speciallinks", "0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$
MICROSERVICE_APP("microservice_app", "0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.3.1-SNAPSHOT</version>
<version>7.3.1-PATCH</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.components.exchange</artifactId>

View File

@@ -11,7 +11,7 @@
<!-- modification 2: compile classpath -->
<path id="compile.classpath">
<pathelement location="../../../../../../tcommon-studio-se/main/plugins/org.talend.libraries.dom4j-jaxen/lib/dom4j-1.6.1.jar" />
<pathelement location="../../../../../../tcommon-studio-se/main/plugins/org.talend.libraries.dom4j-jaxen/lib/dom4j-2.1.3.jar" />
<pathelement location="../../../../../../tcommon-studio-se/main/plugins/org.talend.libraries.apache.common/lib/commons-lang-2.6.jar" />
</path>

View File

@@ -2,7 +2,6 @@
<project name="org.talend.designer.components.libs" default="buildall" basedir=".">
<target name="buildall">
<ant antfile="talend_file_enhanced_20070724/build.xml" target="process" inheritall="no" />
<ant antfile="sugarCRMManagement/build.xml" target="process" inheritall="no" />
<ant antfile="TalendSAX/build.xml" target="process" inheritall="no" />
</target>

View File

@@ -3,11 +3,32 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.talend.components.lib</groupId>
<artifactId>commons-net-ftps-proxy</artifactId>
<version>3.6.1-talend-20190819</version>
<version>3.6.1-talend-20200902</version>
<name>commons-net-talend</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<talend.nexus.url>https://artifacts-oss.talend.com</talend.nexus.url>
<slf4.version>1.7.25</slf4.version>
<lombok.version>1.18.12</lombok.version>
</properties>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
@@ -15,10 +36,6 @@
</dependency>
</dependencies>
<properties>
<talend.nexus.url>https://artifacts-oss.talend.com</talend.nexus.url>
</properties>
<distributionManagement>
<snapshotRepository>
<id>talend_nexus_deployment</id>

View File

@@ -11,8 +11,10 @@ import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSessionContext;
import javax.net.ssl.SSLSocket;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.net.ftp.FTPSClient;
@Slf4j
public class SSLSessionReuseFTPSClient extends FTPSClient {
public SSLSessionReuseFTPSClient(boolean isImplicit, SSLContext context) {
@@ -24,6 +26,12 @@ public class SSLSessionReuseFTPSClient extends FTPSClient {
if (socket instanceof SSLSocket) {
final SSLSession session = ((SSLSocket) _socket_).getSession();
final SSLSessionContext context = session.getSessionContext();
if (context == null) {
// TDI-44654 (may be reproduced with Syncplify server)
log.info("SSL Session Context is null. SSL Session was re-initialized.");
return;
}
try {
final Field sessionHostPortCache = context.getClass().getDeclaredField("sessionHostPortCache");
sessionHostPortCache.setAccessible(true);
@@ -32,10 +40,10 @@ public class SSLSessionReuseFTPSClient extends FTPSClient {
putMethod.setAccessible(true);
InetAddress address = socket.getInetAddress();
int port = socket.getPort();
String key = String.format("%s:%s", address.getHostName(), String.valueOf(port)).toLowerCase(Locale.ROOT);
putMethod.invoke(cache, key, session);
key = String.format("%s:%s", address.getHostAddress(), String.valueOf(port)).toLowerCase(Locale.ROOT);
putMethod.invoke(cache, key, session);
} catch (Exception e) {

View File

@@ -22,7 +22,7 @@
<groupId>org.talend.components</groupId>
<artifactId>google-storage-utils</artifactId>
<version>1.0.0</version>
<version>1.1.0</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<talend.nexus.url>https://artifacts-oss.talend.com</talend.nexus.url>
@@ -46,6 +46,12 @@
<artifactId>jets3t</artifactId>
<version>0.9.0</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.6.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<distributionManagement>
<snapshotRepository>
@@ -64,8 +70,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
<plugin>

View File

@@ -3,10 +3,13 @@ package org.talend.gs.util;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.FileSystems;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.jets3t.service.model.GSObject;
@@ -44,6 +47,50 @@ public class GSObjectUtil {
return objects;
}
public Map<String, File> generateFileMap(File rootFile, String directory, Map<String, String> filter){
Map<String, File> allFiles = generateFileMap(rootFile, directory);
Map<String, File> resultMap = new HashMap<>();
for (Map.Entry<String, String> entry : filter.entrySet()) {
//key is path to file on local machine
//value is new path in GS
File currentFile = new File(entry.getKey());
if (allFiles.containsValue(currentFile)){
resultMap.put(entry.getValue(), currentFile);
}
}
return resultMap;
}
public Map<String, File> generateFileMap(File rootFile, String directory){
if (rootFile == null){
throw new IllegalArgumentException("File can't be null");
}
if (directory == null){
throw new IllegalArgumentException("Directory name can't be null");
}
if (!directory.isEmpty() && !"/".equals(directory.substring(directory.length()-1))){
directory = directory + "/";
}
Map<String,File> fileMap = new HashMap<>();
if (!rootFile.isDirectory()){
fileMap.put(directory + rootFile.getName(), rootFile);
return fileMap;
}
String pathToDirectory = rootFile.getAbsolutePath();
List<File> allFiles = listAllFiles(pathToDirectory);
for (File currentFile : allFiles){
if (!currentFile.isDirectory()){
fileMap.put(combineTwoNames(pathToDirectory, directory, currentFile), currentFile);
}
}
return fileMap;
}
public java.util.Map<String, String> genFileFilterList(java.util.List<java.util.Map<String, String>> list,
String localdir, String remotedir) {
if (remotedir != null && !"".equals(remotedir)) {
@@ -120,4 +167,23 @@ public class GSObjectUtil {
InputStream mimetypesFile = this.getClass().getResourceAsStream("/resource/mime.types");
Mimetypes.getInstance().loadAndReplaceMimetypes(mimetypesFile);
}
private List<File> listAllFiles(String directoryName) {
File directory = new File(directoryName);
List<File> resultList = new ArrayList<>();
File[] fList = directory.listFiles();
resultList.addAll(Arrays.asList(fList));
for (File file : fList) {
if (file.isDirectory()) {
resultList.addAll(listAllFiles(file.getAbsolutePath()));
}
}
return resultList;
}
private String combineTwoNames(String coreDir, String targetDir, File file){
String filePath = file.getAbsolutePath();
String relativePath = targetDir + filePath.replace(coreDir + FileSystems.getDefault().getSeparator(), "");
return relativePath.replaceAll("\\\\","/");
}
}

View File

@@ -0,0 +1,131 @@
package util;
import org.junit.jupiter.api.Test;
import org.talend.gs.util.GSObjectUtil;
import java.io.File;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.*;
class GSObjectUtilTest {
@Test
void checkSizeOfFilesInFolderTest() {
Path pathToDirectory = Paths.get("src", "test", "resources", "dirWithThreeFiles");
Path pathToFile1 = Paths.get("src", "test", "resources", "dirWithThreeFiles", "1.csv");
Path pathToFile2 = Paths.get("src", "test", "resources", "dirWithThreeFiles", "2.csv");
Path pathToFile3 = Paths.get("src", "test", "resources", "dirWithThreeFiles", "3.csv");
Path pathToFile4 = Paths.get("src", "test", "resources", "dirWithThreeFiles", "inner", "1.csv");
String expectedRelativePathToFile1 = "/1.csv";
String expectedRelativePathToFile2 = "/2.csv";
String expectedRelativePathToFile3 = "/3.csv";
String expectedRelativePathToFile4 = "/inner/1.csv";
File rootFile = new File(pathToDirectory.toUri());
GSObjectUtil gsObjectUtil = new GSObjectUtil();
Map<String, File> files = gsObjectUtil.generateFileMap(rootFile, "/");
assertEquals(4, files.size());
File expectedFile1 = new File(pathToFile1.toUri());
File expectedFile2 = new File(pathToFile2.toUri());
File expectedFile3 = new File(pathToFile3.toUri());
File expectedFile4 = new File(pathToFile4.toUri());
assertTrue(files.containsKey(expectedRelativePathToFile1));
assertTrue(files.containsKey(expectedRelativePathToFile2));
assertTrue(files.containsKey(expectedRelativePathToFile3));
assertTrue(files.containsKey(expectedRelativePathToFile4));
assertEquals(expectedFile1.getAbsoluteFile(), files.get(expectedRelativePathToFile1).getAbsoluteFile());
assertEquals(expectedFile2.getAbsoluteFile(), files.get(expectedRelativePathToFile2).getAbsoluteFile());
assertEquals(expectedFile3.getAbsoluteFile(), files.get(expectedRelativePathToFile3).getAbsoluteFile());
assertEquals(expectedFile4.getAbsoluteFile(), files.get(expectedRelativePathToFile4).getAbsoluteFile());
}
@Test
void checkSizeOfFilesInFolder2Test() {
Path pathToDirectory = Paths.get("src", "test", "resources", "dirWithThreeFiles");
Path pathToFile1 = Paths.get("src", "test", "resources", "dirWithThreeFiles", "1.csv");
Path pathToFile2 = Paths.get("src", "test", "resources", "dirWithThreeFiles", "2.csv");
Path pathToFile3 = Paths.get("src", "test", "resources", "dirWithThreeFiles", "3.csv");
Path pathToFile4 = Paths.get("src", "test", "resources", "dirWithThreeFiles", "inner", "1.csv");
String expectedRelativePathToFile1 = "1.csv";
String expectedRelativePathToFile2 = "2.csv";
String expectedRelativePathToFile3 = "3.csv";
String expectedRelativePathToFile4 = "inner/1.csv";
File rootFile = new File(pathToDirectory.toUri());
GSObjectUtil gsObjectUtil = new GSObjectUtil();
Map<String, File> files = gsObjectUtil.generateFileMap(rootFile, "");
assertEquals(4, files.size());
File expectedFile1 = new File(pathToFile1.toUri());
File expectedFile2 = new File(pathToFile2.toUri());
File expectedFile3 = new File(pathToFile3.toUri());
File expectedFile4 = new File(pathToFile4.toUri());
assertTrue(files.containsKey(expectedRelativePathToFile1));
assertTrue(files.containsKey(expectedRelativePathToFile2));
assertTrue(files.containsKey(expectedRelativePathToFile3));
assertTrue(files.containsKey(expectedRelativePathToFile4));
assertEquals(expectedFile1.getAbsoluteFile(), files.get(expectedRelativePathToFile1).getAbsoluteFile());
assertEquals(expectedFile2.getAbsoluteFile(), files.get(expectedRelativePathToFile2).getAbsoluteFile());
assertEquals(expectedFile3.getAbsoluteFile(), files.get(expectedRelativePathToFile3).getAbsoluteFile());
assertEquals(expectedFile4.getAbsoluteFile(), files.get(expectedRelativePathToFile4).getAbsoluteFile());
}
@Test
void oneFileWithCustomPathTest(){
Path pathToFile = Paths.get("src","test", "resources", "empty.csv");
String pathToFolder = "/folder/folder";
File expectedFile = new File(pathToFile.toUri());
GSObjectUtil gsObjectUtil = new GSObjectUtil();
Map<String, File> files = gsObjectUtil.generateFileMap(expectedFile, pathToFolder);
String expectedRelativePathToFile = "/folder/folder/empty.csv";
assertEquals(1, files.size());
assertTrue(files.containsKey(expectedRelativePathToFile));
assertEquals(expectedFile.getAbsoluteFile(), files.get(expectedRelativePathToFile).getAbsoluteFile());
}
@Test
void oneFileWithOtherCustomPathTest(){
Path pathToFile = Paths.get("src","test", "resources", "empty.csv");
String pathToFolder = "folder/folder";
File expectedFile = new File(pathToFile.toUri());
GSObjectUtil gsObjectUtil = new GSObjectUtil();
Map<String, File> files = gsObjectUtil.generateFileMap(expectedFile, pathToFolder);
String expectedRelativePathToFile = "folder/folder/empty.csv";
assertEquals(1, files.size());
assertTrue(files.containsKey(expectedRelativePathToFile));
assertEquals(expectedFile.getAbsoluteFile(), files.get(expectedRelativePathToFile).getAbsoluteFile());
}
@Test
void folderWithOtherCustomPathTest(){
Path pathToFolder = Paths.get("src", "test", "resources", "dirWithThreeFiles", "inner");
String pathToGSFolder = "folder";
File folder = new File(pathToFolder.toUri());
GSObjectUtil gsObjectUtil = new GSObjectUtil();
Map<String, File> files = gsObjectUtil.generateFileMap(folder, pathToGSFolder);
String expectedRelativePathToFile = "folder/1.csv";
File expectedFile = new File(pathToFolder + "/1.csv");
assertEquals(1, files.size());
assertTrue(files.containsKey(expectedRelativePathToFile));
assertEquals(expectedFile.getAbsoluteFile(), files.get(expectedRelativePathToFile).getAbsoluteFile());
}
}

View File

@@ -170,7 +170,7 @@
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.0</version>
<version>1.9.4</version>
<scope>compile</scope>
</dependency>
<dependency>
@@ -310,7 +310,7 @@
<link>http://java.sun.com/j2se/1.5.0/docs/api/</link>
<link>http://www.junit.org/junit/javadoc/</link>
<link>
http://jakarta.apache.org/commons/beanutils/commons-beanutils-1.7.0/docs/api/
http://jakarta.apache.org/commons/beanutils/commons-beanutils-1.9.4/docs/api/
</link>
<link>
http://jakarta.apache.org/commons/lang/api-2.2/

View File

@@ -51,7 +51,8 @@ public abstract class AbstractJSONObjectStaticBuildersTestCase extends TestCase
jsonConfig.setIgnoreDefaultExcludes( true );
JSONObject json = JSONObject.fromObject( getSource(), jsonConfig );
assertJSONObject( json, getProperties() );
assertTrue( json.has( "class" ) );
//see : https://github.com/apache/commons-beanutils/compare/BEANUTILS_1_9_3...commons-beanutils-1.9.4#diff-dbeaa70d3a09169fb5a1e42e5b319037R34-R43
//assertTrue( json.has( "class" ) );
assertTrue( !json.has( "pexcluded" ) );
}

View File

@@ -199,7 +199,8 @@ public class TestJSONObject extends TestCase {
jsonConfig.setIgnoreDefaultExcludes( true );
jsonObject.element( "bean", new ObjectBean(), jsonConfig );
JSONObject actual = jsonObject.getJSONObject( "bean" );
Assertions.assertTrue( actual.has( "class" ) );
//see : https://github.com/apache/commons-beanutils/compare/BEANUTILS_1_9_3...commons-beanutils-1.9.4#diff-dbeaa70d3a09169fb5a1e42e5b319037R34-R43
//Assertions.assertTrue( actual.has( "class" ) );
Assertions.assertTrue( !actual.has( "pexcluded" ) );
}
@@ -258,7 +259,8 @@ public class TestJSONObject extends TestCase {
jsonObject.element( "list", list, jsonConfig );
JSONObject actual = jsonObject.getJSONArray( "list" )
.getJSONObject( 0 );
Assertions.assertTrue( actual.has( "class" ) );
//see : https://github.com/apache/commons-beanutils/compare/BEANUTILS_1_9_3...commons-beanutils-1.9.4#diff-dbeaa70d3a09169fb5a1e42e5b319037R34-R43
//Assertions.assertTrue( actual.has( "class" ) );
Assertions.assertTrue( !actual.has( "pexcluded" ) );
}

View File

@@ -13,9 +13,9 @@
<optional>true</optional>
</dependency>
<dependency>
<groupId>dom4j</groupId>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>

View File

@@ -1,26 +1,64 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.talend</groupId>
<groupId>org.talend.libraries</groupId>
<artifactId>mdm_transaction</artifactId>
<name>mdm_transaction</name>
<version>1.0.1</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<talend.nexus.url>https://artifacts-oss.talend.com</talend.nexus.url>
</properties>
<distributionManagement>
<snapshotRepository>
<id>talend_nexus_deployment</id>
<url>${talend.nexus.url}/nexus/content/repositories/TalendOpenSourceSnapshot/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</snapshotRepository>
<repository>
<id>talend_nexus_deployment</id>
<url>${talend.nexus.url}/nexus/content/repositories/TalendOpenSourceRelease/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</distributionManagement>
<dependencies>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.0</version>
<exclusions>
<exclusion>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</exclusion>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
@@ -49,5 +87,4 @@
</testResource>
</testResources>
</build>
<version>1</version>
</project>

View File

@@ -73,11 +73,10 @@
<artifactId>geronimo-stax-api_1.0_spec</artifactId>
<version>1.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/dom4j/dom4j -->
<dependency>
<groupId>dom4j</groupId>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
<version>2.1.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.xmlbeans/xmlbeans -->
<dependency>

View File

@@ -1,9 +1,9 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.talend.libraries</groupId>
<artifactId>talend-soap</artifactId>
<version>2.1-20190716</version>
<groupId>org.talend.components</groupId>
<artifactId>components-soap</artifactId>
<version>2.2-20200730</version>
<packaging>jar</packaging>
<name>talend-soap</name>
@@ -63,7 +63,7 @@
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.6.2</version>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>

View File

@@ -1,17 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.talend.components.lib</groupId>
<artifactId>job-audit</artifactId>
<version>1.4</version>
<groupId>org.talend.libraries</groupId>
<artifactId>job-audit</artifactId>
<version>1.1</version>
<properties>
<talend.nexus.url>https://artifacts-oss.talend.com</talend.nexus.url>
<daikon.audit.version>1.16.1</daikon.audit.version>
</properties>
<repositories>
<repository>
<id>talend_nexus</id>
@@ -23,7 +24,7 @@
<url>${talend.nexus.url}/nexus/content/repositories/TalendOpenSourceRelease/</url>
</repository>
</repositories>
<distributionManagement>
<snapshotRepository>
<id>talend_nexus_deployment</id>
@@ -46,47 +47,54 @@
</releases>
</repository>
</distributionManagement>
<dependencies>
<dependency>
<groupId>org.talend.daikon</groupId>
<artifactId>audit-common</artifactId>
<version>1.8.0</version>
</dependency>
<!--
<dependencies>
<dependency>
<groupId>org.talend.daikon</groupId>
<artifactId>audit-log4j1</artifactId>
<version>1.8.0</version>
<groupId>org.talend.daikon</groupId>
<artifactId>audit-common</artifactId>
<version>${daikon.audit.version}</version>
</dependency>
<!-- <dependency> <groupId>org.talend.daikon</groupId> <artifactId>audit-log4j1</artifactId>
<version>${daikon.audit.version}</version> </dependency> <dependency> <groupId>log4j</groupId>
<artifactId>log4j</artifactId> <version>1.2.17</version> <scope>test</scope>
</dependency> -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<scope>test</scope>
</dependency>
-->
<groupId>org.talend.daikon</groupId>
<artifactId>audit-log4j2</artifactId>
<version>${daikon.audit.version}</version>
</dependency>
<dependency>
<groupId>org.talend.daikon</groupId>
<artifactId>audit-log4j2</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.12.1</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.12.1</version>
<optional>true</optional>
</dependency>
</dependencies>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.12.1</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.12.1</version>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>

View File

@@ -6,20 +6,29 @@ import org.talend.logging.audit.EventAuditLogger;
import org.talend.logging.audit.LogLevel;
public interface JobAuditLogger extends EventAuditLogger {
@AuditEvent(category = "job", message = "Job start : job_name:{jobName}, job_version:{jobVersion}, job_id:{jobId}, timestamp:{timestamp}", level = LogLevel.INFO)
void jobstart(Context context);
@AuditEvent(category = "job", message = "Job stop : job_name:{jobName}, job_version:{jobVersion}, job_id:{jobId}, timestamp:{timestamp}, status:{status}, duration:{duration}", level = LogLevel.INFO)
void jobstop(Context context);
@AuditEvent(category = "connector", message = "Component run : job_name:{jobName}, job_version:{jobVersion}, job_id:{jobId}, connector_type:{connectorType}, connector_id:{connectorId}", level = LogLevel.INFO)
void runcomponent(Context context);
@AuditEvent(category = "connection", message = "Component {connectorType} {connectionType} {rows} rows in {duration} with {connectionName} line", level = LogLevel.INFO)
void flowOutput(Context context);
@AuditEvent(category = "jobstart", message = "Job start : job_name:{job_name}, job_version:{job_version}, job_id:{job_id}, timestamp:{timestamp}", level = LogLevel.INFO)
void jobstart(Context context);
@AuditEvent(category = "jobstop", message = "Job stop : job_name:{job_name}, job_version:{job_version}, job_id:{job_id}, timestamp:{timestamp}, status:{status}, duration:{duration}", level = LogLevel.INFO)
void jobstop(Context context);
@AuditEvent(category = "runcomponent", message = "Component run : job_name:{job_name}, job_version:{job_version}, job_id:{job_id}, connector_type:{connector_type}, connector_id:{connector_id}, connector_label:{connector_label}", level = LogLevel.INFO)
void runcomponent(Context context);
@AuditEvent(category = "flowoutput", message = "Component {connector_type} {connector_label} {connection_type} {rows} rows in {duration} with {connection_name} line", level = LogLevel.INFO)
void flowOutput(Context context);
@AuditEvent(category = "flowinput", message = "Component {connector_type} {connector_label} received {rows} rows in {duration} with {connection_name} line", level = LogLevel.INFO)
void flowInput(Context context);
@AuditEvent(category = "flowexecution", message = "connection : {connection_name}, row : {rows}, cost : {duration}", level = LogLevel.INFO)
void flowExecution(Context context);
@AuditEvent(category = "componentparameters", message = "Component {connector_id} parameters", level = LogLevel.INFO)
void componentParameters(Context context);
@AuditEvent(category = "connection", message = "Component {connectorType} received {rows} rows in {duration} with {connectionName} line", level = LogLevel.INFO)
void flowInput(Context context);
@AuditEvent(category = "schema", message = "{connection_name} : {schema} from {source_id} to {target_id}", level = LogLevel.INFO)
void schema(Context context);
}

View File

@@ -5,86 +5,175 @@ import org.talend.logging.audit.ContextBuilder;
public class JobContextBuilder {
private final ContextBuilder builder;
private final ContextBuilder builder;
public JobContextBuilder(ContextBuilder builder) {
this.builder = builder;
}
public JobContextBuilder(ContextBuilder builder) {
this.builder = builder;
}
public static JobContextBuilder create() {
return new JobContextBuilder(ContextBuilder.create());
}
public static JobContextBuilder create() {
return new JobContextBuilder(ContextBuilder.create());
}
public JobContextBuilder jobName(String jobName) {
builder.with("jobName", jobName);
return this;
}
public JobContextBuilder jobVersion(String jobVersion) {
builder.with("jobVersion", jobVersion);
return this;
}
public JobContextBuilder jobId(String jobId) {
builder.with("jobId", jobId);
return this;
}
/**
* component type like "tXMLMap"
* @param connectorType
* @return self
*/
public JobContextBuilder connectorType(String connectorType) {
builder.with("connectorType", connectorType);
return this;
}
/**
* component type like "tXMLMap_1"
* @param connectorType
* @return self
*/
public JobContextBuilder connectorId(String connectorId) {
builder.with("connectorId", connectorId);
return this;
}
public JobContextBuilder rows(long rowCount) {
builder.with("rows", String.valueOf(rowCount));
return this;
}
//output or reject
public JobContextBuilder connectionType(String connectionType) {
builder.with("connectionType", connectionType);
return this;
}
//like "row1"
public JobContextBuilder connectionName(String connectionName) {
builder.with("connectionName", connectionName);
return this;
}
//100s
public JobContextBuilder duration(String duration) {
builder.with("duration", duration);
return this;
}
public JobContextBuilder timestamp(String timestamp) {
builder.with("timestamp", timestamp);
return this;
}
public JobContextBuilder status(String status) {
builder.with("status", status);
return this;
}
public JobContextBuilder custom(String key, String value) {
builder.with(key, value);
return this;
}
public JobContextBuilder jobName(String job_name) {
builder.with("job_name", job_name);
return this;
}
public Context build() {
return builder.build();
}
public JobContextBuilder jobVersion(String job_version) {
builder.with("job_version", job_version);
return this;
}
public JobContextBuilder jobId(String job_id) {
builder.with("job_id", job_id);
return this;
}
/**
* component label, default is unique name like "tXMLMap_1", but user can adjust
* it in studio to any value
*
* @param connectorType
* @return self
*/
public JobContextBuilder connectorLabel(String connector_label) {
builder.with("connector_label", connector_label);
return this;
}
/**
* component type like "tXMLMap"
*
* @param connectorType
* @return self
*/
public JobContextBuilder connectorType(String connector_type) {
builder.with("connector_type", connector_type);
return this;
}
/**
* component unique name like "tXMLMap_1"
*
* @param connectorType
* @return self
*/
public JobContextBuilder connectorId(String connector_id) {
builder.with("connector_id", connector_id);
return this;
}
public JobContextBuilder rows(long rows) {
builder.with("rows", String.valueOf(rows));
return this;
}
// output or reject
public JobContextBuilder connectionType(String connection_type) {
builder.with("connection_type", connection_type);
return this;
}
// like "row1"
public JobContextBuilder connectionName(String connection_name) {
builder.with("connection_name", connection_name);
return this;
}
// 100s
public JobContextBuilder duration(String duration) {
builder.with("duration", duration);
return this;
}
public JobContextBuilder timestamp(String timestamp) {
builder.with("timestamp", timestamp);
return this;
}
public JobContextBuilder status(String status) {
builder.with("status", status);
return this;
}
public Context build() {
return builder.build();
}
/**
* source connector id
*
* @return
*/
public JobContextBuilder sourceId(String source_id) {
builder.with("source_id", source_id);
return this;
}
/**
* source connector label
*
* @return
*/
public JobContextBuilder sourceLabel(String source_label) {
builder.with("source_label", source_label);
return this;
}
/**
* source connector name
*
* @return
*/
public JobContextBuilder sourceConnectorType(String source_connector_type) {
builder.with("source_connector_type", source_connector_type);
return this;
}
/**
* target connector id
*
* @return
*/
public JobContextBuilder targetId(String target_id) {
builder.with("target_id", target_id);
return this;
}
/**
* target connector label
*
* @return
*/
public JobContextBuilder targetLabel(String target_label) {
builder.with("target_label", target_label);
return this;
}
/**
* target connector name
*
* @return
*/
public JobContextBuilder targetConnectorType(String target_connector_type) {
builder.with("target_connector_type", target_connector_type);
return this;
}
public JobContextBuilder connectorParameters(String connector_parameters) {
builder.with("connector_parameters", connector_parameters);
return this;
}
public JobContextBuilder schema(String schema) {
builder.with("schema", schema);
return this;
}
}

View File

@@ -5,45 +5,47 @@ import java.util.Properties;
import org.talend.logging.audit.AuditLoggerFactory;
import org.talend.logging.audit.EventAuditLogger;
import org.talend.logging.audit.impl.AbstractBackend;
import org.talend.logging.audit.impl.AuditConfiguration;
import org.talend.logging.audit.impl.AuditConfigurationMap;
import org.talend.logging.audit.impl.AuditLoggerBase;
import org.talend.logging.audit.impl.DefaultAuditLoggerBase;
import org.talend.logging.audit.impl.ProxyEventAuditLogger;
import org.talend.logging.audit.impl.*;
public class JobEventAuditLoggerFactory {
public static JobAuditLogger createJobAuditLogger(final Properties properties) {
final AuditConfigurationMap config = AuditConfiguration.loadFromProperties(properties);
AbstractBackend logger = null;
//load log4j2 implement firstly
String loggerClass = "org.talend.logging.audit.log4j2.Log4j2Backend";
try {
final Class<?> clz = Class.forName(loggerClass);
logger = (AbstractBackend) clz.getConstructor(AuditConfigurationMap.class).newInstance(config);
} catch (ReflectiveOperationException e) {
// do nothing
}
final DefaultAuditLoggerBase loggerBase;
//load log4j1 implement if not found log4j2
if (logger == null) {
loggerClass = "org.talend.logging.audit.log4j1.Log4j1Backend";
final Backends backend = AuditConfiguration.BACKEND.getValue(config, Backends.class);
if (backend == Backends.CUSTOM) {
loggerBase = new DefaultAuditLoggerBase(config);
} else {
AbstractBackend logger = null;
// load log4j2 implement firstly
String loggerClass = "org.talend.logging.audit.log4j2.Log4j2Backend";
try {
final Class<?> clz = Class.forName(loggerClass);
logger = (AbstractBackend) clz.getConstructor(AuditConfigurationMap.class).newInstance(config);
} catch (ReflectiveOperationException e) {
// do nothing
}
}
if(logger == null) {
throw new RuntimeException("Unable to load backend : " + loggerClass);
}
final DefaultAuditLoggerBase loggerBase = new DefaultAuditLoggerBase(logger, config);
// load log4j1 implement if not found log4j2
if (logger == null) {
loggerClass = "org.talend.logging.audit.log4j1.Log4j1Backend";
try {
final Class<?> clz = Class.forName(loggerClass);
logger = (AbstractBackend) clz.getConstructor(AuditConfigurationMap.class).newInstance(config);
} catch (ReflectiveOperationException e) {
// do nothing
}
}
if (logger == null) {
throw new RuntimeException("Unable to load backend : " + loggerClass);
}
loggerBase = new DefaultAuditLoggerBase(logger, config);
}
JobAuditLogger result = getEventAuditLogger(JobAuditLogger.class, loggerBase);
return result;

View File

@@ -6,7 +6,7 @@
<groupId>org.talend.components.lib</groupId>
<artifactId>talend-proxy</artifactId>
<version>1.0.0</version>
<version>1.0.1</version>
<build>
<plugins>
<plugin>
@@ -46,9 +46,9 @@
<version>3.9</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
</dependencies>

View File

@@ -1,22 +1,20 @@
package org.talend.proxy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.net.Proxy;
import java.net.ProxySelector;
import java.net.SocketAddress;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import org.apache.log4j.Logger;
public class TalendProxySelector extends ProxySelector {
private static TalendProxySelector instance;
private static final Logger log = Logger.getLogger(TalendProxySelector.class);
private static final Logger log = LoggerFactory.getLogger(TalendProxySelector.class);
private ThreadLocal<ProxyHolder> threadLocalProxyHolder;
private ProxyHolder globalProxyHolder;

View File

@@ -4,7 +4,7 @@
<groupId>org.talend.libraries</groupId>
<artifactId>talend-webservice-input</artifactId>
<version>1.0.0-20170301</version>
<version>1.0.2</version>
<packaging>jar</packaging>
<name>talend-webservice-input</name>
@@ -51,6 +51,12 @@
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.2</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/wsdl4j/wsdl4j -->
<dependency>
@@ -64,12 +70,6 @@
<groupId>javax.xml</groupId>
<artifactId>jaxrpc-api</artifactId>
<version>1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1</version>
</dependency>
</dependencies>
@@ -95,6 +95,7 @@
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>default-jar</id>

View File

@@ -18,7 +18,7 @@
<pathelement location="${component.plugin.home}/tMicrosoftCrmInput/commons-logging-1.1.1.jar" />
<pathelement location="${component.plugin.home}/tWriteJSONFieldIn/commons-lang-2.6.jar" />
<pathelement location="${component.plugin.home}/tWebService/commons-collections-3.2.1.jar" />
<pathelement location="${component.plugin.home}/tWebService/commons-beanutils-1.7.0.jar" />
<pathelement location="${component.plugin.home}/tWebService/commons-beanutils-1.9.4.jar" />
<pathelement location="${component.plugin.home}/tWebService/cxf-2.6.0-modified.jar" />
<pathelement location="${component.plugin.home}/tWebService/jaxb-xjc-2.2.5-modified.jar" />
<pathelement location="${component.plugin.home}/tWebService/jaxb-impl-2.2.5-modified.jar" />

View File

@@ -85,7 +85,7 @@
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.3</version>
<version>1.9.4</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>

View File

@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.talend.libraries</groupId>
<artifactId>talendExcel-1.5-20190731</artifactId>
<artifactId>talendExcel-1.5-20200825</artifactId>
<version>6.0.0</version>
<packaging>jar</packaging>
@@ -73,11 +73,10 @@
<artifactId>geronimo-stax-api_1.0_spec</artifactId>
<version>1.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/dom4j/dom4j -->
<dependency>
<groupId>dom4j</groupId>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
<version>2.1.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.xmlbeans/xmlbeans -->
<dependency>

View File

@@ -6,11 +6,13 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.GeneralSecurityException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.poifs.crypt.Decryptor;
import org.apache.poi.poifs.crypt.EncryptionInfo;
import org.apache.poi.poifs.crypt.EncryptionMode;
import org.apache.poi.poifs.crypt.Encryptor;
@@ -158,9 +160,13 @@ public class ExcelTool {
}
}
private void appendActionForFile(String fileName) throws IOException {
InputStream inp = new FileInputStream(fileName);
wb = WorkbookFactory.create(inp);
private void appendActionForFile(String fileName) throws Exception {
if (password == null) {
InputStream inp = new FileInputStream(fileName);
wb = WorkbookFactory.create(inp);
} else {
wb = readEncryptedFile(fileName);
}
sheet = wb.getSheet(sheetName);
if (sheet != null) {
if (appendSheet) {
@@ -185,10 +191,27 @@ public class ExcelTool {
}
private void initPreXlsx(String fileName) throws Exception {
InputStream preIns = new FileInputStream(fileName);
preWb = WorkbookFactory.create(preIns);
if(password == null) {
InputStream preIns = new FileInputStream(fileName);
preWb = WorkbookFactory.create(preIns);
} else {
preWb = readEncryptedFile(fileName);
}
preSheet = preWb.getSheet(sheetName);
}
private Workbook readEncryptedFile(String fileName)
throws IOException, GeneralSecurityException {
InputStream inp = new FileInputStream(fileName);
POIFSFileSystem fs = new POIFSFileSystem(inp);
EncryptionInfo info = new EncryptionInfo(fs);
Decryptor decryptor = Decryptor.getInstance(info);
if (!decryptor.verifyPassword(password)) {
throw new GeneralSecurityException("Error: Incorrect password!");
}
InputStream dataStream = decryptor.getDataStream(fs);
return WorkbookFactory.create(dataStream);
}
public void setFont(String fontName) {
if (StringUtils.isNotEmpty(fontName)) {

View File

@@ -0,0 +1,57 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.talend.components.lib</groupId>
<artifactId>talend_file_enhanced</artifactId>
<name>talend_file_enhanced</name>
<version>1.0</version>
<properties>
<talend.nexus.url>https://artifacts-oss.talend.com</talend.nexus.url>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<type>jar</type>
<scope>test</scope>
</dependency>
</dependencies>
<distributionManagement>
<snapshotRepository>
<id>talend_nexus_deployment</id>
<url>${talend.nexus.url}/nexus/content/repositories/TalendOpenSourceSnapshot/</url>
<snapshots><enabled>true</enabled></snapshots>
<releases><enabled>false</enabled></releases>
</snapshotRepository>
<repository>
<id>talend_nexus_deployment</id>
<url>${talend.nexus.url}/nexus/content/repositories/TalendOpenSourceRelease/</url>
<snapshots><enabled>false</enabled></snapshots>
<releases><enabled>true</enabled></releases>
</repository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
</resource>
</resources>
</build>
</project>

View File

@@ -561,7 +561,17 @@ public class TOSDelimitedReader {
System.out.println(streamBuffer);
}
setStreamEnd(readCount, maxReadLength);
if (readCount > -1) {
count += readCount;
lastIndexToRead = count - maxLimit;
}
}
private void setStreamEnd(int readCount, int maxReadLength) throws IOException {
/* @see bug:http://talendforge.org/bugs/view.php?id=4554 */
//https://jira.talendforge.org/browse/TDI-44745
if (readCount < maxReadLength) {
if (readCount == -1) {
streamEndMeet = true;
@@ -575,11 +585,6 @@ public class TOSDelimitedReader {
}
}
}
if (readCount > -1) {
count += readCount;
lastIndexToRead = count - maxLimit;
}
}
/* --------------1------------------- */
@@ -652,7 +657,7 @@ public class TOSDelimitedReader {
currentPosition = 0;
columnStart = 0;
lastIndexToRead = count - maxLimit;
streamEndMeet = (count < buffer.length);
setStreamEnd(count, buffer.length);
}
public boolean isStartFieldDelimited() {

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