Compare commits

...

233 Commits

Author SHA1 Message Date
dochkas-talend
36c32b6437 added bigger timeout 2022-06-20 17:51:57 +03:00
msjian
b5f96496f4 fix(TDQ-19435): fix a NPE (#7663) 2022-06-20 10:01:55 +08:00
zshen-talend
d0fbe0defa fix(TDQ-19623): make sure project name never force lowercase (#7661) 2022-06-17 10:17:23 +08:00
sponomarova
d9454a11ef feat(TBD-13823): spark local 3.2.x GA (#7652) (#7656) 2022-06-16 12:52:54 +03:00
zshen-talend
bca8dd8802 fix(TDQ-19623): make sure build job action work for reference project (#7654) 2022-06-15 18:18:37 +08:00
Dmytro Sylaiev
45c4e32c2a feat(TDI-47398): migrate adal4j to msal4j mscrm (#7556)
* feat(TDI-47398): Change adal4j to msal4j for talend-mscrm

* feat(TDI-47398): Change dependencies for tMicrosoftCRMXXX

* feat(TDI-47398): Implement oauth token acquiring

* chore(TDI-47398): Small microbes fix
2022-06-14 22:21:51 +03:00
hcyi
e637d53155 fix(TUP-35508):Better to improve context prompt for JDBC. (#7624)
* fix(TUP-35508):Better to improve context prompt for JDBC.

* fix(TUP-35508):Better to improve context prompt for JDBC.

* fix(TUP-35508):Better to improve context prompt for JDBC.

* fix(TUP-35508):Better to improve context prompt for JDBC.

* fix(TUP-35508):Better to improve context prompt for JDBC.
2022-06-14 15:08:33 +08:00
wang wei
537bd1b73a fix(TCOMP-2122): [JDBC TCK]: can't get user defined schema info in tck runtime in studio when no data outut line 2022-06-14 13:56:21 +08:00
Laurent BOURGEOIS
2fcf4be1e2 fix(TBD-13581):tHiveConnection doesn't support spark 3.1.x dataproc 2.0.x (#7646) 2022-06-10 14:33:51 +02:00
Jane Ding
86ee3f4ad1 feat(TUP-33085):Add Icon(s) to open Help (#7571) (#7643)
* feat(TUP-33085):Add Icon(s) to open Help
https://jira.talendforge.org/browse/TUP-33085

* feat(TUP-33085):Add Icon(s) to open Help
https://jira.talendforge.org/browse/TUP-33085
fix(TUP-35782):[bug] button 'Online help' can't work for some TCK
components
https://jira.talendforge.org/browse/TUP-35782
2022-06-10 17:25:55 +08:00
Xuwei ZHU
106c010d53 Add localized files (#7642)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-06-09 19:08:34 +08:00
Alexiane Yvonet
80917277a5 Add localized files (#7640)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-06-09 19:08:21 +08:00
Dmytro Sylaiev
f0fe150ec0 fix(TDI-47951): Don't set null passw for sso auth (#7580)
* fix(TDI-47951): Don't set null passw for sso auth

* fix(TDI-47951): Handle possible NPE

* For tRedshiftUnload and tRedshiftBE/OBE
2022-06-09 13:44:22 +03:00
Dmytro Grygorenko
46523080d3 fix(TDI-47935): bump "nimbus-jose-jwt" lib to fix CVE. (#7522) 2022-06-09 10:32:59 +03:00
jiezhang-tlnd
68b5e9e7c4 export dataset need with datastore (#7579) (#7639)
* export dataset need with datastore

* issue is that deleting datastore but dataset not be deleted

* fix selection issue on export wizard

* fomat code

* format code

* improve performance

* improve performance by adding objectType

* improve code and handle import issue

* code format
2022-06-09 10:58:42 +08:00
Chao MENG
c3b1df17a0 item(TUP-35556): Handle demo feedbacks for update from TMC (#7595)
https://jira.talendforge.org/browse/TUP-35556
2022-06-09 10:50:06 +08:00
msjian
d7af0fc449 Revert "fix(TDQ-20476): fix match analysis run get error (#7622)" (#7633)
This reverts commit fd2c8b365b.
2022-06-08 16:21:22 +08:00
jiezhang-tlnd
c2408e4223 fix(TUP-35683)doc use job for route, joblet for routelet (#7630) (#7636)
https://jira.talendforge.org/browse/TUP-35683
2022-06-08 15:35:19 +08:00
sbieliaievl
2ec3561107 fix(APPINT-24774) - POST/PUT operations when importing API in tRESTRequest should declare a body parameter (#7518)
* fix(APPINT-24774) - POST/PUT operations when importing API in
tRESTRequest should declare a body parameter

* fix(APPINT-24774) - POST/PUT operations when importing API in
tRESTRequest should declare a body parameter
2022-06-08 08:46:55 +03:00
jiezhang-tlnd
acc3c15744 feat(TUP-34931)Support Sybase 17 (#7620) (#7632) 2022-06-08 10:59:30 +08:00
msjian
fd2c8b365b fix(TDQ-20476): fix match analysis run get error (#7622) 2022-06-07 18:59:12 +08:00
wang wei
cb369968e9 fix(TDI-48037): CVE: org.postgresql:postgresql:42.2.14 (#7573) (#7629) 2022-06-07 17:57:32 +08:00
jzhangbj
70f018b26f Add localized files (#7611)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-06-06 09:32:59 +08:00
tsasada-talend
f6a4d9022f Add localized files (#7610)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-06-06 09:31:59 +08:00
Alexiane Yvonet
616815d794 Add localized files (#7609)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-06-06 09:30:39 +08:00
pyzhou
8767e96bcd fix(TDI-48069):tRedshiftBulkExec wrong version (#7608) 2022-06-02 19:39:27 +08:00
Jill Yan
26dcedadef fix compile error (#7605)
Co-authored-by: jillyan <yan955599@gmail.com>
2022-06-02 11:00:48 +08:00
hcyi
58a39c8fb8 feat(TUP-34854):Setup custom JKS for signature by System Property (#7382)
* feat(TUP-34854):Setup custom JKS for signature by System Property

* feat(TUP-34854):improve for Setup custom JKS for signature by System
Property

* feat(TUP-34855):Setup custom JKS for job signature from GUI.

* feat(TUP-34855):Setup custom JKS for job signature from GUI.

* feat(TUP-34855):Setup custom JKS for job signature from GUI.
2022-06-02 10:58:37 +08:00
Chao MENG
7cf738b911 Cmeng/fix/tup 35585 zero install tck (#7568)
* fix(TUP-35585): Zero install fail to install custom tck component in
801.
https://jira.talendforge.org/browse/TUP-35585
2022-06-02 09:55:26 +08:00
Jill Yan
42b7a46dee APPINT-34618 add mssql driver to import-package if used in child job (#7587)
Co-authored-by: jillyan <yan955599@gmail.com>
2022-06-02 09:10:13 +08:00
Jane Ding
70314bd2b4 feat(TUP-35301):[JDBC TCK]: Support MODULE_LIST field for studio tck (#7517) (#7599)
* feat(TUP-35301):[JDBC TCK]: Support MODULE_LIST field for studio tck
plugin
https://jira.talendforge.org/browse/TUP-35301

* feat(TUP-35301):[JDBC TCK]: Support MODULE_LIST field for studio tck
plugin
https://jira.talendforge.org/browse/TUP-35301

* feat(TUP-35301):[JDBC TCK]: Support MODULE_LIST field for studio tck
plugin
https://jira.talendforge.org/browse/TUP-35301

* feat(TUP-35301):[JDBC TCK]: Support MODULE_LIST field for studio tck
plugin
https://jira.talendforge.org/browse/TUP-35301
fix(TUP-35716):[bug] new JDBC driver column will be always set to mvn
after reopen wizard
https://jira.talendforge.org/browse/TUP-35716
driver table contains path=mvn:xxxx/xxxx

* feat(TUP-35301):[JDBC TCK]: Support MODULE_LIST field for studio tck
plugin
https://jira.talendforge.org/browse/TUP-35301
2022-06-01 16:22:23 +08:00
zshen-talend
d42dc6e42e test to avoid project name lowercase (#7598) 2022-06-01 16:14:15 +08:00
wang wei
b824673188 fix(TDI-47803): Compile error after applying Patch_20220107_R2022-01_v1-7.3.1 (#7474) (#7597) 2022-06-01 11:42:11 +08:00
jiezhang-tlnd
c34725bbef feat(TUP-28853)tRunjob is ok, need handle joblet (#7484) (#7594)
* feat(TUP-28853)tRunjob is ok, need handle joblet

* generation document is ok from standard process

* format code

* reduce the same item to improve performance

* Remove duplicates to improve performance and fix preview picture missing
issue

* handle latest version on tRunjob

* handle version for joblet

* hanlde version

* improve performance with VersionList

* handle BD process part

* handle BD process

* handle route process

* code formate

* format code
2022-05-31 17:41:50 +08:00
Dmytro Sylaiev
f517e56b83 feat(TDI-44884): Correct missing label change (#7593) 2022-05-31 11:52:32 +03:00
Oleksandr Zhelezniak
9ed98d4f9d fix(TDI-47895): oracle input float length (#7545)
* force to use 38 as length for NUMBER (FLOAT) in oracle when getPrecision returns value bigger than 38
* getPrecision for Float Oracle returns 126.
* It's expected binary precision for FLOAT Oracle type. The decimal precision for it is 38.
2022-05-31 11:03:01 +03:00
bhe-talendbj
7a9ff69e14 chore(TUP-35685): upgrade database driver version (#7576) (#7592) 2022-05-31 14:35:00 +08:00
Chao MENG
8acb79fbd4 fix(TUP-35633): 'Use local Update settings' checkbox should not be (#7577)
fix(TUP-35633): 'Use local Update settings' checkbox should not be displayed in studio update settings when TMC update config is not set
for the project.
https://jira.talendforge.org/browse/TUP-35633
2022-05-31 10:20:33 +08:00
Oleksandr Zhelezniak
04b7d3251e fix(TDI-45946): greenplum mapping (#7514)
* add mapping type in XML for input and output
* migration task, replace mapping type from postgres_id to greenplum_id
2022-05-30 16:09:33 +03:00
Alexiane Yvonet
e64b5d2e23 Add localized files (#7588)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-05-30 15:41:58 +08:00
jzhangbj
ed74850972 Add localized files (#7583)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-05-30 10:12:14 +08:00
tsasada-talend
caed4cf474 Add localized files (#7582)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-05-30 09:41:38 +08:00
sponomarova
971e661a0e feat(TBD-13581): Dataproc 2.x support for di jobs (#7488) (#7537) 2022-05-27 13:29:11 +03:00
Zhiwei Xue
8a87f281f9 fix(TUP-35613):Can't display the dataset settings of AzureAdlsGen2 (#7581)
metadata wizard with CSV format in default GUI size
2022-05-27 10:35:32 +08:00
Chao MENG
c54b8ed321 fix(TUP-35608): Stat and Logs screen - Database connection dropdown incorrect (#7559)
* fix(TUP-35608): Stat and Logs screen - Database connection dropdown
incorrect
https://jira.talendforge.org/browse/TUP-35608
2022-05-27 09:52:15 +08:00
hcyi
62301ff268 fix(TUP-35326):[JDBC TCK]: can't pass table value to runtime when use existed connection (#7506)
* fix(TUP-35326):[JDBC TCK]: can't pass table value to runtime when use
existed connection

* fix(TUP-35326):[JDBC TCK]: can't pass table value to runtime when use
existed connection
2022-05-26 15:29:09 +08:00
Zhiwei Xue
1f2d1e0820 fix(TUP-31233):Routine pom is not updated after installed the required (#7548)
* fix(TUP-31233):Routine pom is not updated after installed the required
jar of user routine

* fix(TUP-31233):Routine pom is not updated after installed the required
jar of user routine

* fix(TUP-31233):Routine pom is not updated after installed the required
jar of user routine
2022-05-25 18:05:03 +08:00
hzhao-talendbj
9eb840b026 Revert "chore(TUP-34757): Add a getOriginalName() in IConnection (#7301)" (#7563)
This reverts commit 5c9a80937a.
2022-05-25 17:28:19 +08:00
Dmytro Sylaiev
bc5d868c62 feat(TDI-44884): Change the label of Sybase SA (#7558) 2022-05-24 15:53:43 +03:00
wang wei
72c11045a9 fix(TDI-47966): [JDBC TCK]: We have a input/mapper which is defined by Emitter, that don't works for using existed connection(#7511) (#7561) 2022-05-23 14:23:24 +08:00
wang wei
cc84dfffb6 fix(TDI-47958): [JDBC TCK]: support the component like tjdbcrow which have 3 modes in studio(#7501) (#7562) 2022-05-23 14:23:16 +08:00
hzhao-talendbj
249f91b6de fix(TUP-28879): JDBC metadata`s modification cannot be porpagated to (#7508) (#7555)
components
2022-05-21 13:55:22 +08:00
Chao MENG
8c1a8995d9 fix(TUP-35616): Problems on the \ processing on the password field after TUP-32821 (#7551)
* fix(TUP-35616): Problems on the \ processing on the password field after
TUP-32821
https://jira.talendforge.org/browse/TUP-35616

* Update PasswordDialog.java

* fix(TUP-35616): Problems on the \ processing on the password field after
TUP-32821
https://jira.talendforge.org/browse/TUP-35616
2022-05-19 19:25:07 +08:00
tsasada-talend
7398af81c7 Add localized files (#7550)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-05-19 17:42:57 +08:00
Alexiane Yvonet
6a546b134a Add localized files (#7549)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-05-19 17:41:32 +08:00
Dmytro Ochkas
49b47b16a8 fix(TDI-47932): EncryptClientSecretMicrosoftCRMMigrationTask returns wrong value (#7491)
Added modification check
2022-05-19 11:08:20 +03:00
Dmytro Ochkas
9cc26cd33a fix(TDI-47879): tExtractJSONFields NB_LINE not updated
Removed destination property from tExtractJSONFields. Created migration to remove the property from .item file
2022-05-19 10:39:22 +03:00
Jane Ding
e418bd6510 fix(TUP-33119):SuggestionValues.Item label is received at runtime (#7546)
* Revert "fix(TUP-33119):SuggestionValues.Item label is received at runtime (#7320)" (#7533)

This reverts commit b521f4208a.

* fix(TUP-33119):SuggestionValues.Item label is received at runtime (#7535)

instead of id when used inside table
https://jira.talendforge.org/browse/TUP-33119
2022-05-19 09:50:23 +08:00
pyzhou
2734f706d5 feat(TDI-47152):tFileFetch upgrade v4 (#7403)
* feat(TDI-47152):tFileFetch upgrade v4

* feat(TDI-47687):promote jar imports

* feat(TDI-47687):adjust show if

* fix(TDI-47152):  compile error

* fix(TDI-47152):  read cookie

* bad content type

* error message

* compile error
2022-05-18 14:41:45 +08:00
bhe-talendbj
4c96ffc367 fix(TUP-35590): update slf4j (#7540) 2022-05-17 18:04:24 +08:00
Oleksandr Zhelezniak
66fbcde8d2 fix(TDI-46054): support java11 mscrm onprem 2015 (#7490)
* add jaxb-api-2.3.1
* add jaxws-api-2.3.1
* add javax.annotation-api-1.3.2
* align slf4j dependencies to 1.7.29
2022-05-17 10:42:33 +03:00
Chao MENG
be625ab3ee chore: update message (#7528) 2022-05-13 18:08:06 +08:00
jzhangbj
e4958bb494 Add localized files (#7525)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-05-12 20:40:35 +08:00
tsasada-talend
487dcf08d6 Add localized files (#7524)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-05-12 20:40:15 +08:00
Chao MENG
0e3b5eb9d9 Cmeng/feat/tup 33928 tmc update (#7463)
* feat(TUP-33928): Controlled Studio Updates from TMC
https://jira.talendforge.org/browse/TUP-33928
2022-05-12 18:57:29 +08:00
Chao MENG
123ce87273 feat(TUP-32821): Credential property value in json format in tck framework (#7451)
* feat(TUP-32821): Credential property value in json format in tck
framework
https://jira.talendforge.org/browse/TUP-32821

* feat(TUP-32821): Credential property value in json format in tck
framework
https://jira.talendforge.org/browse/TUP-32821

* fix(TUP-35529): MarkLogic password display not properly
https://jira.talendforge.org/browse/TUP-35529
2022-05-12 18:38:09 +08:00
Chao MENG
b32f6ec697 fix(TUP-35400): Save snowflake metadata failed when selected table name (#7509)
start with number
https://jira.talendforge.org/browse/TUP-35400
2022-05-12 18:27:16 +08:00
hcyi
35171da7d9 feat(TUP-34889):Support to prompt Context on Metadata Connection (#7473)
* feat(TUP-34889):Support to prompt Context on Metadata Connection

* feat(TUP-34889):improve for Support to prompt Context on Metadata
Connection

* feat(TUP-34889):improve for Support to prompt Context on Metadata

* feat(TUP-34889):fix bug TUP-35370 and TUP-35372

* feat(TUP-34889):fix bug TUP-35486

* feat(TUP-34889):fix bug TUP-35503 and TUP-35504

* feat(TUP-34889):fix bug TUP-35503 and TUP-35504
2022-05-12 17:12:39 +08:00
hcyi
04efc3ada0 Hcyi/tup 32889 master (#7306)
* fix(TUP-32889):Credential value with double quotes in tck framework

* fix(TUP-32889):add junits

* fix(TUP-32889):Credential value with double quotes in tck framework
2022-05-12 15:18:55 +08:00
Jane Ding
bb67871008 fix(TUP-33119):SuggestionValues.Item label is received at runtime (#7320) (#7523)
* fix(TUP-33119):SuggestionValues.Item label is received at runtime
instead of id when used inside table
https://jira.talendforge.org/browse/TUP-33119

* fix(TUP-33119):SuggestionValues.Item label is received at runtime
instead of id when used inside table
https://jira.talendforge.org/browse/TUP-33119

* fix(TUP-33119):SuggestionValues.Item label is received at runtime
instead of id when used inside table
https://jira.talendforge.org/browse/TUP-33119

* fix(TUP-33119):SuggestionValues.Item label is received at runtime
instead of id when used inside table
https://jira.talendforge.org/browse/TUP-33119

* fix(TUP-33119):SuggestionValues.Item label is received at runtime
instead of id when used inside table
https://jira.talendforge.org/browse/TUP-33119

* fix(TUP-33119):SuggestionValues.Item label is received at runtime
instead of id when used inside table
https://jira.talendforge.org/browse/TUP-33119
2022-05-12 09:41:06 +08:00
Wei Hua
6af9c4ee98 APPINT-34569 [801]Job including tRESTand tRESTClient deployed to runtime with error: com.sun.jersey.api.client.ClientHandlerException (#7515) 2022-05-11 14:47:56 +02:00
apoltavtsev
13e096e752 fix(APPINT-34578) MDM components causing 'java.lang.ClassNotFoundException' (#7520) 2022-05-11 11:56:58 +02:00
hcyi
47268fad44 feat(TUP-28953):move change to other util class . (#7512) 2022-05-11 11:31:27 +08:00
Oleksandr Zhelezniak
8115399b97 chore(TDI-47688): bump jackson (#7383)
* jackson to 2.13.2
* jackson-databind to  2.13.2.2
2022-05-09 14:55:52 +03:00
Oleksandr Zhelezniak
721b3de01e chore(TDI-47688): bump jackson (#7386) 2022-05-09 14:38:58 +03:00
Olha V
f6ab592562 fix(TDI-47519): Kafka ssl conflict with schema registry (#7325)
* fix(TDI-47519): Kafka ssl conflict with schema registry

* add migration task

* fix(TDI-47519): Kafka ssl conflict with schema registry

* fix schema registry ssl configuration for empty kafka tSetKeystore

* fix(TDI-47519): Kafka ssl conflict with schema registry

* add null check for schema registry use ssl property

* fix(TDI-47519): Kafka ssl conflict with schema registry

* fix migration for empty tSetKeystore in existing connection

* fix(TDI-47519): Kafka ssl conflict with schema registry

* add null check for https settings
* clean up code

* fix(TDI-47519): Kafka ssl conflict with schema registry

* fix migrated status
2022-05-09 13:18:00 +03:00
Jane Ding
2751229fbe fix(TUP-35252):Additional parameter can not update to the job after (#7445) (#7503)
* fix(TUP-35252):Additional parameter can not update to the job after
modified.
https://jira.talendforge.org/browse/TUP-35252

* fix(TUP-35252):Additional parameter can not update to the job after
modified.
https://jira.talendforge.org/browse/TUP-35252
2022-05-07 10:48:49 +08:00
Dmytro Grygorenko
e8f5139248 feat(TDI-45870): checkbox in tWriteJSONField to avoid use of scientific notation for float values. (#7183)
* feat(TDI-45870): checkbox in tWriteJSONField to avoid use of Scientific notation for float values.

* feat(TDI-45870): change default action for checkbox.

* feat(TDI-45870): migration task.
2022-05-06 15:21:52 +03:00
hcyi
a5c0992356 fix(TUP-35248):Context password exposed when hovering over context on (#7500)
Talend 8
2022-05-06 15:56:32 +08:00
tsasada-talend
708091be96 Add localized files (#7496)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-05-05 16:33:15 +08:00
Alexiane Yvonet
4a43182f39 Add localized files (#7493)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-05-05 16:27:16 +08:00
hcyi
3a31923c97 feat(TUP-28953):Spark Big Data/streaming job are missing "open another version" action. (#7421)
* feat(TUP-28953):Spark Big Data/streaming job are missing "open another
version" action.

* feat(TUP-28953):add junits
2022-05-05 14:03:14 +08:00
wang wei
cd69df6ca7 fix(TDI-47819): tJDBCInput component results in error with Dynamic schema inTalend latest versions. (#7426) (#7492) 2022-05-05 13:42:07 +08:00
Dmytro Grygorenko
ef25314bba feat(TDI-45629): add dynamic schema support for tFileOutputJSON. (#7147)
* feat(TDI-45629): add dynamic schema support for tFileOutputJSON.

* feat(TDI-45629): changes after code review.

* feat(TDI-45629): some more changes.
2022-04-29 17:13:36 +03:00
jzhangbj
d1214eddb3 Add localized files (#7482)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-04-28 18:05:23 +08:00
tsasada-talend
829ba7a572 Add localized files (#7481)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-04-28 18:04:57 +08:00
pyzhou
d9f1c04b07 feat(TDI-43829): Add support for zip4j 2.x libraries to tFileArchive/… (#7423)
* feat(TDI-43829): Add support for zip4j 2.x libraries to tFileArchive/unArchive components

* fix(TDI-43829): move IntegrityUtil.java
2022-04-28 16:44:17 +08:00
Alexiane Yvonet
b62353969a Add localized files (#7476)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-04-28 15:38:06 +08:00
hcyi
c4a60de7dd fix(TUP-35078):tJDBCSCDELT does not work correctly on Snowflake. (#7395)
* fix(TUP-35078):tJDBCSCDELT does not work correctly on Snowflake.

* fix(TUP-35078):add junits
2022-04-25 17:19:15 +08:00
yyin
b8bd877a97 Feat TDQ-20141 add param algoVersion (#7430) 2022-04-22 14:38:56 +08:00
jzhangbj
32cbc40ffc Add localized files (#7467)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-04-22 09:53:29 +08:00
Alexiane Yvonet
9b530b68b3 Add localized files (#7466)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-04-22 09:50:22 +08:00
Tetiana Meronyk
f8790d0597 fix(TDI-47257): tELTOracleOutput does not print messages during execution unlike other tELT***Output components (#7387) 2022-04-22 01:48:21 +03:00
sponomarova
843cccff2d fix(TBD-13798): CVE: Replace log4j1.x by reload4j for org.talend.libraries.hadoop.mapr.5.0.0 (#7449) (#7462) 2022-04-21 15:26:11 +03:00
AlixMetivier
249d40f4be fix(TBD-13517): set default value as 3.1 for univ (#7465) (#7468) 2022-04-21 14:22:06 +02:00
vyu-talend
93a5a1842d fix(TDI-46584):modify limit label. (#7460) 2022-04-20 18:10:50 +08:00
hzhao-talendbj
4465b7539e remove @test to fix tuj build failed (#7456) 2022-04-20 17:49:21 +08:00
Jane Ding
05fe5ebd78 fix(TUP-35238):Drag and drop Redshift metadata to list components lost (#7442)
some components
https://jira.talendforge.org/browse/TUP-35238
2022-04-19 17:42:34 +08:00
Chao MENG
35ba1c7dec chore: fix swtbot issue (#7446) 2022-04-19 11:12:59 +08:00
Dmytro Sylaiev
cd025ab26c fix(TDI-47802): Fix short strings as Clobs (#7425)
* Add warning for long strings as varchar
2022-04-18 15:31:59 +03:00
bhe-talendbj
96823a247b fix(TUP-35191): fix java path (#7394) (#7427)
* fix(TUP-35191): fix java path

* fix(TUP-35191): fix java path

* fix(TUP-35191): fix java path

* fix(TUP-35191): fix java path

* fix(TUP-35191): add junit

* fix(TUP-35191): add junit

* fix(TUP-35191): add junit

* fix(TUP-35191): add junit

* fix(TUP-35191): update junit package

* fix(TUP-35191): find java instead of guess

* fix(TUP-35191): find java instead of guess
2022-04-18 14:19:13 +08:00
Laurent BOURGEOIS
d4ef464d10 feat(TBD-13522):CDE - GA (#7358) (#7440) 2022-04-15 21:57:03 +03:00
Dmytro Ochkas
5629a19ec1 fix(TDI-47539): MSCRM Application secret as password (#7432)
Update migration task
2022-04-15 12:14:48 +03:00
Jane Ding
5bc4f7e536 feat(TUP-35069):Upgrade Redshift driver to v2.x (#7436)
* feat(TUP-35069):Upgrade Redshift driver to v2.x (#7433)

https://jira.talendforge.org/browse/TUP-35069

* feat(TUP-35069):Upgrade Redshift driver to v2.x (#7411)

https://jira.talendforge.org/browse/TUP-35069
2022-04-15 15:49:37 +08:00
Jane Ding
de34ef2e0f fix(TUP-35238):Drag and drop Redshift metadata to list components lost (#7419) (#7435)
* fix(TUP-35238):Drag and drop Redshift metadata to list components lost
some components
https://jira.talendforge.org/browse/TUP-35238

* fix(TUP-35238):Drag and drop Redshift metadata to list components lost
some components
https://jira.talendforge.org/browse/TUP-35238
2022-04-15 15:47:04 +08:00
pyzhou
513a0026e9 feat(TDI-47263):upgrade redshift driver 2.0 (#7356) 2022-04-14 17:54:30 +08:00
jzhangbj
42e24269e7 Add localized files (#7431)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-04-14 16:30:05 +08:00
tsasada-talend
7da74ee9ce Add localized files (#7429)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-04-14 16:08:14 +08:00
Jane Ding
92a8bae40d fix(TUP-34716):can't get the right (#7346)
* fix(TUP-34716):can't get the right
"ACTIVE_DATABASE_DELIMITED_IDENTIFIERS" property value in tELTMap in
javajet
https://jira.talendforge.org/browse/TUP-34716

* fix(TUP-34716):can't get the right
"ACTIVE_DATABASE_DELIMITED_IDENTIFIERS" property value in tELTMap in
javajet
https://jira.talendforge.org/browse/TUP-34716
2022-04-13 00:48:09 +08:00
wang wei
8dc29d227c fix(TDI-47496): Column names in a main query are not enclosed when enabling "Delimited identifiers" (#7198) 2022-04-12 18:11:32 +08:00
vyu-talend
fc3ccf48fd feat(TDI-46111):upgrade teradata jdbc driver to 17. (#7376) (#7420) 2022-04-12 14:50:10 +08:00
pyzhou
065859a00a feat(TDI-47687):tScp reuse session (#7408)
* feat(TDI-47687):tScp reuse session

* feat(TDI-47687): tSCPFileList

* feat(TDI-47687): tSCPFileList compile error
2022-04-12 11:44:45 +08:00
hcyi
2c20ddcf20 feat(TUP-34849):missing a change for the d&d (#7415) 2022-04-12 09:39:46 +08:00
vyu-talend
8cef3416ca fix(TDI-46584): tServiceNowInput Limit disable option in Advanced settings not working (#6717) (#7413)
* fix(TDI-46584): tServiceNowInput Limit disable option in Advanced
settings not working

* fix something

* fix more

* fix(TDI-46584):fix the job won't stop issue.

* fix(TDI-46584):fix always reading-all-records issue.

Co-authored-by: vyu <vyu@talend.com>

Co-authored-by: wang wei <wwang@talend.com>
2022-04-11 17:33:46 +08:00
Tetiana Meronyk
36cda8c80f fix(TDI-47133): the log "closing the connection" in tCreateTable is not right (#7360) 2022-04-10 15:41:56 +03:00
Dmytro Ochkas
fee8c502a6 chore(TDI-47539): moved EncryptClientSecretMicrosoftCRMMigrationTask.java to correct directory (#7409) 2022-04-08 15:46:40 +03:00
jzhangbj
36d4eaa32b Add localized files (#7405)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-04-08 09:41:59 +08:00
tsasada-talend
aff0f14066 Add localized files (#7398)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-04-07 17:32:33 +08:00
Chao MENG
223b173995 fix(TUP-35034): CI - stop the build if custom component is missing (#7400)
https://jira.talendforge.org/browse/TUP-35034
2022-04-07 16:34:44 +08:00
Alexiane Yvonet
57c80b2474 Add localized files (#7396)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-04-07 15:51:38 +08:00
Dmytro Ochkas
0098757eea fix(TDI-47539): tMicrosoftCRM change application secret as a password (#7324)
Changed field type and refactored code so that 2 passwords didn't conflict. Created Migration task to encrypt client secret field
2022-04-06 15:46:40 +03:00
vyu-talend
abe8279842 chore(TDI-47404):bump cxf version to 3.4.4 (#7313) (#7391)
* chore(TDI-47404):bump cxf version to 3.4.4

* fix(TDI-47404):delete the codes causing error.

* chore(TDI-47404):bump cxf in talend ws.
2022-04-06 16:07:20 +08:00
sbliu
75eef3b4f4 fix(TUP-27413) add junit (#7378) 2022-04-06 09:44:07 +08:00
clesaec
572d3f7442 TDI-47287 : change ftpput (#7389) 2022-04-04 16:36:20 +02:00
Dmytro Grygorenko
07b105e021 fix(TDI-47725): increment nb_line counter for "on duplicate" output action. (#7351) 2022-04-04 16:34:54 +03:00
Chao MENG
f1252fb198 fix(TUP-35034): CI - stop the build if custom component is missing (#7381)
https://jira.talendforge.org/browse/TUP-35034
2022-04-01 19:14:41 +08:00
wang wei
7022e89faa fix(TDI-47536): CVE : logback (#7226) 2022-04-01 15:42:36 +08:00
jzhangbj
6be7f102dd Add localized files (#7368)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-04-01 15:42:01 +08:00
tsasada-talend
59bd368ae4 Add localized files (#7364)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-04-01 15:41:27 +08:00
Alexiane Yvonet
a9b8d1e085 Add localized files (#7363)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-04-01 15:40:15 +08:00
jiezhang-tlnd
2ea31df991 fix(TUP-34954)CVE: Replace log4j1.x by reload4j (#7329) (#7369)
* fix(TUP-34954)CVE: Replace log4j1.x by reload4j

* fix(TUP-34954)CVE: Replace log4j1.x by reload4j

* update junits

* exclude log4j from slf4j-log4j12
2022-04-01 15:37:16 +08:00
wang wei
e44378bd76 fix(TDI-47633): CVE: Replace log4j1.x by reload4j or upgrade to log4j2 (#7370) 2022-04-01 15:18:06 +08:00
sbliu
419adb67e9 fix(TUP-27413) SQL Builder: Graphical Editor is Empty for a specific table. (#7336) 2022-04-01 09:41:01 +08:00
Xilai Dai
6ec03713a3 fix(APPINT-34443) add missing import packages for tRESTClient (#7362) 2022-03-31 14:27:15 +08:00
Chao MENG
2d9904378b Cmeng/fix/tup 35034 err on component missing (#7326)
* fix(TUP-35034): CI - stop the build if custom component is missing
https://jira.talendforge.org/browse/TUP-35034

* fix(TUP-35034): CI - stop the build if custom component is missing
https://jira.talendforge.org/browse/TUP-35034

* fix(TUP-35034): CI - stop the build if custom component is missing
https://jira.talendforge.org/browse/TUP-35034

* fix(TUP-35034): CI - stop the build if custom component is missing
https://jira.talendforge.org/browse/TUP-35034
2022-03-30 16:09:19 +08:00
Dmytro Grygorenko
e541c3a75d fix(TDI-47670): fix Xpath "count" function for unformatted XML file. (#7333)
* fix(TDI-47670): use asXML() method instead of getText().

* fix(TDI-47670): use getStringValue() method instead.

* fix(TDI-47670): use isEmpty() method.
2022-03-29 16:13:28 +03:00
Dmytro Grygorenko
feaf9e516b fix(TDI-47532): bump XercesImpl library to 2.12.2 (#7321) 2022-03-28 16:21:59 +03:00
Dmytro Ochkas
3aa3e21582 fix(TDI-47560): tSybaseOutput BigDecimal jdbc inconsistencies (#7305)
Set BigDecimal for each Sybase version. Add DBVersion field to Manager class and remove it from OracleManager
2022-03-28 11:57:37 +03:00
wang wei
a640f1a0e3 fix(TDI-47154): no need to generate label code for joblet case if not change label(#7345) 2022-03-28 15:10:09 +08:00
wang wei
36f228c840 fix(TDI-47589): "Write Excel 2007 format" leads to tFileOutputExcel poor performance(#7261) 2022-03-28 14:26:30 +08:00
Oleksandr Zhelezniak
2b40550ff4 fix(TDI-47651): bump Redshift driver to 1.2.55.1083 (#7341) 2022-03-25 11:46:53 +02:00
jzhangbj
96a75df148 Add localized files (#7343)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-03-25 15:38:52 +08:00
Alexiane Yvonet
ed960cbf8a Add localized files (#7338)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-03-24 17:10:35 +08:00
tsasada-talend
83fa4543c4 Add localized files (#7337)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-03-24 17:08:36 +08:00
jiezhang-tlnd
80da90a14f chore(TUP-34977)Help links in Studio (#7317) 2022-03-21 15:22:59 +08:00
pyzhou
4adc7f0354 fix(TDI-47223):CVE_axis2-kernel compile error (#7309)
* fix(TDI-47223):CVE_axis2-kernel compile error

* correct mvn path
2022-03-18 17:34:04 +08:00
Dmytro Grygorenko
57e9574e9d fix(TDI-47073): fix description for tBigQueryOutput. (#7314) 2022-03-18 10:07:37 +02:00
tsasada-talend
c30c1109e4 Add localized files (#7318)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-03-18 10:34:38 +08:00
Alexiane Yvonet
79472b4e32 Add localized files (#7319)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-03-18 10:32:12 +08:00
jzhao
2dfae00169 fix(TDI-47373):update IBM MQ client lib to 9.2.4.0 (#7281) (#7311) 2022-03-16 16:31:23 +08:00
Chao MENG
f4f1bf3fb6 fix(TUP-34378): Job could build out successfully if contains component which cannot be loaded (#7286)
* fix(TUP-34378): Job could build out successfully if contains component
which cannot be loaded
https://jira.talendforge.org/browse/TUP-34378
2022-03-16 16:19:36 +08:00
Emmanuel GALLOIS
8f5d517779 fix(TCOMP-2003): Maven dependency classifier considered as version in dependencies.txt by Studio (#7302)
* fix(TCOMP-2003): fix Mvn.toLocation in GAV parsing
2022-03-11 16:36:52 +01:00
hzhao-talendbj
5c9a80937a chore(TUP-34757): Add a getOriginalName() in IConnection (#7301)
* chore(TUP-34757): Add a getOriginalName() in IConnection

* chore(TUP-34757): Add a getOriginalName() in IConnection
2022-03-11 17:35:38 +08:00
pyzhou
2f3f5ee9b2 fix(TDI-47528):CVE mina-sshd (#7299)
upgrade talend-scp-helper version

compile error

compile error

compile error

compile error
2022-03-11 11:29:09 +08:00
wang wei
4f362f4423 fix(TDI-47154): send exception info for audit log (#6952) 2022-03-11 11:25:24 +08:00
chmyga
057c9d9276 feat(TDI-46441): add cassandra 4.0 support (#6703)
Co-authored-by: Dmytro Chmyga <dmytro.chmyga@globallogic.com>
Co-authored-by: Dmytro Sylaiev <dmytro.sylaiev@globallogic.com>
2022-03-10 18:45:48 +08:00
tsasada-talend
bb14c4fdaf Add localized files (#7298)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-03-10 18:36:25 +08:00
Alexiane Yvonet
29638dc7aa Add localized files (#7297)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-03-10 17:55:52 +08:00
Dmytro Sylaiev
72830bf1f7 fix(TDI-47452): Fix codegen for not valid xpath expression (#7175) 2022-03-10 11:49:39 +02:00
bhe-talendbj
5a28729481 feat(TUP-33809): check modulelist (#7209) (#7294)
* feat(TUP-33809): check modulelist

* feat(TUP-33809): get all sub jobs
2022-03-10 17:28:27 +08:00
Jane Ding
67508cca0d fix(TUP-28898):Drag Exasol connection to a job choose tDBOutput(Exasol) (#7260) (#7296)
* fix(TUP-28898):Drag Exasol connection to a job choose tDBOutput(Exasol)
not work as tExasolOutput
https://jira.talendforge.org/browse/TUP-28898

* fix(TUP-28898):Drag Exasol connection to a job choose tDBOutput(Exasol)
not work as tExasolOutput
https://jira.talendforge.org/browse/TUP-28898
2022-03-09 17:49:54 +08:00
Jane Ding
6d75380549 feat(TUP-33990):Pendo tracking for Studio integrations with API Designer (#7227) (#7295)
& API Tester
https://jira.talendforge.org/browse/TUP-33990
2022-03-09 17:48:49 +08:00
sbouyer
5b06de4df9 Add localized files (#7290)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-03-09 15:16:28 +08:00
pyzhou
48d1297a8b fix(TDI-45863): remove Input limit for tck reuse connection (#7283) 2022-03-09 09:20:51 +08:00
zshen-talend
7b5b26f325 Zshen/feat/tdq 20069 improve t data quality rules for patch2 (#7282) 2022-03-07 17:24:24 +08:00
wang wei
d866f8a853 fix(TDI-47230): close thread pool for spring boot case (#7272) (#7275) 2022-03-07 09:29:58 +08:00
pyzhou
17a2e919fc feat(TDI-47136):tcreateTable upgrade snowflake driver (#7242) 2022-03-04 17:57:03 +08:00
Chao MENG
d760cbd25e fix(TUP-30599): tMap drag and drop does not work seamlessly in Linux GUI (#7266)
as it does in Windows
https://jira.talendforge.org/browse/TUP-30599
2022-03-04 16:13:05 +08:00
Dmytro Grygorenko
7e6bab7819 fix(TDI-47485): update "protobuf-java" to 3.19.2 (#7187) 2022-03-04 11:04:03 +08:00
tsasada-talend
35a9fead7e Add localized files (#7276)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-03-04 08:25:10 +08:00
Alexiane Yvonet
2a67ced722 Add localized files (#7274)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-03-04 08:10:25 +08:00
tsasada-talend
576d7e63f9 Add localized files (#7240)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-03-03 18:22:33 +08:00
Alexiane Yvonet
7b9f8948df Add localized files (#7236)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-03-03 18:15:38 +08:00
kjwang
c5fd7d97d4 Kjwang/fix tup 32950 on ubuntu (#7265) (#7273)
* Fix TUP-32950 On Ubuntu 18.04.5 documentation comment is displayed as a
black box in Talend Studio designer tab
https://jira.talendforge.org/browse/TUP-32950
2022-03-03 17:10:44 +08:00
jiezhang-tlnd
8321757d44 fix(TUP-34609)Cannot retrieve Module Name in tSalesforceInput with (#7245)
* fix(TUP-34609)Cannot retrieve Module Name in tSalesforceInput with
password starting with double-quotes

* change condition
2022-03-02 18:31:48 +08:00
hcyi
9892e8a86d fix(TUP-34593):Cannot connect to Salesforce with password starting with double-quotes (#7243)
* fix(TUP-34593):Cannot connect to Salesforce with password starting with
double-quotes

* fix(TUP-34593):Cannot connect to Salesforce with password starting with
double-quotes

* fix(TUP-34593):add junits
2022-03-02 17:50:55 +08:00
Xilai Dai
afb2687746 fix(APPINT-33965) add the rhino dependencies into OSGi build of tRESTRequest (#7257) (#7271) 2022-03-02 16:35:32 +08:00
tsasada-talend
14c248bc10 Add localized files (#7231)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-03-01 17:18:47 +08:00
pyzhou
af0b7a2d3b fix(TDI-47223):CVE axis2-kernel 1.8.0 (#7153) (#7225)
* fix(TDI-47223):CVE axis2-kernel 1.8.0

* Other axis2 jar

* upgrade dependency

* correct compile error

* compile error
2022-03-01 17:15:58 +08:00
Dmytro Ochkas
84a5fa74db fix(TDI-46789): tMSSqlOutputBulkExec can't work with server on Linux … (#7142)
* fix(TDI-46789): tMSSqlOutputBulkExec can't work with server on Linux platform

Added new checkbox which enables/disables codepage

* fix(TDI-46789): tMSSqlOutputBulkExec can't work with server on Linux platform

Fixed formatting issues

* fix(TDI-46789): tMSSqlOutputBulkExec can't work with server on Linux platform

Fixed one more formatting issue

* fix(TDI-46789): tMSSqlOutputBulkExec can't work with server on Linux platform

Adjusted naming with tMssqlBulkExec component
2022-03-01 12:40:33 +08:00
Liu Xinquan
21f53c14c2 fix(TBD-13419) Class not found happen in spark job calling a standard… (#7163) (#7239) 2022-02-28 09:46:04 +01:00
wang wei
3c3ddcf4f3 fix(TDI-47230): use fixedthreadpool for TDM (#7258) 2022-02-28 15:00:24 +08:00
sbliu
0e63ab14c7 fix(TUP-34769) add junit (#7255) 2022-02-28 14:24:41 +08:00
wang wei
50a6c0096c fix(TDI-47230): avoid to create too many threads when loop with twritexmlfield/twritejsonfield (#7139) 2022-02-24 14:34:07 +08:00
sbliu
152e672b12 fix(TUP-34769) Error fields for Rejects get dropped from tSalesforceOutput after Sync Columns. (#7233) (#7234)
fix bug TUP-33497
2022-02-23 18:13:30 +08:00
apoltavtsev
5bff796d45 fix(APPINT-34330) Outdated build type conversion is removed 2022-02-23 08:55:48 +01:00
Dmytro Sylaiev
ecb8c2d693 feat(TDI-47211): Update active dir drivers for mssql (#7057)
* feat(TDI-47211): Update active dir drivers for mssql

* feat(TDI-47211): Fix the pb with component descriptor
2022-02-21 12:09:59 +02:00
Dmytro Grygorenko
e2ac795f4c fix(TDI-47524): replace non-dynamic column for PosgresqlOutput with dynamic schema. (#7222)
* fix(TDI-47524): replace non-dynamic column for PosgresqlOutput with dynamic schema.

* fix(TDI-47524): rearrange after code review.
2022-02-21 09:58:22 +02:00
wang wei
78d977871b fix(TDI-46642): Observability: connector_label is not correct (#7171) 2022-02-21 11:34:50 +08:00
Jane Ding
3bf8e16503 Revert "fix(TUP-28898):Drag Exasol connection to a job choose tDBOutput(Exasol) (#7023)" (#7217) (#7219)
This reverts commit 6b82e95328.
2022-02-18 18:21:04 +08:00
AlixMetivier
118731263c feat(TBD-12989): add databricks to universal plugins (#7143) (#7216)
* feat(TBD-12989): add databricks to universal plugins

* feat(TBD-12989): add databricks to universal plugin
2022-02-17 18:54:15 +01:00
ypiel
72232409b8 fix(TDI-46848): MSCRM OAuth + on-premise mscrm lib (#7158)
* fix(TDI-46848): MSCRM OAuth + on-premise mscrm lib

* fix(TDI-46848): mscrm client secret support in on-premise/oauth
2022-02-17 11:07:23 +01:00
kjwang
43ea3e1628 Revert "Fix TUP-32950 On Ubuntu 18.04.5 documentation comment is displayed as a (#7098) (#7152)" (#7213)
This reverts commit d6431794d7.
2022-02-17 17:43:22 +08:00
kjwang
b832982551 TUP-34156 UI is broken for TCK Table structures in 8.0.1 + nighty (#7204)
TUP-34156 UI is broken for TCK Table structures in 8.0.1 + nighty
https://jira.talendforge.org/browse/TUP-34156
2022-02-17 11:47:20 +08:00
Dmytro Ochkas
d35f3d2589 fix(TDI-47435): tPostgreSqlOutput 'Debug query mode' and 'Upsert' (#7167)
* Modified some DB templates so they initialize unresolved variable when dataAction is 'Upsert'
2022-02-16 19:10:22 +02:00
Dmytro Grygorenko
7d2f9c40eb fix(TDI-47344): update Apache Ant for tFileUnarchive. (#7184) 2022-02-16 16:14:25 +02:00
Dmytro Grygorenko
791ced6856 fix(TDI-47437): check for replaced column for Postgres Upsert action. (#7177) 2022-02-16 15:43:25 +02:00
Dmytro Ochkas
cbe2bb000d fix(TDI-47385): tMap error when tenary operator is used (#7188)
Add parentheses so that user don't add them manually
2022-02-16 15:33:56 +02:00
jzhao
3dba3ac322 fix(TDI-47375):tMicrosoftCRM components with compile error when using OnPremise 2011 (#7115) (#7159)
* fix(TDI-47375):tMicrosoftCRM components with compile error when using
OnPremise 2011

* fix(TDI-47375):class not found issue
2022-02-16 18:12:38 +08:00
Dmytro Ochkas
97502bfae4 fix(TDI-47436): tPostgreSqlOutput upsert and dynamic column (#7172)
* ON CONFLICT clause now contains not only dynamic columns but not dynamic ones as well
2022-02-14 12:28:15 +02:00
pyzhou
e4d56a9c76 fix(TDI-47396):tSCPGet doesn't always close session (#7135) 2022-02-14 17:52:04 +08:00
Jane Ding
2d8a6ad376 fix(TUP-28898):Drag Exasol connection to a job choose tDBOutput(Exasol) (#7020)
not work as tExasolOutput
https://jira.talendforge.org/browse/TUP-28898
2022-02-14 10:25:50 +08:00
sbouyer
d6faaab7d5 Add localized files (#7196)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-02-14 10:14:12 +08:00
tsasada-talend
77a502e480 Add localized files (#7194)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-02-14 10:13:42 +08:00
Alexiane Yvonet
f2980de168 Add localized files (#7192)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-02-14 10:13:19 +08:00
hzhao-talendbj
a999d64f4c fix(TUP-33639): Job which import by metedata bridge:NPE (#7141) (#7193)
* fix(TUP-33639): Job which import by metedata bridge:NPE when
check/uncheck "use project settings" in stats&logs

* fix(TUP-33639):   add junit

* fix(TUP-33639): add junit

* fix(TUP-33639): Job which import by metedata bridge:NPE
2022-02-11 14:22:16 +08:00
zyuan-talend
9173316f02 fix(TUP-34489):forward interpreter to child job in commandline. (#7190) 2022-02-10 14:06:49 +08:00
tsasada-talend
a080f9ff63 Add localized files (#7181)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-02-07 10:19:03 +08:00
Alexiane Yvonet
6f1190ee4d Add localized files (#7180)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-02-07 10:18:41 +08:00
Dmytro Ochkas
545b864bfd fix(TDI-35717): tOracleBulkExec's action on table still used when invisible (#7114)
Added additional if wrappers to the sections where data action is processed in tOracleBulkExec_begin.javajet and tOracleBulkExec_end.javajet. The wrappers check if .ctl file or manual .ctl code is used and if so no data action has to be processed
2022-01-28 11:45:36 +02:00
jiezhang-tlnd
eca54ac7ca fix(TUP-34575)Correction to messages.properties file (#7169)
* fix(TUP-34575)Correction to messages.properties file

* fix(TUP-34575)Correction to messages-properties file

* fix(TUP-34575)Correction to messages-properties file
2022-01-28 14:53:02 +08:00
tsasada-talend
4218e443c4 Add localized files (#7165)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-01-28 11:36:20 +08:00
Alexiane Yvonet
63a0a09d99 Add localized files (#7164)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-01-28 11:35:59 +08:00
Laurent BOURGEOIS
3e0973ff19 fix(TBD-13463):No FileSystem for scheme: HDFS on any EMR 5.29 job on Talend 8 (#7124) (#7161) 2022-01-27 09:44:45 +01:00
jiezhang-tlnd
5391b48920 fix(TUP-34281): Cleanup of old translation files (#7102) 2022-01-26 18:30:40 +08:00
wang wei
112625f8f7 fix(TDI-47395): tPostgresqlOutput cannot select Insert as Action on Data when disable the Log4j(#7136) 2022-01-26 15:18:21 +08:00
apoltavtsev
1732c6f9b5 feat(APPINT-32531) Make all DS/Route builds Java 11 and above compatible, design/build & run should work with different Java versions (#6960) 2022-01-25 17:10:48 +01:00
pyzhou
9e4f5bb1dc fix(TDI-47234):tXSLT cache source in memory (#7021) (#7072)
* fix(TDI-47234):tXSLT regression

* migration task

* correct migration task

* Correct ExecutionResult

* Correct Migration result
2022-01-24 14:36:09 +08:00
kjwang
d6431794d7 Fix TUP-32950 On Ubuntu 18.04.5 documentation comment is displayed as a (#7098) (#7152)
Fix TUP-32950 On Ubuntu 18.04.5 documentation comment is displayed as a black box in Talend Studio designer tab
https://jira.talendforge.org/browse/TUP-32950
2022-01-21 15:02:58 +08:00
zyuan-talend
7ba8c9a37a fix(TUP-27184):add junit test (#7144) 2022-01-21 11:07:11 +08:00
Wei Hua
13f391bc87 Hwei/bugfix/master/appint 33765 (#7137)
* APPINT-33765 [7.3.1 patch] ClassNotFoundException in runtime when DB connection (SQLServer) in joblet without using alias

* APPINT-33765 [7.3.1 patch] ClassNotFoundException in runtime when DB connection (SQLServer) in joblet without using alias
2022-01-21 10:31:00 +08:00
tsasada-talend
b5469fb531 Add localized files (#7149)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-01-20 18:32:02 +08:00
Alexiane Yvonet
31b8b5467c Add localized files (#7150)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-01-20 18:31:49 +08:00
Emmanuel GALLOIS
c6901ce17d feat(TCOMP-2045): Pass meta information about columns (#6892)
* feat(TCOMP-2045): fix quotes and escaping issues
* feat(TCOMP-2045): add import
2022-01-19 17:13:50 +01:00
tsasada-talend
a613d635d7 Add localized files (#7123)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-01-19 15:19:49 +08:00
zshen-talend
1deaf892c8 feat(TDQ-19814): clear the code let it call adjustPomGeneration only to (#7128)
avoid some TDM regression
2022-01-17 19:47:39 +08:00
Jill Yan
27540097e4 Revert "jill/fix/master/APPINT-33992 (#7070)" (#7126)
This reverts commit 19eca3dfec.
2022-01-17 12:10:28 +08:00
Zhiwei Xue
e7d0282538 fix(TUP-34469):fix comp cache path problem (#7119) 2022-01-14 23:37:27 +08:00
zyuan-talend
6541771b5c fix(TUP-27184):revert javajet change. (#7118) 2022-01-14 22:09:52 +08:00
zshen-talend
22a24f13be feat(TDQ-19814): create a new component for tDataQualityRules (#7093) 2022-01-13 18:19:27 +08:00
Jill Yan
3861eeaa7a APPINT-31044 (#7110)
Co-authored-by: jillyan <yan955599@gmail.com>
2022-01-13 10:57:00 +01:00
zyuan-talend
a54e0e72a3 fix(TUP-27184):escape label value for javajet. (#7111) (#7113) 2022-01-13 16:58:12 +08:00
Tetyana Meronyk
2c25ae3771 feat(TDI-46151): Filter data based on return value in subquery in source database before pushing it down to a tDBInput to execute (#6906)
feat(TDI-46151): Filter data based on return value in subquery in source database before pushing it down to a tDBInput to execute
2022-01-12 17:11:20 +02:00
5489 changed files with 11676 additions and 74958 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -48,6 +48,7 @@
<plugin id="org.talend.repository.localprovider.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.repository.metadata.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.repository.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.sqlbuilder.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.repository.view.di.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.repository.view.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.testutils" download-size="0" install-size="0" version="0.0.0" unpack="false"/>

View File

@@ -1,20 +0,0 @@
prefs.configuration.LINK_STYLE.AUTO=Auto
prefs.configuration.title=Map components preferences :
prefs.configuration.LINK_STYLE.LINE=Lines (fast)
prefs.configuration.LINK_STYLE.BEZIER_CURVE=Curves
prefs.configuration.LINK_STYLE=Default mapping links display as :
DraggingInfosPopup.draggingEntry=Dragging {0} entry.
DraggingInfosPopup.dropInvalid=\n<< Drop invalid >>\n
DraggingInfosPopup.draggingEntries=Dragging {0} entries.
DraggingInfosPopup.dropInvalidWithKey=\n<< Drop invalid >>\nPress both Shift and Ctrl keys to map one to one and overwrite
DraggingInfosPopup.overwriteMode=\ > Overwrite mode
DraggingInfosPopup.appendMode=\ > Append mode
DraggingInfosPopup.appendModeToOverwrite=\ > Append mode (Ctrl key to overwrite)
DraggingInfosPopup.insertAllSelectedEntries=\ > Insert all selected entries
DraggingInfosPopup.insertRemainingEntries=\ > Insert remaining entries
DraggingInfosPopup.eachSourceEntryExpressionToEachTargetExpression=> Each source entry expression to each target expression
DraggingInfosPopup.eachSourceEntryToEachTargetExpression=> Each source entry to each target expression
DraggingInfosPopup.allSourceEntriesExpressionToASingleOneTargetExpressionShiftKey=> All source entries expression to a single one target expression (Shift key to change mapping)
DraggingInfosPopup.allSourceEntriesExpressionToASingleOneTargetExpression=> All source entries expression to a single one target expression
DraggingInfosPopup.allSourceEntriesToASingleOneTargetExpressionShiftKey=> All source entries to a single one target expression (Shift key to change mapping)
DraggingInfosPopup.allSourceEntriesToASingleOneTargetExpression=> All source entries to a single one target expression

View File

@@ -6,7 +6,7 @@ prefs.configuration.LINK_STYLE.LINE=Lignes (rapide)
DraggingInfosPopup.draggingEntry=Glissement de {0} entr\u00E9e(s).
DraggingInfosPopup.dropInvalid=\n<< D\u00E9p\u00F4t impossible >>\n
DraggingInfosPopup.draggingEntries=Glissement de {0} entr\u00E9es.
DraggingInfosPopup.dropInvalidWithKey=\n<<D\u00E9p\u00F4t impossible>>\n : appuyez sur Maj et Ctrl pour mapper en un pour un et \u00E9craser
DraggingInfosPopup.dropInvalidWithKey=\n<< D\u00E9p\u00F4t impossible >>\nAppuyez sur Maj et Ctrl pour mapper en un pour un et \u00E9craser
DraggingInfosPopup.overwriteMode= > Mode \u00E9crasement
DraggingInfosPopup.appendMode= > Mode \u00E9criture \u00E0 la suite
DraggingInfosPopup.appendModeToOverwrite= > Mode \u00E9criture \u00E0 la suite (Ctrl pour \u00E9craser)

View File

@@ -6,7 +6,7 @@ prefs.configuration.LINK_STYLE.LINE=\u76F4\u7DDA\uFF08\u9AD8\u901F\uFF09
DraggingInfosPopup.draggingEntry={0}\u30A8\u30F3\u30C8\u30EA\u30FC\u3092\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u3044\u307E\u3059\u3002
DraggingInfosPopup.dropInvalid=\n<< \u7121\u52B9\u306A\u30C9\u30ED\u30C3\u30D7 >>\n
DraggingInfosPopup.draggingEntries={0}\u30A8\u30F3\u30C8\u30EA\u30FC\u3092\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u3044\u307E\u3059\u3002
DraggingInfosPopup.dropInvalidWithKey=\n<< \u7121\u52B9\u306A\u30C9\u30ED\u30C3\u30D7 >>\n\u4E00\u5BFE\u4E00\u30DE\u30C3\u30D4\u30F3\u30B0\u3057\u3001\u4E0A\u66F8\u304D\u3059\u308B\u5834\u5408\u306F\u3001Shift\u30AD\u30FC\u3068Ctrl\u30AD\u30FC\u3092\u540C\u6642\u306B\u62BC\u3057\u307E\u3059
DraggingInfosPopup.dropInvalidWithKey=\n<< \u7121\u52B9\u306A\u30C9\u30ED\u30C3\u30D7 >>\nShift\u30AD\u30FC\u3068Ctrl\u30AD\u30FC\u3092\u540C\u6642\u306B\u62BC\u3059\u3068\u30011\u5BFE1\u3067\u30DE\u30C3\u30D4\u30F3\u30B0\u3055\u308C\u3066\u4E0A\u66F8\u304D\u3055\u308C\u307E\u3059
DraggingInfosPopup.overwriteMode= > \u4E0A\u66F8\u304D\u30E2\u30FC\u30C9
DraggingInfosPopup.appendMode= > \u8FFD\u52A0\u30E2\u30FC\u30C9
DraggingInfosPopup.appendModeToOverwrite= > \u8FFD\u52A0\u30E2\u30FC\u30C9(\u4E0A\u66F8\u304D\u3059\u308B\u306B\u306F[Ctrl]\u30AD\u30FC)

View File

@@ -6,7 +6,7 @@ prefs.configuration.LINK_STYLE.LINE=\u76F4\u7EBF (\u5FEB)
DraggingInfosPopup.draggingEntry=\u62D6\u52A8 {0} \u6761\u76EE
DraggingInfosPopup.dropInvalid=\n<< \u65E0\u6548\u91CA\u653E >>\n
DraggingInfosPopup.draggingEntries=\u62D6\u52A8 {0} \u4E2A\u6761\u76EE\u3002
DraggingInfosPopup.dropInvalidWithKey=\n<<\u65E0\u6548\u653E\u7F6E>>\n\u6309\u4F4F Shift \u548C Ctrl \u952E\u4EE5\u8FDB\u884C\u4E00\u5BF9\u4E00\u6620\u5C04\u5E76\u6539\u5199
DraggingInfosPopup.dropInvalidWithKey=\n<< \u65E0\u6548\u653E\u7F6E >>\n\u6309\u4F4F Shift \u548C Ctrl \u952E\u4EE5\u8FDB\u884C\u4E00\u5BF9\u4E00\u6620\u5C04\u5E76\u6539\u5199
DraggingInfosPopup.overwriteMode= > \u91CD\u5199\u6A21\u5F0F
DraggingInfosPopup.appendMode= >\u9644\u52A0\u6A21\u5F0F
DraggingInfosPopup.appendModeToOverwrite= > \u8FFD\u52A0\u6A21\u5F0F (Ctrl \u952E\u6765\u6539\u5199)

View File

@@ -1,20 +0,0 @@
AlfrescoModelDialog.missingAspectDefinitions.msg=The chosen aspects refer to unknown Alfresco aspect(s) : ${0}.\nPlease provide the alfresco model files that define them.
AlfrescoModelDialog.modelTable.title=Title
AlfrescoModelDialog.availableAspects=Available Aspects
AlfrescoModelDialog.missingAspectDefinitions.title=Missing aspect definitions
AlfrescoOutputManager.schemaError.title=Error in schema
AlfrescoModelDialog.missingTypeDefinitions.msg=The chosen type refers to unknown Alfresco type(s) or aspect(s) : ${0}.\nPlease provide the alfresco model files that define them.
AlfrescoModelDialog.missingTypeDefinitions.title=Missing type definitions
AlfrescoModelDialog.add=Add...
AlfrescoOutputModelManager.errorReadingModel=Error reading Alfresco model file
AlfrescoModelDialog.aspects=Aspects
AlfrescoOutputManager.schemaError.msg=Please synchronize schema first
AlfrescoOutputModelManager.alreadyAdded=This model has already been added
AlfrescoModelDialog.removeModelFailed=Failed to remove model
AlfrescoOutputModelManager.prefixConflict=Unable to add the model, prefix conflict with previously added model for
AlfrescoOutputModelManager.notYetAdded=This model has not yet been added
AlfrescoModelDialog.type=Type
AlfrescoModelDialog.addModelFailed=Failed to add model
AlfrescoModelDialog.modelTable.name=Name
AlfrescoModelDialog.remove=Remove
AlfrescoOutputManager.failedLoadModel=Failed to load model from component metadata, reinitializing

View File

@@ -13,8 +13,8 @@ AlfrescoModelDialog.addModelFailed=\u30E2\u30C7\u30EB\u8FFD\u52A0\u306B\u5931\u6
AlfrescoModelDialog.remove=\u524A\u9664
AlfrescoModelDialog.removeModelFailed=\u30E2\u30C7\u30EB\u306E\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F
AlfrescoModelDialog.missingTypeDefinitions.title=\u578B\u5B9A\u7FA9\u304C\u3042\u308A\u307E\u305B\u3093
AlfrescoModelDialog.missingTypeDefinitions.msg=\u9078\u629E\u3057\u305F\u65B9\u306F\u4E0D\u660E\u306EAlfresco\u578B\u3082\u3057\u304F\u306F\u30A2\u30B9\u30DA\u30AF\u30C8: ${0}\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\n\u305D\u308C\u3089\u3092\u5B9A\u7FA9\u3057\u305FAlfresco\u30E2\u30C7\u30EB\u30D5\u30A1\u30A4\u30EB\u3092\u63D0\u4F9B\u3057\u3066\u304F\u3060\u3055\u3044\u3002
AlfrescoModelDialog.missingTypeDefinitions.msg=\u9078\u629E\u3055\u308C\u305F\u30BF\u30A4\u30D7\u306F\u3001Alfresco\u306E\u4E0D\u660E\u306A\u30BF\u30A4\u30D7\u307E\u305F\u306F\u30A2\u30B9\u30DA\u30AF\u30C8: ${0}\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\n\u305D\u308C\u3089\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308Balfresco\u306E\u30E2\u30C7\u30EB\u30D5\u30A1\u30A4\u30EB\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002
AlfrescoModelDialog.missingAspectDefinitions.title=\u30A2\u30B9\u30DA\u30AF\u30C8\u5B9A\u7FA9\u304C\u3042\u308A\u307E\u305B\u3093\u3002
AlfrescoModelDialog.missingAspectDefinitions.msg=\u9078\u629E\u3055\u308C\u305F\u30A2\u30B9\u30DA\u30AF\u30C8\u306F\u4E0D\u660E\u306EAlfresco\u30A2\u30B9\u30DA\u30AF\u30C8: ${0}\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\n\u305D\u308C\u3089\u3092\u5B9A\u7FA9\u3057\u305FAlfresco\u30E2\u30C7\u30EB\u30D5\u30A1\u30A4\u30EB\u3092\u63D0\u4F9B\u3057\u3066\u304F\u3060\u3055\u3044\u3002
AlfrescoModelDialog.missingAspectDefinitions.msg=\u9078\u629E\u3055\u308C\u305F\u30A2\u30B9\u30DA\u30AF\u30C8\u306F\u3001Alfresco\u306E\u4E0D\u660E\u306A\u30A2\u30B9\u30DA\u30AF\u30C8: ${0}\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\n\u305D\u308C\u3089\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308Balfresco\u306E\u30E2\u30C7\u30EB\u30D5\u30A1\u30A4\u30EB\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002
AlfrescoModelDialog.modelTable.title=\u30BF\u30A4\u30C8\u30EB
AlfrescoModelDialog.modelTable.name=\u540D\u524D

View File

@@ -13,8 +13,8 @@ AlfrescoModelDialog.addModelFailed=\u6DFB\u52A0\u6A21\u578B\u5931\u8D25
AlfrescoModelDialog.remove=\u79FB\u9664
AlfrescoModelDialog.removeModelFailed=\u79FB\u9664\u6A21\u578B\u5931\u8D25
AlfrescoModelDialog.missingTypeDefinitions.title=\u7F3A\u7701\u7C7B\u578B\u5B9A\u4E49
AlfrescoModelDialog.missingTypeDefinitions.msg=\u6240\u9009\u62E9\u7684\u7C7B\u578B\u6D89\u53CA\u4E00\u4E2A\u6216\u591A\u4E2A\u672A\u77E5\u7684 Alfresco \u7C7B\u578B\u6216asepct: ${0}.\n \u8BF7\u63D0\u4F9B\u5B9A\u4E49\u8FD9\u4E9B \u7C7B\u578B\u6216 aspect \u7684 Alfresco \u6A21\u578B\u6587\u4EF6\u3002
AlfrescoModelDialog.missingTypeDefinitions.msg=\u6240\u9009\u62E9\u7684\u7C7B\u578B\u6D89\u53CA\u672A\u77E5\u7684 Alfresco \u7C7B\u578B\u6216\u65B9\u9762: ${0}\u3002\n\u8BF7\u63D0\u4F9B\u5B9A\u4E49\u8FD9\u4E9B aspect \u7684 Alfresco \u6A21\u578B\u6587\u4EF6\u3002
AlfrescoModelDialog.missingAspectDefinitions.title=\u7F3A\u7701\u65B9\u9762\u5B9A\u4E49
AlfrescoModelDialog.missingAspectDefinitions.msg=\u6240\u9009\u62E9\u7684\u65B9\u9762\u6D89\u53CA\u4E00\u4E2A\u6216\u591A\u4E2A\u672A\u77E5\u7684 Alfresco aspect: ${0}.\n \u8BF7\u63D0\u4F9B\u5B9A\u4E49\u8FD9\u4E9B aspect \u7684 Alfresco \u6A21\u578B\u6587\u4EF6\u3002
AlfrescoModelDialog.missingAspectDefinitions.msg=\u6240\u9009\u62E9\u7684\u65B9\u9762\u6D89\u53CA\u672A\u77E5\u7684Alfresco\u65B9\u9762: ${0}.\n\u8BF7\u63D0\u4F9B\u5B9A\u4E49\u8FD9\u4E9B aspect \u7684 Alfresco \u6A21\u578B\u6587\u4EF6\u3002
AlfrescoModelDialog.modelTable.title=\u6807\u9898
AlfrescoModelDialog.modelTable.name=\u540D\u79F0

View File

@@ -91,13 +91,14 @@ if((codePart.equals(ECodePart.END))&&(stat || logstashCurrent)){
String sourceNodeId = source.getUniqueName();
String sourceNodeLabel = NodeUtil.getLabel(source);
String targetNodeLabel = NodeUtil.getLabel(node);
String sourceNodeComponent = source.getComponent().getName();
for (INode jobStructureCatcher : jobCatcherNodes) {
%>
if(runStat.updateStatAndLog(execStat,enableLogStash,resourceMap,iterateId,"<%=con.getUniqueName()%>",2,0,
"<%=sourceNodeId%>",<%=sourceNodeLabel%>,"<%=sourceNodeComponent%>","<%=node.getUniqueName()%>",<%=targetNodeLabel%>,"<%=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);
}
<%
@@ -122,13 +123,14 @@ if((codePart.equals(ECodePart.END))&&(stat || logstashCurrent)){
String sourceNodeId = source.getUniqueName();
String sourceNodeLabel = NodeUtil.getLabel(source);
String targetNodeLabel = NodeUtil.getLabel(node);
String sourceNodeComponent = source.getComponent().getName();
for (INode jobStructureCatcher : jobCatcherNodes) {
%>
if(runStat.log(resourceMap,iterateId,"<%=con.getUniqueName()%>",2,0,
"<%=sourceNodeId%>",<%=sourceNodeLabel%>,"<%=sourceNodeComponent%>","<%=node.getUniqueName()%>",<%=targetNodeLabel%>,"<%=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);
}
<%

View File

@@ -137,7 +137,7 @@
}
%>
currentComponent="<%=node.getUniqueName() %>";
<%
connSet = new HashSet<IConnection>();
connSet.addAll(node.getIncomingConnections(EConnectionType.FLOW_MAIN));
@@ -155,6 +155,17 @@
//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(logstashCurrent) {
String currentLabel = ElementParameterParser.getValue(node, "__LABEL__");
if(currentLabel==null || "".equals(currentLabel) || "__UNIQUE_NAME__".equals(currentLabel) || cid.endsWith(NodeUtil.getLabel(node))) {
//not generate the unnecessary statement if label is default one
} else {
%>
cLabel="<%=NodeUtil.getLabel(node)%>";
<%
}
}
if ((codePart.equals(ECodePart.BEGIN))&&(stat || logstashCurrent)&&connSet.size()>0) {
if(containsTPartitioner) {
%>
@@ -197,11 +208,12 @@
String sourceNodeId = source.getUniqueName();
String sourceNodeLabel = NodeUtil.getLabel(source);
String targetNodeLabel = NodeUtil.getLabel(node);
String sourceNodeComponent = source.getComponent().getName();
%>
,"<%=con.getUniqueName()%>","<%=sourceNodeId%>",<%=sourceNodeLabel%>,"<%=sourceNodeComponent%>","<%=node.getUniqueName()%>",<%=targetNodeLabel%>,"<%=node.getComponent().getName()%>"
,"<%=con.getUniqueName()%>","<%=sourceNodeId%>","<%=sourceNodeLabel%>","<%=sourceNodeComponent%>","<%=node.getUniqueName()%>","<%=targetNodeLabel%>","<%=node.getComponent().getName()%>"
<%}%>
)) {
<%=subprocessName4Catcher %>Process(globalMap);
@@ -230,11 +242,12 @@
String sourceNodeId = source.getUniqueName();
String sourceNodeLabel = NodeUtil.getLabel(source);
String targetNodeLabel = NodeUtil.getLabel(node);
String sourceNodeComponent = source.getComponent().getName();
%>
,"<%=con.getUniqueName()%>","<%=sourceNodeId%>",<%=sourceNodeLabel%>,"<%=sourceNodeComponent%>","<%=node.getUniqueName()%>",<%=targetNodeLabel%>,"<%=node.getComponent().getName()%>"
,"<%=con.getUniqueName()%>","<%=sourceNodeId%>","<%=sourceNodeLabel%>","<%=sourceNodeComponent%>","<%=node.getUniqueName()%>","<%=targetNodeLabel%>","<%=node.getComponent().getName()%>"
<%}%>
)) {
<%=subprocessName4Catcher %>Process(globalMap);
@@ -254,12 +267,13 @@
String sourceNodeId = source.getUniqueName();
String sourceNodeLabel = NodeUtil.getLabel(source);
String targetNodeLabel = NodeUtil.getLabel(node);
String sourceNodeComponent = source.getComponent().getName();
if(con.getUniqueName().equals((String)codeGenArgument.getIncomingName())){%>
,"<%=con.getUniqueName()%>","<%=sourceNodeId%>",<%=sourceNodeLabel%>,"<%=sourceNodeComponent%>","<%=node.getUniqueName()%>",<%=targetNodeLabel%>,"<%=node.getComponent().getName()%>"
,"<%=con.getUniqueName()%>","<%=sourceNodeId%>","<%=sourceNodeLabel%>","<%=sourceNodeComponent%>","<%=node.getUniqueName()%>","<%=targetNodeLabel%>","<%=node.getComponent().getName()%>"
<%}
}%>
)) {
@@ -287,12 +301,13 @@
String sourceNodeId = source.getUniqueName();
String sourceNodeLabel = NodeUtil.getLabel(source);
String targetNodeLabel = NodeUtil.getLabel(node);
String sourceNodeComponent = source.getComponent().getName();
if(con.getUniqueName().equals((String)codeGenArgument.getIncomingName())){%>
,"<%=con.getUniqueName()%>","<%=sourceNodeId%>",<%=sourceNodeLabel%>,"<%=sourceNodeComponent%>","<%=node.getUniqueName()%>",<%=targetNodeLabel%>,"<%=node.getComponent().getName()%>"
,"<%=con.getUniqueName()%>","<%=sourceNodeId%>","<%=sourceNodeLabel%>","<%=sourceNodeComponent%>","<%=node.getUniqueName()%>","<%=targetNodeLabel%>","<%=node.getComponent().getName()%>"
<%}
}%>
)) {
@@ -425,7 +440,7 @@
String nodeLabel = NodeUtil.getLabel(node);
%>
if(enableLogStash) {
<%=jobStructureCatcher.getUniqueName() %>.addCM("<%=node.getUniqueName()%>", <%=nodeLabel%>, "<%=node.getComponent().getName()%>");
<%=jobStructureCatcher.getUniqueName() %>.addCM("<%=node.getUniqueName()%>", "<%=nodeLabel%>", "<%=node.getComponent().getName()%>");
<%=jobStructureCatcher.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
}
<%

View File

@@ -223,7 +223,7 @@
public boolean useDatastax(INode node){
String dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
String apiType = ElementParameterParser.getValue(node, "__API_TYPE__");
return "CASSANDRA_2_2".equals(dbVersion) || "CASSANDRA_3_0".equals(dbVersion) || ("CASSANDRA_2_0_0".equals(dbVersion) && "DATASTAX".equals(apiType));
return "CASSANDRA_2_2".equals(dbVersion) || "CASSANDRA_3_0".equals(dbVersion) || "CASSANDRA_4_0".equals(dbVersion) || ("CASSANDRA_2_0_0".equals(dbVersion) && "DATASTAX".equals(apiType));
}
}
%>
@@ -514,17 +514,35 @@
}
org.apache.logging.log4j.core.config.Configurator.setLevel(org.apache.logging.log4j.LogManager.getRootLogger().getName(), log.getLevel());
<%}%>
}
log.info("TalendJob: '<%=codeGenArgument.getJobName()%>' - Start.");
<%}%>
<%
INode jobCatcherNode = null;
}
log.info("TalendJob: '<%=codeGenArgument.getJobName()%>' - Start.");
<%}%>
<%
INode jobCatcherNode = null;
int threadPoolSize = 0;
boolean tRESTRequestLoopExists = false;
for (INode nodeInProcess : process.getGeneratingNodes()) {
String componentName = nodeInProcess.getComponent().getName();
if("tJobStructureCatcher".equals(componentName)) {
if(jobCatcherNode==null && "tJobStructureCatcher".equals(componentName)) {
jobCatcherNode = nodeInProcess;
break;
continue;
}
if(!nodeInProcess.isActivate()) continue;
if("tRESTRequestLoop".equals(componentName)) {
tRESTRequestLoopExists = true;
continue;
}
if("tWriteXMLFieldOut".equals(componentName)) {
IConnection nextMergeConn = NodeUtil.getNextMergeConnection(nodeInProcess);
if(nextMergeConn == null || nextMergeConn.getInputId()==1){
threadPoolSize++;
}
}
}
@@ -651,15 +669,15 @@
%>
boolean inOSGi = routines.system.BundleUtils.inOSGi();
if (inOSGi) {
java.util.Dictionary<String, Object> jobProperties = routines.system.BundleUtils.getJobProperties(jobName);
if (jobProperties != null && jobProperties.get("context") != null) {
contextStr = (String)jobProperties.get("context");
}
}
try {
java.util.Dictionary<String, Object> jobProperties = null;
if (inOSGi) {
jobProperties = routines.system.BundleUtils.getJobProperties(jobName);
if (jobProperties != null && jobProperties.get("context") != null) {
contextStr = (String)jobProperties.get("context");
}
}
//call job/subjob with an existing context, like: --context=production. if without this parameter, there will use the default context instead.
java.io.InputStream inContext = <%=className%>.class.getClassLoader().getResourceAsStream("<%=jobClassPackageFolder%>/contexts/" + contextStr + ".properties");
if (inContext == null) {
@@ -669,8 +687,17 @@
try {
//defaultProps is in order to keep the original context value
if(context != null && context.isEmpty()) {
defaultProps.load(inContext);
context = new ContextProperties(defaultProps);
defaultProps.load(inContext);
if (inOSGi && jobProperties != null) {
java.util.Enumeration<String> keys = jobProperties.keys();
while (keys.hasMoreElements()) {
String propKey = keys.nextElement();
if (defaultProps.containsKey(propKey)) {
defaultProps.put(propKey, (String) jobProperties.get(propKey));
}
}
}
context = new ContextProperties(defaultProps);
}
} finally {
inContext.close();
@@ -1189,6 +1216,26 @@ this.globalResumeTicket = true;//to run tPostJob
e.printStackTrace();
}
}
<%
}
//tRESTRequest may appear in microservice, the code may be called before call submit(task) method, so can't shutdown it here
if(!tRESTRequestLoopExists && threadPoolSize>0) {
%>
es.shutdown();
<%//shutdownNow should never be executed, only for safe%>
try {
if(!es.awaitTermination(60, java.util.concurrent.TimeUnit.SECONDS)) {
es.shutdownNow();
if(!es.awaitTermination(60, java.util.concurrent.TimeUnit.SECONDS)) {
}
}
} catch (java.lang.InterruptedException ie) {
es.shutdownNow();
} catch (java.lang.Exception e) {
}
<%
}
%>
@@ -1360,16 +1407,27 @@ if (execStat) {
Object obj_cluster;
Object obj_conn;
<% for (INode cassandraDbNode : cassandraComponentsList) {
if((new API_selector()).useDatastax(cassandraDbNode)) { %>
obj_cluster = globalMap.remove("cluster_<%=cassandraDbNode.getUniqueName()%>");
obj_conn = globalMap.remove("connection_<%=cassandraDbNode.getUniqueName()%>");
if(obj_conn != null) {
((com.datastax.driver.core.Session) obj_conn).close();
}
if(obj_cluster != null) {
((com.datastax.driver.core.Cluster) obj_cluster).close();
}
<% } else { %>
String dbVersionCassandra = ElementParameterParser.getValue(cassandraDbNode, "__DB_VERSION__");
if((new API_selector()).useDatastax(cassandraDbNode)) {
if("CASSANDRA_4_0".equals(dbVersionCassandra)) {
%>
obj_conn = globalMap.remove("connection_<%=cassandraDbNode.getUniqueName()%>");if(obj_conn != null) {
((com.datastax.oss.driver.api.core.CqlSession) obj_conn).close();
}
<%
} else {
%>
obj_cluster = globalMap.remove("cluster_<%=cassandraDbNode.getUniqueName()%>");
obj_conn = globalMap.remove("connection_<%=cassandraDbNode.getUniqueName()%>");
if(obj_conn != null) {
((com.datastax.driver.core.Session) obj_conn).close();
}
if(obj_cluster != null) {
((com.datastax.driver.core.Cluster) obj_cluster).close();
}
<%
}
} else { %>
obj_conn = globalMap.remove("cluster_<%=cassandraDbNode.getUniqueName()%>");
if(obj_conn!=null) {
((me.prettyprint.hector.api.Cluster) obj_conn).getConnectionManager().shutdown();

View File

@@ -170,16 +170,8 @@ 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());
<%=codeVarDynamic%>.addColumnValue(dynamicValueEntry_<%=cid%>.getValue());
}
<%=codeVarRowStruct%>.<%=dynamicColName%> = <%=codeVarDynamic%>;
<%

View File

@@ -343,6 +343,10 @@ public <%=JavaTypesManager.getTypeToGenerate(ctxParam.getType(),true)%> get<%=Ch
public Integer errorCode = null;
private String currentComponent = "";
<%
// is necessary? avoid some compiler issue as var name not found? TODO consider remove it, also the currentComponent above
%>
private String cLabel = null;
<%
//tParallelize will wrap globalMap with synchronizedMap
if(isRunInMultiThread || NodeUtil.containsMultiThreadComponent(process)){
%>
@@ -385,11 +389,101 @@ public <%=JavaTypesManager.getTypeToGenerate(ctxParam.getType(),true)%> get<%=Ch
<%
INode jobCatcherNode = null;
//one matched component or part, one thread
//why not computed by cpu or resource : please image this case :
//loop==>(input==>(twritexmlfield A)==>(twritexmlfield B)==>(twritexmlfield C)==>output), dead lock as cycle dependency and only one thead in thread pool
//maybe newCachedThreadPool is a better idea, but that have risk for creating more threads, then more memory for TDI-47230
//why not generate thread pool object in subprocess scope :
// 1: major reason : difficult to control the var scope, somewhere can't access it, then compiler issue
// 2: we may need this thread pool for bigger scope, not only for twritexmlfield/twritejsonfield in future
// 3: we don't suppose this thread pool cost big resource after all tasks done, so we can shutdown it more later,
// for example, most time, user will use less than 3 twritexmlfield in one job, then 3 threads thread pool, we can close them in job finish code part,
// not a big cost to keep that. And of course, we best to start&clean it in subprocess finish, but that's risk of 1 above.
int threadPoolSize = 0;
boolean tHMapExists = false;
boolean tHMapOutExists = false;
boolean tRESTRequestLoopExists = false;
for (INode nodeInProcess : processNodes) {
String componentName = nodeInProcess.getComponent().getName();
if("tJobStructureCatcher".equals(componentName)) {
if(jobCatcherNode==null && "tJobStructureCatcher".equals(componentName)) {
jobCatcherNode = nodeInProcess;
break;
continue;
}
if(!nodeInProcess.isActivate()) continue;
if("tHMap".equals(componentName)) {
tHMapExists = true;
continue;
}
if("tHMapOut".equals(componentName)) {
tHMapOutExists = true;
continue;
}
if("tRESTRequestLoop".equals(componentName)) {
tRESTRequestLoopExists = true;
continue;
}
if("tWriteXMLFieldOut".equals(componentName)) {
IConnection nextMergeConn = NodeUtil.getNextMergeConnection(nodeInProcess);
if(nextMergeConn == null || nextMergeConn.getInputId()==1){
threadPoolSize++;
}
}
}
if(threadPoolSize>0) {
if(tRESTRequestLoopExists) {//miscroservice
%>
private class DaemonThreadFactory implements java.util.concurrent.ThreadFactory {
java.util.concurrent.ThreadFactory factory = java.util.concurrent.Executors.defaultThreadFactory();
public java.lang.Thread newThread(java.lang.Runnable r) {
java.lang.Thread t = factory.newThread(r);
t.setDaemon(true);
return t;
}
}
<%
}
if(tHMapExists || tHMapOutExists) {
%>
private final java.util.concurrent.ExecutorService es = java.util.concurrent.Executors.newFixedThreadPool(<%=threadPoolSize%> <%if(tRESTRequestLoopExists) {%>,new DaemonThreadFactory()<%}%>);
<%
} else {
%>
private final java.util.concurrent.ExecutorService es = java.util.concurrent.Executors.newCachedThreadPool(<%if(tRESTRequestLoopExists) {%>new DaemonThreadFactory()<%}%>);
<%
}
if(tRESTRequestLoopExists) {//miscroservice
%>
{
java.lang.Runtime.getRuntime().addShutdownHook(new java.lang.Thread() {
public void run() {
es.shutdown();
try {
if(!es.awaitTermination(60, java.util.concurrent.TimeUnit.SECONDS)) {
es.shutdownNow();
if(!es.awaitTermination(60, java.util.concurrent.TimeUnit.SECONDS)) {
}
}
} catch (java.lang.InterruptedException ie) {
es.shutdownNow();
} catch (java.lang.Exception e) {
}
}
});
}
<%
}
}
@@ -507,7 +601,10 @@ private class TalendException extends Exception {
private java.util.Map<String, Object> globalMap = null;
private Exception e = null;
private String currentComponent = null;
private String cLabel = null;
private String virtualComponentName = null;
public void setVirtualComponentName (String virtualComponentName){
@@ -519,6 +616,11 @@ private class TalendException extends Exception {
this.globalMap = globalMap;
this.e = e;
}
private TalendException(Exception e, String errorComponent, String errorComponentLabel, final java.util.Map<String, Object> globalMap) {
this(e, errorComponent, globalMap);
this.cLabel = errorComponentLabel;
}
public Exception getException() {
return this.e;
@@ -578,6 +680,15 @@ private class TalendException extends Exception {
<%
boolean needCatchTalendException = false;
if(enableLogStash) {
%>
if(enableLogStash) {
<%=jobCatcherNode.getUniqueName() %>.addJobExceptionMessage(currentComponent, cLabel, null, e);
<%=jobCatcherNode.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
}
<%
}
if (process.getNodesOfType("tLogCatcher").size() > 0) {
List<INode> logCatchers = (List<INode>)process.getNodesOfType("tLogCatcher");
for (INode logCatcher : logCatchers) {
@@ -588,7 +699,7 @@ private class TalendException extends Exception {
<%
}
}
INode virtualNCatchNode = null;
boolean hasRealCatchNode = false;
for (INode logCatcher : logCatchers) {

View File

@@ -71,7 +71,7 @@
}
}
TalendException te = new TalendException(e, currentComponent, globalMap);
TalendException te = new TalendException(e, currentComponent, cLabel, globalMap);
<%
if(NodeUtil.hasVirtualComponent(subTree.getNodes())){
%>

View File

@@ -200,6 +200,7 @@ for (IConnection iterateConn : iterateConnSet) { //1
this.isRunning = true;
String currentComponent = "";
String cLabel = null;
java.util.Map<String, Object> resourceMap = new java.util.HashMap<String, Object>();
<%
if(NodeUtil.hasVirtualComponent(subTree.getNodes())){

View File

@@ -67,7 +67,7 @@
this.errorCode = localErrorCode;
}
}
pool.setErrorThread(this, new TalendException(e, currentComponent, globalMap));
pool.setErrorThread(this, new TalendException(e, currentComponent, cLabel, globalMap));
//pool.setErrorThread(this,e);
pool.stopAllThreads();
}finally{
@@ -117,7 +117,7 @@
} catch (InterruptedException e) {
e.printStackTrace();
} catch (java.lang.Exception te) {
throw new TalendException(te, currentComponent, globalMap);
throw new TalendException(te, currentComponent, cLabel, globalMap);
}
<%
}else{
@@ -228,7 +228,7 @@
<%
}
%>
TalendException te = new TalendException(e, currentComponent, globalMap);
TalendException te = new TalendException(e, currentComponent, cLabel, globalMap);
<%
if(NodeUtil.hasVirtualComponent(subTree.getNodes())){
%>

View File

@@ -20,6 +20,7 @@
org.talend.core.model.process.IHashConfiguration
org.talend.core.model.process.IHashableColumn
org.talend.core.model.utils.NodeUtil
org.talend.core.model.utils.TalendTextUtils
"
class="SubProcessHeader"
skeleton="subprocess_header_java.skeleton"
@@ -183,6 +184,48 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
public <%= typeToGenerate %> get<%=column.getLabel().substring(0, 1).toUpperCase()%><%=column.getLabel().substring(1)%> () {
return this.<%=column.getLabel()%>;
}
public Boolean <%=column.getLabel()%>IsNullable(){
return <%=column.isNullable()%>;
}
public Boolean <%=column.getLabel()%>IsKey(){
return <%=column.isKey()%>;
}
public Integer <%=column.getLabel()%>Length(){
return <%=column.getLength()%>;
}
public Integer <%=column.getLabel()%>Precision(){
return <%=column.getPrecision()%>;
}
public String <%=column.getLabel()%>Default(){
<% if (column.getDefault() == null) { %>
return null;
<% } else { %>
return "<%=TalendTextUtils.escapeJavaText(TalendTextUtils.removeQuotes(column.getDefault()))%>";
<% } %>
}
public String <%=column.getLabel()%>Comment(){
<% if (column.getComment() == null) { %>
return null;
<% } else { %>
return "<%=TalendTextUtils.escapeJavaText(TalendTextUtils.removeQuotes(column.getComment()))%>";
<% } %>
}
public String <%=column.getLabel()%>Pattern(){
<% if (column.getPattern() == null) { %>
return null;
<% } else { %>
return "<%=TalendTextUtils.escapeJavaText(TalendTextUtils.removeQuotes(column.getPattern()))%>";
<% } %>
}
public String <%=column.getLabel()%>OriginalDbColumnName(){
<% if (column.getOriginalDbColumnName() == null) { %>
return null;
<% } else { %>
return "<%=TalendTextUtils.escapeJavaText(TalendTextUtils.removeQuotes(column.getOriginalDbColumnName()))%>";
<% } %>
}
<%
if((conn.getLineStyle() == EConnectionType.FLOW_REF) && conn.getTarget().getUniqueName().startsWith("tXMLMap") && "id_Document".equals(javaType.getId())) {
%>
@@ -1598,6 +1641,7 @@ public void <%=subTree.getName() %>Process(final java.util.Map<String, Object> g
this.isRunning = true;
String currentComponent = "";
String cLabel = null;
<%
if(NodeUtil.hasVirtualComponent(subTree.getNodes())){
%>
@@ -1631,6 +1675,7 @@ public void <%=subTree.getName() %>Process(final java.util.Map<String, Object> g
int iterateLoop = 0;
<%}%>
String currentComponent = "";
String cLabel = null;
java.util.Map<String, Object> resourceMap = new java.util.HashMap<String, Object>();
try {

View File

@@ -1,5 +0,0 @@
providerName=www.example.org
pluginName=EmittersPool Model
components=Components
trunjob=tRunJob
format=Format

View File

@@ -10,6 +10,7 @@ CodeGenerator.getGraphicalNode2=------process.getGeneratingNodes()------
CodeGenerator.JET.TimeOut=JET initialisation Time Out
CodeGenerator.newLine=\n\n\n\n
CodeGenerator.Node.NotFound=Node not found in current process
CodeGenerator.Components.NotFound={0}: Component is missing: {1}; use -D{2}=false in your studio or commandline to skip this check, and a warning message will be logged.
JavaRoutineSynchronizer.UnsupportedOperation.Exception1=method not implemented: org.talend.designer.codegen.JavaRoutineSynchronizer line:49
JavaRoutineSynchronizer.UnsupportedOperation.Exception2=method not implemented: org.talend.designer.codegen.JavaRoutineSynchronizer line:58
JetSkeletonManager.unableLoad=unable to load skeleton update cache file

View File

@@ -1,148 +0,0 @@
JavaRoutineSynchronizer.UnsupportedOperation.Exception1=method not implemented: org.talend.designer.codegen.JavaRoutineSynchronizer line:49
CodeGeneratorEmittersPoolFactory.JETEmitters.NoPresent=JETEmitters Project not present, full reinitialize is needed
generatedcode.footerprocess.nbcharsgenerated={0} characters generated by {1}
CodeGeneratorEmittersPoolFactory.Class.NotFound=Template still present, but class {0} has disapeared from workspace. This unit needs to be recompiled.
CodeGeneratorEmittersPoolFactory.PersitentData.Error=Persitent data cannot be saved :
generatedcode.copyright.title=Copyright (c) 2005-2011, Talend Inc.
CodeGeneratorEmittersPoolFactory.initMessage=Generation Engine Initialization in progress...
generatedcode.copyright.body5=(http://www.gnu.org/licenses/lgpl.html).
EmfEmittersPersistence.CodeGen.DataMissing=Missing code generation data. Starting full code generation.
CodeGenerator.JET.TimeOut=JET initialisation Time Out
generatedcode.copyright.body4=You may distribute this code under the terms of the GNU LGPL license
CodeGenerator.Node.NotFound=Node not found in current process
generatedcode.copyright.body3=You can find more information about Talend products at www.talend.com.
EmittersPoolFactoryImpl.Class.IllegalArg=The class ' {0}' is not a valid classifier
generatedcode.copyright.body2=/ JobDesigner (CodeGenerator version {0}).
JavaRoutineSynchronizer.UnsupportedOperation.Exception2=method not implemented: org.talend.designer.codegen.JavaRoutineSynchronizer line:58
CodeGenerator.getGraphicalNode1=------process.getGraphicalNodes()------
CodeGenerator.getGraphicalNode2=------process.getGeneratingNodes()------
CodeGenerator.newLine=\n\n\n\n
JetSkeletonManager.unableLoad=unable to load skeleton update cache file
JetSkeletonManager.unableSave=unable to save skeleton update cache file
JetSkeletonManager.updateProblem=when update skeleton persistence data, there have some problems
CodeGeneratorEmittersPoolFactory.codeThread=Code generation background thread
CodeGeneratorEmittersPoolFactory.componentCompiled=Components compiled in {0} ms
CodeGeneratorEmittersPoolFactory.failCompail=Components compile fail : \r\n
CodeGeneratorEmittersPoolFactory.initialException=Exception during Initialization
CodeGeneratorEmittersPoolFactory.jetEmitterInitialException=Error during JetEmitter initalization
CodeGeneratorService.invalidLanguage1=invalid language type.
CodeGeneratorService.invalidLanguage2=invalid language type.
CodeGenInit.addMarkers=Adding markers to workspace
CodeGenInit.createProject=create {0} project
CodeGenInit.deleteProject=delete {0} project
CodeGenInit.initTemplate=init Templates
CodeGenInit.removeLink=Remove linked resources
CodeGenInit.saveWorkspace=Saving workspace
DocumentRootImpl.mixed=\ (mixed:
NodesSubTree.enableParallel=__ENABLE_PARALLEL__
PoolTypeImpl.persistentPool= \ (persistentPool:
TalendJetEmitter.compileFail=\ compile fail : {0} : {1}
TalendJetEmitter.exception=Exception on
JetFilesProviderManager.unableLoad=Unable to load {0}JetFilesProviderManager.unableLoad
CodeGeneratorEmittersPoolFactory.dialogContent=JetEmitter Generation is canceled,to avoid problems cause by this, please press Ctrl+Shift+F3 to generate again\!
CodeGeneratorEmittersPoolFactory.operationCanceled=Operation Canceled
ComponentsFactory.afterSystemComponent=after system component
ComponentsFactory.componentNotFound=Component folder not found\:
ComponentsFactory.load.components=Load Components...
ComponentsFactory.parentNotRecompiled=Warning\: parents of *.inc.javajet are not recompiled \!
ComponentsLocalProviderService.componentLoadError=Component load error
ComponentsLocalProviderService.talendExchangeError=Talend Exchange Error
ComponentsPreferencePage.ButtonLabel0=Ok
ComponentsPreferencePage.configuration.LINK_STYLE=Default mapping links display as :
ComponentsPreferencePage.rowLimit=Row limit
ComponentsPreferencePage.WarningMsg=You need to restart Talend Open Studio to load extra components.
ComponentsPreferencePage.WarningTitle=Warning
ComponentsPreferencePage.directoryFieldLabel=User component folder\:
ComponentsProviderManager.unableLoad=unable to load component provider
ComponenttRunJobPreferencePage.label=Don't show corresponding job after double click on a tRunJob Component.
ComponentJobletPreferencePage.label=Don't show corresponding job after double click on a Joblet Component.
ComponenttRunJobPreferencePage.showCorrespondingJob=Show corresponding job after double click on a tRunJob Component.
XsdValidationCacheManager.unableLoadxsd=unable to load xsd validation cache file
XsdValidationCacheManager.unableSavexsd=unable to save xsd validation cache file
prefs.configuration.LINK_STYLE.AUTO=Auto
prefs.configuration.LINK_STYLE.BEZIER_CURVE=Curves
prefs.configuration.LINK_STYLE.LINE=Lines (fast)
FAMILY.AS400=AS400
FAMILY.Access=Access
FAMILY.Alfresco=Alfresco
FAMILY.Business=Business
FAMILY.Business_Intelligence=Business Intelligence
FAMILY.CentricCRM=CentricCRM
FAMILY.Charts=Charts
FAMILY.Connections=Connections
FAMILY.Custom_Code=Custom Code
FAMILY.DB2=DB2
FAMILY.DB_Generic=DB Generic
FAMILY.DB_JDBC=DB JDBC
FAMILY.DB_SCD=DB SCD
FAMILY.Data_Quality=Data Quality
FAMILY.Databases=Databases
FAMILY.ELT=ELT
FAMILY.ESB=ESB
FAMILY.EXASolution=EXASolution
FAMILY.eXist=eXist
FAMILY.FTP=FTP
FAMILY.Fields=Fields
FAMILY.File=File
FAMILY.FireBird=FireBird
FAMILY.Greenplum=Greenplum
FAMILY.HSQLDb=HSQLDb
FAMILY.Healthcare=Healthcare
FAMILY.Hive=Hive
FAMILY.Informix=Informix
FAMILY.Ingres=Ingres
FAMILY.Input=Input
FAMILY.Interbase=Interbase
FAMILY.Internet=Internet
FAMILY.Jasper=Jasper
FAMILY.JavaDB=JavaDB
FAMILY.JDBC=JDBC
FAMILY.LDAP=LDAP
FAMILY.Logs_Errors=Logs & Errors
FAMILY.MS_SQL_Server=MS SQL Server
FAMILY.MSSql=MSSql
FAMILY.Management=Management
FAMILY.MaxDB=MaxDB
FAMILY.Microsoft_AX=Microsoft AX
FAMILY.Microsoft_CRM=Microsoft CRM
FAMILY.Misc=Misc
FAMILY.MySQL=MySQL
FAMILY.Netezza=Netezza
FAMILY.OLAP_Cube=OLAP Cube
FAMILY.Oracle=Oracle
FAMILY.Orchestration=Orchestration
FAMILY.Output=Output
FAMILY.ParAccel=ParAccel
FAMILY.PostgreSQL=PostgreSQL
FAMILY.PostgresPlus=PostgresPlus
FAMILY.Processing=Processing
FAMILY.SAP=SAP
FAMILY.Sas=Sas
FAMILY.SCD=SCD
FAMILY.SCP=SCP
FAMILY.SPSS=SPSS
FAMILY.SQLite=SQLite
FAMILY.Salesforce=Salesforce
FAMILY.SugarCRM=SugarCRM
FAMILY.Sybase=Sybase
FAMILY.System=System
FAMILY.Technical=Technical
FAMILY.Teradata=Teradata
FAMILY.Vertica=Vertica
FAMILY.VtigerCRM=VtigerCRM
FAMILY.XML=XML
CodeGeneratorEmittersPoolFactory.updatePaletteForEditors=Update the palette for editors
ComponentsPreferencePage.componentAssist=Enable Component Creation Assistant
ComponentsPreferencePage.notValidDirectory=Your selection will result in folder nesting, which is not recommended. Do you want to continue anyway?
ComponentsFactory.loadComponents.missingFolder=The folder "{0}" is missing in the plugin "{1}".
ComponentsPreferencePage_SuccessTitle=Success
ComponentsPreferencePage_SuccessMessage1=Need restart studio to load the new components. Else, will be loaded in next time when start.
ComponentsPreferencePage_SuccessMessage2=Do you want to restart right now?
ComponentsPreferencePage.installComponentsFailure=Install components failure
generatedcode.copyright.body1=This source code has been automatically generated by {0}
ComponentsFactory.init.waitForFinish.timeout=Can't initialise ComponentsFactory, please try again.
FAMILY.Data_Privacy=Data Privacy
ComponentsPreferencePage.enableOnLineHelp=Enable online help for components
ComponentsPreferencePage.titleInstallHelp=Install offline help feature?
ComponentsPreferencePage.msgInstallHelp=This will open additional packages dialog to install offline help feature, do you want to continue?
ComponentsPreferencePage.grpHelp=Help

View File

@@ -10,6 +10,7 @@ CodeGenerator.getGraphicalNode2=------process.getGeneratingNodes()------
CodeGenerator.JET.TimeOut=D\u00E9lai d'initialisation JET d\u00E9pass\u00E9
CodeGenerator.newLine=\n\n\n\n
CodeGenerator.Node.NotFound=N\u0153ud introuvable dans le processus courant
CodeGenerator.Components.NotFound={0}\u00A0: Le composant est manquant\u00A0: {1}; utilisez -D{2}=false dans votre Studio ou CommandLine pour ignorer cette v\u00E9rification. Un message d'avertissement sera enregistr\u00E9 dans les logs.
JavaRoutineSynchronizer.UnsupportedOperation.Exception1=M\u00E9thode non impl\u00E9ment\u00E9e : org.talend.designer.codegen.JavaRoutineSynchronizer line:49
JavaRoutineSynchronizer.UnsupportedOperation.Exception2=M\u00E9thode non impl\u00E9ment\u00E9e : org.talend.designer.codegen.JavaRoutineSynchronizer line:58
JetSkeletonManager.unableLoad=Impossible de charger le fichier de cache de la mise \u00E0 jour du squelette

View File

@@ -10,11 +10,12 @@ CodeGenerator.getGraphicalNode2=------process.getGeneratingNodes()------
CodeGenerator.JET.TimeOut=JET\u306E\u521D\u671F\u5316\u51E6\u7406\u304C\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F
CodeGenerator.newLine=\n\n\n\n
CodeGenerator.Node.NotFound=\u73FE\u5728\u306E\u30D7\u30ED\u30BB\u30B9\u306B\u30CE\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
CodeGenerator.Components.NotFound={0}: \u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u304C\u6B20\u843D\u3057\u3066\u3044\u307E\u3059: {1}\u3002Studio\u3067 -D{2}=false\u3092\u4F7F\u3046\u3068\u3053\u306E\u30C1\u30A7\u30C3\u30AF\u304C\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u3001\u8B66\u544A\u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u30ED\u30B0\u30D5\u30A1\u30A4\u30EB\u306B\u8A18\u9332\u3055\u308C\u307E\u3059\u3002
JavaRoutineSynchronizer.UnsupportedOperation.Exception1=\u30E1\u30BD\u30C3\u30C9\u304C\u5B9F\u88C5\u3055\u308C\u3066\u3044\u307E\u305B\u3093\\: org.talend.designer.codegen.JavaRoutineSynchronizer line\\:49
JavaRoutineSynchronizer.UnsupportedOperation.Exception2=\u30E1\u30BD\u30C3\u30C9\u304C\u5B9F\u88C5\u3055\u308C\u3066\u3044\u307E\u305B\u3093\\: org.talend.designer.codegen.JavaRoutineSynchronizer line\\:58
JetSkeletonManager.unableLoad=\u30B9\u30B1\u30EB\u30C8\u30F3\u66F4\u65B0\u30AD\u30E3\u30C3\u30B7\u30E5\u30D5\u30A1\u30A4\u30EB\u3092\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093
JetSkeletonManager.unableSave=\u30B9\u30B1\u30EB\u30C8\u30F3\u66F4\u65B0\u30AD\u30E3\u30C3\u30B7\u30E5\u30D5\u30A1\u30A4\u30EB\u3092\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093
JetSkeletonManager.updateProblem=\u30B9\u30B1\u30EB\u30C8\u30F3\u6C38\u7D9A\u30C7\u30FC\u30BF\u66F4\u65B0\u6642\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F,
JetSkeletonManager.unableLoad=\u30B9\u30B1\u30EB\u30C8\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30AD\u30E3\u30C3\u30B7\u30E5\u30D5\u30A1\u30A4\u30EB\u3092\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093
JetSkeletonManager.unableSave=\u30B9\u30B1\u30EB\u30C8\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30AD\u30E3\u30C3\u30B7\u30E5\u30D5\u30A1\u30A4\u30EB\u3092\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093
JetSkeletonManager.updateProblem=\u30B9\u30B1\u30EB\u30C8\u30F3\u6C38\u7D9A\u30C7\u30FC\u30BF\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u6642\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F,
EmfEmittersPersistence.CodeGen.DataMissing=\u30B3\u30FC\u30C9\u751F\u6210\u306E\u30C7\u30FC\u30BF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002\u5B8C\u5168\u306A\u30B3\u30FC\u30C9\u751F\u6210\u3092\u958B\u59CB\u3057\u3066\u3044\u307E\u3059\u3002
CodeGeneratorEmittersPoolFactory.PersitentData.Error=\u6301\u7D9A\u30C7\u30FC\u30BF\u3092\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093:
CodeGeneratorEmittersPoolFactory.JETEmitters.NoPresent=JETEmitter \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3001\u5168\u4F53\u306E\u518D\u521D\u671F\u5316\u304C\u5FC5\u8981\u3067\u3059\u3002
@@ -28,7 +29,7 @@ CodeGeneratorEmittersPoolFactory.initialException=\u521D\u671F\u5316\u4E2D\u306B
CodeGeneratorEmittersPoolFactory.initMessage=\u751F\u6210\u30A8\u30F3\u30B8\u30F3\u306E\u521D\u671F\u5316\u4E2D...
CodeGeneratorEmittersPoolFactory.jetEmitterInitialException=JetEmitter\u306E\u521D\u671F\u5316\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F
CodeGeneratorEmittersPoolFactory.operationCanceled=\u64CD\u4F5C\u306F\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F
CodeGeneratorEmittersPoolFactory.updatePaletteForEditors=\u30D1\u30EC\u30C3\u30C8\u3092\u66F4\u65B0
CodeGeneratorEmittersPoolFactory.updatePaletteForEditors=\u30D1\u30EC\u30C3\u30C8\u3092\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8
CodeGeneratorService.invalidLanguage1=\u7121\u52B9\u306A\u8A00\u8A9E\u30BF\u30A4\u30D7\u3067\u3059\u3002
CodeGeneratorService.invalidLanguage2=\u7121\u52B9\u306A\u8A00\u8A9E\u30BF\u30A4\u30D7\u3067\u3059\u3002
CodeGenInit.addMarkers=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306B\u30DE\u30FC\u30AB\u30FC\u3092\u8FFD\u52A0\u4E2D
@@ -65,7 +66,7 @@ ComponenttRunJobPreferencePage.label=tRunJob\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3
ComponentJobletPreferencePage.label=Joblet\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u5F8C\u3001\u5BFE\u5FDC\u30B8\u30E7\u30D6\u3092\u8868\u793A\u3057\u306A\u3044\u3002
ComponentsPreferencePage_SuccessTitle=\u6210\u529F
ComponentsPreferencePage_SuccessMessage1=\u65B0\u898F\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30ED\u30FC\u30C9\u3059\u308B\u305F\u3081\u306B\u306F\u3001Studio\u3092\u518D\u8D77\u52D5\u3057\u307E\u3059\u3002\u307E\u305F\u306F\u6B21\u56DE\u306E\u958B\u59CB\u6642\u306B\u30ED\u30FC\u30C9\u3055\u308C\u307E\u3059\u3002
ComponentsPreferencePage_SuccessMessage2=\u518D\u8D77\u52D5\u3057\u307E\u3059\u304B\uFF1F
ComponentsPreferencePage_SuccessMessage2=\u518D\u8D77\u52D5\u3057\u307E\u3059\u304B?
ComponentsPreferencePage.enableOnLineHelp=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30AA\u30F3\u30E9\u30A4\u30F3\u30D8\u30EB\u30D7\u3092\u6709\u52B9\u5316
ComponentsPreferencePage.titleInstallHelp=\u30AA\u30D5\u30E9\u30A4\u30F3\u30D8\u30EB\u30D7\u6A5F\u80FD\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B?
ComponentsPreferencePage.msgInstallHelp=\u3053\u308C\u306B\u3088\u3063\u3066\u8FFD\u52A0\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30C0\u30A4\u30A2\u30ED\u30B0\u304C\u958B\u304D\u3001\u30AA\u30D5\u30E9\u30A4\u30F3\u30D8\u30EB\u30D7\u6A5F\u80FD\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u307E\u3059\u3002\u7D9A\u884C\u3057\u307E\u3059\u304B?

View File

@@ -10,6 +10,7 @@ CodeGenerator.getGraphicalNode2=\u8FDB\u7A0B\u5F97\u5230\u751F\u6210\u8282\u70B9
CodeGenerator.JET.TimeOut=JET \u521D\u59CB\u5316\u8D85\u65F6
CodeGenerator.newLine=\n\n\n\n
CodeGenerator.Node.NotFound=\u5728\u5F53\u524D
CodeGenerator.Components.NotFound={0}: \u7EC4\u4EF6\u7F3A\u5931: {1}; \u5728 Studio \u6216\u547D\u4EE4\u884C\u4E2D\u4F7F\u7528 -D{2}=false \u53EF\u8DF3\u8FC7\u6B64\u9879\u68C0\u67E5\uFF0C\u540C\u65F6\u89E6\u53D1\u8B66\u544A\u6D88\u606F\u3002
JavaRoutineSynchronizer.UnsupportedOperation.Exception1=\u65B9\u6CD5\u672A\u5B9E\u65BD\uFF1Aorg.talend.designer.codegen.JavaRoutineSynchronizer line:49
JavaRoutineSynchronizer.UnsupportedOperation.Exception2=\u65B9\u6CD5\u672A\u5B9E\u65BD\uFF1Aorg.talend.designer.codegen.JavaRoutineSynchronizer line:58
JetSkeletonManager.unableLoad=\u65E0\u6CD5\u52A0\u8F7D\u4E3B\u5E72\u66F4\u65B0\u7F13\u5B58\u6587\u4EF6

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.core.model.components.DummyComponent;
import org.talend.designer.runprocess.ProcessorUtilities;
/**
@@ -845,6 +846,25 @@ public class CodeGenerator implements ICodeGenerator {
IComponentFileNaming componentFileNaming = ComponentsFactoryProvider.getFileNamingInstance();
IComponent component = node.getComponent();
if (component instanceof DummyComponent) {
if (((DummyComponent) component).isMissingComponent()) {
String processName = "";
try {
IProcess proc = node.getProcess();
processName = proc.getName() + " " + proc.getVersion();
} catch (Exception e) {
ExceptionHandler.process(e);
}
if (IProcess.ERR_ON_COMPONENT_MISSING) {
throw new CodeGeneratorException(Messages.getString("CodeGenerator.Components.NotFound", processName,
component.getName(), IProcess.PROP_ERR_ON_COMPONENT_MISSING));
}
if (ECodePart.BEGIN.equals(part)) {
log.warn(Messages.getString("CodeGenerator.Components.NotFound", processName, component.getName(),
IProcess.PROP_ERR_ON_COMPONENT_MISSING));
}
}
}
// some code unification to handle all component types the same way.
String templateURI = component.getTemplateFolder() + TemplateUtil.DIR_SEP
+ componentFileNaming.getJetFileName(component.getTemplateNamePrefix(), language.getExtension(), part);

View File

@@ -1,5 +0,0 @@
Exchange=Exchange
DownloadComponenentsAction.Label=Download Selected Components
RefreshComponenentsAction.Label=Refresh Components List
providerName=www.example.org
pluginName=Exchange Model

View File

@@ -1,101 +0,0 @@
ExchangeView.Exchange=Exchange
AvailableExtensionsComposite.ExtensionName=Extension Name
AvailableExtensionsComposite.Version=Version
AvailableExtensionsComposite.Rating=Rating
AvailableExtensionsComposite.Author=Author
AvailableExtensionsComposite.FilterTitle=Filter
AvailableExtensionsComposite.ViewDetail.installOperateStatus=Install
AvailableExtensionsComposite.ViewDetail.WriteReview=Write a review
AvailableExtensionsComposite.ViewDetail.InsertionReviewFailure=Insertion Review failure.
AvailableExtensionsComposite.ViewDetail.InsertionReviewFailureTip=You should check it.
DownloadedExtensionsComposite.ExtensionName=Extension Name
DownloadedExtensionsComposite.DownloadedVersion=Downloaded Version
DownloadedExtensionsComposite.DownloadDate=Download Date
DownloadedExtensionsComposite.OperateStatus=Operate Status
DownloadedExtensionsComposite.installOperateStatus=Install
DownloadedExtensionsComposite.installedOperateStatus=Installed
DownloadedExtensionsComposite.updateOperateStatus=Update
MyExtensionsComposite.ExtensionName=Extension Name
MyExtensionsComposite.Version=Version
MyExtensionsComposite.UploadDate=Upload Date
MyExtensionsComposite.AddNewExtensionTitle=Add New Extension
MyExtensionsComposite.UpLoadNewVersionOperateStatus=Upload New Version
MyExtensionsComposite.UpdateOperateStatus=Update
MyExtensionsComposite.ModifyOperateStatus=Modify
MyExtensionsComposite.DeleteOperateStatus=Delete
MyExtensionsComposite.Form.Return=Return
MyExtensionsComposite.Form.ExtensionTitle=Extension Title
MyExtensionsComposite.Form.InitialVersion=Initial Version
MyExtensionsComposite.Form.Compatibility=Compatibility
MyExtensionsComposite.Form.Compatibility.AllVersions=All versions
MyExtensionsComposite.Form.Compatibility.Version=Version
MyExtensionsComposite.Form.Compatibility.AndOlder=and older
MyExtensionsComposite.Form.Compatibility.AndNewer=and newer
MyExtensionsComposite.Form.Compatibility.AllVersionsExcept=All versions except:
MyExtensionsComposite.Form.Compatibility.OnlyTheseVersions=Only these versions:
MyExtensionsComposite.Form.Description=Description
MyExtensionsComposite.Form.Visibility=Visibility
MyExtensionsComposite.Form.Visibility.Public=Public(visible by all)
MyExtensionsComposite.Form.Visibility.Private=Private(visible by me)
MyExtensionsComposite.Form.Upload=Upload
MyExtensionsComposite.Form.Upload.SelectAnItem=Select an item from the currently open project
MyExtensionsComposite.Form.Upload.File=File:
MyExtensionsComposite.Form.Upload.Browse=Browse...
MyExtensionsComposite.Form.Upload.Browse.SelectFile=Select a File of the extension to upload
MyExtensionsComposite.Form.DeleteExtensionTile=Delete Extension
MyExtensionsComposite.Form.DeleteExtensionMessage=Are you sure you want to delete this Extension?
MyExtensionsComposite.Form.UploadExtension=Upload Extension
MyExtensionsComposite.Form.UpdateExtension=Update Extension
MyExtensionsComposite.Form.ModifyExtension=Modify Extension
RefreshJob.FindExtensions.Title=Finding available extensions
RefreshJob.FindExtensions.Message=Finding extensions from exchange...
ShowContributedExtensionsJob.ShowContributedExtensions.Title=Finding contributed extensions
ShowContributedExtensionsJob.ShowContributedExtensions.Message=Finding contributed extensions from exchange...
ShowInstalledExtensionsJob.ShowInstalledExtensions.Title=Finding installed extensions
ShowInstalledExtensionsJob.ShowInstalledExtensions.Message=Finding installed extensions from exchange...
DeleteExtensionJob.DeleteExtensionJob.Title=Delete an extension...
DeleteExtensionJob.DeleteExtensionJob.Message=Delete an extension...
DeleteExtensionJob.DeleteFailure=Delete failure.
DeleteExtensionJob.DeleteFailureTip=You should check it.
ModifyExtensionJob.Title=Modify an extension...
ModifyExtensionJob.Message=Modify an extension...
ModifyExtensionJob.ModifyFailure=Modify failure.
ModifyExtensionJob.ModifyFailureTip=You should check it.
InstalledExtensionJob.Title=Installed an extension...
InstalledExtensionJob.Message=Installed an extension...
InsertionExtensionAction.InstalledFailure=Installed failure.
InsertionExtensionAction.InstalledFailureTip=You should check it.
UploadRevisionJob.Title=Upload Revision...
UploadRevisionJob.Message=Upload Revision...
UploadRevisionAction.InstalledFailure=Upload Revision failure.
UploadRevisionAction.InstalledFailureTip=You should check it.
DownloadComponenentsAction.installExchange=Install Exchange Components
DownloadComponenentsAction.DownloadTaskTitle=Downloading files from Exchange
DownloadComponenentsAction.DownloadTaskName=Downloading file from url:
DownloadComponenentsAction.ReloadPalette=Reloading palette...
DownloadComponenentsAction.DownloadFailure=Download failure.
DownloadComponenentsAction.DownloadFailureTip=You must change the Download Settings.
ExchangeWebService.insertionExtensionSuccessful=Insertion Extension successful.
ExchangeWebService.downloadingExtensionSuccessful=Downloaded Extension successful.
ExchangeWebService.deleteExtensionSuccessful=Deleted Extension successful.
ExchangeWebService.insertReviewSuccessful=Insertion Review successful.
ExchangeWebService.updateRevisionSuccessful=Update Revision successful.
ExchangeWebService.insertionRevisionSuccessful=Insertion Revision successful.
ImportExchangeDialog.dialogTitle=Select an item from Talend Exchange
ImportExchangeDialog.WARNING=WARNING
ImportExchangeDialog.NOTSELECTWARNING=Please select one item from table.
ImportExchangeDialog.downloadProgressBar=Download Item,Please Wait\!
ImportExchangeDialog.EXTENSION_NAME=Extension Name
ImportExchangeDialog.AUTHOR_NAME=Author Name
ImportExchangeDialog.LATEST_REVISION=Latest Revision
ImportExchangeDialog.EXTENSION_DESCRIPTION=Extension Description
ImportExchangeDialog.REFRESH_BUTTON=Refresh
ImportExchangeDialog.REFRESHING_PROGRESSBAR=Refreshing\! Please Wait.....
ImportExchangeDialog.OPERATION_CANCELLED=Operation was cancelled
Exchange.logon.error=Exchange user have not been registered, please register using the preferences .
ImportExchangeDialog.download.extensions=Download extensions\! Please Wait\!
DownloadComponenentsAction_restartMessage=Install the new component successfully, but need to restart studio to load it, do you want to restart now?
DownloadComponenentsAction_restartTitle=Need restart
DownloadComponenentsAction_failureTitle=Failure
DownloadComponenentsAction_failureMessage=Fail to install the component {0}, need check the component is valid or not.
DownloadComponenentsAction.installComponentsTitle=Install components

View File

@@ -14,13 +14,13 @@ DownloadedExtensionsComposite.DownloadDate=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\
DownloadedExtensionsComposite.OperateStatus=\u30B9\u30C6\u30FC\u30BF\u30B9\u64CD\u4F5C
DownloadedExtensionsComposite.installOperateStatus=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB
DownloadedExtensionsComposite.installedOperateStatus=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F
DownloadedExtensionsComposite.updateOperateStatus=\u66F4\u65B0
DownloadedExtensionsComposite.updateOperateStatus=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8
MyExtensionsComposite.ExtensionName=Extension\u540D
MyExtensionsComposite.Version=\u30D0\u30FC\u30B8\u30E7\u30F3
MyExtensionsComposite.UploadDate=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u65E5\u4ED8
MyExtensionsComposite.AddNewExtensionTitle=\u65B0\u898FExtension\u8FFD\u52A0
MyExtensionsComposite.UpLoadNewVersionOperateStatus=\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9
MyExtensionsComposite.UpdateOperateStatus=\u66F4\u65B0
MyExtensionsComposite.UpdateOperateStatus=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8
MyExtensionsComposite.ModifyOperateStatus=\u5909\u66F4
MyExtensionsComposite.DeleteOperateStatus=\u524A\u9664
MyExtensionsComposite.Form.Return=\u623B\u308A\u5024
@@ -45,7 +45,7 @@ MyExtensionsComposite.Form.Upload.Browse.SelectFile=\u30A2\u30C3\u30D7\u30ED\u30
MyExtensionsComposite.Form.DeleteExtensionTile=Extension\u524A\u9664
MyExtensionsComposite.Form.DeleteExtensionMessage=\u3053\u306E\u62E1\u5F35\u5B50\u3092\u524A\u9664\u3057\u307E\u3059\u304B?
MyExtensionsComposite.Form.UploadExtension=Extension\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9
MyExtensionsComposite.Form.UpdateExtension=Extension\u66F4\u65B0
MyExtensionsComposite.Form.UpdateExtension=Extension\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8
MyExtensionsComposite.Form.ModifyExtension=Extension\u4FEE\u6B63
Exchange.logon.error=Exchange\u30E6\u30FC\u30B6\u30FC\u304C\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u521D\u671F\u8A2D\u5B9A\u3092\u4F7F\u7528\u3057\u3066\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\u3002
RefreshJob.FindExtensions.Title=\u53D6\u5F97\u53EF\u80FD\u306Aextensions
@@ -77,7 +77,7 @@ DownloadComponenentsAction_failureMessage=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u
DownloadComponenentsAction.installExchange=Exchange\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB
DownloadComponenentsAction.DownloadTaskTitle=Exchange\u304B\u3089\u30D5\u30A1\u30A4\u30EB\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9
DownloadComponenentsAction.DownloadTaskName=\u30D5\u30A1\u30A4\u30EB\u306E\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u4E2D URL \\:
DownloadComponenentsAction.ReloadPalette=\u30D1\u30EC\u30C3\u30C8\u306E\u66F4\u65B0...
DownloadComponenentsAction.ReloadPalette=\u30D1\u30EC\u30C3\u30C8\u306E\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8...
DownloadComponenentsAction.DownloadFailure=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u5931\u6557\u3002
DownloadComponenentsAction.DownloadFailureTip=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u8A2D\u5B9A\u3092\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002
DownloadComponenentsAction.installComponentsTitle=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB
@@ -85,7 +85,7 @@ ExchangeWebService.insertionExtensionSuccessful=Extension\u306E\u30A4\u30F3\u30B
ExchangeWebService.downloadingExtensionSuccessful=Extension\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u6210\u529F\u3002
ExchangeWebService.deleteExtensionSuccessful=Extension\u524A\u9664\u6210\u529F\u3002
ExchangeWebService.insertReviewSuccessful=Review\u633F\u5165\u6210\u529F\u3002
ExchangeWebService.updateRevisionSuccessful=\u30EA\u30D3\u30B8\u30E7\u30F3\u66F4\u65B0\u6210\u529F\u3002
ExchangeWebService.updateRevisionSuccessful=\u30EA\u30D3\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u6210\u529F\u3002
ExchangeWebService.insertionRevisionSuccessful=\u30EA\u30D3\u30B8\u30E7\u30F3\u633F\u5165\u6210\u529F\u3002
ImportExchangeDialog.dialogTitle=Talend Exchange \u304B\u3089\u9805\u76EE\u306E\u9078\u629E
ImportExchangeDialog.WARNING=\u8B66\u544A
@@ -97,5 +97,5 @@ ImportExchangeDialog.LATEST_REVISION=\u6700\u65B0\u30EA\u30D3\u30B8\u30E7\u30F3
ImportExchangeDialog.EXTENSION_DESCRIPTION=\u62E1\u5F35\u306E\u8AAC\u660E
ImportExchangeDialog.download.extensions=\u62E1\u5F35\u6A5F\u80FD\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u4E2D\u3067\u3059\u3002\u66AB\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\u3002
ImportExchangeDialog.REFRESH_BUTTON=\u66F4\u65B0
ImportExchangeDialog.REFRESHING_PROGRESSBAR=\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5\u4E2D\u3067\u3059\u3002\u66AB\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\u3002
ImportExchangeDialog.REFRESHING_PROGRESSBAR=\u66F4\u65B0\u4E2D\u3067\u3059\u3002\u66AB\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\u3002
ImportExchangeDialog.OPERATION_CANCELLED=\u64CD\u4F5C\u306F\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F

View File

@@ -37,7 +37,18 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>1.2.19</version>
</dependency>
<!-- Spring 3 dependencies -->
<dependency>
<groupId>org.springframework</groupId>

View File

@@ -1,77 +0,0 @@
<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</groupId>
<artifactId>checkArchive</artifactId>
<version>1.2-20210901</version>
<name>checkArchive</name>
<description>Dependence for tFileArchive and tFileUnAchive</description>
<url>http://maven.apache.org</url>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.talendforge.org/modules/licenses/APACHE_v2.txt</url>
<distribution>may be downloaded from the Maven repository</distribution>
</license>
</licenses>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<talend.nexus.url>https://artifacts-oss.talend.com</talend.nexus.url>
<java.source.version>1.8</java.source.version>
</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>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-compress -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.21</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${java.source.version}</source>
<target>${java.source.version}</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<compilerArgument>-XDignore.symbol.file</compilerArgument>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@@ -7,7 +7,7 @@
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<packaging>jar</packaging>
<version>2.4.6-talend</version>
<version>2.4.7-talend</version>
<name>json-lib</name>
<properties>
@@ -230,9 +230,9 @@
<scope>compile</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>1.2.19</version>
<scope>runtime</scope>
<optional>true</optional>
</dependency>

View File

@@ -48,6 +48,7 @@ import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.StringReader;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -172,6 +173,11 @@ public class XMLSerializer {
* flag for if parse empty elements as empty strings
*/
private boolean useEmptyStrings;
/**
* flag to use scientific notation while working with Float values.
*/
private boolean useScientificNotation;
/**
* Creates a new XMLSerializer with default options.<br>
@@ -205,6 +211,7 @@ public class XMLSerializer {
setKeepCData( false );
setEscapeLowerChars( false );
setKeepArrayName( false );
setUseScientificNotation( false );
}
/**
@@ -360,7 +367,15 @@ public class XMLSerializer {
return typeHintsEnabled;
}
/**
* @return the useScientificNotation value
*/
public boolean isUseScientificNotation() {
return useScientificNotation;
}
/**
* Creates a JSON value from a XML string.
*
* @param xml A well-formed xml document in a String
@@ -652,6 +667,15 @@ public class XMLSerializer {
this.typeHintsCompatibility = typeHintsCompatibility;
}
/**
* Sets whether to use scientific notation while working with Float values.
* @param useScientificNotation Value of the useScientificNotation to set.
*/
public void setUseScientificNotation(boolean useScientificNotation) {
this.useScientificNotation = useScientificNotation;
}
/**
* Sets wether JSON types will be included as attributes.
*/
@@ -1335,12 +1359,12 @@ public class XMLSerializer {
jsonArray.element(Integer.valueOf(element.getValue()));
}
} catch (NumberFormatException e) {
jsonArray.element(Double.valueOf(element.getValue()));
jsonArray.element(processFloatValues(element));
}
} else if (type.compareToIgnoreCase(JSONTypes.INTEGER) == 0) {
jsonArray.element(Integer.valueOf(element.getValue()));
} else if (type.compareToIgnoreCase(JSONTypes.FLOAT) == 0) {
jsonArray.element(Double.valueOf(element.getValue()));
jsonArray.element(processFloatValues(element));
} else if (type.compareToIgnoreCase(JSONTypes.FUNCTION) == 0) {
String[] params = null;
String text = element.getValue();
@@ -1371,6 +1395,14 @@ public class XMLSerializer {
}
}
}
private Object processFloatValues(Element element) {
if (!isUseScientificNotation()) {
return new BigDecimal(element.getValue());
} else {
return Double.valueOf(element.getValue());
}
}
private void setValue( JSONObject jsonObject, Element element, String defaultType ) {
String clazz = getClass( element );
@@ -1423,12 +1455,12 @@ public class XMLSerializer {
setOrAccumulate(jsonObject, key, Integer.valueOf(element.getValue()));
}
} catch (NumberFormatException e) {
setOrAccumulate(jsonObject, key, Double.valueOf(element.getValue()));
setOrAccumulate(jsonObject, key, processFloatValues(element));
}
} else if (type.compareToIgnoreCase(JSONTypes.INTEGER) == 0) {
setOrAccumulate(jsonObject, key, Integer.valueOf(element.getValue()));
} else if (type.compareToIgnoreCase(JSONTypes.FLOAT) == 0) {
setOrAccumulate(jsonObject, key, Double.valueOf(element.getValue()));
setOrAccumulate(jsonObject, key, processFloatValues(element));
} else if (type.compareToIgnoreCase(JSONTypes.FUNCTION) == 0) {
String[] params = null;
String text = element.getValue();

View File

@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.talend</groupId>
<artifactId>talendMQRFH2</artifactId>
<version>1.0.1-20190206</version>
<version>1.1.0-20220307</version>
<packaging>jar</packaging>
<licenses>
@@ -44,20 +44,10 @@
</distributionManagement>
<dependencies>
<dependency>
<groupId>com.ibm.mq</groupId>
<artifactId>com.ibm.mq</artifactId>
<version>8.0.0.9</version>
</dependency>
<dependency>
<groupId>com.ibm.mq</groupId>
<artifactId>com.ibm.mqjms</artifactId>
<version>8.0.0.9</version>
</dependency>
<dependency>
<groupId>com.ibm.mq</groupId>
<artifactId>com.ibm.mq.allclient</artifactId>
<version>8.0.0.9</version>
<version>9.2.4.0</version>
</dependency>
<dependency>
<groupId>org.talend.libraries</groupId>
@@ -75,9 +65,9 @@
<version>6.0.0</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>1.2.19</version>
</dependency>
</dependencies>

View File

@@ -113,9 +113,9 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>1.2.19</version>
<scope>test</scope>
</dependency>
<!-- JUnit -->

View File

@@ -72,9 +72,9 @@
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>1.2.19</version>
</dependency>
<!--test-->

View File

@@ -53,9 +53,9 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>1.2.19</version>
<scope>test</scope>
</dependency>
<dependency>

View File

@@ -4,7 +4,7 @@
<groupId>org.talend</groupId>
<artifactId>talend-httputil</artifactId>
<name>talend-httputil</name>
<version>1.0.6</version>
<version>1.0.7</version>
<licenses>
<license>
@@ -28,7 +28,7 @@
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.4</version>
<version>2.13.2.2</version>
</dependency>
<dependency>
@@ -36,14 +36,6 @@
<artifactId>json-lib</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<type>jar</type>
<optional>true</optional>
</dependency>
</dependencies>
<distributionManagement>

View File

@@ -1,14 +1,9 @@
package org.talend.http;
import java.util.List;
import org.apache.http.entity.ContentType;
import org.apache.http.util.EntityUtils;
import org.apache.http.entity.ContentType;
import net.sf.json.JSONObject;
import java.util.ArrayList;
import org.apache.http.entity.ContentType;
import org.apache.http.util.EntityUtils;
public class HttpUtil {

View File

@@ -6,7 +6,7 @@
<groupId>org.talend.components.lib</groupId>
<artifactId>job-audit</artifactId>
<version>1.4</version>
<version>1.5</version>
<licenses>
<license>

View File

@@ -30,5 +30,8 @@ public interface JobAuditLogger extends EventAuditLogger {
@AuditEvent(category = "schema", message = "{connection_name} : {schema} from {source_id} to {target_id}", level = LogLevel.INFO)
void schema(Context context);
@AuditEvent(category = "exception", message = "Exception", level = LogLevel.INFO)
void exception(Context context);
}

View File

@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.talend.components</groupId>
<artifactId>talend-mscrm</artifactId>
<version>3.10-20211021</version>
<version>3.12-20220513</version>
<packaging>jar</packaging>
<name>talend-mscrm</name>
@@ -27,13 +27,14 @@
<httpcore.version>4.4.13</httpcore.version>
<junit.version>4.13.2</junit.version>
<adal4j.version>1.6.4-20211021</adal4j.version>
<jackson.version>2.11.4</jackson.version>
<jackson.version>2.13.2</jackson.version>
<jackson-databind.version>2.13.2.2</jackson-databind.version>
<!-- plugin's versions -->
<maven-jar-plugin.version>3.2.0</maven-jar-plugin.version>
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
</properties>
<repositories>
<repository>
<id>talend_nexus_deployment</id>
@@ -68,7 +69,7 @@
</releases>
</repository>
</distributionManagement>
<dependencies>
<dependency>
<groupId>org.apache.axis2</groupId>
@@ -76,9 +77,9 @@
<version>${axis2.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.5</version>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>1.2.19</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
@@ -101,7 +102,7 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.olingo</groupId>
<artifactId>odata-client-core</artifactId>
@@ -143,11 +144,6 @@
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>adal4j</artifactId>
<version>${adal4j.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
@@ -156,13 +152,24 @@
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
<version>${jackson-databind.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>msal4j</artifactId>
<version>1.11.2</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.9.0</version>
</dependency>
</dependencies>
<build>
<resources>

View File

@@ -0,0 +1,164 @@
package com.microsoft.aad.msal4j;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import org.slf4j.LoggerFactory;
import com.nimbusds.oauth2.sdk.ParseException;
import com.nimbusds.oauth2.sdk.auth.ClientAuthentication;
import com.nimbusds.oauth2.sdk.auth.ClientAuthenticationMethod;
import com.nimbusds.oauth2.sdk.auth.ClientSecretPost;
import com.nimbusds.oauth2.sdk.auth.PrivateKeyJWT;
import com.nimbusds.oauth2.sdk.auth.Secret;
import com.nimbusds.oauth2.sdk.id.ClientID;
import static com.microsoft.aad.msal4j.ParameterValidationUtils.validateNotNull;
public class OauthClientApplication extends AbstractClientApplicationBase implements IConfidentialClientApplication {
private ClientAuthentication clientAuthentication;
private CustomJWTAuthentication customJWTAuthentication;
private boolean clientCertAuthentication = false;
private ClientCertificate clientCertificate;
private boolean sendX5c;
private final String username;
private final String password;
private OauthClientApplication(OauthClientApplication.Builder builder) {
super(builder);
validateNotNull("username", builder.username);
validateNotNull("password", builder.password);
sendX5c = builder.sendX5c;
log = LoggerFactory.getLogger(ConfidentialClientApplication.class);
initClientAuthentication(builder.clientCredential);
this.username = builder.username;
this.password = builder.password;
}
@Override
public CompletableFuture<IAuthenticationResult> acquireToken(ClientCredentialParameters parameters) {
validateNotNull("parameters", parameters);
RequestContext context = new RequestContext(this, PublicApi.ACQUIRE_TOKEN_FOR_CLIENT, parameters);
OauthCredentialRequest clientCredentialRequest = new OauthCredentialRequest(parameters,
username, password,this, context);
return this.executeRequest(clientCredentialRequest);
}
@Override
public CompletableFuture<IAuthenticationResult> acquireToken(OnBehalfOfParameters parameters) {
throw new IllegalStateException("Use ConfidentialClientApplication instead");
}
private void initClientAuthentication(IClientCredential clientCredential) {
validateNotNull("clientCredential", clientCredential);
if (clientCredential instanceof ClientSecret) {
clientAuthentication = new ClientSecretPost(new ClientID(clientId()), new Secret(((ClientSecret) clientCredential).clientSecret()));
} else if (clientCredential instanceof ClientCertificate) {
this.clientCertAuthentication = true;
this.clientCertificate = (ClientCertificate) clientCredential;
clientAuthentication = buildValidClientCertificateAuthority();
} else if (clientCredential instanceof ClientAssertion) {
clientAuthentication = createClientAuthFromClientAssertion((ClientAssertion) clientCredential);
} else {
throw new IllegalArgumentException("Unsupported client credential");
}
}
@Override
protected ClientAuthentication clientAuthentication() {
if (clientCertAuthentication) {
final Date currentDateTime = new Date(System.currentTimeMillis());
final Date expirationTime = ((PrivateKeyJWT) clientAuthentication).getJWTAuthenticationClaimsSet().getExpirationTime();
if (expirationTime.before(currentDateTime)) {
//The asserted private jwt with the client certificate can expire so rebuild it when the
clientAuthentication = buildValidClientCertificateAuthority();
}
}
return clientAuthentication;
}
private ClientAuthentication buildValidClientCertificateAuthority() {
ClientAssertion clientAssertion = JwtHelper.buildJwt(clientId(), clientCertificate, this.authenticationAuthority.selfSignedJwtAudience(), sendX5c);
return createClientAuthFromClientAssertion(clientAssertion);
}
private ClientAuthentication createClientAuthFromClientAssertion(final ClientAssertion clientAssertion) {
final Map<String, List<String>> map = new HashMap<>();
try {
map.put("client_assertion_type", Collections.singletonList(ClientAssertion.assertionType));
map.put("client_assertion", Collections.singletonList(clientAssertion.assertion()));
return PrivateKeyJWT.parse(map);
} catch (final ParseException e) {
//This library is not supposed to validate Issuer and subject values.
//The next lines of code ensures that exception is not thrown.
if (e.getMessage().contains("Issuer and subject in client JWT assertion must designate the same client identifier")) {
return new CustomJWTAuthentication(ClientAuthenticationMethod.PRIVATE_KEY_JWT, clientAssertion, new ClientID(clientId()));
}
throw new MsalClientException(e);
}
}
/**
* Creates instance of Builder of ConfidentialClientApplication
*
* @param clientId Client ID (Application ID) of the application as registered
* in the application registration portal (portal.azure.com)
* @param clientCredential The client credential to use for token acquisition.
* @return instance of Builder of ConfidentialClientApplication
*/
public static OauthClientApplication.Builder builder(String clientId, IClientCredential clientCredential, String username, String password) {
return new OauthClientApplication.Builder(clientId, clientCredential, username, password);
}
public static class Builder extends AbstractClientApplicationBase.Builder<OauthClientApplication.Builder> {
private IClientCredential clientCredential;
private final String username;
private final String password;
private boolean sendX5c = true;
private Builder(String clientId, IClientCredential clientCredential, String username, String password) {
super(clientId);
this.clientCredential = clientCredential;
this.username = username;
this.password = password;
}
/**
* Specifies if the x5c claim (public key of the certificate) should be sent to the STS.
* Default value is true
*
* @param val true if the x5c should be sent. Otherwise false
* @return instance of the Builder on which method was called
*/
public OauthClientApplication.Builder sendX5c(boolean val) {
this.sendX5c = val;
return self();
}
@Override
public OauthClientApplication build() {
return new OauthClientApplication(this);
}
@Override
protected OauthClientApplication.Builder self() {
return this;
}
}
@java.lang.SuppressWarnings("all")
public boolean sendX5c() {
return this.sendX5c;
}
}

View File

@@ -0,0 +1,20 @@
package com.microsoft.aad.msal4j;
import com.nimbusds.oauth2.sdk.ResourceOwnerPasswordCredentialsGrant;
import com.nimbusds.oauth2.sdk.auth.Secret;
class OauthCredentialRequest extends MsalRequest {
ClientCredentialParameters parameters;
OauthCredentialRequest(ClientCredentialParameters parameters, String username, String password,
OauthClientApplication application, RequestContext requestContext) {
super(application, createMsalGrant(parameters, username, password), requestContext);
this.parameters = parameters;
}
private static OAuthAuthorizationGrant createMsalGrant(ClientCredentialParameters parameters,
String username, String password) {
return new OAuthAuthorizationGrant(new ResourceOwnerPasswordCredentialsGrant(username, new Secret(
password)), parameters.scopes(), parameters.claims());
}
}

View File

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

View File

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

View File

@@ -13,14 +13,12 @@
package org.talend.ms.crm.odata.authentication;
import java.net.Proxy;
import java.util.Collections;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import javax.naming.AuthenticationException;
import javax.naming.ServiceUnavailableException;
import com.microsoft.aad.adal4j.ClientCredential;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.olingo.client.api.communication.request.ODataRequest;
import org.apache.olingo.commons.api.http.HttpHeader;
@@ -28,15 +26,19 @@ import org.talend.ms.crm.odata.ClientConfiguration;
import org.talend.ms.crm.odata.ProxyProvider;
import org.talend.ms.crm.odata.httpclientfactory.IHttpclientFactoryObservable;
import org.talend.ms.crm.odata.httpclientfactory.OAuthHttpClientFactory;
import com.microsoft.aad.adal4j.AuthenticationContext;
import com.microsoft.aad.adal4j.AuthenticationResult;
import com.microsoft.aad.msal4j.ClientCredentialFactory;
import com.microsoft.aad.msal4j.ClientCredentialParameters;
import com.microsoft.aad.msal4j.ConfidentialClientApplication;
import com.microsoft.aad.msal4j.IAuthenticationResult;
import com.microsoft.aad.msal4j.OauthClientApplication;
import com.microsoft.aad.msal4j.PublicClientApplication;
import com.microsoft.aad.msal4j.UserNamePasswordParameters;
public class OAuthStrategyImpl implements IAuthStrategy {
private ClientConfiguration conf;
private AuthenticationResult authResult;
private IAuthenticationResult authResult;
private IHttpclientFactoryObservable httpClientFactory;
@@ -71,12 +73,12 @@ public class OAuthStrategyImpl implements IAuthStrategy {
@Override
public void configureRequest(ODataRequest request) {
request.addCustomHeader(HttpHeader.AUTHORIZATION, "Bearer " + authResult.getAccessToken());
request.addCustomHeader(HttpHeader.AUTHORIZATION, "Bearer " + authResult.accessToken());
}
@Override
public void configureRequest(HttpRequestBase request) {
request.addHeader(HttpHeader.AUTHORIZATION, "Bearer " + authResult.getAccessToken());
request.addHeader(HttpHeader.AUTHORIZATION, "Bearer " + authResult.accessToken());
}
@Override
@@ -115,34 +117,71 @@ public class OAuthStrategyImpl implements IAuthStrategy {
}
}
private Future<AuthenticationResult> acquireToken(AuthenticationContext context) throws Exception {
Future<AuthenticationResult> future;
private Future<IAuthenticationResult> acquireToken(PublicClientApplication context) throws Exception {
Future<IAuthenticationResult> future;
UserNamePasswordParameters parameters = UserNamePasswordParameters.builder(
Collections.singleton(conf.getResource() + "/.default"), conf.getUserName(), conf.getPassword().toCharArray()).build();
future = context.acquireToken(parameters);
return future;
if(conf.getAppRegisteredType() == ClientConfiguration.AppRegisteredType.NATIVE_APP){
future = context.acquireToken(conf.getResource(), conf.getClientId(), conf.getUserName(), conf.getPassword(), null);
}
else if(conf.getAppRegisteredType() == ClientConfiguration.AppRegisteredType.WEB_APP && conf.getWebAppPermission() == ClientConfiguration.WebAppPermission.DELEGATED){
future = context.acquireToken(conf.getResource(), new ClientCredential(conf.getClientId(), conf.getClientSecret()), conf.getUserName(), conf.getPassword(), null);
}
else{
throw new Exception("Can't retrieve token with this configuration : registered application type: "+conf.getAppRegisteredType()+", Web application permission: "+conf.getWebAppPermission());
}
return future;
}
private Future<IAuthenticationResult> acquireToken(OauthClientApplication context) throws Exception {
ClientCredentialParameters parameters = ClientCredentialParameters.builder(
Collections.singleton(conf.getResource() + "/.default")).build();
return context.acquireToken(parameters);
}
private AuthenticationResult getAccessToken() throws ServiceUnavailableException {
AuthenticationContext context = null;
AuthenticationResult result = null;
private IAuthenticationResult getAccessToken() throws ServiceUnavailableException {
if(conf.getAppRegisteredType() == ClientConfiguration.AppRegisteredType.NATIVE_APP){
return getAccessTokenNative();
} if(conf.getAppRegisteredType() == ClientConfiguration.AppRegisteredType.WEB_APP && conf.getWebAppPermission() == ClientConfiguration.WebAppPermission.DELEGATED){
return getAccessTokenWebApp();
} else {
throw new RuntimeException("Can't retrieve token with this configuration : registered application type: "+conf.getAppRegisteredType()+", Web application permission: "+conf.getWebAppPermission());
}
}
private IAuthenticationResult getAccessTokenNative() throws ServiceUnavailableException {
PublicClientApplication context = null;
IAuthenticationResult result = null;
ExecutorService service = null;
try {
service = Executors.newFixedThreadPool(1);
context = new AuthenticationContext(conf.getAuthoryEndpoint(), false, service);
Proxy proxy = ProxyProvider.getProxy();
PublicClientApplication.Builder contextBuilder = PublicClientApplication.builder(conf.getClientId()).authority("https://login.microsoftonline.com/organizations");
if (proxy != null) {
contextBuilder = contextBuilder.proxy(proxy);
}
context = contextBuilder.build();
Future<IAuthenticationResult> future = this.acquireToken(context);
result = future.get();
} catch (Exception e) {
throw new ServiceUnavailableException(e.getMessage());
} finally {
service.shutdown();
}
if (result == null) {
throw new ServiceUnavailableException("Authenticated failed! Please check your configuration!");
}
return result;
}
private IAuthenticationResult getAccessTokenWebApp() throws ServiceUnavailableException {
OauthClientApplication context = null;
IAuthenticationResult result = null;
ExecutorService service = null;
try {
service = Executors.newFixedThreadPool(1);
OauthClientApplication.Builder contextBuilder = OauthClientApplication.builder(conf.getClientId(),
ClientCredentialFactory.createFromSecret(conf.getClientSecret()), conf.getUserName(), conf.getPassword())
.authority(conf.getAuthoryEndpoint());
Proxy proxy = ProxyProvider.getProxy();
if (proxy != null) {
context.setProxy(proxy);
contextBuilder.proxy(proxy);
}
Future<AuthenticationResult> future = this.acquireToken(context);
context = contextBuilder.build();
Future<IAuthenticationResult> future = this.acquireToken(context);
result = future.get();
} catch (Exception e) {
throw new ServiceUnavailableException(e.getMessage());

View File

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

View File

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

View File

@@ -6,7 +6,7 @@
<groupId>org.talend.components</groupId>
<artifactId>talend-scp-helper</artifactId>
<version>1.0</version>
<version>1.1</version>
<licenses>
<license>
@@ -19,7 +19,7 @@
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<ssd.version>2.5.1</ssd.version>
<ssd.version>2.8.0</ssd.version>
<talend.nexus.url>https://artifacts-oss.talend.com</talend.nexus.url>
</properties>

View File

@@ -1,31 +1,32 @@
package org.talend.components.talendscp;
import org.apache.sshd.client.channel.ChannelExec;
import org.apache.sshd.scp.client.AbstractScpClient;
import org.apache.sshd.scp.client.DefaultScpClient;
import org.apache.sshd.scp.client.DefaultScpStreamResolver;
import org.apache.sshd.scp.client.ScpClient;
import org.apache.sshd.client.session.ClientSession;
import org.apache.sshd.common.FactoryManager;
import org.apache.sshd.common.file.FileSystemFactory;
import org.apache.sshd.common.file.util.MockFileSystem;
import org.apache.sshd.common.file.util.MockPath;
import org.apache.sshd.scp.common.ScpFileOpener;
import org.apache.sshd.scp.common.ScpHelper;
import org.apache.sshd.common.util.ValidateUtils;
import org.apache.sshd.scp.common.ScpTransferEventListener;
import org.apache.sshd.scp.common.helpers.ScpTimestampCommandDetails;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.FileSystem;
import java.nio.file.Path;
import java.nio.file.attribute.FileTime;
import java.nio.file.attribute.PosixFilePermission;
import java.util.Collection;
import java.util.Collections;
import java.util.EnumSet;
import org.apache.sshd.client.channel.ChannelExec;
import org.apache.sshd.client.scp.AbstractScpClient;
import org.apache.sshd.client.scp.DefaultScpClient;
import org.apache.sshd.client.scp.DefaultScpStreamResolver;
import org.apache.sshd.client.scp.ScpClient;
import org.apache.sshd.client.session.ClientSession;
import org.apache.sshd.common.FactoryManager;
import org.apache.sshd.common.file.FileSystemFactory;
import org.apache.sshd.common.file.util.MockFileSystem;
import org.apache.sshd.common.file.util.MockPath;
import org.apache.sshd.common.scp.ScpFileOpener;
import org.apache.sshd.common.scp.ScpHelper;
import org.apache.sshd.common.scp.ScpTimestamp;
import org.apache.sshd.common.scp.ScpTransferEventListener;
import org.apache.sshd.common.util.ValidateUtils;
/*
What we do here is just overwrite the ScpHelper to throw Exception when scp return status 1
@@ -40,7 +41,8 @@ public class TalendScpClient extends DefaultScpClient {
}
@Override public void upload(InputStream local, String remote, long size, Collection<PosixFilePermission> perms,
ScpTimestamp time) throws IOException {
ScpTimestampCommandDetails time) throws IOException {
int namePos = ValidateUtils.checkNotNullAndNotEmpty(remote, "No remote location specified").lastIndexOf('/');
String name = (namePos < 0) ?
remote :

View File

@@ -1,11 +1,11 @@
package org.talend.components.talendscp;
import org.apache.sshd.client.scp.AbstractScpClientCreator;
import org.apache.sshd.client.scp.ScpClient;
import org.apache.sshd.client.scp.ScpClientCreator;
import org.apache.sshd.scp.client.AbstractScpClientCreator;
import org.apache.sshd.scp.client.ScpClient;
import org.apache.sshd.scp.client.ScpClientCreator;
import org.apache.sshd.client.session.ClientSession;
import org.apache.sshd.common.scp.ScpFileOpener;
import org.apache.sshd.common.scp.ScpTransferEventListener;
import org.apache.sshd.scp.common.ScpFileOpener;
import org.apache.sshd.scp.common.ScpTransferEventListener;
public class TalendScpClientCreator extends AbstractScpClientCreator implements ScpClientCreator {
public static final TalendScpClientCreator INSTANCE = new TalendScpClientCreator();

View File

@@ -6,11 +6,12 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.FileSystem;
import org.apache.sshd.common.scp.ScpException;
import org.apache.sshd.common.scp.ScpFileOpener;
import org.apache.sshd.common.scp.ScpHelper;
import org.apache.sshd.common.scp.ScpTransferEventListener;
import org.apache.sshd.scp.common.ScpException;
import org.apache.sshd.scp.common.ScpFileOpener;
import org.apache.sshd.scp.common.ScpHelper;
import org.apache.sshd.scp.common.ScpTransferEventListener;
import org.apache.sshd.common.session.Session;
import org.apache.sshd.scp.common.helpers.ScpAckInfo;
public class TalendScpHelper extends ScpHelper {
@@ -20,8 +21,9 @@ public class TalendScpHelper extends ScpHelper {
}
@Override
public int readAck(boolean canEof) throws IOException {
int c = in.read();
public ScpAckInfo readAck(boolean canEof) throws IOException {
final ScpAckInfo scpAckInfo = ScpAckInfo.readAck(this.in, this.csIn, canEof);
int c = scpAckInfo == null ? -1 : scpAckInfo.getStatusCode();
switch (c) {
case -1:
if (log.isDebugEnabled()) {
@@ -31,12 +33,12 @@ public class TalendScpHelper extends ScpHelper {
throw new EOFException("readAck - EOF before ACK");
}
break;
case OK:
case ScpAckInfo.OK:
if (log.isDebugEnabled()) {
log.debug("readAck({})[EOF={}] read OK", this, canEof);
}
break;
case WARNING: {
case ScpAckInfo.WARNING: {
if (log.isDebugEnabled()) {
log.debug("readAck({})[EOF={}] read warning message", this, canEof);
}
@@ -45,7 +47,7 @@ public class TalendScpHelper extends ScpHelper {
log.warn("readAck({})[EOF={}] - Received warning: {}", this, canEof, line);
throw new ScpException("received error: " + line, c);
}
case ERROR: {
case ScpAckInfo.ERROR: {
if (log.isDebugEnabled()) {
log.debug("readAck({})[EOF={}] read error message", this, canEof);
}
@@ -58,6 +60,6 @@ public class TalendScpHelper extends ScpHelper {
default:
break;
}
return c;
return scpAckInfo;
}
}

View File

@@ -60,9 +60,9 @@
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>1.2.19</version>
</dependency>

View File

@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.talend.components</groupId>
<artifactId>talend-ws</artifactId>
<version>1.0.5-20210629</version>
<version>1.0.6-20220304</version>
<packaging>jar</packaging>
<licenses>
@@ -20,7 +20,7 @@
<talend.nexus.url>https://artifacts-oss.talend.com</talend.nexus.url>
<cxf.version>3.3.10</cxf.version>
<cxf.version>3.4.4</cxf.version>
<odata.version>4.3.0</odata.version>
<slf4j.version>1.7.12</slf4j.version>
<httpclient.version>4.5.13</httpclient.version>

View File

@@ -1,8 +0,0 @@
org.talend.ws.exception.IllegalPropertyAccessException=Unable to access property {0} which is not accessible for type {1}
org.talend.ws.exception.NoSuchPropertyException=Property {0} does not exist for type {1}
org.talend.ws.exception.Instantiation=Unable to instantiate class of type {0}
org.talend.ws.exception.InvocationTargetPropertyAccessor=A property accessor has thrown an exception : property {0} of class {1}
org.talend.ws.exception.illegalAccessValueOf=Unable to call method valueOf for enum type {0}
org.talend.ws.exception.Unknown=An unknown exception has been thrown
org.talend.ws.exception.InvalidEnumValueException=Value {0} is not valid for enum {1}
org.talend.ws.exception.InvalidParameterAnyType=You must specify a map like this for anyTypes : {anyType: value, anyType_type: qname} pour les anyType

View File

@@ -1,7 +1,7 @@
org.talend.ws.exception.IllegalPropertyAccessException={0} \u30D7\u30ED\u30D1\u30C6\u30A3\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093\u3002\u3053\u308C\u306F {1} \u578B\u306E\u305F\u3081\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093\u3002
org.talend.ws.exception.NoSuchPropertyException=\u30BF\u30A4\u30D7{1}\u306E\u30D7\u30ED\u30D1\u30C6\u30A3{0}\u306F\u5B58\u5728\u3057\u307E\u305B\u3093
org.talend.ws.exception.Instantiation={0} \u578B\u306E\u30AF\u30E9\u30B9\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3002
org.talend.ws.exception.InvocationTargetPropertyAccessor=\u30D7\u30ED\u30D1\u30C6\u30A3\u30A2\u30AF\u30BB\u30B9\u306B\u3088\u308A\u3001\u4F8B\u5916\u304C\u30B9\u30ED\u30FC\u3055\u308C\u307E\u3057\u305F\uFF1A\u30AF\u30E9\u30B9 {1} \u306E\u30D7\u30ED\u30D1\u30C6\u30A3 {0}
org.talend.ws.exception.InvocationTargetPropertyAccessor=\u30D7\u30ED\u30D1\u30C6\u30A3\u30A2\u30AF\u30BB\u30C3\u30B5\u30FC\u304C\u4F8B\u5916\u3092\u8FD4\u3057\u307E\u3057\u305F: \u30AF\u30E9\u30B9 {1} \u306E\u30D7\u30ED\u30D1\u30C6\u30A3 {0}
org.talend.ws.exception.illegalAccessValueOf=\u5217\u6319\u578B {0} \u306EvalueOf\u30E1\u30BD\u30C3\u30C9\u3092\u547C\u3073\u51FA\u3059\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
org.talend.ws.exception.Unknown=\u4E0D\u660E\u306A\u4F8B\u5916\u304C\u30B9\u30ED\u30FC\u3055\u308C\u307E\u3057\u305F
org.talend.ws.exception.InvalidEnumValueException=\u5024 {0} \u306Fenum\u578B {1} \u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002

View File

@@ -83,9 +83,9 @@
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>1.2.19</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>

View File

@@ -5,7 +5,7 @@
<groupId>org.talend</groupId>
<artifactId>talendMQConnectionUtil</artifactId>
<version>1.0.1-20190215</version>
<version>1.1.0-20220307</version>
<packaging>jar</packaging>
<name>talendMQConnectionUtil</name>
@@ -63,13 +63,8 @@
</dependency>
<dependency>
<groupId>com.ibm.mq</groupId>
<artifactId>com.ibm.mq</artifactId>
<version>8.0.0.9</version>
</dependency>
<dependency>
<groupId>com.ibm.mq</groupId>
<artifactId>com.ibm.mqjms</artifactId>
<version>8.0.0.9</version>
<artifactId>com.ibm.mq.allclient</artifactId>
<version>9.2.4.0</version>
</dependency>
<dependency>
<groupId>javax.resource</groupId>
@@ -79,7 +74,7 @@
<dependency>
<groupId>org.talend</groupId>
<artifactId>talendMQRFH2</artifactId>
<version>1.0.1-20190206</version>
<version>1.1.0-20220307</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>

View File

@@ -61,9 +61,9 @@
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>1.2.19</version>
</dependency>
</dependencies>
<build>

View File

@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.talend.components</groupId>
<artifactId>talendzip</artifactId>
<version>1.2-20210901</version>
<version>1.3</version>
<licenses>
<license>
@@ -61,7 +61,7 @@
<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>1.3.3</version>
<version>2.10.0</version>
</dependency>
<dependency>
@@ -70,10 +70,5 @@
<version>1.21</version>
</dependency>
<dependency>
<groupId>org.talend.components</groupId>
<artifactId>checkArchive</artifactId>
<version>1.2-20210901</version>
</dependency>
</dependencies>
</project>

View File

@@ -1,184 +1,183 @@
package org.talend.archive;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.zip.GZIPInputStream;
import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.PBEParameterSpec;
import org.apache.commons.compress.archivers.ArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
import org.apache.commons.compress.archivers.zip.ZipFile;
// import javax.crypto.Cipher;
public class IntegrityUtil {
/**
* Is used to check if the zip file is corrupted/destroyed
*
* @param file
* @return
*/
public static boolean isZipValid(final File file) {
ZipFile zipFile = null;
try {
zipFile = new ZipFile(file);
return true;
} catch (IOException e) {
return false;
} finally {
try {
if (zipFile != null) {
zipFile.close();
zipFile = null;
}
} catch (IOException e) {
}
}
}
public static void validate(final File file) {
ZipFile zipFile = null;
try {
zipFile = new ZipFile(file);
} catch (IOException e) {
} finally {
try {
if (zipFile != null) {
zipFile.close();
zipFile = null;
}
} catch (IOException e) {
}
}
}
/**
* To check if the encrpted zip file is corrupted or not
*
* @param file
* @param password
* @return
*/
public static boolean isEncryptedZipValid(final File file, String password) {
ZipArchiveInputStream input = null;
InputStream target = null;
try {
target = new FileInputStream(file);
target = new CipherInputStream(target, createCipher(Cipher.DECRYPT_MODE, password));
input = new ZipArchiveInputStream(target);
ArchiveEntry entry = input.getNextEntry();
return true;
} catch (IOException e) {
return false;
} catch (Exception e) {
return false;
} finally {
try {
if (input != null) {
input.close();
input = null;
}
if (target != null) {
target.close();
target = null;
}
} catch (IOException e) {
}
}
}
/**
* Used to check tar.gz/.tgz/.gz file is corrupted/destroyed
*
* @param fileName
* @return
*/
public static boolean isGZIPValid(final String fileName) {
GZIPInputStream inputStream = null;
InputStream is = null;
try {
is = new FileInputStream(new File(fileName));
inputStream = new GZIPInputStream(is);
return true;
} catch (IOException e) {
return false;
}finally {
try {
if (inputStream != null) {
inputStream.close();
inputStream = null;
} else if(is != null) {
is.close();
is = null;
}
} catch (IOException e) {
}
}
}
/**
* Used to check tar.tar file is corrupted/destroyed
*
* @param fileName
* @return
*/
public static boolean isTarValid(final String fileName) {
TarArchiveInputStream inputStream = null;
InputStream is = null;
try {
is = new FileInputStream(new File(fileName));
inputStream = new TarArchiveInputStream(is);
return inputStream.canReadEntryData(inputStream.getNextEntry());
} catch (IOException e) {
return false;
}finally {
try {
if (inputStream != null) {
inputStream.close();
inputStream = null;
} else if(is != null) {
is.close();
is = null;
}
} catch (IOException e) {
}
}
}
/**
*
* @param mode
* @param password
* @return
* @throws Exception
*/
public static Cipher createCipher(int mode, String password) throws Exception {
String alg = "PBEWithSHA1AndDESede"; // BouncyCastle has better algorithms
PBEKeySpec keySpec = new PBEKeySpec(password.toCharArray());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(alg);
SecretKey secretKey = keyFactory.generateSecret(keySpec);
Cipher cipher = Cipher.getInstance("PBEWithSHA1AndDESede");
cipher.init(mode, secretKey, new PBEParameterSpec("saltsalt".getBytes(), 2000));
return cipher;
}
}
package com.talend.compress.zip;
import org.apache.commons.compress.archivers.ArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
import org.apache.commons.compress.archivers.zip.ZipFile;
import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.PBEParameterSpec;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.zip.GZIPInputStream;
// import javax.crypto.Cipher;
public class IntegrityUtil {
/**
* Is used to check if the zip file is corrupted/destroyed
*
* @param file
* @return
*/
public static boolean isZipValid(final File file) {
ZipFile zipFile = null;
try {
zipFile = new ZipFile(file);
return true;
} catch (IOException e) {
return false;
} finally {
try {
if (zipFile != null) {
zipFile.close();
zipFile = null;
}
} catch (IOException e) {
}
}
}
public static void validate(final File file) {
ZipFile zipFile = null;
try {
zipFile = new ZipFile(file);
} catch (IOException e) {
} finally {
try {
if (zipFile != null) {
zipFile.close();
zipFile = null;
}
} catch (IOException e) {
}
}
}
/**
* To check if the encrpted zip file is corrupted or not
*
* @param file
* @param password
* @return
*/
public static boolean isEncryptedZipValid(final File file, String password) {
ZipArchiveInputStream input = null;
InputStream target = null;
try {
target = new FileInputStream(file);
target = new CipherInputStream(target, createCipher(Cipher.DECRYPT_MODE, password));
input = new ZipArchiveInputStream(target);
ArchiveEntry entry = input.getNextEntry();
return true;
} catch (IOException e) {
return false;
} catch (Exception e) {
return false;
} finally {
try {
if (input != null) {
input.close();
input = null;
}
if (target != null) {
target.close();
target = null;
}
} catch (IOException e) {
}
}
}
/**
* Used to check tar.gz/.tgz/.gz file is corrupted/destroyed
*
* @param fileName
* @return
*/
public static boolean isGZIPValid(final String fileName) {
GZIPInputStream inputStream = null;
InputStream is = null;
try {
is = new FileInputStream(new File(fileName));
inputStream = new GZIPInputStream(is);
return true;
} catch (IOException e) {
return false;
}finally {
try {
if (inputStream != null) {
inputStream.close();
inputStream = null;
} else if(is != null) {
is.close();
is = null;
}
} catch (IOException e) {
}
}
}
/**
* Used to check tar.tar file is corrupted/destroyed
*
* @param fileName
* @return
*/
public static boolean isTarValid(final String fileName) {
TarArchiveInputStream inputStream = null;
InputStream is = null;
try {
is = new FileInputStream(new File(fileName));
inputStream = new TarArchiveInputStream(is);
return inputStream.canReadEntryData(inputStream.getNextEntry());
} catch (IOException e) {
return false;
}finally {
try {
if (inputStream != null) {
inputStream.close();
inputStream = null;
} else if(is != null) {
is.close();
is = null;
}
} catch (IOException e) {
}
}
}
/**
*
* @param mode
* @param password
* @return
* @throws Exception
*/
public static Cipher createCipher(int mode, String password) throws Exception {
String alg = "PBEWithSHA1AndDESede"; // BouncyCastle has better algorithms
PBEKeySpec keySpec = new PBEKeySpec(password.toCharArray());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(alg);
SecretKey secretKey = keyFactory.generateSecret(keySpec);
Cipher cipher = Cipher.getInstance("PBEWithSHA1AndDESede");
cipher.init(mode, secretKey, new PBEParameterSpec("saltsalt".getBytes(), 2000));
return cipher;
}
}

View File

@@ -1,10 +1,11 @@
package com.talend.compress.zip;
import java.io.File;
import java.nio.charset.Charset;
import java.util.List;
import java.util.Optional;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.model.FileHeader;
public class Unzip {
@@ -96,9 +97,10 @@ public class Unzip {
"Please enter the password and try again..");
}
ZipFile zipFile = new ZipFile(sourceZip);
ZipFile zipFile = new ZipFile(sourceZip,password.toCharArray());
if(encording != null){
zipFile.setFileNameCharset(encording);
zipFile.setCharset(Charset.forName(encording));
}
if (checkArchive) {
@@ -108,10 +110,6 @@ public class Unzip {
}
}
if (zipFile.isEncrypted()) {
zipFile.setPassword(password);
}
List fileHeaderList = zipFile.getFileHeaders();
if (fileHeaderList == null) {
@@ -130,7 +128,7 @@ public class Unzip {
filename = filename.substring(filename.lastIndexOf('/') + 1);
}
zipFile.extractFile(fileHeader, targetDir, null, filename);
zipFile.extractFile(fileHeader, targetDir, filename);
util.addUnzippedFiles(targetDir, filename);
}
}
@@ -147,7 +145,7 @@ public class Unzip {
}
if (checkArchive) {
if (!org.talend.archive.IntegrityUtil.isEncryptedZipValid(file,
if (!IntegrityUtil.isEncryptedZipValid(file,
password)) {
throw new RuntimeException("The file " + sourceZip
+ " is corrupted, process terminated...");
@@ -158,7 +156,7 @@ public class Unzip {
try {
is = new java.io.FileInputStream(sourceZip);
is = new javax.crypto.CipherInputStream(is,
org.talend.archive.IntegrityUtil.createCipher(
IntegrityUtil.createCipher(
javax.crypto.Cipher.DECRYPT_MODE, password));
org.apache.commons.compress.archivers.zip.ZipArchiveInputStream input = new org.apache.commons.compress.archivers.zip.ZipArchiveInputStream(
new java.io.BufferedInputStream(is),Optional.ofNullable(encording).orElse("UTF8"));
@@ -184,7 +182,7 @@ public class Unzip {
// apache common compress impl
public void doUnzipWithoutDecryption() throws Exception {
if (checkArchive
&& !org.talend.archive.IntegrityUtil
&& !IntegrityUtil
.isZipValid(new java.io.File(sourceZip))) {
Thread.sleep(1000); // To make the process terminated after the
// System.out.println

View File

@@ -5,16 +5,20 @@ import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.zip.GZIPOutputStream;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.util.Zip4jConstants;
import net.lingala.zip4j.model.enums.AesKeyStrength;
import net.lingala.zip4j.model.enums.CompressionLevel;
import net.lingala.zip4j.model.enums.CompressionMethod;
import net.lingala.zip4j.model.enums.EncryptionMethod;
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;
import org.apache.commons.compress.compressors.gzip.GzipUtils;
@@ -26,7 +30,7 @@ public class Zip {
private String targetZip;
private boolean overwriteExistTargetZip = true;
private boolean makeTargetDir = false;
private int compressLevel = 4;
private CompressionLevel compressLevel = CompressionLevel.MEDIUM_FAST;
private String encoding = "ISO-8859-15";
private boolean allFiles = true;
@@ -40,8 +44,8 @@ public class Zip {
private boolean useZip4jEncryption = false;
private int encryptionMethod = Zip4jConstants.ENC_METHOD_AES;
private int aesKeyStrength = Zip4jConstants.AES_STRENGTH_256;
private EncryptionMethod encryptionMethod = EncryptionMethod.AES;
private AesKeyStrength aesKeyStrength = AesKeyStrength.KEY_STRENGTH_256;
private String archiveFormat = "zip";
private boolean syncFlush;
@@ -79,19 +83,29 @@ public class Zip {
}
public void setCompressLevel(int compressLevel) {
this.compressLevel = compressLevel;
switch (compressLevel){
case 0:
this.compressLevel = CompressionLevel.NO_COMPRESSION;
break;
case 4:
this.compressLevel = CompressionLevel.MEDIUM_FAST;
break;
case 9:
this.compressLevel = CompressionLevel.ULTRA;
break;
}
}
public void setMakeTargetDir(boolean makeTargetDir) {
this.makeTargetDir = makeTargetDir;
}
public void setEncryptionMethod(int encryptionMethod) {
this.encryptionMethod = encryptionMethod;
public void setEncryptionMethod(String encryptionMethod) {
this.encryptionMethod = EncryptionMethod.valueOf(encryptionMethod);
}
public void setAesKeyStrength(int aesKeyStrength) {
this.aesKeyStrength = aesKeyStrength;
this.aesKeyStrength = AesKeyStrength.getAesKeyStrengthFromRawCode(aesKeyStrength);
}
public String getArchiveFormat() {
@@ -185,7 +199,7 @@ public class Zip {
targetFile.setLastModified(System.currentTimeMillis());
FileOutputStream fos = new FileOutputStream(targetFile);
final boolean syncFlush = this.syncFlush;
final int compressLevel = this.compressLevel;
final int compressLevel = this.compressLevel.getLevel();
TarArchiveOutputStream taos = new TarArchiveOutputStream(new GZIPOutputStream(fos, syncFlush) {
{
this.def.setLevel(compressLevel);
@@ -222,7 +236,7 @@ public class Zip {
OutputStream out = new FileOutputStream(tarFile);
try {
final boolean syncFlush = this.syncFlush;
final int compressLevel = this.compressLevel;
final int compressLevel = this.compressLevel.getLevel();
GZIPOutputStream gcos = new GZIPOutputStream(out, syncFlush) {
{
this.def.setLevel(compressLevel);
@@ -247,7 +261,7 @@ public class Zip {
try {
output_stream = new java.io.FileOutputStream(targetZip);
if (isEncrypted && !"".equals(password)) {
output_stream = new javax.crypto.CipherOutputStream(output_stream, org.talend.archive.IntegrityUtil.createCipher(
output_stream = new javax.crypto.CipherOutputStream(output_stream, IntegrityUtil.createCipher(
javax.crypto.Cipher.ENCRYPT_MODE, password));
}
} catch (Exception e) {
@@ -260,7 +274,7 @@ public class Zip {
org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream out = null;
out = new org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream(
new java.io.BufferedOutputStream(output_stream));
out.setLevel(compressLevel);
out.setLevel(compressLevel.getLevel());
// set filename & comment encoding
out.setEncoding(encoding);
if ("ALWAYS".equals(zip64Mode)) {
@@ -302,26 +316,26 @@ public class Zip {
// zip4j impl
private void doZip2(final File source, final List<File> list) throws Exception {
ZipFile zipFile = new ZipFile(targetZip);
ZipFile zipFile = new ZipFile(targetZip,password.toCharArray());
if ("UTF-8".equalsIgnoreCase(encoding)) {
encoding = "UTF8";
}
zipFile.setFileNameCharset(encoding);
zipFile.setCharset(Charset.forName(encoding));
ZipParameters params = new ZipParameters();
params.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
params.setCompressionMethod(CompressionMethod.DEFLATE);
params.setCompressionLevel(compressLevel);
if (isEncrypted && !"".equals(password)) {
params.setEncryptFiles(true);
params.setEncryptionMethod(encryptionMethod);
if (Zip4jConstants.ENC_METHOD_AES == encryptionMethod) {
if (encryptionMethod == EncryptionMethod.AES) {
params.setAesKeyStrength(aesKeyStrength);
}
params.setPassword(password);
}
params.setDefaultFolderPath(source.getAbsoluteFile().getPath());
zipFile.addFiles((ArrayList) list, params);
zipFile.addFiles(list, params);
}
}

View File

@@ -19,8 +19,6 @@ bin.excludes = components/tAlfrescoOutput/wstx-lgpl-3.2.7.jar,\
components/tRSSInput/nekohtml.jar,\
components/tAlfrescoOutput/wstx-lgpl-3.2.7.jar,\
components/tAdvancedXMLMapHash/trove.jar,\
components/tCloudStart/logback-core-1.0.9.jar,\
components/tCloudStart/logback-classic-1.0.9.jar,\
components/tLineChart/jcommon-1.0.6.jar,\
components/tMomInput/jnp-client.jar,\
components/tMomInput/javassist.jar,\

View File

@@ -1,2 +0,0 @@
LONG_NAME=\u039A\u03BB\u03B5\u03AF\u03BD\u03B5\u03B9 \u03BC\u03B9\u03B1 \u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03B7 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 AS400.
CONNECTION.NAME=\u039B\u03AF\u03C3\u03C4\u03B1 \u03A3\u03C5\u03C3\u03C4\u03B1\u03C4\u03B9\u03BA\u03CE\u03BD \u03A3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03C9\u03BD

View File

@@ -1,3 +0,0 @@
HELP=org.talend.help.tAS400Close
LONG_NAME=Close a selected AS400 connection.
CONNECTION.NAME=Component List

View File

@@ -1 +0,0 @@
CONNECTION.NAME=\uCEF4\uD3EC\uB10C\uD2B8\uBAA9\uB85D

View File

@@ -1,3 +0,0 @@
CLOSE.NAME=\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF \u03A3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7\u03C2
LONG_NAME=\u039F\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03BD\u03B5\u03B9 \u03CC\u03BB\u03B5\u03C2 \u03C4\u03B9\u03C2 \u03C3\u03C5\u03BD\u03B1\u03BB\u03BB\u03B1\u03B3\u03AD\u03C2 \u03C0\u03BF\u03C5 \u03B4\u03B5\u03BD \u03AD\u03C7\u03BF\u03C5\u03BD \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03C9\u03B8\u03B5\u03AF \u03C3\u03C4\u03B7\u03BD \u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03B7 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 AS400
CONNECTION.NAME=\u039B\u03AF\u03C3\u03C4\u03B1 \u03A3\u03C5\u03C3\u03C4\u03B1\u03C4\u03B9\u03BA\u03CE\u03BD \u03A3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03C9\u03BD

View File

@@ -1,4 +0,0 @@
CLOSE.NAME=Close Connection
HELP=org.talend.help.tAS400Commit
LONG_NAME=Commits all transactions not already commited in the selected AS400 connection
CONNECTION.NAME=Component List

View File

@@ -1 +0,0 @@
CONNECTION.NAME=\uCEF4\uD3EC\uB10C\uD2B8\uBAA9\uB85D

View File

@@ -1,2 +0,0 @@
CLOSE.NAME=Zamknij po\u0142\u0105czenie
CONNECTION.NAME=Lista komponent\u00F3w

View File

@@ -1,2 +0,0 @@
CLOSE.NAME=Fechar conex\u00E3o
CONNECTION.NAME=Lista de componentes

View File

@@ -1,4 +0,0 @@
HOST.NAME=\u0627\u0644\u0645\u0636\u064A\u0641
PASS.NAME=\u0631\u0645\u0632 \u0627\u0644\u0645\u0631\u0648\u0631
AUTO_COMMIT.NAME=\u062A\u0623\u0643\u064A\u062F \u062D\u0641\u0638 \u0622\u0644\u064A
DBNAME.NAME=\u0642\u0627\u0639\u062F\u0629 \u0628\u064A\u0627\u0646\u0627\u062A

View File

@@ -1,16 +0,0 @@
ENCODING.NAME=\u039A\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7
HOST.NAME=\u039A\u03CC\u03BC\u03B2\u03BF\u03C2
LONG_NAME=\u0394\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03B5\u03AF \u03BC\u03B9\u03B1 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 \u03C3\u03B5 \u03BC\u03B9\u03B1 \u03B2\u03AC\u03C3\u03B7 \u03B4\u03B5\u03B4\u03BF\u03BC\u03AD\u03BD\u03C9\u03BD AS400
NULL_CHAR.NAME=\u03A7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B1\u03C2 Null
PASS.NAME=\u039A\u03C9\u03B4\u03B9\u03BA\u03AE \u03BB\u03AD\u03BE\u03B7
PORT.NAME=\u0398\u03CD\u03C1\u03B1
PROPERTIES.NAME=\u03A0\u03C1\u03CC\u03C3\u03B8\u03B5\u03C4\u03B5\u03C2 \u03A0\u03B1\u03C1\u03AC\u03BC\u03B5\u03C4\u03C1\u03BF\u03B9 JDBC
USER.NAME=\u038C\u03BD\u03BF\u03BC\u03B1 \u03C7\u03C1\u03AE\u03C3\u03C4\u03B7
DB_VERSION.NAME=\u0388\u03BA\u03B4\u03BF\u03C3\u03B7 \u0392\u03B4
DB_VERSION.ITEM.V5R2_V5R4=V5R2 \u03C3\u03B5 V5R4 (Deprecated)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 \u03C3\u03B5 V6R1 (Deprecated)
USE_SHARED_CONNECTION.NAME=\u03A7\u03C1\u03AE\u03C3\u03B7 \u03AE \u039A\u03B1\u03C4\u03B1\u03C7\u03CE\u03C1\u03B7\u03C3\u03B7 \u03BC\u03B9\u03B1\u03C2 \u03B4\u03B9\u03B1\u03BC\u03BF\u03B9\u03C1\u03B1\u03B6\u03CC\u03BC\u03B5\u03BD\u03B7\u03C2 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7\u03C2 \u0392\u0394
SHARED_CONNECTION_NAME.NAME=\u038C\u03BD\u03BF\u03BC\u03B1 \u0394\u03B9\u03B1\u03BC\u03BF\u03B9\u03C1\u03B1\u03B6\u03CC\u03BC\u03B5\u03BD\u03B7\u03C2 \u03A3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7\u03C2 \u0392\u0394
AUTO_COMMIT.NAME=\u0391\u03C5\u03C4\u03CC\u03BC\u03B1\u03C4\u03B7 \u0394\u03AD\u03C3\u03BC\u03B5\u03C5\u03C3\u03B7
TYPE.NAME=\u039F\u03B4\u03B7\u03B3\u03CC\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2 \u0394\u03B5\u03B4\u03BF\u03BC\u03AD\u03BD\u03C9\u03BD
PROPERTY.NAME=\u03A4\u03CD\u03C0\u03BF\u03C2 \u0399\u03B4\u03B9\u03CC\u03C4\u03B7\u03C4\u03B1\u03C2

View File

@@ -1,21 +0,0 @@
ENCODING.NAME=Encoding
HELP=org.talend.help.tAS400Connection
HOST.NAME=Host
LONG_NAME=Creates a connection to an AS400 database
NULL_CHAR.NAME=Null Char
PASS.NAME=Password
PORT.NAME=Port
PROPERTIES.NAME=Additional JDBC Parameters
USER.NAME=Username
DB_VERSION.NAME=DB Version
DB_VERSION.ITEM.V5R2_V5R4=V5R2 to V5R4 (Deprecated)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 to V6R1 (Deprecated)
USE_SHARED_CONNECTION.NAME=Use or register a shared DB Connection
SHARED_CONNECTION_NAME.NAME=Shared DB Connection Name
AUTO_COMMIT.NAME=Auto Commit
TYPE.NAME=Database Driver
PROPERTY.NAME=Property Type
DB_VERSION.ITEM.V6R1_V7R2=V6R1 to V7R2
DBNAME.NAME=Database
NB_LINE.NAME=Number of line
DB_VERSION.ITEM.V7R1_V7R3=V7R1 to V7R3

View File

@@ -1,8 +0,0 @@
HOST.NAME=Host
PASS.NAME=Lozinka
PORT.NAME=Port
PROPERTIES.NAME=Dodatni JDBC Parametri
USER.NAME=Korisni\u010Dko ime
DB_VERSION.ITEM.V5R2_V5R4=V5R2 u V5R4
DB_VERSION.ITEM.V5R3_V6R1=V5R3 u V6R1
PROPERTY.NAME=Tip svojstva

View File

@@ -1,2 +0,0 @@
PASS.NAME=\uBE44\uBC00\uBC88\uD638
USER.NAME=\uC0AC\uC6A9\uC790

View File

@@ -1,4 +0,0 @@
PASS.NAME=Wachtwoord
USER.NAME=Gebruikersnaam
DB_VERSION.ITEM.V5R2_V5R4=V5R2 to V5R4
DB_VERSION.ITEM.V5R3_V6R1=V5R3 to V6R1

View File

@@ -1,12 +0,0 @@
ENCODING.NAME=Kodowanie
HOST.NAME=Host
NULL_CHAR.NAME=Znak Null
PASS.NAME=Has\u0142o
PORT.NAME=Port
USER.NAME=Nazwa u\u017Cytkownika
DB_VERSION.NAME=Wersja bazy danych
DB_VERSION.ITEM.V5R2_V5R4=V5R2 na V5R4
DB_VERSION.ITEM.V5R3_V6R1=V5R3 na V6R1
AUTO_COMMIT.NAME=Auto Commit
TYPE.NAME=Sterownik bazy danych
PROPERTY.NAME=Typ w\u0142a\u015Bciwo\u015Bci

View File

@@ -1,5 +0,0 @@
HOST.NAME=Host
NULL_CHAR.NAME=Caracter nulo
PASS.NAME=Senha
PORT.NAME=Porta
AUTO_COMMIT.NAME=Auto Commit

View File

@@ -1,6 +0,0 @@
ENCODING.NAME=Incodare
HOST.NAME=host
PASS.NAME=parola
PORT.NAME=port
USER.NAME=Nume utilizator
USE_SHARED_CONNECTION.NAME=Inregistreaz\u0103 sau folose\u015Fte legatur\u0103 DB partajat\u0103

View File

@@ -1,3 +0,0 @@
PASS.NAME=\u015Eifre
PORT.NAME=Port
USER.NAME=Kullan\u0131c\u0131 Ad\u0131

View File

@@ -1,4 +0,0 @@
PASS.NAME=\u0631\u0645\u0632 \u0627\u0644\u0645\u0631\u0648\u0631
SCHEMA_DB.NAME=\u0645\u062E\u0637\u0637
SCHEMA.NAME=\u0645\u062E\u0637\u0637
DBNAME.NAME=\u0642\u0627\u0639\u062F\u0629 \u0628\u064A\u0627\u0646\u0627\u062A

View File

@@ -1,23 +0,0 @@
HOST.NAME=\u038C\u03BD\u03BF\u03BC\u03B1 \u03BA\u03CC\u03BC\u03B2\u03BF\u03C5
LONG_NAME=\u0394\u03B9\u03B1\u03B2\u03AC\u03B6\u03B5\u03B9 \u03AD\u03BD\u03B1\u03BD \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1 \u03BA\u03B1\u03B9 \u03B5\u03BE\u03AC\u03B3\u03B5\u03B9 \u03C0\u03B5\u03B4\u03AF\u03B1 \u03B2\u03AC\u03C3\u03B5\u03B9 \u03B5\u03BD\u03CC\u03C2 \u03B5\u03C1\u03C9\u03C4\u03AE\u03BC\u03B1\u03C4\u03BF\u03C2 SQL
PASS.NAME=\u039A\u03C9\u03B4\u03B9\u03BA\u03AE \u03BB\u03AD\u03BE\u03B7
PROPERTIES.NAME=\u03A0\u03C1\u03CC\u03C3\u03B8\u03B5\u03C4\u03B5\u03C2 \u03A0\u03B1\u03C1\u03AC\u03BC\u03B5\u03C4\u03C1\u03BF\u03B9 JDBC
QUERY.NAME=\u0395\u03C1\u03CE\u03C4\u03B7\u03BC\u03B1
QUERYSTORE.NAME=\u03A4\u03CD\u03C0\u03BF\u03C2 \u0395\u03C1\u03C9\u03C4\u03AE\u03BC\u03B1\u03C4\u03BF\u03C2
SCHEMA_DB.NAME=\u03A3\u03C7\u03AE\u03BC\u03B1
USER.NAME=\u038C\u03BD\u03BF\u03BC\u03B1 \u03C7\u03C1\u03AE\u03C3\u03C4\u03B7
USE_EXISTING_CONNECTION.NAME=\u03A7\u03C1\u03AE\u03C3\u03B7 \u03C5\u03C0\u03AC\u03C1\u03C7\u03BF\u03C5\u03C3\u03B1\u03C2 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7\u03C2
TRIM_ALL_COLUMN.NAME=\u0391\u03C6\u03B1\u03AF\u03C1\u03B5\u03C3\u03B7 \u03BA\u03B5\u03BD\u03CE\u03BD \u03B1\u03C0\u03CC \u03CC\u03BB\u03B5\u03C2 \u03C4\u03B9\u03C2 \u03C3\u03C4\u03AE\u03BB\u03B5\u03C2 String/Char
TRIM_COLUMN.NAME=\u0391\u03C6\u03B1\u03AF\u03C1\u03B5\u03C3\u03B7 \u03BA\u03B5\u03BD\u03CE\u03BD \u03B1\u03C0\u03CC \u03C3\u03C4\u03AE\u03BB\u03B7
TRIM_COLUMN.ITEM.TRIM=\u0391\u03C6\u03B1\u03AF\u03C1\u03B5\u03C3\u03B7 \u039A\u03B5\u03BD\u03CE\u03BD
TABLE.NAME=\u038C\u03BD\u03BF\u03BC\u03B1 \u03A0\u03AF\u03BD\u03B1\u03BA\u03B1
DB_VERSION.NAME=\u0388\u03BA\u03B4\u03BF\u03C3\u03B7 \u0392\u03B4
DB_VERSION.ITEM.V5R2_V5R4=V5R2 \u03C3\u03B5 V5R4 (Deprecated)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 \u03C3\u03B5 V6R1 (Deprecated)
GUESS_SCHEMA.NAME=\u0395\u03B9\u03BA\u03B1\u03C3\u03AF\u03B1 \u03A3\u03C7\u03AE\u03BC\u03B1\u03C4\u03BF\u03C2
CONNECTION.NAME=\u039B\u03AF\u03C3\u03C4\u03B1 \u03A3\u03C5\u03C3\u03C4\u03B1\u03C4\u03B9\u03BA\u03CE\u03BD \u03A3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03C9\u03BD
PROPERTY.NAME=\u03A4\u03CD\u03C0\u03BF\u03C2 \u0399\u03B4\u03B9\u03CC\u03C4\u03B7\u03C4\u03B1\u03C2
TYPE.NAME=\u039F\u03B4\u03B7\u03B3\u03CC\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2 \u0394\u03B5\u03B4\u03BF\u03BC\u03AD\u03BD\u03C9\u03BD
SCHEMA.NAME=\u03A3\u03C7\u03AE\u03BC\u03B1
ENCODING.NAME=\u039A\u03C9\u03B4\u03B9\u03BA\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7
MAPPING.NAME=\u03A7\u03B1\u03C1\u03C4\u03BF\u03B3\u03C1\u03AC\u03C6\u03B7\u03C3\u03B7

View File

@@ -1,28 +0,0 @@
HELP=org.talend.help.tAS400Input
HOST.NAME=Host name
LONG_NAME=Reads a table and extracts fields based on an SQL query
PASS.NAME=Password
PROPERTIES.NAME=Additional JDBC Parameters
QUERY.NAME=Query
QUERYSTORE.NAME=Query Type
SCHEMA_DB.NAME=Schema
USER.NAME=Username
USE_EXISTING_CONNECTION.NAME=Using an existing connection
TRIM_ALL_COLUMN.NAME=Trim all the String/Char columns
TRIM_COLUMN.NAME=Trim column
TRIM_COLUMN.ITEM.TRIM=Trim
TABLE.NAME=Table Name
DB_VERSION.NAME=DB Version
DB_VERSION.ITEM.V5R2_V5R4=V5R2 to V5R4 (Deprecated)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 to V6R1 (Deprecated)
GUESS_SCHEMA.NAME=Guess Schema
CONNECTION.NAME=Component List
PROPERTY.NAME=Property Type
TYPE.NAME=Database Driver
SCHEMA.NAME=Schema
ENCODING.NAME=Encoding
MAPPING.NAME=Mapping
DB_VERSION.ITEM.V6R1_V7R2=V6R1 to V7R2
DBNAME.NAME=Database
NB_LINE.NAME=Number of line
DB_VERSION.ITEM.V7R1_V7R3=V7R1 to V7R3

View File

@@ -1,10 +0,0 @@
PASS.NAME=Lozinka
PROPERTIES.NAME=Dodatni JDBC Parametri
SCHEMA_DB.NAME=\n\n\t\n\nCollection\n\nSchema
USER.NAME=Korisni\u010Dko ime
USE_EXISTING_CONNECTION.NAME=Koristi postoje\u0107u konekciju
TABLE.NAME=Naziv tablice
DB_VERSION.ITEM.V5R2_V5R4=V5R2 u V5R4
DB_VERSION.ITEM.V5R3_V6R1=V5R3 u V6R1
PROPERTY.NAME=Tip svojstva
SCHEMA.NAME=\n\n\t\n\nCollection\n\nSchema

View File

@@ -20,7 +20,7 @@ MAPPING.NAME=\u30DE\u30C3\u30D4\u30F3\u30B0
SET_QUERY_TIMEOUT.NAME=\u30AF\u30A8\u30EA\u30FC\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3092\u8A2D\u5B9A
QUERY_TIMEOUT_IN_SECONDS.NAME=\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\uFF08\u79D2\uFF09
NB_LINE.NAME=\u884C\u6570
GUESS_SCHEMA.NAME=\u30B9\u30AD\u30FC\u30DE\u306E\u63A8\u6E2C
GUESS_SCHEMA.NAME=\u30B9\u30AD\u30FC\u30DE\u3092\u63A8\u6E2C
CONNECTION.NAME=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30EA\u30B9\u30C8
PROPERTY.NAME=\u30D7\u30ED\u30D1\u30C6\u30A3\u30BF\u30A4\u30D7
TYPE.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C9\u30E9\u30A4\u30D0\u30FC

View File

@@ -1,4 +0,0 @@
PASS.NAME=\uBE44\uBC00\uBC88\uD638
USER.NAME=\uC0AC\uC6A9\uC790
TABLE.NAME=\uD14C\uC774\uBE14\uBA85
CONNECTION.NAME=\uCEF4\uD3EC\uB10C\uD2B8\uBAA9\uB85D

View File

@@ -1,5 +0,0 @@
PASS.NAME=Wachtwoord
USER.NAME=Gebruikersnaam
TABLE.NAME=Tabelnaam
DB_VERSION.ITEM.V5R2_V5R4=V5R2 to V5R4
DB_VERSION.ITEM.V5R3_V6R1=V5R3 to V6R1

View File

@@ -1,16 +0,0 @@
PASS.NAME=Has\u0142o
QUERY.NAME=Zapytanie
QUERYSTORE.NAME=Typ zapytania
SCHEMA_DB.NAME=Schemat
USER.NAME=Nazwa u\u017Cytkownika
TABLE.NAME=Nazwa tabeli
DB_VERSION.NAME=Wersja bazy danych
DB_VERSION.ITEM.V5R2_V5R4=V5R2 na V5R4
DB_VERSION.ITEM.V5R3_V6R1=V5R3 na V6R1
GUESS_SCHEMA.NAME=Podpowiedz schemat
CONNECTION.NAME=Lista komponent\u00F3w
PROPERTY.NAME=Typ w\u0142a\u015Bciwo\u015Bci
TYPE.NAME=Sterownik bazy danych
SCHEMA.NAME=Schemat
ENCODING.NAME=Kodowanie
MAPPING.NAME=Mapowanie

View File

@@ -1,4 +0,0 @@
PASS.NAME=Senha
QUERYSTORE.NAME=Tipo da consulta
TABLE.NAME=Nome da Tabela
CONNECTION.NAME=Lista de componentes

View File

@@ -1,4 +0,0 @@
PASS.NAME=parola
USER.NAME=Nume utilizator
USE_EXISTING_CONNECTION.NAME=Folosire conexiune existent\u0103
ENCODING.NAME=Incodare

View File

@@ -1,4 +0,0 @@
PASS.NAME=\u015Eifre
SCHEMA_DB.NAME=\u015Eema
USER.NAME=Kullan\u0131c\u0131 Ad\u0131
SCHEMA.NAME=\u015Eema

View File

@@ -1,2 +0,0 @@
SCHEMA.NAME=\u03A3\u03C7\u03AE\u03BC\u03B1
CONNECTION.NAME=\u039B\u03AF\u03C3\u03C4\u03B1 \u03A3\u03C5\u03C3\u03C4\u03B1\u03C4\u03B9\u03BA\u03CE\u03BD \u03A3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03C9\u03BD

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