Compare commits

...

219 Commits

Author SHA1 Message Date
Jane Ding
206e1c89d3 Revert "fix(TUP-28898):Drag Exasol connection to a job choose tDBOutput(Exasol) (#7023)" (#7217) (#7218)
This reverts commit 6b82e95328.
2022-02-18 17:27:01 +08:00
AlixMetivier
7828ead0be feat(TBD-12989): add databricks to universal plugins (#7143) (#7215)
* feat(TBD-12989): add databricks to universal plugins

* feat(TBD-12989): add databricks to universal plugin
2022-02-17 17:48:42 +01:00
ypiel
0e3c7526c0 fix(TDI-46848): mscrm oauth2+on-premise + client secret (#7157)
* fix(TDI-46848): add mscrm oauth2 logs

* fix(TDI-46848): Add client secret for oauth2 on-premise

* fix(TDI-46848): Fix pom version.

* fix(TDI-46848): client_secret not mandatory
2022-02-17 11:26:07 +01:00
kjwang
65c9752f76 Revert "Fix TUP-32950 On Ubuntu 18.04.5 documentation comment is displayed as a (#7098)" (#7211) (#7212)
This reverts commit 20a1cd9476.
2022-02-17 17:44:18 +08:00
kjwang
2e1e3cf573 TUP-34156 UI is broken for TCK Table structures in 8.0.1 + nighty (#7203)
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:46:31 +08:00
pyzhou
cdd89534b9 fix(TDI-47396):tSCPGet doesn't always close session (#7134) 2022-02-14 17:51:59 +08:00
jiezhang-tlnd
e64820cab0 Master localized file backport 2022 0210 (#7197)
* Add localized files (#7192)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

* Add localized files (#7194)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

* Add localized files (#7196)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: jenkins-git <jenkins-git@talend.com>
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: sbouyer <35452259+sbouyer@users.noreply.github.com>
2022-02-14 16:01:31 +08:00
Jane Ding
6b82e95328 fix(TUP-28898):Drag Exasol connection to a job choose tDBOutput(Exasol) (#7023)
not work as tExasolOutput
https://jira.talendforge.org/browse/TUP-28898
2022-02-14 10:12:40 +08:00
hzhao-talendbj
b59ff111a5 fix(TUP-33639): Job which import by metedata bridge:NPE (#7141)
* 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-10 16:04:57 +08:00
jiezhang-tlnd
7f018d34f1 Master localized file backport 2022 0203 (#7185)
* Add localized files (#7180)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

* Add localized files (#7181)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: jenkins-git <jenkins-git@talend.com>
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
2022-02-07 18:02:10 +08:00
zyuan-talend
2281fab273 fix(TUP-34489):forward interpreter to child job in commandline. (#7162) 2022-02-07 12:15:08 +08:00
Dmytro Ochkas
87c369ca1e 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 13:32:21 +02:00
jiezhang-tlnd
346755a798 Master localized file backport 2022 01 27 (#7170)
* Add localized files (#7164)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

* Add localized files (#7165)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: jenkins-git <jenkins-git@talend.com>
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
2022-01-28 16:00:50 +08:00
jiezhang-tlnd
6373dabd6f fix(TUP-34575)Correction to messages-properties file (#7168)
* 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:05 +08:00
apoltavtsev
74cf2ca49d feat(APPINT-32531) Make all DS/Route builds Java 11 and above compatible, design/build & run should work with different Java versions (#7127) 2022-01-27 09:25:39 +01:00
Laurent BOURGEOIS
13d4589675 fix(TBD-13463):No FileSystem for scheme: HDFS on any EMR 5.29 job on Talend 8 (#7124) 2022-01-26 17:54:55 +01:00
jiezhang-tlnd
921629ac8f fix(TUP-34281): Cleanup of old translation files (#7105)
* fix(TUP-34281): Cleanup of old translation files

* Cleanup of old translation files
2022-01-26 18:13:06 +08:00
wang wei
e59cadab69 fix(TDI-47395): tPostgresqlOutput cannot select Insert as Action on Data when disable the Log4j(#7136) 2022-01-26 16:47:10 +08:00
jzhao
64c85d2f10 fix(TDI-47375):tMicrosoftCRM components with compile error when using OnPremise 2011 (#7115)
* fix(TDI-47375):tMicrosoftCRM components with compile error when using
OnPremise 2011

* fix(TDI-47375):class not found issue
2022-01-25 09:36:39 +08:00
kjwang
20a1cd9476 Fix TUP-32950 On Ubuntu 18.04.5 documentation comment is displayed as a (#7098)
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 14:47:31 +08:00
zyuan-talend
2a4d97e2f9 fix(TUP-27184):add junit test (#7145) 2022-01-21 11:06:59 +08:00
Wei Hua
5dfb2fa414 Hwei/bugfix/801/appint 33765 (#7138)
* 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:30:44 +08:00
jiezhang-tlnd
635ef37f93 Add localized files (#7149) (#7151)
* Add localized files (#7149)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

* Add localized files (#7150)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: jenkins-git <jenkins-git@talend.com>
Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
2022-01-21 09:55:53 +08:00
Jane Ding
cc8ff04ccb Add localized files (#7123) (#7146)
Co-authored-by: jenkins-git <jenkins-git@talend.com>

Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-01-20 10:12:36 +08:00
Emmanuel GALLOIS
1112ea17e2 feat(TCOMP-2045): Pass meta information about columns (#7099)
* feat(TCOMP-2045): fix quotes and escaping issues
- add import
2022-01-19 17:14:14 +01:00
Jill Yan
aaaf1e0ba5 APPINT-31044 (#7109)
Co-authored-by: jillyan <yan955599@gmail.com>
2022-01-19 17:05:07 +08:00
zshen-talend
05d204762f feat(TDQ-19814): clear the code let it call adjustPomGeneration only to (#7131)
avoid some TDM regression
2022-01-17 19:47:03 +08:00
Abdulhamid Rashankar
759c85b2f9 APPINT-33784: Project analysis task - Warn about custom component dependencies risk (#7129) 2022-01-17 12:41:42 +01:00
Jill Yan
63c037343c Revert "jill/fix/m80/APPINT-33992 (#7071)" (#7125)
This reverts commit 4c48cc91b3.
2022-01-17 12:04:07 +08:00
zyuan-talend
7e61986aa2 fix(TUP-27184):revert javajet change. (#7117) 2022-01-14 22:09:46 +08:00
Zhiwei Xue
766fe40204 fix(TUP-34469):fix comp cache path problem (#7120) 2022-01-14 19:45:31 +08:00
zshen-talend
dea6be3175 Zshen/feat/tdq 19814 backport 80 (#7112)
* feat(TDQ-19814): create a new component for tDataQualityRules

* feat(TDQ-19814): use adjustPomGeneration method instead of
adjustClassPath method to avoid conflict with TDM case
2022-01-13 16:59:38 +08:00
zyuan-talend
8da7c1aa17 fix(TUP-27184):escape label value for javajet. (#7111) 2022-01-13 16:40:15 +08:00
jiezhang-tlnd
b8191aa46c fix(TUP-34021)CVE org.apache.maven:maven-core:3.8.1 (#7106) 2022-01-13 15:27:14 +08:00
Tetyana Meronyk
532b8200f1 feat(TDI-46151): Filter data based on return value in subquery in source database before pushing it down to a tDBInput to execute (#6906) (#7108)
feat(TDI-46151): Filter data based on return value in subquery in source database before pushing it down to a tDBInput to execute

(cherry picked from commit 2c25ae3771)
2022-01-12 17:39:25 +02:00
hcyi
dff1b037c0 fix(I18N-322):change a message to "Set the connection and read timeouts" (#7059) 2022-01-12 16:18:42 +08:00
Jill Yan
4c48cc91b3 jill/fix/m80/APPINT-33992 (#7071)
* APPINT-33992

* revert mis-commit in previous

* APPINT-33992

* APPINT-33992

* APPINT-33992

* APPINT-33992

* APPINT-33992

Co-authored-by: jillyan <yan955599@gmail.com>
2022-01-12 15:57:22 +08:00
ozhelezniak
49493eb6de Merge branch 'maintenance/8.0' of github.com:Talend/tdi-studio-se into maintenance/8.0 2022-01-11 11:37:22 +02:00
Oleksandr Zhelezniak
86de9b6f45 fix(TDI-47222): invoke stop after flush (#7104)
* TCK studio-integration
* method stop should be invoked after the method flush for producers (outputs)
2022-01-11 10:56:20 +02:00
Oleksandr Zhelezniak
ffd5625247 fix(TDI-47222): invoke stop after flush (#6985)
* TCK studio-integration
* method stop should be invoked after the method flush for producers (outputs)

(cherry picked from commit 54b17eea2c)
2022-01-11 10:53:14 +02:00
zyuan-talend
a81d38bb2a fix(TUP-27184): copy label from GraphicNode to DataNode. (#7095) 2022-01-11 15:48:34 +08:00
wang wei
2ce8037e4e fix(TDI-47212): CVE: jackson-mapper(core)-asl-1.9.15-TALEND (#7001) 2022-01-10 15:09:17 +08:00
Jane Ding
2d02f681d9 Add localized files (#7092)
* Add localized files (#7090)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

* Add localized files (#7091)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: jenkins-git <jenkins-git@talend.com>
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
2022-01-07 11:17:52 +08:00
kjwang
52c8a51e2b TUP-34282 CVE: log4j-core(1.2-api)-[2-2.16.0) (#7083)
TUP-34282 CVE: log4j-core(1.2-api)-[2-2.16.0)
https://jira.talendforge.org/browse/TUP-34282
2022-01-07 10:00:39 +08:00
Oleksandr Zhelezniak
bb2b0c89f4 fix(TDI-46410): update namespace in xml element (#7018) 2022-01-04 14:38:04 +02:00
Jane Ding
ef8bd6950a Localize message update 4 maintenance80 (#7081)
* Add localized files (#7077)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

* Add localized files (#7079)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: jenkins-git <jenkins-git@talend.com>
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
2022-01-04 12:02:13 +08:00
ypiel
fea9ec3fb9 feat(TDI-46093): Customize tck/connection name (#6976)
* feat(TDI-46093): Support defined connection name

* feat(TDI-46093): Update defaultName

* use cache one to avoid recall every time

Co-authored-by: wwang-talend <wwang@talend.com>
2022-01-03 11:46:57 +01:00
Abdulhamid Rashankar
f996786ed7 APPINT-33784: Project analysis task - Warn about custom component dependencies risk (#6997)
Co-authored-by: arashankar <abdulhamid0606@gmail.com>
2022-01-03 10:09:53 +01:00
Jane Ding
156ffa5b3f Localize message update 4 maintenance80 (#7074)
* Add localized files (#7058)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

* Add localized files (#7065)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2021-12-31 18:06:59 +08:00
pyzhou
241a784b36 fix(TDI-47234):tXSLT cache source in memory (#7021)
* fix(TDI-47234):tXSLT regression

* migration task

* correct migration task

* Correct ExecutionResult

* Correct Migration result
2021-12-31 11:43:32 +08:00
jillyan
9492ef6034 revert for mis-push 2021-12-30 18:14:40 +08:00
jillyan
f806f96585 APPINT-33992 2021-12-30 18:07:21 +08:00
Zhiwei Xue
3457ffb30f workitem(TUP-34111):slow studio build time for remote execution (#7039) 2021-12-30 16:07:09 +08:00
jiezhang-tlnd
08f1d92ee6 fix(TUP-33863)Update of Metadata Hadoop Cluster does not change spark (#6944)
* fix(TUP-33863)Update of Metadata Hadoop Cluster does not change spark
version when propagated
https://jira.talendforge.org/browse/TUP-33863

* format code

* format code

* fix(TUP-33863)Update of Metadata Hadoop Cluster does not change spark
version when propagated

Conflicts:
	main/plugins/org.talend.designer.core/src/main/java/org/talend/designer/core/ui/editor/properties/controllers/ComboController.java

* add common judgment

Conflicts:
	main/plugins/org.talend.designer.core/src/main/java/org/talend/designer/core/ui/editor/properties/controllers/ComboController.java

* add common fix

* Update of Metadata Hadoop Cluster does not change spark version when
propagated

Conflicts:
	main/plugins/org.talend.designer.core/src/main/java/org/talend/designer/core/ui/editor/properties/controllers/ComboController.java
2021-12-30 15:09:31 +08:00
jiezhang-tlnd
5cb031a8ed chore(TUP-34021)CVE: org.apache.maven:maven-core:3.8.1 (#7011) 2021-12-30 15:01:25 +08:00
Olha V
daeea2641a feat(TDI-46430): Kafka Input Output Avro support (#6981) (#7067)
* feat(TDI-46430): Kafka Input Output Avro support

* add migration task for security settings setup order

* feat(TDI-46430): Kafka Input Output Avro support

* add check if https settings not empty

* feat(TDI-46430): Kafka Input Output Avro support

* fix migration task status

* feat(TDI-46430): Kafka Input Output Avro support

* add check for kafka version
2021-12-29 14:56:47 +02:00
Wei Hua
f78696e776 APPINT-34077 RuntimeException: java.lang.NoClassDefFoundError: org/apache/cxf/databinding/DataBinding (#7064) 2021-12-29 14:48:39 +08:00
Jane Ding
02738c0a79 fix(TUP-33830):[7.3] ref project compilation error (#7053)
https://jira.talendforge.org/browse/TUP-33830
2021-12-29 11:35:24 +08:00
Emmanuel GALLOIS
a992419605 fix(TCOMP-2053): correct migration issue w/ context + function call (#7009) 2021-12-29 11:25:28 +08:00
Zhiwei Xue
ffd2e378ae fix(TUP-33966):Studio/commandline fails to generate code for the job, (#6977)
throws "Invalid thread access"
2021-12-29 09:45:56 +08:00
jiezhang-tlnd
c59a2743de fix(TUP-34123)talendcsv-1.0.0.jar is missing on Guess Schema (#7016) 2021-12-28 14:15:50 +08:00
sbliu
e8e4751a2e chore(TUP-33956) remove xercesImpl from libraries needed. (#7027) 2021-12-27 15:50:55 +08:00
hcyi
4cc46a0bc7 fix(TUP-33897):Remove username from Studio Cloud Login. (#7017) 2021-12-27 10:28:30 +08:00
Chao MENG
0a21c8d735 chore: hide parallelize (#7046) 2021-12-23 14:34:41 +08:00
Dmytro Grygorenko
aee76ce19a fix(TDI-47228): tPostgresqlOutput Upsert existing connection (#7049) 2021-12-20 17:07:37 +02:00
Dmytro Grygorenko
78a28bc217 fix(TDI-46743): avoid file locking when using "streaming append" feature. (#7042) 2021-12-20 14:25:34 +02:00
Jane Ding
89f29eecc2 Add localized files (#7032) (#7045)
Co-authored-by: jenkins-git <jenkins-git@talend.com>

Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2021-12-20 09:56:45 +08:00
Dmytro Sylaiev
7444c68931 fix(TDI-46910): Fix codegen and compile errors for dynamic schemas (#7019) 2021-12-17 10:41:37 +02:00
bhe-talendbj
a7d2ebbfe1 fix(TBD-13373): User did not initialize spark context when I run a simple spark job with HDI4 (#7033) 2021-12-16 19:49:37 +08:00
bhe-talendbj
db2e13c963 fix(TUP-34105): backport (#7024) 2021-12-15 11:44:27 +08:00
Tetyana Meronyk
b0700e6aba fix(TDI-46943): Dynamic schema fail's with Excel (#6992)
* fix(TDI-46943): Dynamic schema fail's with Excel
2021-12-14 15:51:50 +02:00
bhe-talendbj
450c4062ef fix(TUP-34105): upgrade log4j2 (#7006)
* fix(TUP-34105): upgrade log4j2

* fix(TUP-34105): update version
2021-12-14 15:40:37 +08:00
wang wei
878c793b30 fix(TDI-46962): tAmazonAuoraOutput compilation errors (#6872) 2021-12-13 11:22:44 +08:00
nrousseau
162d69539c fix(TUP-34110): fix tck dependencies (#7005)
* fix(TUP-34110): fix tck dependencies

* fix(TUP-34110): fix tck dependencies
2021-12-13 11:14:26 +08:00
Tetyana Meronyk
3ce05e9d7f fix(TDI-46834): Additional columns in tDBOutput doesn`t generate code properly (#6825) (#7002)
* fix(TDI-46834): Additional columns in tDBOutput doesn`t generate code properly

(cherry picked from commit 82243d59ac)
2021-12-10 15:21:39 +02:00
Dmytro Sylaiev
bb173c5e77 fix(TDI-46910): Add hadnling escaping of ELTOutput for quotes (#6875)
* fix(TDI-46910): Add hadnling escaping of ELTOutput for quotes

* fix(TDI-46910): Fix create table statement compile error
2021-12-09 16:18:13 +02:00
Xilai Dai
340f572844 Bugfix/maintenance/8.0/appint 34009 (#6901)
* (APPINT-34009) fix the tCosmosDB and tNeo4j dependency issues when building microservice

* (APPINT-34009) fix the regexp and jar name
2021-12-09 17:11:34 +08:00
hcyi
028ffd2beb feat(TUP-33198):Support retrieve SAP ADSO service metadata with SAP JCO3 (#6942) 2021-12-09 16:57:49 +08:00
kjwang
2c3708280a TUP-33713 Logon popup message in a mess when main project and refer (#6954)
* TUP-33713 Logon popup message in a mess when main project and refer
project are on different patch level
https://jira.talendforge.org/browse/TUP-33443
2021-12-09 16:40:30 +08:00
Jane Ding
1a5cc1038d Master loc backport (#6994)
* Add localized files (#6986)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

* Add localized files (#6988)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: jenkins-git <jenkins-git@talend.com>
Co-authored-by: sbouyer <35452259+sbouyer@users.noreply.github.com>
2021-12-09 10:45:16 +08:00
jiezhang-tlnd
a74752e87d Jzhang/80/tup 33728 re (#6968)
* add migration

* add migration

* fix migration

* add copyright
2021-12-09 09:25:46 +08:00
jzhao
8bdc378efd feat(TDI-45793):Add migration task for tSAPADSOInput (#6989)
* feat(TDI-45793):Add migration task for tSAPADSOInput

* chore(TDI-45793):add Copyright for migration task.
2021-12-08 17:54:23 +08:00
Dmytro Grygorenko
99beb58953 fix(TDI-47179): enable batch checkbox for Postgres Upsert. (#6961) 2021-12-08 11:22:52 +02:00
bhe-talendbj
1a7409fcb7 feat(TUP-33718): add distribution version (#6979) (#6982)
* feat(TUP-33718): add distribution version

* feat(TUP-33718): fix version
2021-12-07 17:52:10 +08:00
hcyi
036219f5ca fix(TUP-32940):Remove "Also search from Help when performing a component (#6984)
searching".
2021-12-07 17:35:12 +08:00
Emmanuel GALLOIS
7ed3514e38 fix(TCOMP-1988): add nashorn scripting engine for java11+ (#6974) 2021-12-07 09:31:03 +01:00
Christophe Le Saec
25d47c6db3 TDI-47170 : go root directory for sftp (duplicate code) 2021-12-06 10:08:46 +01:00
Wei Hua
e31db9e33a APPINT-34089 Project analysis task - Warn about duplicated routeId usage (#6970)
* APPINT-34089 Project analysis task - Warn about duplicated routeId usage

* update the way to get code value.

* correct component name in message
2021-12-03 17:31:34 +01:00
pyzhou
7bd2e943ed fix(TDI-47147):tMap TUJ fix (#6971)
# Conflicts:
#	main/plugins/org.talend.designer.components.localprovider/components/tAdvancedHash/tAdvancedHash_java.xml
2021-12-03 17:49:47 +08:00
apoltavtsev
4a1012dba8 fix(APPINT-33820): Add support for log assignment to TESB task. (#6966) 2021-12-02 12:29:59 +01:00
bhe-talendbj
12782d28c9 feat(TUP-33718): add system property to load dynamic distribution jars (#6904) (#6964)
* feat(TUP-33718): add system property to load dynamic distribution jars

* feat(TUP-33718): fix load dynamic distributions

* feat(TUP-33718): load all dynamic distribution jars

* feat(TUP-33718): load bigdata modules

* feat(TUP-33718): load all dynamic distributions

* feat(TUP-33718): show distribution display version

* feat(TUP-33718): replace display version by version

* feat(TUP-33718): fix bug

* feat(TUP-33718): load dynamic distribution modules

* feat(TUP-33718): load dynamic distribution modules
2021-12-02 17:15:05 +08:00
apoltavtsev
9cf5e2a29e fix(APPINT-34066) Fail to build route as OSGI to runtime with ClassNotFoundException on MacOS 2021-11-29 10:41:08 +01:00
wang wei
1ef9cf8cd1 fix(TDI-46850): Upgrade ActiveMQ Jars to 5.16.3 which align with ESB (#6924) 2021-11-29 17:29:11 +08:00
Chao MENG
951055f00c fix(TUP-33121): Talend Studio gives no error if unable to connect to (#6934)
remote GIT repository
https://jira.talendforge.org/browse/TUP-33121
2021-11-29 10:35:20 +08:00
kjwang
ec4be52d06 TUP-33443 The method tFileInputDelimited_1_onSubJobError(Exception, (#6936)
TUP-33443 The method tFileInputDelimited_1_onSubJobError(Exception,String, Map<String,Object>) is undefined for the type xxxxx
https://jira.talendforge.org/browse/TUP-33443
2021-11-29 10:06:05 +08:00
vyu-talend
c04240ee23 feat(TDI-45016):add query time out. (#6539) (#6900) (#6949)
* feat(TDI-45016):add query time out. (#6539)

* feat(TDI-45016):add query time out.

* feat(TDI-45016):optimize codes.

* feat(TDI-45016):fix bugs.

* feat(TDI-45016):fix some issues.

Conflicts:
	main/plugins/org.talend.designer.components.localprovider/components/tAS400Input/tAS400Input_messages.properties
	main/plugins/org.talend.designer.components.localprovider/components/tAS400Output/tAS400Output_messages.properties
	main/plugins/org.talend.designer.components.localprovider/components/tAS400Row/tAS400Row_messages.properties
	main/plugins/org.talend.designer.components.localprovider/components/tMSSqlInput/tMSSqlInput_messages.properties
	main/plugins/org.talend.designer.components.localprovider/components/tMSSqlOutput/tMSSqlOutput_messages.properties
	main/plugins/org.talend.designer.components.localprovider/components/tMSSqlRow/tMSSqlRow_messages.properties
	main/plugins/org.talend.designer.components.localprovider/components/templates/_tableActionForOutput.javajet

* feat(TDI-45016): fix something.
2021-11-26 18:00:17 +08:00
Wei Hua
53a35c7551 APPINT-32136 Job & Run view displays DI job icon and/or label when a route or routelet editor is active (#6889) (#6941)
* APPINT-32136 Job & Run view displays DI job icon and/or label when a route or routelet editor is active

* Fixing labels and Routelet icon

* change the way to determine routelet

* Solve NPE issue

* small changes
2021-11-25 17:00:29 +08:00
wang wei
5f966a7796 fix(TDI-47078): [7.3]Multiple SQL Statements in SQL Template => Duplicate local variable(#6909) 2021-11-25 15:48:35 +08:00
bhe-talendbj
b384608b4c fix(TUP-32838): Custom value in a table column with suggestable values is not allowed (#6819) (#6926)
* fix(TUP-32838): editable properties table

* fix(TUP-32838): support editable properties table

* fix(TUP-32838): support editable properties table

* fix(TUP-32838): support editable properties table

* fix(TUP-32838): rename property name

* fix(TUP-32838): editable for all of suggestable parameters

* fix(TUP-32838): resolve comments

* fix(TUP-32838): avoid invoking component
2021-11-25 14:55:41 +08:00
pyzhou
bdfe560cb4 fix(TDI-45710):tXSLT support for streaming input and output (#6251) (#6830)
* Added streaming support on inputs

* Added InputStream for the 2 input files

* Added support for input / output columns

* Removed the label as it was confusing than helpful.
Changed the XML / XSLT label as it supports Stream.

Output however does NOT support stream so changed it in the Override to File only.

* Upgraded the 15 year old saxon9.jar
My tests passed.

* fix xml column was not used issue

* According to the new writing standard, only the capitalize the first character of first word

Co-authored-by: pyzhou <pyzhou@talend.com>
# Conflicts:
#	main/plugins/org.talend.designer.components.localprovider/components/tXSLT/tXSLT_messages.properties

Co-authored-by: bgunics-talend <63251373+bgunics-talend@users.noreply.github.com>
2021-11-25 14:01:16 +08:00
pyzhou
979574709e fix(TDI-46857):Upgrade bcprov-jdk15on-1.69 2021-11-25 12:20:21 +08:00
bhe-talendbj
2b76ccc994 fix(TUP-33859): force upgrade for bcprov (#6915) (#6923)
Co-authored-by: nrousseau <nrousseau@talend.com>
2021-11-25 10:12:15 +08:00
Tetyana Meronyk
5f172ec096 fix(TDI-46986): tFTPGet component unable to get file from FileZilla Server, with a particular Filemask in Studio, after September patch, Patch_20210924_R2021-09_v2-7.3.1
(cherry picked from commit 69f3e4b340)
2021-11-24 11:47:41 +02:00
Tetyana Meronyk
15b20a6b4a fix(TDI-46791): tBigQueryInput - Component returning extra row of NULL values (#6724) (#6921)
fix(TDI-46791): tBigQueryInput - Component returning extra row of NULL values

(cherry picked from commit 56af81bdbc)
2021-11-24 11:47:16 +02:00
Olha V
352b69ee78 chore(TDI-46752): CVE: Oauth 2.0 SDK with OpenID (#6811) (#6935)
* chore(TDI-46752): CVE: Oauth 2.0 SDK with OpenID

* chore(TDI-46752): CVE: Oauth 2.0 SDK with OpenID

* bump talend-mscrm in tMicrosoftCrm

* chore(TDI-46752): CVE: Oauth 2.0 SDK with OpenID

* add content-type dependency
2021-11-23 18:24:13 +02:00
hzhao-talendbj
d4eb8346cc chore(TUP-33736): Backport for 8.0 (#6912)
* Add localized files

* Add localized files (#6884)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

* Add localized files (#6885)

Co-authored-by: jenkins-git <jenkins-git@talend.com>

Co-authored-by: jenkins-git <jenkins-git@talend.com>
Co-authored-by: sbouyer <35452259+sbouyer@users.noreply.github.com>
2021-11-23 17:31:17 +08:00
Oleksandr Zhelezniak
3072be03f6 fix(TDI-46930): wrap filename (#6846) (#6930)
* wrap a filename in parenthesis to explicit handle java operations priority
2021-11-23 11:02:29 +02:00
jiezhang-tlnd
2587b78d01 fix(TUP-33467)Need to adjust the UI of check connection when tck (#6925)
component in studio
https://jira.talendforge.org/browse/TUP-33467
2021-11-23 16:37:47 +08:00
Dmytro Grygorenko
96daa21f6f feat(TDI-44717): fix backport issue for "maintenance/8.0" branch. (#6928) 2021-11-23 09:43:06 +02:00
Christophe Le Saec
05928ddb45 TDI-46905 : treat absolute path 2021-11-23 08:39:49 +01:00
Dmytro Grygorenko
f574223e1d feat(TDI-44717): Postgres Upsert feature (backport to 8.0.1). (#6919) 2021-11-22 14:29:34 +02:00
Dmytro Grygorenko
5e0191fc6b fix(TDI-46912): tELTOutput cannot locate & drop existing table in Snowflake. (#6918) 2021-11-22 14:09:36 +02:00
Dmytro Sylaiev
e4bc47faf4 fix(TDI-46790): Fix fetching big files GSGet (#6706) 2021-11-22 13:55:08 +02:00
Dmytro Grygorenko
15485b8073 fix(TDI-46746): CVE - update "protobuf-java" to 3.4.0 2021-11-22 09:40:36 +02:00
Xilai Dai
e54a5539a3 Bugfix/maintenance/8.0/appint 34059 (#6908)
* (APPINT-34059) fix the plexus-utils version in maven-bundle-plugin

* (APPINT-34059) fix the plexus-classworlds
2021-11-22 11:10:41 +08:00
apoltavtsev
dc2fe3ebff fix(APPINT-33956) Project analysis task - Seek for unresolved dependencies (Part 2) (#6913) 2021-11-19 14:20:51 +01:00
Jill Yan
3393c79cfc APPINT-34090 (#6911)
Co-authored-by: jillyan <yan955599@gmail.com>
2021-11-19 17:37:19 +08:00
Zhiwei Xue
ce827cf975 chore(TUP-33614):Update each component plugin, make sure it generates a (#6902) (#6910)
new timestamp at each build
2021-11-19 17:26:08 +08:00
bhe-talendbj
3aa81c490d Update version from 8.0.2-SNAPSHOT to 8.0.1-SNAPSHOT (#6898) 2021-11-18 12:02:03 +08:00
Christophe Le Saec
1bce339197 TDI-47072 : fix context 2021-11-17 08:58:51 +01:00
Jenkins Continuous Build server
8a9c24f80a Set version to 8.0.2 SNAPSHOT 2021-11-16 11:09:32 +01:00
apoltavtsev
ec3be21f28 feat (APPINT-33956) Project analysis task - Seek for unresolved dependencies (Part 2) (#6881)
* feat (APPINT-33956) Project analysis task - Seek for unresolved dependencies (Part 2)

* Update messages.properties

* Add files via upload

* Update UnresolvedComponentsDependenciesAnalysisTask.java
2021-11-09 09:25:33 +01:00
jiezhang-tlnd
ec4b7f1862 fix(TUP-33627)[Linux aarch64] License agreement panel and introduction (#6877)
are blank
2021-11-05 20:04:47 +08:00
Jane Ding
87b2d61e0c fix(TUP-33385):Error pops up while logging on migrated project (#6867) (#6873)
* fix(TUP-33385):Error pops up while logging on migrated project if the
project which exported from monthly patch studio>Studio
https://jira.talendforge.org/browse/TUP-33385

* fix(TUP-33385):Error pops up while logging on migrated project if the
project which exported from monthly patch studio>Studio
https://jira.talendforge.org/browse/TUP-33385
2021-11-04 19:55:46 +08:00
sbouyer
3aeb0f435f Add localized files (#6866)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2021-11-04 10:48:41 +08:00
Alexiane Yvonet
d3e732661d Add localized files (#6852)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2021-11-04 10:48:30 +08:00
tsasada-talend
4b02eab8ce Add localized files (#6853)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2021-11-04 10:48:19 +08:00
Jenkins Continuous Build server
df2cac92df Set version to 8.0.1 2021-11-03 17:02:08 +01:00
Dmytro Grygorenko
7ee99a9e56 fix(TDI-46968): fix compile error for tGreenplumOutput. (#6863) 2021-11-02 09:41:36 +02:00
hcyi
d9ad02e2b6 fix(TUP-33449):tPreJob trigger fails with GSS exception when "Set path (#6848)
to custom hadoop jar" is checked in 7.3.1
2021-11-02 15:23:50 +08:00
sbliu
74b894166d fix(TUP-33596) NPE when try to open project setting. (#6859) (#6861)
add NPE judgment
2021-11-02 11:30:23 +08:00
vyu-talend
d6d2dfdb6f fix(TDI-46921):change maven url path for miscrm. (#6856) 2021-11-01 11:38:33 +08:00
sbliu
b08087e24a feat(TUP-33462) Removal / deprecate of DB versions linked to DI components. (#6851) 2021-10-29 17:23:58 +08:00
pyzhou
4308b888d7 fix(TDI-46937): fix tmap tuj (#6845)
* fix(TDI-46937): fix tmap tuj

* fix(TDI-46937):fix tuj
2021-10-29 16:47:26 +08:00
Jane Ding
04448025a4 fix(TUP-33447):"servlet-api-2.5-20081211.jar" download failed when (#6810)
(#6809)

install libraries
https://jira.talendforge.org/browse/TUP-33447

Conflicts:
	main/plugins/org.talend.libraries.servlet/META-INF/MANIFEST.MF
	main/plugins/org.talend.libraries.servlet/pom.xml
	pom.xml
2021-10-29 15:09:18 +08:00
wang wei
a56fab7f5b fix(TDI-46476): as we remove some components, should adjust some tup junit(#6837) 2021-10-29 14:55:35 +08:00
Dmytro Sylaiev
f2422727b3 fix(TDI-46876): Fix dependencies list for tGoogleDataprocManage (#6847) 2021-10-29 10:45:42 +08:00
hcyi
94f818195d Hcyi/tup 33477 release/8.0.1 (#6823)
* feat(TUP-33477):Remove username/password authentication from Studio.

* feat(TUP-33477):Remove username/password authentication from Studio.

* feat(TUP-33477):keep username authentication for cloud on license select
dialog.
2021-10-28 15:47:04 +08:00
hzhao-talendbj
8679592c7e fix(TUP-33485): [tELTMap] Delimited identifiers does not work for (#6833) (#6838)
* fix(TUP-33485): [tELTMap] Delimited identifiers does not work for

* fix(TUP-33485): [tELTMap] Delimited identifiers does not work for

* fix(TUP-33485): [tELTMap] Delimited identifiers does not work for
2021-10-27 18:10:54 +08:00
wang wei
086d2763f3 fix(TDI-46286): upgrade org.slf4j version to 1.7.29 from 1.7.25 (#6733) 2021-10-27 15:47:09 +08:00
bhe-talendbj
939dd01908 chore(TUP-33502): Show installation of components only in debug mode (#6832) (#6835)
* chore(TUP-33502): change logs

* chore(TUP-33502): print logs in debug mode
2021-10-27 15:40:56 +08:00
zyuan-talend
5dfcdcfe5b fix(TUP-33392): remove un-needed Map Reduce related tests. (#6822) (#6834) 2021-10-27 15:24:07 +08:00
wang wei
d04e966718 fix(TDI-46476): Remove deprecated components in 8.0 (#6730) 2021-10-26 16:58:10 +08:00
jiezhang-tlnd
4294ecd024 update text (#6814) (#6817) 2021-10-25 14:37:28 +08:00
Jenkins Continuous Build server
1d2d17d71d Set version to 8.0.1 2021-10-21 16:11:20 +02:00
sbouyer
aa470dbab3 Add localized files (#6804)
Co-authored-by: root <obricha@talend.com>
2021-10-21 17:23:32 +08:00
Alexiane Yvonet
f7bbc3d17b Add localized files (#6805)
Co-authored-by: root <obricha@talend.com>
2021-10-21 17:17:10 +08:00
sbouyer
f897438858 Add localized files (#6807)
Co-authored-by: root <obricha@talend.com>
2021-10-21 17:08:32 +08:00
apoltavtsev
7d5e785786 feat(APPINT-33780) Project analysis task - Seek for unresolved routines & beans dependencies (#6803)
* feat(APPINT-33780) Project analysis task - Seek for unresolved routines & beans dependencies

* Add files via upload

* Update UnresolvedRoutineDependencyAnalysisTask.java

* Update messages.properties

* Update messages.properties

* Update UnresolvedRoutineDependencyAnalysisTask.java

* Update UnresolvedRoutineDependencyAnalysisTask.java
2021-10-21 08:36:35 +02:00
hzhao-talendbj
0d647971f0 feat(TUP-32198): Migrate demo project with studio 8.0 (#6771)
* add log

* add log

* feat(TUP-32198): Migrate demo project with studio 8.0

* feat(TUP-32198): Migrate demo project with studio 8.0

* feat(TUP-32198): Migrate demo project with studio 8.0

* feat(TUP-32198): Migrate demo project with studio 8.0
2021-10-21 12:19:45 +08:00
wang wei
40ef58e9d4 fix(TDI-46476): fix the studio pom as we remove old tcompv0 netsuite connector runtime (#6808)
* fix(TDI-46476): fix the studio pom as we remove old tcompv0 netsuite connector runtime

* fix more
2021-10-21 05:50:35 +02:00
pyzhou
24de5b78a9 fix(TDI-46572):tMap support JDK 17 (#6735)
* fix(TDI-46572):tAdvancedHash dependency

* fix(TDI-46572):tMap support JDK 17

* remove jboss

* change method supportMarshaller()

* add override method

* fix bug

* fix bug of cannot flush the last part

* fix(TDI-46572):use jboss marshaller

* fix bug

* Upgrade dependency

* fix tuj bug

* fix bug

* fix bug
2021-10-21 10:43:09 +08:00
Chao MENG
e5ee4773de fix(TUP-33425): It takes a long time to get the error message when (#6806)
upgrading commandline
https://jira.talendforge.org/browse/TUP-33425
2021-10-20 23:22:18 +08:00
AlixMetivier
728f054338 fix(TBD-12861): add method to retrieve spark mode value (#6763) 2021-10-20 14:11:22 +02:00
Alex Telesh
f75c405324 feat(TDI-46900/codegen): Log messages from subjobs (#6768) 2021-10-20 10:58:41 +02:00
Laurent BOURGEOIS
c9d28aa83d feat(TBD-12880):Dynamic schema in Spark batch components (#6661) 2021-10-19 14:14:13 +02:00
Tetyana Meronyk
bf520fca50 fix(TDI-46749): [tFileInputExcel] For dynamic column schema, column headers after parameter are not dropped (#6698)
* fix(TDI-46749): [tFileInputExcel] For dynamic column schema, column headers after <Last Column> parameter are not dropped
2021-10-19 13:56:56 +03:00
bhe-talendbj
218a64e43d fix(TUP-23729): fix OOM caused by DB components (#6786) 2021-10-19 18:43:51 +08:00
Jane Ding
38ec98656c fix(TUP-29570):Couchbase: Password is plaintext in .item file of its (#6785)
* fix(TUP-29570):Couchbase: Password is plaintext in .item file of its
dataset if updating the password in connection
https://jira.talendforge.org/browse/TUP-29570

* fix(TUP-29570):Couchbase: Password is plaintext in .item file of its
dataset if updating the password in connection
https://jira.talendforge.org/browse/TUP-29570
2021-10-19 16:04:20 +08:00
sbliu
30aa9a5971 bugfix(TUP-31401) Switch workspace doesn't work for remote connection. (#6766) 2021-10-19 12:11:59 +08:00
bhe-talendbj
b4c4a58fac fix(TUP-33380): remove double quotes (#6761)
* fix(TUP-33380): remove double quotes

* fix(TUP-33380): remove double quotes

* fix(TUP-33380): remove double quotes
2021-10-18 16:25:55 +08:00
jzhao
219907e072 fix(TDI-46871):tFTPXXX component host can't use expression without "()" (#6742) 2021-10-18 14:04:45 +08:00
kjwang
f152ffe549 Kjwang/fix TUP-33366 Improve progress bar for logon studio if need to download/install any feature (#6760)
* TUP-33366 Improve progress bar for logon studio if need to
download/install any feature
https://jira.talendforge.org/browse/TUP-33366
2021-10-18 10:39:19 +08:00
bhe-talendbj
34bfd9b7d2 fix(TUP-33380): Car files can not be installed on TUJ platform (#6759)
* fix(TUP-33380): fix tck install java path

* fix(TUP-33380): fix tck install java path

* fix(TUP-33380): fix tck install java path
2021-10-18 10:25:03 +08:00
Jane Ding
0bbb05d6f5 fix(TUP-26845):tcompv0 component's column name can't end with "_", a (#6749)
snowflake tuj (TDI38814_tCreateTable_snowflake_AllDataType) failed
caused by it.
https://jira.talendforge.org/browse/TUP-26845
2021-10-18 09:46:39 +08:00
zyuan-talend
468fae8511 fix(TUP-31974):not expand job design when checking other nodes. (#6745) 2021-10-16 09:24:27 +08:00
Chao MENG
39e55fdd4d fix(TUP-33092): Setup default base/update p2 for studio and make sure it work in the final release. (#6756)
* fix(TUP-33092): Setup default base/update p2 for studio and make sure it
work in the final release.
https://jira.talendforge.org/browse/TUP-33092

* fix(TUP-33092): Setup default base/update p2 for studio and make sure it
work in the final release.
https://jira.talendforge.org/browse/TUP-33092

* fix(TUP-33092): Setup default base/update p2 for studio and make sure it
work in the final release.
https://jira.talendforge.org/browse/TUP-33092
2021-10-15 22:39:36 +08:00
jzhao
eb333cbf0f chore(TDI-44605):correct the jar version to offical one (#6746) 2021-10-15 18:41:23 +08:00
bhe-talendbj
50c8a14d85 chore: tujdebug (#6747) 2021-10-15 18:11:15 +08:00
jzhao
f1761274e6 feat(TDI-44605):Upgrade Salesforce Components to support Endpoint Version 52(latest) (#6696)
* feat(TDI-44605):Upgrade Salesforce Components to support Endpoint
Version 52(latest)

* feat(TDI-44605):update dependencies for force-wsc
2021-10-15 16:02:48 +08:00
Jill Yan
1ea53b0216 APPINT-33788 (#6731)
Co-authored-by: jillyan <yan955599@gmail.com>
2021-10-15 15:44:15 +08:00
ovladyka
97a26b4bd9 fix(TDI-45900): Encoding doesn't work for byte[] type when tFileOutputDelimited use CSV option (#6150)
Updated two javajet files tFileOutputDelimited_begin and tFileOutputDelimited_main
2021-10-15 10:03:20 +08:00
Chao MENG
5317662b2f fix(TUP-33092): Setup default base/update p2 for studio and make sure it (#6741)
work in the final release.
https://jira.talendforge.org/browse/TUP-33092
2021-10-14 23:24:02 +08:00
Wei Hua
d1d03c4f55 APPINT-32850 Use of tREST component causes build types inconsistencies (#6739) 2021-10-14 16:53:43 +02:00
jzhao
9c81eaa389 feat(TDI-45864):Support File components with ORC file format (DI) (#6722)
* feat(TDI-45864):Support File components with ORC file format (DI)

* feat(TDI-45864):Date type read/write issue

* feat(TDI-45864):Double/Float from DB to ORC issue

* feat(TDI-45864):sync orc-core version
2021-10-14 16:21:08 +08:00
jzhao
074268fbeb fix(TDI-46682):Can't send e-mails via smtp.office365.com need to upgrade mail-1.4.7.jar to latest version (#6721)(#6738)
* fix(TDI-46682):Can't send e-mails via smtp.office365.com need to
upgrade mail-1.4.7.jar to latest version

* fix(TDI-46682):update for
tPOP/tFileInputMail/tVtigerCRMXX/tWebserviceXX
2021-10-14 16:01:36 +08:00
zyuan-talend
950e5b36a2 fix(TUP-31974):Cannot check "Job Design" Node if "Export Dependencies" is checked(#6737) 2021-10-14 12:04:34 +08:00
Jane Ding
6f48e78ae5 fix(TUP-33259):Analysis report show component missing but in fact not (#6736)
https://jira.talendforge.org/browse/TUP-33259
2021-10-14 10:00:20 +08:00
chmyga
830eb8f37e fix(TDI-46777): tBigQueryOutput 24 hour format (#6689) (#6734) 2021-10-13 18:09:01 +03:00
wang wei
92722dc4d3 fix(TDI-46734): LGPL jar included in TOS DI 2021-10-13 17:01:33 +08:00
bhe-talendbj
1242e91096 feat(TUP-33112): update license (#6729) 2021-10-13 16:57:37 +08:00
AlixMetivier
102a373c50 fix(TBD-13077): fix Junit (#6732)
* fix(TBD-13077): fix Junit

* fix assertion
2021-10-13 09:26:41 +02:00
AlixMetivier
0dccedeb15 fix(TBD-13077): fix Junit (#6726) 2021-10-12 09:56:33 +02:00
wang wei
4ea68e9d73 fix(TDI-46774): tS3Put doesn't copy the whole file over if using cache (#6677) 2021-10-12 10:38:07 +08:00
Jill Yan
c899aa5ff4 APPINT-33728 revert (#6686)
Co-authored-by: jillyan <yan955599@gmail.com>
2021-10-11 17:26:14 +02:00
Chao MENG
a9ae684dbf feat(TUP-33266): Remove -DdetailsLog=true and reuse -DtalendDebug=true (#6723)
https://jira.talendforge.org/browse/TUP-33266
2021-10-11 21:09:12 +08:00
Chao MENG
e1c2aebefc feat(TUP-33095): Handle update during logon if any feature is required to installed. (#6719)
* feat(TUP-33095): Handle update during logon if any feature is required
to installed.
https://jira.talendforge.org/browse/TUP-33095

* feat(TUP-33095): Handle update during logon if any feature is required
to installed.
https://jira.talendforge.org/browse/TUP-33095

* feat(TUP-33089): Update p2 parameters (CI / studio)
https://jira.talendforge.org/browse/TUP-33089
2021-10-10 09:48:50 +08:00
bhe-talendbj
201b2a93e6 feat(TUP-33112): Add possibility to set licenses on the Feature Manager (#6713)
* feat(TUP-33112): add missing license

* feat(TUP-33112): add missing license

* feat(TUP-33112): add missing license
2021-10-09 10:59:04 +08:00
jiezhang-tlnd
63b622f47a fix(TUP-32987)node "JDBC" with salesforce icon show under Metadata after (#6718)
migration from 731
https://jira.talendforge.org/browse/TUP-32987
2021-10-09 10:10:08 +08:00
vadym-drokov
d934094c2d APPINT-33842: NPE in tDB*** when selecting "data source alias" (#6704) 2021-10-08 11:51:12 +02:00
Dmytro Sylaiev
34f62a4851 fix(TDI-46759): Handle booleans as digits for OB (#6688) 2021-10-08 11:07:34 +03:00
nrousseau
1c16e14ca2 feat(TUP-33133): set component in correct feature (#6701) 2021-10-08 14:56:47 +08:00
Dmytro Grygorenko
49911dc43b fix(TDI-46616): CVE - update "commons-io" to 2.8.0 (#6710) 2021-10-07 10:38:24 +03:00
Dmytro Grygorenko
217f7d40a2 fix(TDI-46084): align versions of "jersey-core" and "jersey-client". (#6709) 2021-10-07 10:23:31 +03:00
nrousseau
1450ab0923 feat(TUP-33211): set license in features (#6700) 2021-10-06 10:25:11 +08:00
Alexiane Yvonet
689c76590a Add localized files (#6694)
Co-authored-by: root <obricha@talend.com>
2021-10-01 10:48:58 +08:00
tsasada-talend
79a847df5b Add localized files (#6687)
Co-authored-by: root <obricha@talend.com>
2021-10-01 10:27:45 +08:00
bhe-talendbj
06cc923fbd fix(TUP-31095): fix CWE-95 (#6695) 2021-09-30 11:33:16 +08:00
sbliu
b7e954fade fix(TUP-32947) fix tuj compile error, fix unit test. (#6692)
fix unit test: set parameter with correct type.
2021-09-30 09:39:19 +08:00
Chao MENG
9c320ebb2b feat(TUP-32459): Handle JETL / JETLBigData OEM monthly update (#6690)
* feat(TUP-32459): Handle JETL / JETLBigData OEM monthly update
https://jira.talendforge.org/browse/TUP-32459

* feat(TUP-32459): Handle JETL / JETLBigData OEM monthly update
https://jira.talendforge.org/browse/TUP-32459
2021-09-29 15:22:11 +08:00
hzhao-talendbj
aee8d82501 feat(TUP-32058):Add git info in the jobinfo.properties when building job (#6667)
* feat(TUP-32058):Add git info in the jobinfo.properties when building job
from studio

* feat(TUP-32058): Add git info in the jobinfo.properties when building
job from studio
2021-09-29 14:47:19 +08:00
sbliu
c1cc2cd16a fix(TUP-32947): Handle concatenating context variables, build correct update sql with real table name. (#6675) 2021-09-28 16:40:06 +08:00
Jane Ding
7c64d6af91 fix(TUP-32055):Error“java.io.FileNotFoundException: (#6685)
/icons/full/eview16/class_hi.gif" after clicking "open job hierarchy" in
job's context menu
https://jira.talendforge.org/browse/TUP-32055
2021-09-28 10:50:08 +08:00
Jane Ding
b7155465e6 fix(TUP-33067):tAmazonAuroraInput and tAmazonAuroraOutput list multiple (#6682)
different version driver moudules
https://jira.talendforge.org/browse/TUP-33067
2021-09-28 10:24:29 +08:00
Dmytro Grygorenko
61e8eaff4b fix(TDI-46614): CVE - update "commons-compress" to 1.21 (#6684) 2021-09-27 17:57:17 +03:00
bhe-talendbj
7d101d3b73 fix(TUP-26609): add missing type (#6683) 2021-09-27 21:37:21 +08:00
Oleksandr Zhelezniak
47bdb6f36f fix(TDI-46574): add nashorn library (#6641)
* add nashorn 15.3 (tFileInputJSON)
* bump asm 9.1 (tFileInputJSON)
2021-09-27 12:49:50 +03:00
hcyi
8bec384480 fix(TUP-33021):Feature Manager can't list any feature if studio install location has space. (#6676)
* fix(TUP-33021):Feature Manager can't list any feature if studio install
location has space.

* fix(TUP-33021):Feature Manager can't list any feature if studio install
location has space.
2021-09-27 10:39:27 +08:00
zyuan-talend
70b286861c fix(TUP-32758):show in connection dropdown and keep the built-in while propertytype + db version are compatible. (#6656) (#6680) 2021-09-27 09:35:42 +08:00
bhe-talendbj
fe621f2d57 feat(TUP-32561): Handle switch project if required features are different from each branch (#6672)
* feat(TUP-32561): restart studio while switching branch

* feat(TUP-32561): restart studio while switching branch
2021-09-26 15:16:28 +08:00
Laurent BOURGEOIS
6edaf6c964 fix(TBD-12972):Incorrect default Spark mode (#6669) 2021-09-24 17:16:54 +02:00
Dmytro Sylaiev
6709ec4c12 TDI-46772 - Port TDI-46610 to master 2021-09-24 15:01:40 +03:00
bhe-talendbj
978046c657 fix(TUP-26609): Harden deserialization (#6638) 2021-09-24 12:18:25 +08:00
nrousseau
ff6bd6fb4d Revert "feat(TUP-32454): change required to import plugins (#6665)" (#6671)
This reverts commit b0d8caf5b0.
2021-09-23 11:56:03 +08:00
Zhiwei Xue
916ed34890 chore():fix junit (#6670) 2021-09-23 09:37:56 +08:00
Zhiwei Xue
edaa962b76 fix(TUP-32942):Miss routines-8.0.1.jar when I local run spark universal (#6653)
spark 2.4.7 with EMR529
2021-09-22 17:08:58 +08:00
apoltavtsev
2c61ab6256 fix(APPINT-32494) cleanup Studio artifact sensitive parameters
in contexts files during publish to Cloud (backport APPINT-28826)
2021-09-22 05:33:43 +02:00
jiezhang-tlnd
13e5ad1618 fix(TUP-32888)can't use tHiveConnection in job (#6664) 2021-09-22 10:42:28 +08:00
nrousseau
b0d8caf5b0 feat(TUP-32454): change required to import plugins (#6665) 2021-09-22 09:27:38 +08:00
6993 changed files with 15713 additions and 153430 deletions

View File

@@ -1 +1,3 @@
bin.includes = feature.xml
bin.includes = feature.xml,\
license.html,\
feature.properties

View File

@@ -0,0 +1,175 @@
###############################################################################
# Copyright (c) 2005, 2014 IBM Corporation and others.
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# IBM Corporation - initial API and implementation
###############################################################################
# This file should be translated.
# "featureName" property - name of the feature
featureName=Graphical Modeling Framework (GMF) Notation
# "providerName" property - name of the company that provides the feature
providerName=Eclipse Modeling Project
# "updateSiteName" property - label for the update site
updateSiteName=Graphical Modeling Framework (GMF) Updates
# "description" property - description of the feature
description=Graphical Modeling Framework Notation
# "licenseURL" property - URL of the "Feature License"
# do not translate value - just change to point to a locale-specific HTML page
licenseURL=license.html
# "license" property - text of the "Feature Update License"
# should be plain text version of license agreement pointed to be "licenseURL"
license=\
Eclipse Foundation Software User Agreement\n\
\n\
November 22, 2017\n\
\n\
Usage Of Content\n\
\n\
THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION\n\
AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF\n\
THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE\n\
TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED\n\
BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE\n\
AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY\n\
APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU\n\
MAY NOT USE THE CONTENT.\n\
\n\
Applicable Licenses\n\
\n\
Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
is provided to you under the terms and conditions of the Eclipse Public License\n\
Version 2.0 ("EPL"). A copy of the EPL is provided with this Content and is also\n\
available at http://www.eclipse.org/legal/epl-2.0. For purposes of the EPL,\n\
"Program" will mean the Content.\n\
\n\
Content includes, but is not limited to, source code, object code, documentation\n\
and other files maintained in the Eclipse Foundation source code repository\n\
("Repository") in software modules ("Modules") and made available as\n\
downloadable archives ("Downloads").\n\
\n\
- Content may be structured and packaged into modules to facilitate\n\
delivering, extending, and upgrading the Content. Typical modules may\n\
include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and\n\
features ("Features").\n\
- Each Plug-in or Fragment may be packaged as a sub-directory or JAR\n\
(Java\u2122 ARchive) in a directory named "plugins".\n\
- A Feature is a bundle of one or more Plug-ins and/or Fragments and\n\
associated material. Each Feature may be packaged as a sub-directory in a\n\
directory named "features". Within a Feature, files named "feature.xml" may\n\
contain a list of the names and version numbers of the Plug-ins and/or\n\
Fragments associated with that Feature.\n\
- Features may also include other Features ("Included Features"). Within a\n\
Feature, files named "feature.xml" may contain a list of the names and\n\
version numbers of Included Features.\n\
\n\
The terms and conditions governing Plug-ins and Fragments should be contained in\n\
files named "about.html" ("Abouts"). The terms and conditions governing Features\n\
and Included Features should be contained in files named "license.html"\n\
("Feature Licenses"). Abouts and Feature Licenses may be located in any\n\
directory of a Download or Module including, but not limited to the following\n\
locations:\n\
\n\
- The top-level (root) directory\n\
- Plug-in and Fragment directories\n\
- Inside Plug-ins and Fragments packaged as JARs\n\
- Sub-directories of the directory named "src" of certain Plug-ins\n\
- Feature directories\n\
\n\
Note: if a Feature made available by the Eclipse Foundation is installed using\n\
the Provisioning Technology (as defined below), you must agree to a license\n\
("Feature Update License") during the installation process. If the Feature\n\
contains Included Features, the Feature Update License should either provide you\n\
with the terms and conditions governing the Included Features or inform you\n\
where you can locate them. Feature Update Licenses may be found in the "license"\n\
property of files named "feature.properties" found within a Feature. Such\n\
Abouts, Feature Licenses, and Feature Update Licenses contain the terms and\n\
conditions (or references to such terms and conditions) that govern your use of\n\
the associated Content in that directory.\n\
\n\
THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL\n\
OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE\n\
OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
\n\
- Eclipse Public License Version 1.0 (available at\n\
http://www.eclipse.org/legal/epl-v10.html)\n\
- Eclipse Distribution License Version 1.0 (available at\n\
http://www.eclipse.org/licenses/edl-v1.0.html)\n\
- Common Public License Version 1.0 (available at\n\
http://www.eclipse.org/legal/cpl-v10.html)\n\
- Apache Software License 1.1 (available at\n\
http://www.apache.org/licenses/LICENSE)\n\
- Apache Software License 2.0 (available at\n\
http://www.apache.org/licenses/LICENSE-2.0)\n\
- Mozilla Public License Version 1.1 (available at\n\
http://www.mozilla.org/MPL/MPL-1.1.html)\n\
\n\
IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO\n\
USE OF THE CONTENT. If no About, Feature License, or Feature Update License is\n\
provided, please contact the Eclipse Foundation to determine what terms and\n\
conditions govern that particular Content.\n\
\n\
Use of Provisioning Technology\n\
\n\
The Eclipse Foundation makes available provisioning software, examples of which\n\
include, but are not limited to, p2 and the Eclipse Update Manager\n\
("Provisioning Technology") for the purpose of allowing users to install\n\
software, documentation, information and/or other materials (collectively\n\
"Installable Software"). This capability is provided with the intent of allowing\n\
such users to install, extend and update Eclipse-based products. Information\n\
about packaging Installable Software is available at\n\
http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
\n\
You may use Provisioning Technology to allow other parties to install\n\
Installable Software. You shall be responsible for enabling the applicable\n\
license agreements relating to the Installable Software to be presented to, and\n\
accepted by, the users of the Provisioning Technology in accordance with the\n\
Specification. By using Provisioning Technology in such a manner and making it\n\
available in accordance with the Specification, you further acknowledge your\n\
agreement to, and the acquisition of all necessary rights to permit the\n\
following:\n\
\n\
1. A series of actions may occur ("Provisioning Process") in which a user may\n\
execute the Provisioning Technology on a machine ("Target Machine") with the\n\
intent of installing, extending or updating the functionality of an\n\
Eclipse-based product.\n\
2. During the Provisioning Process, the Provisioning Technology may cause third\n\
party Installable Software or a portion thereof to be accessed and copied to\n\
the Target Machine.\n\
3. Pursuant to the Specification, you will provide to the user the terms and\n\
conditions that govern the use of the Installable Software ("Installable\n\
Software Agreement") and such Installable Software Agreement shall be\n\
accessed from the Target Machine in accordance with the Specification. Such\n\
Installable Software Agreement must inform the user of the terms and\n\
conditions that govern the Installable Software and must solicit acceptance\n\
by the end user in the manner prescribed in such Installable\n\
Software Agreement. Upon such indication of agreement by the user, the\n\
provisioning Technology will complete installation of the\n\
Installable Software.\n\
\n\
Cryptography\n\
\n\
Content may contain encryption software. The country in which you are currently\n\
may have restrictions on the import, possession, and use, and/or re-export to\n\
another country, of encryption software. BEFORE using any encryption software,\n\
please check the country's laws, regulations and policies concerning the import,\n\
possession, or use, and re-export of encryption software, to see if this is\n\
permitted.\n\
\n\
Java and all Java-based trademarks are trademarks of Oracle Corporation in the\n\
United States, other countries, or both.\n
########### end of license property ##########################################

View File

@@ -5,15 +5,15 @@
version="8.0.1.qualifier">
<description url="http://www.example.com/description">
[Enter Feature Description here.]
GMF
</description>
<copyright url="http://www.example.com/copyright">
[Enter Copyright Description here.]
</copyright>
<license url="http://www.example.com/license">
[Enter License Description here.]
<license url="%licenseURL">
%license
</license>
<requires>
@@ -428,4 +428,4 @@
version="3.0.0.draft20060413_v201105210656"
unpack="false"/>
</feature>
</feature>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,189 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Eclipse Foundation Software User Agreement</title>
</head>
<body lang="EN-US">
<h2>Eclipse Foundation Software User Agreement</h2>
<p>November 22, 2017</p>
<h3>Usage Of Content</h3>
<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
(COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY
THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS
GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY
APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
USE THE CONTENT.</p>
<h3>Applicable Licenses</h3>
<p>
Unless otherwise indicated, all Content made available by the Eclipse
Foundation is provided to you under the terms and conditions of the
Eclipse Public License Version 2.0 (&quot;EPL&quot;). A copy of the
EPL is provided with this Content and is also available at <a
href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.
</p>
<p>Content includes, but is not limited to, source code, object
code, documentation and other files maintained in the Eclipse
Foundation source code repository (&quot;Repository&quot;) in software
modules (&quot;Modules&quot;) and made available as downloadable
archives (&quot;Downloads&quot;).</p>
<ul>
<li>Content may be structured and packaged into modules to
facilitate delivering, extending, and upgrading the Content. Typical
modules may include plug-ins (&quot;Plug-ins&quot;), plug-in
fragments (&quot;Fragments&quot;), and features
(&quot;Features&quot;).</li>
<li>Each Plug-in or Fragment may be packaged as a sub-directory
or JAR (Java&trade; ARchive) in a directory named
&quot;plugins&quot;.</li>
<li>A Feature is a bundle of one or more Plug-ins and/or
Fragments and associated material. Each Feature may be packaged as a
sub-directory in a directory named &quot;features&quot;. Within a
Feature, files named &quot;feature.xml&quot; may contain a list of
the names and version numbers of the Plug-ins and/or Fragments
associated with that Feature.</li>
<li>Features may also include other Features (&quot;Included
Features&quot;). Within a Feature, files named
&quot;feature.xml&quot; may contain a list of the names and version
numbers of Included Features.</li>
</ul>
<p>The terms and conditions governing Plug-ins and Fragments should
be contained in files named &quot;about.html&quot;
(&quot;Abouts&quot;). The terms and conditions governing Features and
Included Features should be contained in files named
&quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and
Feature Licenses may be located in any directory of a Download or
Module including, but not limited to the following locations:</p>
<ul>
<li>The top-level (root) directory</li>
<li>Plug-in and Fragment directories</li>
<li>Inside Plug-ins and Fragments packaged as JARs</li>
<li>Sub-directories of the directory named &quot;src&quot; of
certain Plug-ins</li>
<li>Feature directories</li>
</ul>
<p>Note: if a Feature made available by the Eclipse Foundation is
installed using the Provisioning Technology (as defined below), you
must agree to a license (&quot;Feature Update License&quot;) during
the installation process. If the Feature contains Included Features,
the Feature Update License should either provide you with the terms
and conditions governing the Included Features or inform you where you
can locate them. Feature Update Licenses may be found in the
&quot;license&quot; property of files named
&quot;feature.properties&quot; found within a Feature. Such Abouts,
Feature Licenses, and Feature Update Licenses contain the terms and
conditions (or references to such terms and conditions) that govern
your use of the associated Content in that directory.</p>
<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY
REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND
CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT
ARE NOT LIMITED TO):</p>
<ul>
<li>Eclipse Public License Version 1.0 (available at <a
href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>)
</li>
<li>Eclipse Distribution License Version 1.0 (available at <a
href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)
</li>
<li>Common Public License Version 1.0 (available at <a
href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)
</li>
<li>Apache Software License 1.1 (available at <a
href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)
</li>
<li>Apache Software License 2.0 (available at <a
href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)
</li>
<li>Mozilla Public License Version 1.1 (available at <a
href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)
</li>
</ul>
<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND
CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License,
or Feature Update License is provided, please contact the Eclipse
Foundation to determine what terms and conditions govern that
particular Content.</p>
<h3>Use of Provisioning Technology</h3>
<p>
The Eclipse Foundation makes available provisioning software, examples
of which include, but are not limited to, p2 and the Eclipse Update
Manager (&quot;Provisioning Technology&quot;) for the purpose of
allowing users to install software, documentation, information and/or
other materials (collectively &quot;Installable Software&quot;). This
capability is provided with the intent of allowing such users to
install, extend and update Eclipse-based products. Information about
packaging Installable Software is available at <a
href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
(&quot;Specification&quot;).
</p>
<p>You may use Provisioning Technology to allow other parties to
install Installable Software. You shall be responsible for enabling
the applicable license agreements relating to the Installable Software
to be presented to, and accepted by, the users of the Provisioning
Technology in accordance with the Specification. By using Provisioning
Technology in such a manner and making it available in accordance with
the Specification, you further acknowledge your agreement to, and the
acquisition of all necessary rights to permit the following:</p>
<ol>
<li>A series of actions may occur (&quot;Provisioning
Process&quot;) in which a user may execute the Provisioning
Technology on a machine (&quot;Target Machine&quot;) with the intent
of installing, extending or updating the functionality of an
Eclipse-based product.</li>
<li>During the Provisioning Process, the Provisioning Technology
may cause third party Installable Software or a portion thereof to be
accessed and copied to the Target Machine.</li>
<li>Pursuant to the Specification, you will provide to the user
the terms and conditions that govern the use of the Installable
Software (&quot;Installable Software Agreement&quot;) and such
Installable Software Agreement shall be accessed from the Target
Machine in accordance with the Specification. Such Installable
Software Agreement must inform the user of the terms and conditions
that govern the Installable Software and must solicit acceptance by
the end user in the manner prescribed in such Installable Software
Agreement. Upon such indication of agreement by the user, the
provisioning Technology will complete installation of the Installable
Software.</li>
</ol>
<h3>Cryptography</h3>
<p>Content may contain encryption software. The country in which
you are currently may have restrictions on the import, possession, and
use, and/or re-export to another country, of encryption software.
BEFORE using any encryption software, please check the country's laws,
regulations and policies concerning the import, possession, or use,
and re-export of encryption software, to see if this is permitted.</p>
<p>
<small>Java and all Java-based trademarks are trademarks of
Oracle Corporation in the United States, other countries, or both.</small>
</p>
</body>
</html>

View File

@@ -9,4 +9,4 @@
</parent>
<artifactId>org.talend.gmf.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>
</project>

View File

@@ -5,7 +5,7 @@
version="8.0.1.qualifier">
<description url="http://www.example.com/description">
[Enter Feature Description here.]
Azure Storage
</description>
<copyright url="http://www.example.com/copyright">
@@ -13,7 +13,98 @@
</copyright>
<license url="http://www.example.com/license">
[Enter License Description here.]
Azure Storage
Copyright (c) 2006-2021 Talend Inc. - www.talend.com
All rights reserved.
This product includes software developed at
OW2 (http://www.ow2.org/)
Licensed under the BSD-3-Clause license.
This product includes software developed at
The Apache Software Foundation (http://jakarta.apache.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
FasterXML (http://fasterxml.com)
Licensed under the JSON license.
This product includes software developed at
Connect2id Ltd. (http://connect2id.com)
Licensed under the Apache-2.0 license.
This product includes software developed at
AddThis
Licensed under the Apache-2.0 license.
This product includes software developed at
SLF4J.ORG
Licensed under the X11 license.
This product includes software developed at
SLF4J.ORG
Licensed under the MIT license.
This product includes software developed at
JUnit
Licensed under the EPL-1.0 license.
This product includes software developed at
Seam Framework
Licensed under the Apache-2.0 license.
This product includes software developed at
OPS4J - Open Participation Software for Java
Licensed under the Apache-2.0 license.
This product includes software developed at
GlassFish Community (https://glassfish.dev.java.net)
Licensed under the CDDL,GPL-2.0-only license.
This product includes software developed at
FasterXML
Licensed under the Apache-2.0 license.
This product includes software developed at
OSGi Alliance (http://www.osgi.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
Joda.org (http://www.joda.org)
Licensed under the Apache-2.0 license.
This product includes software developed at
Google, Inc.
Licensed under the Apache-2.0 license.
This product includes software developed at
Connect2id Ltd. (https://connect2id.com/)
Licensed under the Apache-2.0 license.
This product includes software developed at
Chemouni Uriel (https://urielch.github.io/)
Licensed under the Apache-2.0 license.
This product includes software developed at
Connect2id Ltd. (https://connect2id.com)
Licensed under the Apache-2.0 license.
</license>
<requires>

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.azurestorage.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.azurestorage.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>

View File

@@ -5,7 +5,7 @@
version="8.0.1.qualifier">
<description url="http://www.example.com/description">
[Enter Feature Description here.]
Google drive component
</description>
<copyright url="http://www.example.com/copyright">
@@ -13,11 +13,89 @@
</copyright>
<license url="http://www.example.com/license">
[Enter License Description here.]
Google drive component
Copyright (c) 2006-2021 Talend Inc. - www.talend.com
All rights reserved.
This product includes software developed at
The Apache Software Foundation (http://jakarta.apache.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
FasterXML (http://fasterxml.com)
Licensed under the JSON license.
This product includes software developed at
AddThis
Licensed under the Apache-2.0 license.
This product includes software developed at
SLF4J.ORG
Licensed under the X11 license.
This product includes software developed at
SLF4J.ORG
Licensed under the MIT license.
This product includes software developed at
Google (http://www.google.com/)
Licensed under the Apache-2.0 license.
This product includes software developed at
JUnit
Licensed under the EPL-1.0 license.
This product includes software developed at
Seam Framework
Licensed under the Apache-2.0 license.
This product includes software developed at
Google
Licensed under the Apache-2.0 license.
This product includes software developed at
OPS4J - Open Participation Software for Java
Licensed under the Apache-2.0 license.
This product includes software developed at
GlassFish Community (https://glassfish.dev.java.net)
Licensed under the CDDL,GPL-2.0-only license.
This product includes software developed at
FasterXML
Licensed under the Apache-2.0 license.
This product includes software developed at
OSGi Alliance (http://www.osgi.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
Joda.org (http://www.joda.org)
Licensed under the Apache-2.0 license.
This product includes software developed at
Google, Inc.
Licensed under the Apache-2.0 license.
</license>
<requires>
<import plugin="org.talend.designer.maven.repo.tcompv0" version="0.0.0" match="greaterOrEqual"/>
</requires>
<plugin
id="org.talend.studio.components.tcompv0.googledrive"
download-size="0"

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.googledrive.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.googledrive.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>

View File

@@ -5,7 +5,7 @@
version="8.0.1.qualifier">
<description url="http://www.example.com/description">
[Enter Feature Description here.]
Jira component
</description>
<copyright url="http://www.example.com/copyright">
@@ -13,11 +13,79 @@
</copyright>
<license url="http://www.example.com/license">
[Enter License Description here.]
Jira component
Copyright (c) 2006-2021 Talend Inc. - www.talend.com
All rights reserved.
This product includes software developed at
OPS4J - Open Participation Software for Java
Licensed under the Apache-2.0 license.
This product includes software developed at
GlassFish Community (https://glassfish.dev.java.net)
Licensed under the CDDL,GPL-2.0-only license.
This product includes software developed at
The Apache Software Foundation (http://jakarta.apache.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
FasterXML
Licensed under the Apache-2.0 license.
This product includes software developed at
OSGi Alliance (http://www.osgi.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
Joda.org (http://www.joda.org)
Licensed under the Apache-2.0 license.
This product includes software developed at
FasterXML (http://fasterxml.com)
Licensed under the JSON license.
This product includes software developed at
Google, Inc.
Licensed under the Apache-2.0 license.
This product includes software developed at
AddThis
Licensed under the Apache-2.0 license.
This product includes software developed at
SLF4J.ORG
Licensed under the MIT license.
This product includes software developed at
SLF4J.ORG
Licensed under the X11 license.
This product includes software developed at
JUnit
Licensed under the EPL-1.0 license.
This product includes software developed at
Seam Framework
Licensed under the Apache-2.0 license.
</license>
<requires>
<import plugin="org.talend.designer.maven.repo.tcompv0" version="0.0.0" match="greaterOrEqual"/>
</requires>
<plugin
id="org.talend.studio.components.tcompv0.jira"
download-size="0"

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.jira.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.jira.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>

View File

@@ -5,7 +5,7 @@
version="8.0.1.qualifier">
<description url="http://www.example.com/description">
[Enter Feature Description here.]
Marketo component
</description>
<copyright url="http://www.example.com/copyright">
@@ -13,11 +13,144 @@
</copyright>
<license url="http://www.example.com/license">
[Enter License Description here.]
Marketo component
Copyright (c) 2006-2021 Talend Inc. - www.talend.com
All rights reserved.
This product includes software developed at
FasterXML (http://fasterxml.com)
Licensed under the Apache-2.0 license.
This product includes software developed at
The Apache Software Foundation (http://jakarta.apache.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
Oracle
Licensed under the EDL-1.0 license.
This product includes software developed at
fasterxml.com (http://fasterxml.com)
Licensed under the EPL-1.0 license.
This product includes software developed at
Oracle Corporation (http://www.oracle.com/)
Licensed under the CDDL-1.0,GPL2 w/ CPE license.
This product includes software developed at
FasterXML (http://fasterxml.com)
Licensed under the JSON license.
This product includes software developed at
Oracle Corporation (http://www.oracle.com/)
Licensed under the GPL-2.0-only license.
This product includes software developed at
AddThis
Licensed under the Apache-2.0 license.
This product includes software developed at
SLF4J.ORG
Licensed under the MIT license.
This product includes software developed at
GlassFish Community (https://glassfish.java.net)
Licensed under the CDDL + GPLv2 with classpath exception license.
This product includes software developed at
SLF4J.ORG
Licensed under the X11 license.
This product includes software developed at
JUnit
Licensed under the EPL-1.0 license.
This product includes software developed at
Seam Framework
Licensed under the Apache-2.0 license.
This product includes software developed at
OPS4J - Open Participation Software for Java
Licensed under the Apache-2.0 license.
This product includes software developed at
GlassFish Community (https://glassfish.dev.java.net)
Licensed under the CDDL,GPL-2.0-only license.
This product includes software developed at
Oracle (http://www.oracle.com/)
Licensed under the CDDL + GPLv2 with classpath exception license.
This product includes software developed at
FasterXML
Licensed under the Apache-2.0 license.
This product includes software developed at
Oracle
Licensed under the CDDL,GPL-2.0-only license.
This product includes software developed at
OSGi Alliance (http://www.osgi.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
Oracle (http://www.oracle.com)
Licensed under the CDDL + GPLv2 with classpath exception license.
This product includes software developed at
Joda.org (http://www.joda.org)
Licensed under the Apache-2.0 license.
This product includes software developed at
Google, Inc.
Licensed under the Apache-2.0 license.
This product includes software developed at
Oracle Corporation
Licensed under the CDDL-1.0,GPL-2.0-only license.
This product includes software developed at
Oracle (http://www.oracle.com)
Licensed under the CDDL,GPL-2.0-only license.
This product includes software developed at
Sun Microsystems (http://www.sun.com)
Licensed under the CDDL+GPL license.
This product includes software developed at
Oracle
Licensed under the Apache-2.0 license.
</license>
<requires>
<import plugin="org.talend.designer.maven.repo.tcompv0" version="0.0.0" match="greaterOrEqual"/>
</requires>
<plugin
id="org.talend.studio.components.tcompv0.marketo"
download-size="0"

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.marketo.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.marketo.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>

View File

@@ -5,7 +5,7 @@
version="8.0.1.qualifier">
<description url="http://www.example.com/description">
[Enter Feature Description here.]
Marklogic component
</description>
<copyright url="http://www.example.com/copyright">
@@ -13,11 +13,184 @@
</copyright>
<license url="http://www.example.com/license">
[Enter License Description here.]
Marklogic component
Copyright (c) 2006-2021 Talend Inc. - www.talend.com
All rights reserved.
This product includes software developed at
Oracle Corporation (http://www.oracle.com/)
Licensed under the CDDL,GPL-2.0-only license.
This product includes software developed at
JCraft,Inc. (http://www.jcraft.com/)
Licensed under the BSD-3-Clause license.
This product includes software developed at
The Apache Software Foundation (http://jakarta.apache.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
fasterxml.com (http://fasterxml.com)
Licensed under the EPL-1.0 license.
This product includes software developed at
FasterXML (http://fasterxml.com)
Licensed under the JSON license.
This product includes software developed at
Sun Microsystems, Inc.
Licensed under the CDDL-1.0 license.
This product includes software developed at
AddThis
Licensed under the Apache-2.0 license.
This product includes software developed at
GlassFish Community (https://glassfish.java.net)
Licensed under the CDDL + GPLv2 with classpath exception license.
This product includes software developed at
SLF4J.ORG
Licensed under the MIT license.
This product includes software developed at
The Netty Project (http://netty.io/)
Licensed under the Apache-2.0 license.
This product includes software developed at
JUnit
Licensed under the EPL-1.0 license.
This product includes software developed at
Seam Framework
Licensed under the Apache-2.0 license.
This product includes software developed at
OPS4J - Open Participation Software for Java
Licensed under the Apache-2.0 license.
This product includes software developed at
FasterXML
Licensed under the Apache-2.0 license.
This product includes software developed at
Extreme! Lab, Indiana University (http://www.extreme.indiana.edu/)
Licensed under the Apache-1.0,CC0-1.0,CC-PDDC license.
This product includes software developed at
OSGi Alliance (http://www.osgi.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
Joda.org (http://www.joda.org)
Licensed under the Apache-2.0 license.
This product includes software developed at
The Eclipse Foundation (http://www.eclipse.org/)
Licensed under the EDL-1.0 license.
This product includes software developed at
Oracle Corporation
Licensed under the CDDL-1.0,GPL-2.0-only license.
This product includes software developed at
JOpt Simple
Licensed under the MIT license.
This product includes software developed at
Chemouni Uriel (https://urielch.github.io/)
Licensed under the Apache-2.0 license.
This product includes software developed at
FasterXML
Licensed under the JSON license.
This product includes software developed at
Oracle
Licensed under the Apache-2.0 license.
This product includes software developed at
OW2 (http://www.ow2.org/)
Licensed under the BSD-3-Clause license.
This product includes software developed at
FasterXML (http://fasterxml.com)
Licensed under the Apache-2.0 license.
This product includes software developed at
MarkLogic Corporation
Licensed under the Apache-2.0 license.
This product includes software developed at
The Apache Software Foundation (http://jakarta.apache.org/)
Licensed under the Apache-1.0 license.
This product includes software developed at
Google
Licensed under the BSD-3-Clause license.
This product includes software developed at
Connect2id Ltd. (http://connect2id.com)
Licensed under the Apache-2.0 license.
This product includes software developed at
SLF4J.ORG
Licensed under the X11 license.
This product includes software developed at
The Eclipse Foundation (http://www.eclipse.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
GlassFish Community (https://glassfish.dev.java.net)
Licensed under the CDDL,GPL-2.0-only license.
This product includes software developed at
Saxonica (http://www.saxonica.com)
Licensed under the MPL-2.0 license.
This product includes software developed at
Google, Inc.
Licensed under the Apache-2.0 license.
</license>
<requires>
<import plugin="org.talend.designer.maven.repo.tcompv0" version="0.0.0" match="greaterOrEqual"/>
</requires>
<plugin
id="org.talend.studio.components.tcompv0.marklogic"
download-size="0"
@@ -30,4 +203,5 @@
install-size="0"
version="0.0.0"
unpack="false"/>
</feature>

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.marklogic.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.marklogic.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>

View File

@@ -5,7 +5,7 @@
version="8.0.1.qualifier">
<description url="http://www.example.com/description">
[Enter Feature Description here.]
Netsuite
</description>
<copyright url="http://www.example.com/copyright">
@@ -13,11 +13,129 @@
</copyright>
<license url="http://www.example.com/license">
[Enter License Description here.]
Netsuite
Copyright (c) 2006-2021 Talend Inc. - www.talend.com
All rights reserved.
This product includes software developed at
The Apache Software Foundation (http://jakarta.apache.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
Oracle
Licensed under the EDL-1.0 license.
This product includes software developed at
FasterXML (http://fasterxml.com)
Licensed under the JSON license.
This product includes software developed at
Sun Microsystems, Inc.
Licensed under the CDDL-1.0 license.
This product includes software developed at
Oracle Corporation
Licensed under the CDDL-1.0,GPL-2.0-or-later license.
This product includes software developed at
AddThis
Licensed under the Apache-2.0 license.
This product includes software developed at
SLF4J.ORG
Licensed under the MIT license.
This product includes software developed at
GlassFish Community (https://glassfish.java.net)
Licensed under the CDDL + GPLv2 with classpath exception license.
This product includes software developed at
SLF4J.ORG
Licensed under the X11 license.
This product includes software developed at
Seam Framework
Licensed under the Apache-2.0 license.
This product includes software developed at
JUnit
Licensed under the EPL-1.0 license.
This product includes software developed at
OPS4J - Open Participation Software for Java
Licensed under the Apache-2.0 license.
This product includes software developed at
FasterXML
Licensed under the Apache-2.0 license.
This product includes software developed at
Oracle (http://www.oracle.com)
Licensed under the CDDL + GPLv2 with classpath exception license.
This product includes software developed at
OSGi Alliance (http://www.osgi.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
Joda.org (http://www.joda.org)
Licensed under the Apache-2.0 license.
This product includes software developed at
Oracle (http://www.oracle.com)
Licensed under the CDDL,GPL-2.0-or-later license.
This product includes software developed at
Google, Inc.
Licensed under the Apache-2.0 license.
This product includes software developed at
The Eclipse Foundation (http://www.eclipse.org/)
Licensed under the EDL-1.0 license.
This product includes software developed at
Square, Inc. (http://squareup.com)
Licensed under the Apache-2.0 license.
This product includes software developed at
GlassFish Community (https://glassfish.dev.java.net)
Licensed under the CDDL,GPL-2.0-or-later license.
This product includes software developed at
FasterXML
Licensed under the JSON license.
This product includes software developed at
Oracle
Licensed under the Apache-2.0 license.
</license>
<requires>
<import plugin="org.talend.designer.maven.repo.tcompv0" version="0.0.0" match="greaterOrEqual"/>
</requires>
<plugin
id="org.talend.studio.components.tcompv0.netsuite"
download-size="0"
@@ -30,4 +148,5 @@
install-size="0"
version="0.0.0"
unpack="false"/>
</feature>

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.netsuite.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.netsuite.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>

View File

@@ -5,7 +5,7 @@
version="8.0.1.qualifier">
<description url="http://www.example.com/description">
[Enter Feature Description here.]
Salesforce component
</description>
<copyright url="http://www.example.com/copyright">
@@ -13,11 +13,84 @@
</copyright>
<license url="http://www.example.com/license">
[Enter License Description here.]
Salesforce component
Copyright (c) 2006-2021 Talend Inc. - www.talend.com
All rights reserved.
This product includes software developed at
The Apache Software Foundation (http://jakarta.apache.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
FasterXML (http://fasterxml.com)
Licensed under the JSON license.
This product includes software developed at
AddThis
Licensed under the Apache-2.0 license.
This product includes software developed at
SLF4J.ORG
Licensed under the MIT license.
This product includes software developed at
SLF4J.ORG
Licensed under the X11 license.
This product includes software developed at
ANTLR
Licensed under the BSD-3-Clause license.
This product includes software developed at
JUnit
Licensed under the EPL-1.0 license.
This product includes software developed at
Seam Framework
Licensed under the Apache-2.0 license.
This product includes software developed at
OPS4J - Open Participation Software for Java
Licensed under the Apache-2.0 license.
This product includes software developed at
GlassFish Community (https://glassfish.dev.java.net)
Licensed under the CDDL,GPL-2.0-only license.
This product includes software developed at
FasterXML
Licensed under the Apache-2.0 license.
This product includes software developed at
OSGi Alliance (http://www.osgi.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
Joda.org (http://www.joda.org)
Licensed under the Apache-2.0 license.
This product includes software developed at
Google, Inc.
Licensed under the Apache-2.0 license.
</license>
<requires>
<import plugin="org.talend.designer.maven.repo.tcompv0" version="0.0.0" match="greaterOrEqual"/>
</requires>
<plugin
id="org.talend.studio.components.tcompv0.salesforce"
download-size="0"
@@ -30,4 +103,5 @@
install-size="0"
version="0.0.0"
unpack="false"/>
</feature>

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.salesforce.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.salesforce.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>

View File

@@ -5,7 +5,7 @@
version="8.0.1.qualifier">
<description url="http://www.example.com/description">
[Enter Feature Description here.]
Snowflake
</description>
<copyright url="http://www.example.com/copyright">
@@ -13,11 +13,94 @@
</copyright>
<license url="http://www.example.com/license">
[Enter License Description here.]
Snowflake
Copyright (c) 2006-2021 Talend Inc. - www.talend.com
All rights reserved.
This product includes software developed at
The Apache Software Foundation (http://jakarta.apache.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
Oracle
Licensed under the EDL-1.0 license.
This product includes software developed at
FasterXML (http://fasterxml.com)
Licensed under the JSON license.
This product includes software developed at
Oracle Corporation
Licensed under the CDDL-1.0,GPL-2.0-or-later license.
This product includes software developed at
AddThis
Licensed under the Apache-2.0 license.
This product includes software developed at
SLF4J.ORG
Licensed under the X11 license.
This product includes software developed at
SLF4J.ORG
Licensed under the MIT license.
This product includes software developed at
Seam Framework
Licensed under the Apache-2.0 license.
This product includes software developed at
JUnit
Licensed under the EPL-1.0 license.
This product includes software developed at
OPS4J - Open Participation Software for Java
Licensed under the Apache-2.0 license.
This product includes software developed at
FasterXML
Licensed under the Apache-2.0 license.
This product includes software developed at
OSGi Alliance (http://www.osgi.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
Joda.org (http://www.joda.org)
Licensed under the Apache-2.0 license.
This product includes software developed at
Google, Inc.
Licensed under the Apache-2.0 license.
This product includes software developed at
GlassFish Community (https://glassfish.dev.java.net)
Licensed under the CDDL,GPL-2.0-or-later license.
This product includes software developed at
Oracle
Licensed under the Apache-2.0 license.
</license>
<requires>
<import plugin="org.talend.designer.maven.repo.tcompv0" version="0.0.0" match="greaterOrEqual"/>
</requires>
<plugin
id="org.talend.studio.components.tcompv0.snowflake"
download-size="0"
@@ -30,4 +113,5 @@
install-size="0"
version="0.0.0"
unpack="false"/>
</feature>

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.snowflake.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.snowflake.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>

View File

@@ -5,7 +5,7 @@
version="8.0.1.qualifier">
<description url="http://www.example.com/description">
[Enter Feature Description here.]
Splunk component
</description>
<copyright url="http://www.example.com/copyright">
@@ -13,11 +13,79 @@
</copyright>
<license url="http://www.example.com/license">
[Enter License Description here.]
Splunk component
Copyright (c) 2006-2021 Talend Inc. - www.talend.com
All rights reserved.
This product includes software developed at
OPS4J - Open Participation Software for Java
Licensed under the Apache-2.0 license.
This product includes software developed at
GlassFish Community (https://glassfish.dev.java.net)
Licensed under the CDDL,GPL-2.0-only license.
This product includes software developed at
The Apache Software Foundation (http://jakarta.apache.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
FasterXML
Licensed under the Apache-2.0 license.
This product includes software developed at
OSGi Alliance (http://www.osgi.org/)
Licensed under the Apache-2.0 license.
This product includes software developed at
Joda.org (http://www.joda.org)
Licensed under the Apache-2.0 license.
This product includes software developed at
FasterXML (http://fasterxml.com)
Licensed under the JSON license.
This product includes software developed at
Google, Inc.
Licensed under the Apache-2.0 license.
This product includes software developed at
AddThis
Licensed under the Apache-2.0 license.
This product includes software developed at
SLF4J.ORG
Licensed under the MIT license.
This product includes software developed at
SLF4J.ORG
Licensed under the X11 license.
This product includes software developed at
JUnit
Licensed under the EPL-1.0 license.
This product includes software developed at
Seam Framework
Licensed under the Apache-2.0 license.
</license>
<requires>
<import plugin="org.talend.designer.maven.repo.tcompv0" version="0.0.0" match="greaterOrEqual"/>
</requires>
<plugin
id="org.talend.studio.components.tcompv0.splunk"
download-size="0"
@@ -30,4 +98,5 @@
install-size="0"
version="0.0.0"
unpack="false"/>
</feature>

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.splunk.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.studio.components.tcompv0.splunk.feature</artifactId>
<packaging>eclipse-feature</packaging>
</project>

View File

@@ -1,57 +1,252 @@
<?xml version="1.0" encoding="UTF-8"?>
<feature
id="org.talend.tos.components.feature"
label="Components-feature"
version="8.0.1.qualifier">
<description url="http://www.example.com/description">
[Enter Feature Description here.]
</description>
<copyright url="http://www.example.com/copyright">
[Enter Copyright Description here.]
</copyright>
<license url="http://www.example.com/license">
[Enter License Description here.]
</license>
<requires>
<import feature="org.talend.studio.components.tcompv0.jdbc.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.netsuite.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.googledrive.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.marketo.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.azurestorage.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.snowflake.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.jira.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.splunk.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.salesforce.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.esb.tooling.ws.consumer.feature" version="0.0.0" match="greaterOrEqual"/>
<import plugin="biz.aQute.bnd.annotation" version="0.0.0" match="greaterOrEqual"/>
<import plugin="javax.wsdl" version="0.0.0" match="greaterOrEqual"/>
<import plugin="joda-time" version="0.0.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.help.ui" version="0.0.0" match="greaterOrEqual"/>
<import plugin="jaxb-api" version="0.0.0" match="greaterOrEqual"/>
</requires>
<plugin
id="org.talend.components.api"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.components.api.service.osgi"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.components.azurestorage"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.components.common"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.components.common-oauth"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.components.googledrive"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.components.jdbc.definition"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.components.jira"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.components.marketo"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.components.netsuite"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.components.salesforce.definition"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.components.snowflake.definition"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.components.splunk"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.designer.abstractmap"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.designer.alfrescooutput"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.designer.components.exchange"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="org.talend.designer.components.localprovider"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="org.talend.designer.core.generic"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.designer.dbmap"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.designer.filemultischemas"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.designer.fileoutputxml"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.designer.gefabstractmap"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.designer.mapper"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.designer.rowgenerator"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.designer.scd"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.designer.unifiedcomponent"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.designer.webservice"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.designer.xmlmap"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.expressionbuilder"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.repository.generic"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.sdk.component.studio-integration"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<feature id="org.talend.tos.components.feature" label="Components-feature" version="8.0.1.qualifier">
<description url="http://www.example.com/description">[Enter Feature Description here.]</description>
<copyright url="http://www.example.com/copyright">[Enter Copyright Description here.]</copyright>
<license url="http://www.example.com/license">[Enter License Description here.]</license>
<requires>
<import feature="org.talend.studio.components.tcompv0.jdbc.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.couchbase.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.netsuite.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.marklogic.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.googledrive.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.marketo.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.azurestorage.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.snowflake.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.jira.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.splunk.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.studio.components.tcompv0.salesforce.feature" version="0.0.0" match="greaterOrEqual"/>
<import feature="org.talend.esb.tooling.ws.consumer.feature" version="0.0.0" match="greaterOrEqual"/>
<import plugin="biz.aQute.bnd.annotation" version="0.0.0" match="greaterOrEqual"/>
<import plugin="javax.wsdl" version="0.0.0" match="greaterOrEqual"/>
<import plugin="joda-time" version="0.0.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.help.ui" version="0.0.0" match="greaterOrEqual"/>
<import plugin="jaxb-api" version="0.0.0" match="greaterOrEqual"/>
</requires>
<plugin id="org.talend.components.api" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.components.api.service.osgi" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.components.azurestorage" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.components.common" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.components.common-oauth" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.components.googledrive" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.components.jdbc.definition" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.components.jira" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.components.marketo" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.components.netsuite" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.components.salesforce.definition" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.components.snowflake.definition" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.components.splunk" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.designer.abstractmap" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.designer.alfrescooutput" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.designer.components.exchange" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.designer.components.localprovider" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.designer.core.generic" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.designer.dbmap" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.designer.filemultischemas" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.designer.fileoutputxml" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.designer.gefabstractmap" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.designer.mapper" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.designer.rowgenerator" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.designer.scd" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.designer.unifiedcomponent" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.designer.webservice" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.designer.xmlmap" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.expressionbuilder" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.repository.generic" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.sdk.component.studio-integration" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
</feature>

View File

@@ -43,7 +43,6 @@
<plugin id="org.talend.libraries.palo" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.libraries.persist.lookup" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.libraries.salesforce" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.libraries.servlet" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.libraries.slf4j" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.libraries.xml" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.libraries.zmq" download-size="0" install-size="0" version="0.0.0"/>

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

@@ -3,18 +3,18 @@ prefs.configuration.LINK_STYLE=\u30C7\u30D5\u30A9\u30EB\u30C8\u30DE\u30C3\u30D4\
prefs.configuration.LINK_STYLE.AUTO=\u81EA\u52D5
prefs.configuration.LINK_STYLE.BEZIER_CURVE=\u66F2\u7DDA
prefs.configuration.LINK_STYLE.LINE=\u76F4\u7DDA\uFF08\u9AD8\u901F\uFF09
DraggingInfosPopup.draggingEntry={0}\u30A8\u30F3\u30C8\u30EA\u3092\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u3044\u307E\u3059\u3002
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\u3092\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u3044\u307E\u3059\u3002
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.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)
DraggingInfosPopup.insertAllSelectedEntries= > \u9078\u629E\u3057\u305F\u3059\u3079\u3066\u306E\u30A8\u30F3\u30C8\u30EA\u3092\u633F\u5165\u3057\u307E\u3059
DraggingInfosPopup.insertRemainingEntries= > \u6B8B\u308A\u306E\u30A8\u30F3\u30C8\u30EA\u3092\u633F\u5165\u3057\u307E\u3059
DraggingInfosPopup.eachSourceEntryExpressionToEachTargetExpression=> \u5404\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u5404\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u5F0F
DraggingInfosPopup.eachSourceEntryToEachTargetExpression=> \u5404\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u5404\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA
DraggingInfosPopup.allSourceEntriesExpressionToASingleOneTargetExpressionShiftKey=> 1\u3064\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u3059\u3079\u3066\u306E\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u5F0F (\u30DE\u30C3\u30D4\u30F3\u30B0\u3092\u5909\u66F4\u3059\u308B\u306B\u306FShift\u30AD\u30FC)
DraggingInfosPopup.allSourceEntriesExpressionToASingleOneTargetExpression=> 1\u3064\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u3059\u3079\u3066\u306E\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u5F0F
DraggingInfosPopup.allSourceEntriesToASingleOneTargetExpressionShiftKey=> 1\u3064\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u3059\u3079\u3066\u306E\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA (\u30DE\u30C3\u30D4\u30F3\u30B0\u3092\u5909\u66F4\u3059\u308B\u306B\u306FShift\u30AD\u30FC)
DraggingInfosPopup.allSourceEntriesToASingleOneTargetExpression=> 1\u3064\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u3059\u3079\u3066\u306E\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA
DraggingInfosPopup.insertAllSelectedEntries= > \u9078\u629E\u3057\u305F\u3059\u3079\u3066\u306E\u30A8\u30F3\u30C8\u30EA\u30FC\u3092\u633F\u5165\u3057\u307E\u3059
DraggingInfosPopup.insertRemainingEntries= > \u6B8B\u308A\u306E\u30A8\u30F3\u30C8\u30EA\u30FC\u3092\u633F\u5165\u3057\u307E\u3059
DraggingInfosPopup.eachSourceEntryExpressionToEachTargetExpression=> \u5404\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u5404\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u30FC\u5F0F
DraggingInfosPopup.eachSourceEntryToEachTargetExpression=> \u5404\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u5404\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u30FC
DraggingInfosPopup.allSourceEntriesExpressionToASingleOneTargetExpressionShiftKey=> 1\u3064\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u3059\u3079\u3066\u306E\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u30FC\u5F0F (\u30DE\u30C3\u30D4\u30F3\u30B0\u3092\u5909\u66F4\u3059\u308B\u306B\u306FShift\u30AD\u30FC)
DraggingInfosPopup.allSourceEntriesExpressionToASingleOneTargetExpression=> 1\u3064\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u3059\u3079\u3066\u306E\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u30FC\u5F0F
DraggingInfosPopup.allSourceEntriesToASingleOneTargetExpressionShiftKey=> 1\u3064\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u3059\u3079\u3066\u306E\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u30FC (\u30DE\u30C3\u30D4\u30F3\u30B0\u3092\u5909\u66F4\u3059\u308B\u306B\u306FShift\u30AD\u30FC)
DraggingInfosPopup.allSourceEntriesToASingleOneTargetExpression=> 1\u3064\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u3059\u3079\u3066\u306E\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u30FC

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

@@ -4,7 +4,7 @@ AlfrescoOutputManager.schemaError.msg=\u6700\u521D\u306B\u30B9\u30AD\u30FC\u30DE
AlfrescoOutputModelManager.alreadyAdded=\u3053\u306E\u30E2\u30C7\u30EB\u306F\u65E2\u306B\u8FFD\u52A0\u6E08\u307F\u3067\u3059\u3002
AlfrescoOutputModelManager.errorReadingModel=Alfresco\u30E2\u30C7\u30EB\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u8FBC\u307F\u30A8\u30E9\u30FC
AlfrescoOutputModelManager.notYetAdded=\u3053\u306E\u30E2\u30C7\u30EB\u306F\u307E\u3060\u8FFD\u52A0\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
AlfrescoOutputModelManager.prefixConflict=\u5148\u306B\u8FFD\u52A0\u3055\u308C\u305F\u30E2\u30C7\u30EB\u306E\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u306E\u885D\u7A81\u306E\u305F\u3081\u3001\u30E2\u30C7\u30EB\u306E\u8FFD\u52A0\u304C\u51FA\u6765\u307E\u305B\u3093\u3002
AlfrescoOutputModelManager.prefixConflict=\u5148\u306B\u8FFD\u52A0\u3055\u308C\u305F\u30E2\u30C7\u30EB\u306E\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u306E\u885D\u7A81\u306E\u305F\u3081\u3001\u30E2\u30C7\u30EB\u306E\u8FFD\u52A0\u304C\u3067\u304D\u307E\u305B\u3093\u3002
AlfrescoModelDialog.type=\u30BF\u30A4\u30D7
AlfrescoModelDialog.aspects=\u30A2\u30B9\u30DA\u30AF\u30C8
AlfrescoModelDialog.availableAspects=\u53EF\u80FD\u306A\u30A2\u30B9\u30DA\u30AF\u30C8

View File

@@ -7,7 +7,6 @@ bin.includes = plugin.xml,\
jet_stub/,\
plugin.properties,\
plugin_de.properties,\
plugin_en.properties,\
plugin_es.properties,\
plugin_fr.properties,\
plugin_ja.properties,\

View File

@@ -651,15 +651,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 +669,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();
@@ -735,9 +744,6 @@
} catch (java.lang.RuntimeException e) {
//do nothing
}
} else {
context.<%=ctxParam.getName()%> = pwd_<%=ctxParam.getName()%>_value;
context.put("<%=ctxParam.getName()%>",context.<%=ctxParam.getName()%>);
}
}
<%

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())) {
%>
@@ -364,6 +407,26 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
}
return strReturn;
}
private String readString(org.jboss.marshalling.Unmarshaller unmarshaller) throws IOException{
String strReturn = null;
int length = 0;
length = unmarshaller.readInt();
if (length == -1) {
strReturn = null;
} else {
if(length > commonByteArray_<%=codeGenArgument.getCurrentProjectName() %>_<%=codeGenArgument.getJobName() %>.length) {
if(length < 1024 && commonByteArray_<%=codeGenArgument.getCurrentProjectName() %>_<%=codeGenArgument.getJobName() %>.length == 0) {
commonByteArray_<%=codeGenArgument.getCurrentProjectName() %>_<%=codeGenArgument.getJobName() %> = new byte[1024];
} else {
commonByteArray_<%=codeGenArgument.getCurrentProjectName() %>_<%=codeGenArgument.getJobName() %> = new byte[2 * length];
}
}
unmarshaller.readFully(commonByteArray_<%=codeGenArgument.getCurrentProjectName() %>_<%=codeGenArgument.getJobName() %>, 0, length);
strReturn = new String(commonByteArray_<%=codeGenArgument.getCurrentProjectName() %>_<%=codeGenArgument.getJobName() %>, 0, length, utf8Charset);
}
return strReturn;
}
private void writeString(String str, ObjectOutputStream dos) throws IOException{
if(str == null) {
@@ -374,11 +437,21 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
dos.write(byteArray);
}
}
private void writeString(String str, org.jboss.marshalling.Marshaller marshaller) throws IOException{
if(str == null) {
marshaller.writeInt(-1);
} else {
byte[] byteArray = str.getBytes(utf8Charset);
marshaller.writeInt(byteArray.length);
marshaller.write(byteArray);
}
}
<%
} else if(!hasString2 && (isLookup && !hashableColumnsNames.contains(column.getLabel()))){
hasString2 = true;
%>
private String readString(DataInputStream dis, ObjectInputStream ois) throws IOException{
String strReturn = null;
int length = 0;
@@ -392,6 +465,30 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
}
return strReturn;
}
private String readString(DataInputStream dis, org.jboss.marshalling.Unmarshaller unmarshaller) throws IOException{
String strReturn = null;
int length = 0;
length = unmarshaller.readInt();
if (length == -1) {
strReturn = null;
} else {
byte[] byteArray = new byte[length];
unmarshaller.read(byteArray);
strReturn = new String(byteArray, utf8Charset);
}
return strReturn;
}
private void writeString(String str, DataOutputStream dos, org.jboss.marshalling.Marshaller marshaller) throws IOException{
if(str == null) {
marshaller.writeInt(-1);
} else {
byte[] byteArray = str.getBytes(utf8Charset);
marshaller.writeInt(byteArray.length);
marshaller.write(byteArray);
}
}
private void writeString(String str, DataOutputStream dos, ObjectOutputStream oos) throws IOException{
if(str == null) {
@@ -420,6 +517,18 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
}
return dateReturn;
}
private java.util.Date readDate(org.jboss.marshalling.Unmarshaller unmarshaller) throws IOException{
java.util.Date dateReturn = null;
int length = 0;
length = unmarshaller.readByte();
if (length == -1) {
dateReturn = null;
} else {
dateReturn = new Date(unmarshaller.readLong());
}
return dateReturn;
}
private void writeDate(java.util.Date date1, ObjectOutputStream dos) throws IOException{
if(date1 == null) {
@@ -429,6 +538,15 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
dos.writeLong(date1.getTime());
}
}
private void writeDate(java.util.Date date1, org.jboss.marshalling.Marshaller marshaller) throws IOException{
if(date1 == null) {
marshaller.writeByte(-1);
} else {
marshaller.writeByte(0);
marshaller.writeLong(date1.getTime());
}
}
<%
}else if (!hasDate2 && (isLookup && !hashableColumnsNames.contains(column.getLabel()))) {
hasDate2 = true;
@@ -445,6 +563,18 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
}
return dateReturn;
}
private java.util.Date readDate(DataInputStream dis, org.jboss.marshalling.Unmarshaller unmarshaller ) throws IOException{
java.util.Date dateReturn = null;
int length = 0;
length = unmarshaller.readByte();
if (length == -1) {
dateReturn = null;
} else {
dateReturn = new Date(unmarshaller.readLong());
}
return dateReturn;
}
private void writeDate(java.util.Date date1, DataOutputStream dos, ObjectOutputStream oos) throws IOException{
if(date1 == null) {
@@ -454,6 +584,15 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
dos.writeLong(date1.getTime());
}
}
private void writeDate(java.util.Date date1, DataOutputStream dos, org.jboss.marshalling.Marshaller marshaller) throws IOException{
if(date1 == null) {
marshaller.writeByte(-1);
} else {
marshaller.writeByte(0);
marshaller.writeLong(date1.getTime());
}
}
<%
}
} else if(typeToGenerate.equals("byte[]")) {
@@ -473,6 +612,20 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
}
return byteArrayReturn;
}
private byte[] readByteArray(org.jboss.marshalling.Unmarshaller dis) throws IOException{
byte[] byteArrayReturn;
int length = 0;
length = dis.readInt();
if (length == -1) {
byteArrayReturn = null;
} else {
byte[] byteArray = new byte[length];
dis.readFully(byteArray);
byteArrayReturn = byteArray;
}
return byteArrayReturn;
}
private void writeByteArray(byte[] byteArray, ObjectOutputStream dos) throws IOException{
if(byteArray == null) {
@@ -482,6 +635,15 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
dos.write(byteArray);
}
}
private void writeByteArray(byte[] byteArray, org.jboss.marshalling.Marshaller marshaller) throws IOException{
if(byteArray == null) {
marshaller.writeInt(-1);
} else {
marshaller.writeInt(byteArray.length);
marshaller.write(byteArray);
}
}
<%
}else if (!hasByteArray2 && (isLookup && !hashableColumnsNames.contains(column.getLabel()))) {
hasByteArray2 = true;
@@ -499,6 +661,20 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
}
return byteArrayReturn;
}
private byte[] readByteArray(DataInputStream dis, org.jboss.marshalling.Unmarshaller unmarshaller ) throws IOException{
byte[] byteArrayReturn;
int length = 0;
length = unmarshaller.readInt();
if (length == -1) {
byteArrayReturn = null;
} else {
byte[] byteArray = new byte[length];
unmarshaller.read(byteArray);
byteArrayReturn = byteArray;
}
return byteArrayReturn;
}
private void writeByteArray(byte[] byteArray, DataOutputStream dos, ObjectOutputStream oos) throws IOException{
if(byteArray == null) {
@@ -508,6 +684,15 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
dos.write(byteArray);
}
}
private void writeByteArray(byte[] byteArray, DataOutputStream dos, org.jboss.marshalling.Marshaller marshaller) throws IOException{
if(byteArray == null) {
marshaller.writeInt(-1);
} else {
marshaller.writeInt(byteArray.length);
marshaller.write(byteArray);
}
}
<%
}
}else {
@@ -528,6 +713,18 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
}
return intReturn;
}
private Integer readInteger(org.jboss.marshalling.Unmarshaller dis) throws IOException{
Integer intReturn;
int length = 0;
length = dis.readByte();
if (length == -1) {
intReturn = null;
} else {
intReturn = dis.read<%= typeToGenerate %>();
}
return intReturn;
}
private void writeInteger(Integer intNum, ObjectOutputStream dos) throws IOException{
if(intNum == null) {
@@ -537,6 +734,15 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
dos.write<%= typeToGenerate %>(intNum);
}
}
private void writeInteger(Integer intNum, org.jboss.marshalling.Marshaller marshaller) throws IOException{
if(intNum == null) {
marshaller.writeByte(-1);
} else {
marshaller.writeByte(0);
marshaller.write<%= typeToGenerate %>(intNum);
}
}
<%
} else if(!hasInteger2 && (isLookup && !hashableColumnsNames.contains(column.getLabel()))){
hasInteger2 = true;
@@ -552,6 +758,18 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
}
return intReturn;
}
private Integer readInteger(DataInputStream dis, org.jboss.marshalling.Unmarshaller unmarshaller) throws IOException{
Integer intReturn;
int length = 0;
length = unmarshaller.readByte();
if (length == -1) {
intReturn = null;
} else {
intReturn = unmarshaller.read<%= typeToGenerate %>();
}
return intReturn;
}
private void writeInteger(Integer intNum, DataOutputStream dos, ObjectOutputStream oos) throws IOException{
if(intNum == null) {
@@ -561,6 +779,15 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
dos.write<%= typeToGenerate %>(intNum);
}
}
private void writeInteger(Integer intNum, DataOutputStream dos,org.jboss.marshalling.Marshaller marshaller ) throws IOException{
if(intNum == null) {
marshaller.writeByte(-1);
} else {
marshaller.writeByte(0);
marshaller.write<%= typeToGenerate %>(intNum);
}
}
<%
}
}
@@ -662,6 +889,101 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
}
}
public void <%= isLookup ? "readKeys" : "read" %>Data(org.jboss.marshalling.Unmarshaller dis) {
synchronized(commonByteArrayLock_<%=codeGenArgument.getCurrentProjectName() %>_<%=codeGenArgument.getJobName() %>) {
try {
int length = 0;
<%
hasAtLeastOneRead = false;
hasAtLeastOneObjectType = false;
if (metadata !=null) {
for (IMetadataColumn column: metadata.getListColumns()) {
if (!isLookup || hashableColumnsNames.contains(column.getLabel())) {
hasAtLeastOneRead = true;
JavaType javaType = JavaTypesManager.getJavaTypeFromId(column.getTalendType());
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getTalendType(), column.isNullable());
if (JavaTypesManager.isJavaPrimitiveType(column.getTalendType(), column.isNullable())) {
typeToGenerate=typeToGenerate.substring(0,1).toUpperCase()+typeToGenerate.substring(1);
%>
this.<%=column.getLabel() %> = dis.read<%= typeToGenerate %>();
<%
} else if(typeToGenerate.equals("String")) {
%>
this.<%=column.getLabel() %> = readString(dis);
<%
} else if(typeToGenerate.equals("java.util.Date")) {
%>
this.<%=column.getLabel() %> = readDate(dis);
<%
} else if(typeToGenerate.equals("byte[]")) {
%>
this.<%=column.getLabel() %> = readByteArray(dis);
<%
} else if(javaType.isObjectBased() || typeToGenerate.equals("Geometry") || typeToGenerate.equals("Dynamic")) {
hasAtLeastOneObjectType = true;
if("id_Document".equals(javaType.getId()) || "id_Dynamic".equals(javaType.getId())) {
typeToGenerate = javaType.getNullableClass().getCanonicalName();
}
%>
this.<%=column.getLabel() %> = (<%= typeToGenerate %>) dis.readObject();
<%
} else {
typeToGenerate =JavaTypesManager.getTypeToGenerate(column.getTalendType(), false);
typeToGenerate=typeToGenerate.substring(0,1).toUpperCase()+typeToGenerate.substring(1);
if(typeToGenerate.equals("Int")){
%>
this.<%=column.getLabel() %> = readInteger(dis);
<%
} else {
%>
length = dis.readByte();
if (length == -1) {
this.<%=column.getLabel() %> = null;
} else {
this.<%=column.getLabel() %> = dis.read<%= typeToGenerate %>();
}
<%
}
}
}
}
}
if(hasAtLeastOneRead) {
%>
} catch (IOException e) {
throw new RuntimeException(e);
<%
}
%>
<%
if(hasAtLeastOneObjectType) {
%>
} catch(ClassNotFoundException eCNFE) {
throw new RuntimeException(eCNFE);
<%
}
%>
}
<%
if(!hasAtLeastOneRead) {
%>
finally {}
<%
}
%>
}
}
public void <%= isLookup ? "writeKeys" : "write" %>Data(ObjectOutputStream dos) {
@@ -739,6 +1061,82 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
%>
}
public void <%= isLookup ? "writeKeys" : "write" %>Data(org.jboss.marshalling.Marshaller dos) {
try {
<%
hasAtLeastOneWrite = false;
hasAtLeastOneObjectType = false;
if (metadata !=null) {
for (IMetadataColumn column: metadata.getListColumns()) {
if (!isLookup || hashableColumnsNames.contains(column.getLabel())) {
JavaType javaType = JavaTypesManager.getJavaTypeFromId(column.getTalendType());
hasAtLeastOneWrite = true;
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getTalendType(), column.isNullable());
%>
// <%=typeToGenerate %>
<%
if (JavaTypesManager.isJavaPrimitiveType(column.getTalendType(), column.isNullable())) {
typeToGenerate=typeToGenerate.substring(0,1).toUpperCase()+typeToGenerate.substring(1);
%>
dos.write<%= typeToGenerate %>(this.<%=column.getLabel() %>);
<%
} else if(typeToGenerate.equals("String")) {
%>
writeString(this.<%=column.getLabel() %>,dos);
<%
} else if(typeToGenerate.equals("java.util.Date")) {
%>
writeDate(this.<%=column.getLabel() %>,dos);
<%
} else if(typeToGenerate.equals("byte[]")) {
%>
writeByteArray(this.<%=column.getLabel() %>,dos);
<%
} else if(javaType.isObjectBased() || typeToGenerate.equals("Geometry") || typeToGenerate.equals("Dynamic")) {
%>
dos.writeObject(this.<%=column.getLabel() %>);
<%
} else {
typeToGenerate =JavaTypesManager.getTypeToGenerate(column.getTalendType(), false);
typeToGenerate = typeToGenerate.substring(0,1).toUpperCase()+typeToGenerate.substring(1);
if(typeToGenerate.equals("Int")){
%>
writeInteger(this.<%=column.getLabel() %>,dos);
<%
} else {
%>
if(this.<%=column.getLabel() %> == null) {
dos.writeByte(-1);
} else {
dos.writeByte(0);
dos.write<%= typeToGenerate %>(this.<%=column.getLabel() %>);
}
<%
}
}
}
}
}
if(hasAtLeastOneWrite) {
%>
} catch (IOException e) {
throw new RuntimeException(e);
<%
}
%>
}
<%
if(!hasAtLeastOneWrite) {
%>
finally {}
<%
}
%>
}
<%
if(isLookup) { // T SH 002
@@ -836,6 +1234,94 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
%>
}
public void readValuesData(DataInputStream dis, org.jboss.marshalling.Unmarshaller objectIn) {
try {
int length = 0;
<%
hasAtLeastOneRead = false;
hasAtLeastOneObjectType = false;
if (metadata !=null) {
for (IMetadataColumn column: metadata.getListColumns()) {
if (!hashableColumnsNames.contains(column.getLabel())) {
JavaType javaType = JavaTypesManager.getJavaTypeFromId(column.getTalendType());
hasAtLeastOneRead = true;
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getTalendType(), column.isNullable());
if (JavaTypesManager.isJavaPrimitiveType(column.getTalendType(), column.isNullable())) {
typeToGenerate=typeToGenerate.substring(0,1).toUpperCase()+typeToGenerate.substring(1);
%>
this.<%=column.getLabel() %> = objectIn.read<%= typeToGenerate %>();
<%
} else if(typeToGenerate.equals("String")) {
%>
this.<%=column.getLabel() %> = readString(dis,objectIn);
<%
} else if(typeToGenerate.equals("byte[]")) {
%>
this.<%=column.getLabel() %> = readByteArray(dis,objectIn);
<%
} else if(typeToGenerate.equals("java.util.Date")) {
%>
this.<%=column.getLabel() %> = readDate(dis,objectIn);
<%
} else if(typeToGenerate.equals("Object") || typeToGenerate.equals("Geometry") || typeToGenerate.equals("BigDecimal") || typeToGenerate.equals("List") || typeToGenerate.equals("Dynamic") || typeToGenerate.equals("Document")) {
hasAtLeastOneObjectType = true;
if("id_Document".equals(javaType.getId()) || "id_Dynamic".equals(javaType.getId())) {
typeToGenerate = javaType.getNullableClass().getCanonicalName();
}
%>
this.<%=column.getLabel() %> = (<%= typeToGenerate %>) objectIn.readObject();
<%
} else {
typeToGenerate =JavaTypesManager.getTypeToGenerate(column.getTalendType(), false);
typeToGenerate=typeToGenerate.substring(0,1).toUpperCase()+typeToGenerate.substring(1);
if(typeToGenerate.equals("Int")){
%>
this.<%=column.getLabel() %> = readInteger(dis,objectIn);
<%
} else {
%>
length = objectIn.readByte();
if (length == -1) {
this.<%=column.getLabel() %> = null;
} else {
this.<%=column.getLabel() %> = objectIn.read<%= typeToGenerate %>();
}
<%
}
}
}
}
}
if(hasAtLeastOneRead) {
%>
} catch (IOException e) {
throw new RuntimeException(e);
<%
}
%>
<%
if(hasAtLeastOneObjectType) {
%>
} catch(ClassNotFoundException eCNFE) {
throw new RuntimeException(eCNFE);
<%
}
%>
}
<%
if(!hasAtLeastOneRead) {
%>
finally {}
<%
}
%>
}
/**
* Return a byte array which represents Values data.
@@ -911,6 +1397,83 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
%>
}
public void writeValuesData(DataOutputStream dos, org.jboss.marshalling.Marshaller objectOut){
try {
<%
hasAtLeastOneWrite = false;
if (metadata !=null) {
for (IMetadataColumn column: metadata.getListColumns()) {
if (!hashableColumnsNames.contains(column.getLabel())) {
JavaType javaType = JavaTypesManager.getJavaTypeFromId(column.getTalendType());
hasAtLeastOneWrite = true;
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getTalendType(), column.isNullable());
if (JavaTypesManager.isJavaPrimitiveType(column.getTalendType(), column.isNullable())) {
typeToGenerate=typeToGenerate.substring(0,1).toUpperCase()+typeToGenerate.substring(1);
%>
objectOut.write<%= typeToGenerate %>(this.<%=column.getLabel() %>);
<%
} else if(typeToGenerate.equals("String")) {
%>
writeString(this.<%=column.getLabel() %>, dos, objectOut);
<%
} else if(typeToGenerate.equals("byte[]")) {
%>
writeByteArray(this.<%=column.getLabel() %>, dos, objectOut);
<%
} else if(typeToGenerate.equals("java.util.Date")) {
%>
writeDate(this.<%=column.getLabel() %>, dos, objectOut);
<%
} else if(typeToGenerate.equals("Object") || typeToGenerate.equals("Geometry") || typeToGenerate.equals("BigDecimal") || typeToGenerate.equals("List") || typeToGenerate.equals("Dynamic") || typeToGenerate.equals("Document")) {
%>
objectOut.writeObject(this.<%=column.getLabel() %>);
<%
} else {
typeToGenerate =JavaTypesManager.getTypeToGenerate(column.getTalendType(), false);
typeToGenerate = typeToGenerate.substring(0,1).toUpperCase()+typeToGenerate.substring(1);
if(typeToGenerate.equals("Int")){
%>
writeInteger(this.<%=column.getLabel() %>, dos, objectOut);
<%
} else {
%>
if(this.<%=column.getLabel() %> == null) {
objectOut.writeByte(-1);
} else {
objectOut.writeByte(0);
objectOut.write<%= typeToGenerate %>(this.<%=column.getLabel() %>);
}
<%
}
}
}
}
}
if(hasAtLeastOneRead) {
%>
} catch (IOException e) {
throw new RuntimeException(e);
<%
}
%>
}
<%
if(!hasAtLeastOneRead) {
%>
finally {}
<%
}
%>
}
public boolean supportMarshaller(){
return true;
}
<%
} // T SH 002

View File

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

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

@@ -48,7 +48,7 @@ ComponentsFactory.componentNotFound=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u
ComponentsFactory.load.components=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30ED\u30FC\u30C9...
ComponentsFactory.parentNotRecompiled=\u8B66\u544A: *.inc.javajet\u306E\u89AA\u306F\u518D\u30B3\u30F3\u30D1\u30A4\u30EB\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
ComponentsFactory.loadComponents.missingFolder=\u30D7\u30E9\u30B0\u30A4\u30F3"{1}"\u306B\u30D5\u30A9\u30EB\u30C0\u30FC"{0}"\u304C\u3042\u308A\u307E\u305B\u3093\u3002
ComponentsFactory.init.waitForFinish.timeout=ComponentsFactory\u3092\u521D\u671F\u5316\u3067\u304D\u307E\u305B\u3093\u3002\u3082\u3046\u4E00\u5EA6\u8A66\u3057\u3066\u304F\u3060\u3055\u3044\u3002
ComponentsFactory.init.waitForFinish.timeout=ComponentsFactory\u3092\u521D\u671F\u5316\u3067\u304D\u307E\u305B\u3093\u3002\u3084\u308A\u76F4\u3057\u3066\u307F\u3066\u304F\u3060\u3055\u3044\u3002
ComponentsLocalProviderService.componentLoadError=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30ED\u30FC\u30C9\u30A8\u30E9\u30FC
ComponentsLocalProviderService.talendExchangeError=Talend Exchange \u30A8\u30E9\u30FC
ComponentsPreferencePage.ButtonLabel0=OK

View File

@@ -17,8 +17,10 @@ import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InvalidClassException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.ObjectStreamClass;
import java.util.ArrayList;
import java.util.List;
@@ -116,7 +118,18 @@ public class EmfEmittersPersistence {
ByteArrayInputStream stream = new ByteArrayInputStream(poolAsBytes);
if (stream.available() > 0) {
try {
ObjectInputStream oin = new ObjectInputStream(stream);
ObjectInputStream oin = new ObjectInputStream(stream) {
@Override
protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
// Enforce that we are only deserializing a list of LightJetBeans
if (!(desc.getName().startsWith("java.util")
|| LightJetBean.class.getName().equals(desc.getName())
|| String.class.getName().equals(desc.getName()))) {
throw new InvalidClassException("Unauthorized deserialization attempt", desc.getName());
}
return super.resolveClass(desc);
}
};
emittersToReturn = (List<LightJetBean>) oin.readObject();
oin.close();
return emittersToReturn;

View File

@@ -20,8 +20,10 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InvalidClassException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.ObjectStreamClass;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
@@ -171,7 +173,17 @@ public final class JetSkeletonManager {
BufferedInputStream bufferedInputStream = null;
try {
bufferedInputStream = new BufferedInputStream(new FileInputStream(file));
ObjectInputStream objectIn = new ObjectInputStream(bufferedInputStream);
ObjectInputStream objectIn = new ObjectInputStream(bufferedInputStream) {
@Override
protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
// Enforce the types that we are about to deserialize
if (!(desc.getName().startsWith("java.util") || Number.class.getName().equals(desc.getName()) || Long.class.getName().equals(desc.getName())
|| String.class.getName().equals(desc.getName()))) {
throw new InvalidClassException("Unauthorized deserialization attempt", desc.getName());
}
return super.resolveClass(desc);
}
};
alreadyCheckedSkeleton = (Map<String, Long>) objectIn.readObject();
} catch (Exception e) {
throw e;

View File

@@ -8,7 +8,6 @@ bin.includes = META-INF/,\
model/,\
content/,\
plugin_de.properties,\
plugin_en.properties,\
plugin_fr.properties,\
plugin_it.properties,\
plugin_ja.properties,\

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

@@ -56,7 +56,7 @@ ShowInstalledExtensionsJob.ShowInstalledExtensions.Title=extensions\u3092\u30A4\
ShowInstalledExtensionsJob.ShowInstalledExtensions.Message=exchange\u304B\u3089extensions\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u2026
DeleteExtensionJob.DeleteExtensionJob.Title=Extension\u3092\u524A\u9664\u3057\u307E\u3059\u2026
DeleteExtensionJob.DeleteExtensionJob.Message=Extension\u3092\u524A\u9664\u3057\u307E\u3059\u2026
DeleteExtensionJob.DeleteFailure=\u524A\u9664\u51FA\u6765\u307E\u305B\u3093
DeleteExtensionJob.DeleteFailure=\u524A\u9664\u3067\u304D\u307E\u305B\u3093
DeleteExtensionJob.DeleteFailureTip=\u30C1\u30A7\u30C3\u30AF\u3092\u3057\u3066\u304F\u3060\u3055\u3044\u3002
ModifyExtensionJob.Title=Extension\u3092\u4FEE\u6B63\u2026
ModifyExtensionJob.Message=Extension\u3092\u4FEE\u6B63\u2026

View File

@@ -1,8 +1,8 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.talend.libraries</groupId>
<artifactId>checkArchive-1.1-20190917</artifactId>
<version>6.0.0</version>
<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>
@@ -10,7 +10,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<talend.nexus.url>https://artifacts-oss.talend.com</talend.nexus.url>
<java.source.version>1.7</java.source.version>
<java.source.version>1.8</java.source.version>
</properties>
<distributionManagement>
@@ -41,7 +41,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.19</version>
<version>1.21</version>
</dependency>
</dependencies>
<build>

View File

@@ -70,9 +70,9 @@
</dependency>
<dependency>
<groupId>org.talend.libraries</groupId>
<groupId>org.talend.components</groupId>
<artifactId>talendcsv</artifactId>
<version>6.0.0</version>
<version>1.0.0</version>
</dependency>
</dependencies>

View File

@@ -69,13 +69,13 @@
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.13.2</version>
<version>2.17.1</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.13.2</version>
<version>2.17.1</version>
<optional>true</optional>
</dependency>
</dependencies>
@@ -97,4 +97,4 @@
</pluginManagement>
</build>
</project>
</project>

View File

@@ -3,10 +3,17 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.talend.components</groupId>
<artifactId>talend-mscrm</artifactId>
<version>3.9-20210713</version>
<version>3.11-20220124</version>
<packaging>jar</packaging>
<name>talend-mscrm</name>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.talendforge.org/modules/licenses/APACHE_v2.txt</url>
<distribution>may be downloaded from the Maven repository</distribution>
</license>
</licenses>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

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

@@ -116,11 +116,8 @@ public class DynamicsCRMClient implements IHttpClientFactoryObserver {
public DynamicsCRMClient(ClientConfiguration clientConfiguration, String serviceRootURL, String entitySet)
throws AuthenticationException {
this.clientConfiguration = clientConfiguration;
this.serviceRootURL = serviceRootURL;
this.entitySet = entitySet;
init();
}

View File

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

View File

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

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

@@ -0,0 +1,191 @@
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.talend.components</groupId>
<artifactId>talend-orc</artifactId>
<version>1.0-20211008</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<hadoop.version>3.2.2</hadoop.version>
<apache.orc.version>1.7.0</apache.orc.version>
<junit.jupiter.version>5.7.2</junit.jupiter.version>
<hamcrest.version>1.3</hamcrest.version>
<talend.nexus.url>https://artifacts-oss.talend.com</talend.nexus.url>
</properties>
<distributionManagement>
<snapshotRepository>
<id>talend_nexus_deployment</id>
<url>${talend.nexus.url}/nexus/content/repositories/TalendOpenSourceSnapshot/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</snapshotRepository>
<repository>
<id>talend_nexus_deployment</id>
<url>${talend.nexus.url}/nexus/content/repositories/TalendOpenSourceRelease/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</distributionManagement>
<dependencies>
<dependency>
<groupId>org.apache.orc</groupId>
<artifactId>orc-core</artifactId>
<version>${apache.orc.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
</exclusion>
<exclusion>
<artifactId>jersey-server</artifactId>
<groupId>com.sun.jersey</groupId>
</exclusion>
<exclusion>
<artifactId>jersey-servlet</artifactId>
<groupId>com.sun.jersey</groupId>
</exclusion>
<exclusion>
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
<exclusion>
<artifactId>log4j</artifactId>
<groupId>log4j</groupId>
</exclusion>
<exclusion>
<artifactId>zookeeper</artifactId>
<groupId>org.apache.zookeeper</groupId>
</exclusion>
<exclusion>
<artifactId>jetty-webapp</artifactId>
<groupId>org.eclipse.jetty</groupId>
</exclusion>
<exclusion>
<artifactId>javax.servlet-api</artifactId>
<groupId>javax.servlet</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs-client</artifactId>
<version>${hadoop.version}</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
</exclusion>
<exclusion>
<artifactId>jersey-server</artifactId>
<groupId>com.sun.jersey</groupId>
</exclusion>
<exclusion>
<artifactId>jersey-servlet</artifactId>
<groupId>com.sun.jersey</groupId>
</exclusion>
<exclusion>
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
<exclusion>
<artifactId>log4j</artifactId>
<groupId>log4j</groupId>
</exclusion>
<exclusion>
<artifactId>zookeeper</artifactId>
<groupId>org.apache.zookeeper</groupId>
</exclusion>
<exclusion>
<artifactId>jetty-webapp</artifactId>
<groupId>org.eclipse.jetty</groupId>
</exclusion>
<exclusion>
<artifactId>javax.servlet-api</artifactId>
<groupId>javax.servlet</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${junit.jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>${junit.jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.7.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<version>${hamcrest.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<version>${hamcrest.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@@ -0,0 +1,24 @@
package org.talend.orc;
import org.apache.hadoop.hive.ql.exec.vector.ColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.MapColumnVector;
abstract class ORCCommonUtils {
/**
* Check that the map type for the key is BYTES, LONG or DOUBLE and that the key
* type is LONG, DOUBLE, BYTES, DECIMAL or TIMESTAMP.
*
* @param mapVector a MapColumnVector
* @return true if the key and value types conform to the limits described
* above.
*/
public static boolean checkMapColumnVectorTypes(MapColumnVector mapVector) {
ColumnVector.Type keyType = mapVector.keys.type;
ColumnVector.Type valueType = mapVector.values.type;
return (keyType == ColumnVector.Type.BYTES || keyType == ColumnVector.Type.LONG
|| keyType == ColumnVector.Type.DOUBLE)
&& (valueType == ColumnVector.Type.LONG || valueType == ColumnVector.Type.DOUBLE
|| valueType == ColumnVector.Type.BYTES || valueType == ColumnVector.Type.DECIMAL
|| valueType == ColumnVector.Type.TIMESTAMP);
}
}

View File

@@ -0,0 +1,442 @@
package org.talend.orc;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.ColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.DecimalColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.DoubleColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.ListColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.MapColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.StructColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.TimestampColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.UnionColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.orc.TypeDescription;
public class ORCReadUtils {
public static Object readColumnByName(VectorizedRowBatch batch, String columnName, TypeDescription schema,
int rowNum) {
List<String> allColumnNames = schema.getFieldNames();
int colIndex = allColumnNames.indexOf(columnName);
if (colIndex < 0 || colIndex > batch.cols.length - 1) {
return null;
} else {
org.apache.hadoop.hive.ql.exec.vector.ColumnVector colVector = batch.cols[colIndex];
TypeDescription fieldType = schema.getChildren().get(colIndex);
int colRow = colVector.isRepeating ? 0 : rowNum;
Object value = readColumn(colVector, fieldType, colRow);
return value;
}
}
public static Object readColumn(ColumnVector colVec, TypeDescription colType, int rowNum) {
Object columnObj = null;
if (!colVec.isNull[rowNum]) {
switch (colVec.type) {
case BYTES:
columnObj = readBytesVal(colVec, colType, rowNum);
break;
case DECIMAL:
columnObj = readDecimalVal(colVec, rowNum);
break;
case DOUBLE:
columnObj = readDoubleVal(colVec, colType, rowNum);
break;
case LIST:
columnObj = readListVal(colVec, colType, rowNum);
break;
case LONG:
columnObj = readLongVal(colVec, colType, rowNum);
break;
case MAP:
columnObj = readMapVal(colVec, colType, rowNum);
break;
case STRUCT:
columnObj = readStructVal(colVec, colType, rowNum);
break;
case TIMESTAMP:
columnObj = readTimestampVal(colVec, colType, rowNum);
break;
case UNION:
columnObj = readUnionVal(colVec, colType, rowNum);
break;
default:
throw new RuntimeException("readColumn: unsupported ORC file column type: " + colVec.type.name());
}
}
return columnObj;
}
private static Object readListVal(ColumnVector colVec, TypeDescription colType, int rowNum) {
Object listValues = null;
if (!colVec.isNull[rowNum]) {
ListColumnVector listVector = (ListColumnVector) colVec;
ColumnVector listChildVector = listVector.child;
TypeDescription childType = colType.getChildren().get(0);
switch (listChildVector.type) {
case BYTES:
listValues = readBytesListValues(listVector, childType, rowNum);
break;
case DECIMAL:
listValues = readDecimalListValues(listVector, rowNum);
break;
case DOUBLE:
listValues = readDoubleListValues(listVector, rowNum);
break;
case LONG:
listValues = readLongListValues(listVector, childType, rowNum);
break;
case TIMESTAMP:
listValues = readTimestampListValues(listVector, childType, rowNum);
break;
default:
throw new RuntimeException(listVector.type.name() + " is not supported for ListColumnVectors");
}
}
return listValues;
}
private static List<Object> readLongListVector(LongColumnVector longVector, TypeDescription childType, int offset,
int numValues) {
List<Object> longList = new ArrayList<>();
for (int i = 0; i < numValues; i++) {
if (!longVector.isNull[offset + i]) {
long longVal = longVector.vector[offset + i];
if (childType.getCategory() == TypeDescription.Category.BOOLEAN) {
Boolean boolVal = longVal == 0 ? Boolean.valueOf(false) : Boolean.valueOf(true);
longList.add(boolVal);
} else if (childType.getCategory() == TypeDescription.Category.INT) {
Integer intObj = (int) longVal;
longList.add(intObj);
} else {
longList.add(longVal);
}
} else {
longList.add(null);
}
}
return longList;
}
private static Object readLongListValues(ListColumnVector listVector, TypeDescription childType, int rowNum) {
int offset = (int) listVector.offsets[rowNum];
int numValues = (int) listVector.lengths[rowNum];
LongColumnVector longVector = (LongColumnVector) listVector.child;
return readLongListVector(longVector, childType, offset, numValues);
}
private static Object readTimestampListVector(TimestampColumnVector timestampVector, TypeDescription childType,
int offset, int numValues) {
List<Object> timestampList = new ArrayList<>();
for (int i = 0; i < numValues; i++) {
if (!timestampVector.isNull[offset + i]) {
int nanos = timestampVector.nanos[offset + i];
long millisec = timestampVector.time[offset + i];
Timestamp timestamp = new Timestamp(millisec);
timestamp.setNanos(nanos);
if (childType.getCategory() == TypeDescription.Category.DATE) {
Date date = new Date(timestamp.getTime());
timestampList.add(date);
} else {
timestampList.add(timestamp);
}
} else {
timestampList.add(null);
}
}
return timestampList;
}
/**
* Read either Timestamp or Date values, depending on the definition in the
* schema.
*/
private static Object readTimestampListValues(ListColumnVector listVector, TypeDescription childType, int rowNum) {
int offset = (int) listVector.offsets[rowNum];
int numValues = (int) listVector.lengths[rowNum];
TimestampColumnVector timestampVec = (TimestampColumnVector) listVector.child;
return readTimestampListVector(timestampVec, childType, offset, numValues);
}
private static Object readDecimalListVector(DecimalColumnVector decimalVector, int offset, int numValues,
int batchRowNum) {
List<Object> decimalList = new ArrayList<>();
for (int i = 0; i < numValues; i++) {
if (!decimalVector.isNull[offset + i]) {
BigDecimal bigDecimal = decimalVector.vector[batchRowNum].getHiveDecimal().bigDecimalValue();
decimalList.add(bigDecimal);
} else {
decimalList.add(null);
}
}
return decimalList;
}
private static Object readDecimalListValues(ListColumnVector listVector, int rowNum) {
int offset = (int) listVector.offsets[rowNum];
int numValues = (int) listVector.lengths[rowNum];
DecimalColumnVector decimalVec = (DecimalColumnVector) listVector.child;
return readDecimalListVector(decimalVec, offset, numValues, rowNum);
}
private static Object readBytesListVector(BytesColumnVector bytesVec, TypeDescription childType, int offset,
int numValues) {
List<Object> bytesValList = new ArrayList<>();
for (int i = 0; i < numValues; i++) {
if (!bytesVec.isNull[offset + i]) {
byte[] byteArray = bytesVec.vector[offset + i];
int vecLen = bytesVec.length[offset + i];
int vecStart = bytesVec.start[offset + i];
byte[] vecCopy = Arrays.copyOfRange(byteArray, vecStart, vecStart + vecLen);
if (childType.getCategory() == TypeDescription.Category.STRING) {
String str = new String(vecCopy);
bytesValList.add(str);
} else {
bytesValList.add(vecCopy);
}
} else {
bytesValList.add(null);
}
}
return bytesValList;
}
private static Object readBytesListValues(ListColumnVector listVector, TypeDescription childType, int rowNum) {
int offset = (int) listVector.offsets[rowNum];
int numValues = (int) listVector.lengths[rowNum];
BytesColumnVector bytesVec = (BytesColumnVector) listVector.child;
return readBytesListVector(bytesVec, childType, offset, numValues);
}
private static Object readDoubleListVector(DoubleColumnVector doubleVec, int offset, int numValues) {
List<Object> doubleList = new ArrayList<>();
for (int i = 0; i < numValues; i++) {
if (!doubleVec.isNull[offset + i]) {
Double doubleVal = doubleVec.vector[offset + i];
doubleList.add(doubleVal);
} else {
doubleList.add(null);
}
}
return doubleList;
}
private static Object readDoubleListValues(ListColumnVector listVector, int rowNum) {
int offset = (int) listVector.offsets[rowNum];
int numValues = (int) listVector.lengths[rowNum];
DoubleColumnVector doubleVec = (DoubleColumnVector) listVector.child;
return readDoubleListVector(doubleVec, offset, numValues);
}
@SuppressWarnings("unchecked")
private static List<Object> readMapVector(ColumnVector mapVector, TypeDescription childType, int offset,
int numValues, int rowNum) {
List<Object> mapList = null;
switch (mapVector.type) {
case BYTES:
mapList = (List<Object>) readBytesListVector((BytesColumnVector) mapVector, childType, offset, numValues);
break;
case DECIMAL:
mapList = (List<Object>) readDecimalListVector((DecimalColumnVector) mapVector, offset, numValues, rowNum);
;
break;
case DOUBLE:
mapList = (List<Object>) readDoubleListVector((DoubleColumnVector) mapVector, offset, numValues);
break;
case LONG:
mapList = readLongListVector((LongColumnVector) mapVector, childType, offset, numValues);
break;
case TIMESTAMP:
mapList = (List<Object>) readTimestampListVector((TimestampColumnVector) mapVector, childType, offset,
numValues);
break;
default:
throw new RuntimeException(mapVector.type.name() + " is not supported for MapColumnVectors");
}
return mapList;
}
/**
* <p>
* Read a Map column value (e.g., a set of keys and their associated values).
* </p>
* <p>
* The Map key and value types are the first and second children in the children
* TypeDescription List. From the TypeDescription source:
* </p>
*
* <pre>
* result.children.add(keyType);
* result.children.add(valueType);
* </pre>
*/
private static Object readMapVal(ColumnVector colVec, TypeDescription colType, int rowNum) {
Map<Object, Object> objMap = new HashMap<>();
MapColumnVector mapVector = (MapColumnVector) colVec;
if (ORCCommonUtils.checkMapColumnVectorTypes(mapVector)) {
int mapSize = (int) mapVector.lengths[rowNum];
int offset = (int) mapVector.offsets[rowNum];
List<TypeDescription> mapTypes = colType.getChildren();
TypeDescription keyType = mapTypes.get(0);
TypeDescription valueType = mapTypes.get(1);
ColumnVector keyChild = mapVector.keys;
ColumnVector valueChild = mapVector.values;
List<Object> keyList = readMapVector(keyChild, keyType, offset, mapSize, rowNum);
List<Object> valueList = readMapVector(valueChild, valueType, offset, mapSize, rowNum);
assert (keyList.size() == valueList.size());
for (int i = 0; i < keyList.size(); i++) {
objMap.put(keyList.get(i), valueList.get(i));
}
} else {
throw new RuntimeException("readMapVal: unsupported key or value types");
}
return objMap;
}
private static Object readUnionVal(ColumnVector colVec, TypeDescription colType, int rowNum) {
Pair<TypeDescription, Object> columnValuePair;
UnionColumnVector unionVector = (UnionColumnVector) colVec;
int tagVal = unionVector.tags[rowNum];
List<TypeDescription> unionFieldTypes = colType.getChildren();
if (tagVal < unionFieldTypes.size()) {
TypeDescription fieldType = unionFieldTypes.get(tagVal);
if (tagVal < unionVector.fields.length) {
ColumnVector fieldVector = unionVector.fields[tagVal];
int colRow = fieldVector.isRepeating ? 0 : rowNum;
Object unionValue = readColumn(fieldVector, fieldType, colRow);
columnValuePair = new ImmutablePair<>(fieldType, unionValue);
} else {
throw new RuntimeException("readUnionVal: union tag value out of range for union column vectors");
}
} else {
throw new RuntimeException("readUnionVal: union tag value out of range for union types");
}
return columnValuePair;
}
private static Object readStructVal(ColumnVector colVec, TypeDescription colType, int rowNum) {
Object structObj = null;
if (!colVec.isNull[rowNum]) {
List<Object> fieldValList = new ArrayList<>();
StructColumnVector structVector = (StructColumnVector) colVec;
ColumnVector[] fieldVec = structVector.fields;
List<TypeDescription> fieldTypes = colType.getChildren();
assert (fieldVec.length == fieldTypes.size());
for (int i = 0; i < fieldVec.length; i++) {
int colRow = fieldVec[i].isRepeating ? 0 : rowNum;
Object fieldObj = readColumn(fieldVec[i], fieldTypes.get(i), colRow);
fieldValList.add(fieldObj);
}
structObj = fieldValList;
}
return structObj;
}
private static Object readTimestampVal(ColumnVector colVec, TypeDescription colType, int rowNum) {
Object timestampVal = null;
if (!colVec.isNull[rowNum]) {
TimestampColumnVector timestampVec = (TimestampColumnVector) colVec;
int nanos = timestampVec.nanos[rowNum];
long millisec = timestampVec.time[rowNum];
Timestamp timestamp = new Timestamp(millisec);
timestamp.setNanos(nanos);
timestampVal = timestamp;
if (colType.getCategory() == TypeDescription.Category.DATE) {
timestampVal = new Date(timestamp.getTime());
}
}
return timestampVal;
}
private static Object readDecimalVal(ColumnVector colVec, int rowNum) {
Object decimalObj = null;
if (!colVec.isNull[rowNum]) {
DecimalColumnVector decimalVec = (DecimalColumnVector) colVec;
decimalObj = decimalVec.vector[rowNum].getHiveDecimal().bigDecimalValue().setScale(decimalVec.scale);
}
return decimalObj;
}
/**
* Read a Long or Boolean value
*
* @param colVec the column vector
* @param colType the type of the column
* @param rowNum the ORC file row number.
* @return a Boolean or Long object
*/
private static Object readLongVal(ColumnVector colVec, TypeDescription colType, int rowNum) {
Object colObj = null;
if (!colVec.isNull[rowNum]) {
LongColumnVector longVec = (LongColumnVector) colVec;
Long longVal = longVec.vector[rowNum];
colObj = longVal;
if (colType.getCategory() == TypeDescription.Category.INT) {
colObj = longVal.intValue();
} else if (colType.getCategory() == TypeDescription.Category.BOOLEAN) {
colObj = longVal == 1 ? Boolean.TRUE : Boolean.FALSE;
} else if (colType.getCategory() == TypeDescription.Category.DATE) {
colObj = new Date(longVal * 86400000);
} else if (colType.getCategory() == TypeDescription.Category.BYTE) {
colObj = longVal.byteValue();
} else if (colType.getCategory() == TypeDescription.Category.SHORT) {
colObj = longVal.shortValue();
}
}
return colObj;
}
/**
* Read a Double or Float value
*
* @param colVec the column vector
* @param colType the type of the column
* @param rowNum the ORC file row number.
* @return a Double or Float object
*/
private static Object readDoubleVal(ColumnVector colVec, TypeDescription colType, int rowNum) {
Object colObj = null;
if (!colVec.isNull[rowNum]) {
DoubleColumnVector longVec = (DoubleColumnVector) colVec;
Double doubleVal = longVec.vector[rowNum];
colObj = doubleVal;
if (colType.getCategory() == TypeDescription.Category.FLOAT) {
colObj = doubleVal.floatValue();
}
}
return colObj;
}
private static Object readBytesVal(ColumnVector colVec, TypeDescription colType, int rowNum) {
Object bytesObj = null;
if (!colVec.isNull[rowNum]) {
BytesColumnVector bytesVector = (BytesColumnVector) colVec;
byte[] columnBytes = bytesVector.vector[rowNum];
int vecLen = bytesVector.length[rowNum];
int vecStart = bytesVector.start[rowNum];
byte[] vecCopy = Arrays.copyOfRange(columnBytes, vecStart, vecStart + vecLen);
if (colType.getCategory() == TypeDescription.Category.STRING ||colType.getCategory() == TypeDescription.Category.VARCHAR) {
bytesObj = new String(vecCopy);
} else if (colType.getCategory() == TypeDescription.Category.CHAR) {
String charStr = new String(vecCopy);
bytesObj = charStr;
} else {
bytesObj = vecCopy;
}
}
return bytesObj;
}
}

View File

@@ -0,0 +1,884 @@
package org.talend.orc;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.sql.Timestamp;
import java.time.LocalDate;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TimeZone;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.hadoop.hive.common.type.HiveDecimal;
import org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.ColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.DateColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.DecimalColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.DoubleColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.ListColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.MapColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.MultiValuedColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.StructColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.TimestampColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.UnionColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
import org.apache.orc.TypeDescription;
public class ORCWriteUtils {
private static final Predicate<Object> isInteger = Integer.class::isInstance;
private static final Predicate<Object> isLong = Long.class::isInstance;
private static final Predicate<Object> isDouble = Double.class::isInstance;
private static final Predicate<Object> isString = String.class::isInstance;
private static final Predicate<Object> isBigDecimal = BigDecimal.class::isInstance;
private static final Predicate<Object> isDate = Date.class::isInstance;
public static void setColumnByName(VectorizedRowBatch batch, String columnName, TypeDescription schema,
Object colVal, int rowNum) {
List<String> allColumnNames = schema.getFieldNames();
int colIndex = allColumnNames.indexOf(columnName);
if (colIndex < 0 || colIndex > batch.cols.length - 1) {
return;
} else {
org.apache.hadoop.hive.ql.exec.vector.ColumnVector colVector = batch.cols[colIndex];
TypeDescription fieldType = schema.getChildren().get(colIndex);
setColumn(colVal, fieldType, columnName, colVector, rowNum);
}
}
/**
* Add a column value that is a String or a byte[] array.
*
* @param colVal the column value object
* @param fieldName the name of the field (for error reporting)
* @param bytesColVector the BytesColumnVector that the byte array will be added
* to.
* @param rowNum the ORC file row number
*/
private static void setByteColumnVector(Object colVal, String fieldName, BytesColumnVector bytesColVector,
int rowNum) {
if (colVal instanceof byte[] || colVal instanceof String || colVal instanceof Character) {
byte[] byteVec;
if (colVal instanceof String) {
String strVal = (String) colVal;
byteVec = strVal.getBytes(StandardCharsets.UTF_8);
} else if (colVal instanceof Character) {
String strVal = String.valueOf((char) colVal);
byteVec = strVal.getBytes(StandardCharsets.UTF_8);
} else {
byteVec = (byte[]) colVal;
}
bytesColVector.setRef(rowNum, byteVec, 0, byteVec.length);
} else {
throw new RuntimeException(orcExceptionMsg("byte[] or String type expected for field ", fieldName, rowNum));
}
}
private static void setDecimalVector(Object colVal, String fieldName, DecimalColumnVector decimalColVector,
int rowNum) {
if (colVal instanceof BigDecimal) {
BigDecimal bigDecimal = (BigDecimal) colVal;
decimalColVector.precision = (short) bigDecimal.precision();
decimalColVector.scale = (short) bigDecimal.scale();
HiveDecimal hiveDecimal = HiveDecimal.create(bigDecimal);
HiveDecimalWritable writeableDecimal = new HiveDecimalWritable(hiveDecimal);
decimalColVector.vector[rowNum] = writeableDecimal;
} else {
throw new RuntimeException(orcExceptionMsg("BigDecimal type expected for field ", fieldName, rowNum));
}
}
private static void setDoubleVector(Object colVal, String fieldName, DoubleColumnVector doubleVector, int rowNum) {
if (colVal instanceof Double) {
doubleVector.vector[rowNum] = (Double) colVal;
} else if (colVal instanceof Float) {
Float fltVal = (Float) colVal;
doubleVector.vector[rowNum] = fltVal.doubleValue();
} else if (colVal instanceof BigDecimal) {
doubleVector.vector[rowNum] = ((BigDecimal) colVal).doubleValue();
} else {
throw new RuntimeException(orcExceptionMsg("Double/Float/BigDecimal type expected for field ", fieldName, rowNum));
}
}
/**
* Initialize a LongColumnVector value.
*
* @param colVal an object of type Boolean, Integer, Long or BigInteger.
* @param fieldName the field name in the schema
* @param longVector the LongColumnVector
* @param rowNum the row number
*/
private static void setLongColumnVector(Object colVal, String fieldName, LongColumnVector longVector, int rowNum) {
if (colVal instanceof Boolean) {
Boolean bool = (Boolean) colVal;
longVector.vector[rowNum] = (bool.equals(Boolean.TRUE)) ? Long.valueOf(1) : Long.valueOf(0);
} else if (colVal instanceof Byte) {
longVector.vector[rowNum] = (Byte) colVal;
} else if (colVal instanceof Short) {
longVector.vector[rowNum] = (Short) colVal;
} else if (colVal instanceof Integer) {
longVector.vector[rowNum] = (Integer) colVal;
} else if (colVal instanceof Long) {
longVector.vector[rowNum] = (Long) colVal;
} else if (colVal instanceof BigInteger) {
BigInteger bigInt = (BigInteger) colVal;
longVector.vector[rowNum] = bigInt.longValue();
} else {
throw new RuntimeException(orcExceptionMsg("Long or Integer type expected for field ", fieldName, rowNum));
}
}
private static void setDateColumnVector(Object colVal, String fieldName, DateColumnVector dateVector, int rowNum) {
if (colVal instanceof Date) {
Date dateVal = (Date) colVal;
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
cal.setTime(dateVal);
long epochDay = LocalDate.of(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH)+1, cal.get(Calendar.DAY_OF_MONTH)).toEpochDay();
dateVector.vector[rowNum] = epochDay;
} else {
throw new RuntimeException(orcExceptionMsg("Date type expected for field ", fieldName, rowNum));
}
}
private static void setTimestampVector(Object colVal, String fieldName, TimestampColumnVector timestampVector,
int rowNum) {
if (colVal instanceof Timestamp) {
timestampVector.set(rowNum, (Timestamp) colVal);
} else if (colVal instanceof Date) {
Date date = (Date) colVal;
Timestamp ts = new Timestamp(date.getTime());
timestampVector.set(rowNum, ts);
} else {
throw new RuntimeException(
orcExceptionMsg("Date or Timestamp type expected for field ", fieldName, rowNum));
}
}
/**
* <p>
* A union column can contain column vectors of more than one type. In the
* TypeDescription createUnion() is called to create a TypeDescription for a
* union column. The union values are added by calling the addUnionChild()
* method on this TypeDescription object.
* </p>
* <p>
* The class fields in the UnionColumnVector are shown below:
* </p>
*
* <pre>
* public class UnionColumnVector extends ColumnVector {
* public int[] tags;
* public ColumnVector[] fields;
* </pre>
* <p>
* A tag value (
*
* <pre>
* tags[rowNum]
* </pre>
*
* ) is associated with each field value (
*
* <pre>
* fields[rowNum])
* </pre>
*
* . The tag value serves as an index for the field type. For example, if there
* are three field types defined:
* <ol>
* <li>Long</li>
* <li>Double</li>
* <li>String</li>
* </ol>
* The tag will have a value in the range of [0..2]
* </p>
* <p>
* The tag value is needed to initialize the ColumnVector since without the tag
* there is no way to know which union child should be initialized.
* </p>
*
* @param colVal a Pair&lt;ColumnVector.Type, Object&gt; object with the
* union type and the object that will be used to initialize
* the union child ColumnVector.
* @param fieldName The name of the union field
* @param unionVector The UnionColumnVector to be initialized
* @param rowNum the ORC file row number.
*/
private static void setUnionColumnVector(Object colVal, TypeDescription unionTypeDesc, String fieldName,
UnionColumnVector unionVector, int rowNum) {
@SuppressWarnings("unchecked")
Pair<TypeDescription, Object> unionValuePair = (Pair<TypeDescription, Object>) colVal;
TypeDescription unionValType = unionValuePair.getLeft();
List<TypeDescription> unionChildrenTypes = unionTypeDesc.getChildren();
Object unionColVal = unionValuePair.getRight();
boolean found = false;
for (int i = 0; i < unionChildrenTypes.size(); i++) {
if (unionChildrenTypes.get(i).getCategory() == unionValType.getCategory()) {
unionVector.tags[rowNum] = i;
ColumnVector unionFieldVec = unionVector.fields[i];
setColumn(unionColVal, unionChildrenTypes.get(i), fieldName, unionFieldVec, rowNum);
found = true;
break;
}
}
if (!found) {
throw new RuntimeException("writeUnionColumnVector: Bad type enumeration "
+ unionValType.getCategory().getName() + " passed for field " + fieldName);
}
}
private static void setLongListVector(List<Object> longValList, LongColumnVector longVector, int offset,
String fieldName) {
for (int i = 0; i < longValList.size(); i++) {
Object objVal = longValList.get(i);
if (objVal != null) {
if (objVal instanceof Integer) {
longVector.vector[offset + i] = (Integer) objVal;
} else if (objVal instanceof Long) {
longVector.vector[offset + i] = (Long) objVal;
} else {
throw new RuntimeException("List<Integer> expected for field " + fieldName);
}
} else {
longVector.isNull[offset + i] = true;
longVector.noNulls = false;
}
}
}
private static void setLongList(List<Object> colValList, ListColumnVector listVector, String fieldName,
int rowNum) {
LongColumnVector longVector = (LongColumnVector) listVector.child;
int offset = (int) listVector.offsets[rowNum];
setLongListVector(colValList, longVector, offset, fieldName);
}
private static void setDoubleListVector(List<Object> doubleValList, DoubleColumnVector doubleVector, int offset,
String fieldName) {
for (int i = 0; i < doubleValList.size(); i++) {
Object objVal = doubleValList.get(i);
if (objVal != null) {
if (objVal instanceof Double) {
doubleVector.vector[offset + i] = (Double) objVal;
} else if (objVal instanceof Float) {
Float fltVal = (Float) objVal;
doubleVector.vector[offset + i] = fltVal.doubleValue();
} else {
throw new RuntimeException("List<Double> expected for field " + fieldName);
}
} else {
doubleVector.isNull[offset + i] = true;
doubleVector.noNulls = false;
}
}
}
private static void setDoubleList(List<Object> doubleValList, ListColumnVector listVector, String fieldName,
int rowNum) {
DoubleColumnVector vecChild = (DoubleColumnVector) listVector.child;
int offset = (int) listVector.offsets[rowNum];
setDoubleListVector(doubleValList, vecChild, offset, fieldName);
}
private static void setTimestampListVector(List<Object> valueList, TimestampColumnVector timestampVector,
int offset, String fieldName) {
for (int i = 0; i < valueList.size(); i++) {
Object objVal = valueList.get(i);
if (objVal != null) {
if (objVal instanceof Date) {
Timestamp ts = (objVal instanceof Timestamp) ? (Timestamp) objVal
: new Timestamp(((Date) objVal).getTime());
timestampVector.time[offset + i] = ts.getTime();
timestampVector.nanos[offset + i] = ts.getNanos();
} else {
throw new RuntimeException("List<Date> or List<Timestamp> expected for field " + fieldName);
}
} else {
timestampVector.isNull[offset + i] = true;
timestampVector.noNulls = false;
}
}
}
/**
* Initialize the vector values for a ListColumnVector of Date or Timestamp
* values.
*
* @param colValList a list of Timestamp or java.util.Date objects
* @param listVector A ListColumnVector with a child that will contain the
* vector values.
* @param fieldName The field name in the schema for this ORC element
* @param rowNum The ORC file row number
*/
private static void setTimestampList(List<Object> colValList, ListColumnVector listVector, String fieldName,
int rowNum) {
TimestampColumnVector timestampVector = (TimestampColumnVector) listVector.child;
int offset = (int) listVector.offsets[rowNum];
setTimestampListVector(colValList, timestampVector, offset, fieldName);
}
private static void setDecimalListVector(List<Object> decimalValList, DecimalColumnVector decimalVector, int offset,
String fieldName) {
for (int i = 0; i < decimalValList.size(); i++) {
Object objVal = decimalValList.get(i);
if (objVal != null) {
if (objVal instanceof BigDecimal) {
BigDecimal bigDecimal = (BigDecimal) objVal;
decimalVector.precision = (short) bigDecimal.precision();
decimalVector.scale = (short) bigDecimal.scale();
HiveDecimal hiveDecimal = HiveDecimal.create(bigDecimal);
HiveDecimalWritable writeableDecimal = new HiveDecimalWritable(hiveDecimal);
decimalVector.vector[offset + i] = writeableDecimal;
} else {
throw new RuntimeException("BigDecimal value expected for field " + fieldName);
}
} else {
decimalVector.isNull[offset + i] = true;
decimalVector.noNulls = false;
}
}
}
/**
*
* @param colValList a list of BigDecimal values to initialize the
* ListColumnVector child
* @param listVector the ListColumnVector with the DecimalColumnVector child
* @param fieldName the field name for the ListColumnVector/DecimalColumnVector
* column
* @param rowNum the ORC file row number
*/
private static void setDecimalList(List<Object> colValList, ListColumnVector listVector, String fieldName,
int rowNum) {
DecimalColumnVector decimalVector = (DecimalColumnVector) listVector.child;
int offset = (int) listVector.offsets[rowNum];
setDecimalListVector(colValList, decimalVector, offset, fieldName);
}
private static void setBytesListVector(List<Object> valueList, BytesColumnVector bytesVector, int offset,
String fieldName) {
for (int i = 0; i < valueList.size(); i++) {
Object objVal = valueList.get(i);
if (objVal != null) {
if (objVal instanceof byte[] || objVal instanceof String) {
byte[] byteVec = (objVal instanceof byte[]) ? (byte[]) objVal
: ((String) objVal).getBytes(StandardCharsets.UTF_8);
bytesVector.vector[offset + i] = byteVec;
bytesVector.length[offset + i] = byteVec.length;
} else {
throw new RuntimeException("String or byte[] value expected for field " + fieldName);
}
} else {
bytesVector.isNull[offset + i] = true;
bytesVector.length[offset + i] = 0;
bytesVector.noNulls = false;
}
}
}
/**
* Initialize a ListColumnVector with a BytesColumnVector child with byte[]
* values.
*
* @param colValList a list of byte[] or String values
* @param listVector the parent ListColumnVector
* @param fieldName the field name for the ORC column that contains the
* ListColumnVector
* @param rowNum the ORC file row number
*/
private static void setBytesList(List<Object> colValList, ListColumnVector listVector, String fieldName,
int rowNum) {
BytesColumnVector bytesVector = (BytesColumnVector) listVector.child;
int offset = (int) listVector.offsets[rowNum];
setBytesListVector(colValList, bytesVector, offset, fieldName);
}
private static void setMultiValuedVectorParameters(MultiValuedColumnVector multiVector, int vecLength, int rowNum) {
multiVector.lengths[rowNum] = vecLength;
if (rowNum > 0) {
multiVector.offsets[rowNum] = multiVector.lengths[rowNum - 1] + multiVector.offsets[rowNum - 1];
}
}
private static void setListVectorParameters(ListColumnVector listVec, int maxBatchSize, int vecLength, int rowNum) {
setMultiValuedVectorParameters(listVec, vecLength, rowNum);
listVec.child.ensureSize(maxBatchSize * vecLength, true);
}
/**
* Initialize a ListColumnVector. The child of the vector is limited to the
* scalar types long, double, String (or byte[])), BigDecimal or Date (or
* Timestamp).
*
* @param colVal a List&lt;Object&gt;
* @param typeDesc the schema definition for this column
* @param fieldName the column field name
* @param listVector the ListColumnVector parent of the vector type child
* @param rowNum the ORC file row number.
*/
private static void setListColumnVector(Object colVal, TypeDescription typeDesc, String fieldName,
ListColumnVector listVector, int rowNum) {
if (colVal instanceof List) {
@SuppressWarnings("unchecked")
List<Object> objValList = (List<Object>) colVal;
final int maxBatchSize = typeDesc.createRowBatch().getMaxSize();
setListVectorParameters(listVector, maxBatchSize, objValList.size(), rowNum);
ColumnVector.Type childType = listVector.child.type;
switch (childType) {
case LONG:
setLongList(objValList, listVector, fieldName, rowNum);
break;
case DOUBLE:
setDoubleList(objValList, listVector, fieldName, rowNum);
break;
case BYTES:
setBytesList(objValList, listVector, fieldName, rowNum);
break;
case DECIMAL:
setDecimalList(objValList, listVector, fieldName, rowNum);
break;
case TIMESTAMP:
setTimestampList(objValList, listVector, fieldName, rowNum);
break;
default:
throw new RuntimeException(childType.name() + " is not supported for ListColumnVector columns");
}
} else {
throw new RuntimeException("List value expected for field " + fieldName);
}
}
/**
* Test that all elements in an Object list are of a particular type
*
* @param objList the Object list that is tested
* @param typeTest a function that compares against a particular Object type
* @return true if all elements are of the test type, false if one or more
* elements are not of that type.
*/
private static boolean isListType(List<Object> objList, Predicate<Object> typeTest) {
return !objList.stream().map(typeTest::test).collect(Collectors.toList()).contains(false);
}
/**
* Initialize a ColumnVector with Long values.
*
* @param valueList a list of Long values
* @param colVector the LongColumnVector that will be initialized with the Long
* values
* @param offset the offset[rownum] value for the array
* @param fieldName the field name for the Map column
*/
private static void setLongMapValues(List<Object> valueList, ColumnVector colVector, int offset, String fieldName) {
if (isListType(valueList, isLong) || isListType(valueList, isInteger)) {
LongColumnVector longVector = (LongColumnVector) colVector;
setLongListVector(valueList, longVector, offset, fieldName);
} else {
throw new RuntimeException("For field " + fieldName + " Long values expected");
}
}
/**
* Initialize a ColumnVector with Double values.
*
* @param valueList a list of Double values
* @param colVector the DoubleColumnVector that will be initialized with the
* Double values
* @param offset the offset[rownum] value for the array
* @param fieldName the field name for the Map column
*/
private static void setDoubleMapValues(List<Object> valueList, ColumnVector colVector, int offset,
String fieldName) {
if (isListType(valueList, isDouble)) {
DoubleColumnVector doubleVector = (DoubleColumnVector) colVector;
setDoubleListVector(valueList, doubleVector, offset, fieldName);
} else {
throw new RuntimeException("For field " + fieldName + " Double values expected");
}
}
/**
* Initialize a ColumnVector with String values.
*
* @param valueList a list of String values
* @param colVector the BytesColumnVector that will be initialized with the
* String values
* @param offset the offset[rownum] value for the array
* @param fieldName the field name for the Map column
*/
private static void setStringMapValues(List<Object> valueList, ColumnVector colVector, int offset,
String fieldName) {
if (isListType(valueList, isString)) {
BytesColumnVector doubleVector = (BytesColumnVector) colVector;
setBytesListVector(valueList, doubleVector, offset, fieldName);
} else {
throw new RuntimeException("For field " + fieldName + " String values expected");
}
}
/**
* Initialize a ColumnVector with BigDeciml values.
*
* @param valueList a list of BigDecimal
* @param colVector the DecimalColumnVector that will be initialized with the
* BigDecimal values
* @param offset the offset[rownum] value for the array
* @param fieldName the field name for the Map column
*/
private static void setDecimalMapValues(List<Object> valueList, ColumnVector colVector, int offset,
String fieldName) {
if (isListType(valueList, isBigDecimal)) {
DecimalColumnVector decimalVector = (DecimalColumnVector) colVector;
setDecimalListVector(valueList, decimalVector, offset, fieldName);
} else {
throw new RuntimeException("For field " + fieldName + " BigDecimal values expected");
}
}
/**
* Initialize a ColumnVector with timestamp values.
*
* @param valueList a list of Date (or Timestamp) objects
* @param colVector the TimestampColumnVector that will be initialized with the
* Timestamp values
* @param offset the offset[rownum] value for the array
* @param fieldName the field name for the Map column
*/
private static void setTimestampMapValues(List<Object> valueList, ColumnVector colVector, int offset,
String fieldName) {
if (isListType(valueList, isDate)) {
TimestampColumnVector timestampVector = (TimestampColumnVector) colVector;
setTimestampListVector(valueList, timestampVector, offset, fieldName);
} else {
throw new RuntimeException("For field " + fieldName + " Date or Timestamp values expected");
}
}
/**
* Set the MapColumn value array vector. The type for this vector is limited to
* long, double, bytes (String), Decimal and Timestamp.
*
* @param valueList a list of Objects to initialize the Map column value array.
* @param colVector the column array vector to be initialized with the map
* values.
* @param offset the offset[rowNum] from the parent MapColumnVector
* @param fieldName the name of the field for the MapColumnVector.
*/
private static void setMapValueVector(List<Object> valueList, ColumnVector colVector, int offset,
String fieldName) {
switch (colVector.type) {
case LONG:
setLongMapValues(valueList, colVector, offset, fieldName);
break;
case DOUBLE:
setDoubleMapValues(valueList, colVector, offset, fieldName);
break;
case BYTES:
setStringMapValues(valueList, colVector, offset, fieldName);
break;
case DECIMAL:
setDecimalMapValues(valueList, colVector, offset, fieldName);
break;
case TIMESTAMP:
setTimestampMapValues(valueList, colVector, offset, fieldName);
break;
default:
throw new RuntimeException(
"For field " + fieldName + " values must be long, double, String, BigDecimal or Timestamp");
}
}
/**
* <p>
* Initialize a MapColumnVector with Long key values.
* </p>
*
* @param mapSet a set of {key, value} pairs, where the key values are Long
* objects. The elements of this set will be used to initialize
* the key and value array column vectors that are children of
* the MapColumnVector.
* @param mapVector the MapColumnVector. This ColumnVector has children for the
* key and value arrays.
* @param fieldName the field name for the map column vector column.
* @param rowNum the ORC file row number.
*/
private static void setLongKeyMap(Set<Map.Entry<Object, Object>> mapSet, MapColumnVector mapVector,
String fieldName, int rowNum) {
List<Object> keyValueList = mapSet.stream().map(Map.Entry::getKey).collect(Collectors.toList());
if (isListType(keyValueList, isLong)) {
LongColumnVector longVector = (LongColumnVector) mapVector.keys;
int offset = (int) mapVector.offsets[rowNum];
// set the key vector
setLongListVector(keyValueList, longVector, offset, fieldName);
// set the value vector
ColumnVector valueVector = mapVector.values;
List<Object> valueList = mapSet.stream().map(Map.Entry::getValue).collect(Collectors.toList());
setMapValueVector(valueList, valueVector, offset, fieldName);
} else {
throw new RuntimeException("For field " + fieldName + " Long key type expected to match schema");
}
}
/**
* <p>
* Initialize a MapColumnVector with Double key values.
* </p>
*
* @param mapSet a set of {key, value} pairs, where the key values are Double
* objects. The elements of this set will be used to initialize
* the key and value array column vectors that are children of
* the MapColumnVector.
* @param mapVector the MapColumnVector. This ColumnVector has children for the
* key and value arrays.
* @param fieldName the field name for the map column vector column.
* @param rowNum the ORC file row number.
*/
private static void setDoubleKeyMap(Set<Map.Entry<Object, Object>> mapSet, MapColumnVector mapVector,
String fieldName, int rowNum) {
List<Object> keyValueList = mapSet.stream().map(Map.Entry::getKey).collect(Collectors.toList());
if (isListType(keyValueList, isDouble)) {
DoubleColumnVector doubleVector = (DoubleColumnVector) mapVector.keys;
int offset = (int) mapVector.offsets[rowNum];
// set the key vector
setDoubleListVector(keyValueList, doubleVector, offset, fieldName);
// set the value vector
ColumnVector valueVector = mapVector.values;
List<Object> valueList = mapSet.stream().map(Map.Entry::getValue).collect(Collectors.toList());
setMapValueVector(valueList, valueVector, offset, fieldName);
} else {
throw new RuntimeException("For field " + fieldName + " Long key type expected to match schema");
}
}
/**
* <p>
* Initialize a MapColumnVector with String key values.
* </p>
*
* @param mapSet a set of {key, value} pairs, where the key values are String
* objects. The elements of this set will be used to initialize
* the key and value array column vectors that are children of
* the MapColumnVector.
* @param mapVector the MapColumnVector. This ColumnVector has children for the
* key and value arrays.
* @param fieldName the field name for the map column vector column.
* @param rowNum the ORC file row number.
*/
private static void setStringKeyMap(Set<Map.Entry<Object, Object>> mapSet, MapColumnVector mapVector,
String fieldName, int rowNum) {
List<Object> keyValueList = mapSet.stream().map(Map.Entry::getKey).collect(Collectors.toList());
if (isListType(keyValueList, isString)) {
BytesColumnVector byteVector = (BytesColumnVector) mapVector.keys;
int offset = (int) mapVector.offsets[rowNum];
// set the key array vector
setBytesListVector(keyValueList, byteVector, offset, fieldName);
// set the value array vector
ColumnVector valueVector = mapVector.values;
List<Object> valueList = mapSet.stream().map(Map.Entry::getValue).collect(Collectors.toList());
setMapValueVector(valueList, valueVector, offset, fieldName);
} else {
throw new RuntimeException("For field " + fieldName + " Long key type expected to match schema");
}
}
private static void setMapVectorParameters(MapColumnVector mapVec, int maxBatchSize, int vecLength, int rowNum) {
setMultiValuedVectorParameters(mapVec, vecLength, rowNum);
mapVec.keys.ensureSize(maxBatchSize + vecLength, true);
mapVec.values.ensureSize(maxBatchSize + vecLength, true);
}
/**
* <p>
* Set the Map key and value elements for a MapColumnVector
* </p>
* <p>
* A MapColumnVector has a single ColumnVector type for each of the map key and
* map values. For example, the ColumnVector for the key values could be a
* BytesColumnVector (a set of String keys). The values could be a
* LongColumnVector.
* </p>
* <p>
* In the documentation there is no restriction given for the map key type. This
* code limits the key types to scalar values: string, long, double.
* </p>
* </p>
* <p>
* The documentation does not limit the map value types. This code limites the
* map values to the same types that are supported for ListColumnVectors: long,
* double, bytes (String), Decimal and Timestamp.
* </p>
*
* @param colVal a HashMap object
* @param typeDesc the schema description for the MapColumnVector column
* @param fieldName the field name of the MapColumnVector column
* @param mapVector The parent MapColumnVector
* @param rowNum the ORC file column number.
*/
private static void setMapColumnVector(Object colVal, TypeDescription typeDesc, String fieldName,
MapColumnVector mapVector, int rowNum) {
if (colVal == null) {
mapVector.isNull[rowNum] = true;
mapVector.noNulls = false;
} else {
if (colVal instanceof HashMap) {
@SuppressWarnings("unchecked")
Map<Object, Object> rawMap = (HashMap<Object, Object>) colVal;
int mapLen = rawMap.size();
final int maxBatchSize = typeDesc.createRowBatch().getMaxSize();
setMapVectorParameters(mapVector, maxBatchSize, mapLen, rowNum);
if (ORCCommonUtils.checkMapColumnVectorTypes(mapVector)) {
Set<Map.Entry<Object, Object>> mapSet = rawMap.entrySet();
switch (mapVector.keys.type) {
case LONG:
setLongKeyMap(mapSet, mapVector, fieldName, rowNum);
break;
case DOUBLE:
setDoubleKeyMap(mapSet, mapVector, fieldName, rowNum);
break;
case BYTES:
setStringKeyMap(mapSet, mapVector, fieldName, rowNum);
break;
default: {
break;
/* This block left intentionally empty */
}
}
} else {
throw new RuntimeException(
"For field " + fieldName + " key types are limited to string, long and double. "
+ "value types are limited to long, double, String, decimal and timestamp");
}
}
}
}
/**
* Set a column value in an ORC a row that will be written to the ORC file.
*
* @param colVal an Object containing the values to be written to the column
* @param typeDesc the TypeDescription from the schema that defines the column
* @param fieldName the column field name
* @param vector the ColumnVector that will be initialized with the values in
* the colVal argument.
* @param rowNum the ORC file row number.
*/
public static void setColumn(Object colVal, TypeDescription typeDesc, String fieldName, ColumnVector vector,
int rowNum) {
if (colVal == null) {
vector.isNull[rowNum] = true;
vector.noNulls = false;
} else {
switch (vector.type) {
case LONG: {
if (vector instanceof DateColumnVector) {
DateColumnVector dateVector = (DateColumnVector) vector;
setDateColumnVector(colVal, fieldName, dateVector, rowNum);
} else {
LongColumnVector longVector = (LongColumnVector) vector;
setLongColumnVector(colVal, fieldName, longVector, rowNum);
}
break;
}
case DOUBLE: {
DoubleColumnVector doubleVector = (DoubleColumnVector) vector;
setDoubleVector(colVal, fieldName, doubleVector, rowNum);
break;
}
case BYTES: {
BytesColumnVector bytesColVector = (BytesColumnVector) vector;
setByteColumnVector(colVal, fieldName, bytesColVector, rowNum);
break;
}
case DECIMAL: {
DecimalColumnVector decimalVector = (DecimalColumnVector) vector;
setDecimalVector(colVal, fieldName, decimalVector, rowNum);
break;
}
case DECIMAL_64:
throw new RuntimeException("Field: " + fieldName + ", Decimal64ColumnVector is not supported");
case TIMESTAMP: {
TimestampColumnVector timestampVector = (TimestampColumnVector) vector;
setTimestampVector(colVal, fieldName, timestampVector, rowNum);
break;
}
case INTERVAL_DAY_TIME:
throw new RuntimeException("Field: " + fieldName + ", HiveIntervalDayTime is not supported");
case STRUCT: {
StructColumnVector structVector = (StructColumnVector) vector;
// setStructColumnVector(colVal, typeDesc, fieldName, structVector, rowNum);
break;
}
case LIST: {
ListColumnVector listVector = (ListColumnVector) vector;
setListColumnVector(colVal, typeDesc, fieldName, listVector, rowNum);
break;
}
case MAP: {
MapColumnVector mapVector = (MapColumnVector) vector;
setMapColumnVector(colVal, typeDesc, fieldName, mapVector, rowNum);
break;
}
case UNION: {
UnionColumnVector unionVector = (UnionColumnVector) vector;
setUnionColumnVector(colVal, typeDesc, fieldName, unionVector, rowNum);
break;
}
default:
throw new RuntimeException("setColumn: Internal error: unexpected ColumnVector subtype");
} // switch
} // else
} // setColumn
private static String orcExceptionMsg(String prefixMsg, String fieldName, int rowNum) {
return prefixMsg + fieldName + " in row " + rowNum;
}
public static TypeDescription detectType(Object value) {
TypeDescription type = null;
if (value != null) {
if (value instanceof Boolean) {
type = TypeDescription.createBoolean();
} else if (value instanceof Short) {
type = TypeDescription.createShort();
} else if (value instanceof Integer) {
type = TypeDescription.createInt();
} else if (value instanceof Long) {
type = TypeDescription.createLong();
} else if (value instanceof Timestamp) {
type = TypeDescription.createTimestamp();
} else if (value instanceof BigDecimal) {
type = TypeDescription.createDecimal();
} else if (value instanceof Byte) {
type = TypeDescription.createByte();
} else if (value instanceof Float) {
type = TypeDescription.createFloat();
} else if (value instanceof Double) {
type = TypeDescription.createDouble();
} else if (value instanceof String) {
type = TypeDescription.createString();
} else if (value instanceof Date) {
type = TypeDescription.createDate();
} else if (value instanceof byte[]) {
type = TypeDescription.createBinary();
} else {
throw new RuntimeException(
value.getClass().getName() + " is not supported for ListColumnVector columns");
}
} else {
type = TypeDescription.createString();
}
return type;
}
}

View File

@@ -0,0 +1,253 @@
package org.talend.orc;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hive.ql.exec.vector.ColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.orc.CompressionKind;
import org.apache.orc.OrcFile;
import org.apache.orc.OrcFile.WriterOptions;
import org.apache.orc.Reader;
import org.apache.orc.RecordReader;
import org.apache.orc.TypeDescription;
import org.apache.orc.Writer;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
class ORCUtilsTest {
private static File localFolder;
@BeforeAll
static void setup() throws IOException {
localFolder = createTempDirectory();
}
@AfterAll
static void dispose() {
localFolder.delete();
}
/**
* Test that an exception is thrown if a Date type is written.
*
* At the time this test was written, the ORC writer did not correctly write the
* date epoch value to the ORC file. The value was written as a 32-bit int,
* instead of a 64 bit long. As a result, the date is incorrect. A timestamp
* value should be used instead.
*
* @param tempDirPath
* @throws ORCFileException
* @throws InterruptedException
*/
@Test
void testAllDataTypes() throws Throwable {
String filePath = localFolder.getAbsolutePath() + "/testAllTypes.orc";
writeData(filePath);
readAndCheckData(filePath);
}
@Test
void testDetectType() {
Assertions.assertEquals(TypeDescription.Category.BOOLEAN, ORCWriteUtils.detectType(true).getCategory());
Assertions.assertEquals(TypeDescription.Category.SHORT,
ORCWriteUtils.detectType(Short.valueOf("1")).getCategory());
Assertions.assertEquals(TypeDescription.Category.INT, ORCWriteUtils.detectType(1).getCategory());
Assertions.assertEquals(TypeDescription.Category.LONG, ORCWriteUtils.detectType(1L).getCategory());
Assertions.assertEquals(TypeDescription.Category.TIMESTAMP,
ORCWriteUtils.detectType(new Timestamp(System.currentTimeMillis())).getCategory());
Assertions.assertEquals(TypeDescription.Category.DECIMAL,
ORCWriteUtils.detectType(new BigDecimal("1")).getCategory());
Assertions.assertEquals(TypeDescription.Category.BYTE,
ORCWriteUtils.detectType(Byte.valueOf("1")).getCategory());
Assertions.assertEquals(TypeDescription.Category.FLOAT, ORCWriteUtils.detectType(1.0f).getCategory());
Assertions.assertEquals(TypeDescription.Category.DOUBLE, ORCWriteUtils.detectType(1.0).getCategory());
Assertions.assertEquals(TypeDescription.Category.STRING, ORCWriteUtils.detectType("test").getCategory());
Assertions.assertEquals(TypeDescription.Category.DATE, ORCWriteUtils.detectType(new Date()).getCategory());
Assertions.assertEquals(TypeDescription.Category.BINARY,
ORCWriteUtils.detectType("test".getBytes()).getCategory());
}
private void writeData(String filePath) throws Throwable {
TypeDescription schema = TypeDescription.createStruct();
schema.addField("t_boolean", TypeDescription.createBoolean());
schema.addField("t_byte", TypeDescription.createByte());
schema.addField("t_bytes", TypeDescription.createBinary());
schema.addField("t_char", TypeDescription.createChar());
schema.addField("t_date", TypeDescription.createDate());
schema.addField("t_ts", TypeDescription.createTimestamp());
schema.addField("t_double", TypeDescription.createDouble());
schema.addField("t_float", TypeDescription.createFloat());
schema.addField("t_decimal", TypeDescription.createDecimal().withPrecision(18).withScale(5));
schema.addField("t_int", TypeDescription.createInt());
schema.addField("t_long", TypeDescription.createLong());
schema.addField("t_short", TypeDescription.createShort());
schema.addField("t_string", TypeDescription.createString());
schema.addField("t_list", TypeDescription.createList(TypeDescription.createString()));
WriterOptions writerOption = OrcFile.writerOptions(new Configuration()) //
.overwrite(true) //
.compress(CompressionKind.valueOf("ZLIB")).setSchema(schema); //
Writer writer = OrcFile.createWriter(new Path(filePath), writerOption);
VectorizedRowBatch batch = schema.createRowBatch(100);
for (int r = 0; r < 1000; ++r) {
int row = batch.size++;
for (int i = 0; i < batch.cols.length; i++) {
ColumnVector vector = batch.cols[i];
TypeDescription type = schema.getChildren().get(i);
switch (vector.type) {
case BYTES:
if (type.getCategory() == TypeDescription.Category.BINARY) {
ORCWriteUtils.setColumn(("this is byte[] " + r).getBytes(), null, "t_bytes", vector, row);
} else if (type.getCategory() == TypeDescription.Category.STRING) {
if(r==666) {
ORCWriteUtils.setColumn(null, null, "t_string", vector, row);
}else {
ORCWriteUtils.setColumn(("this is String " + r), null, "t_string", vector, row);
}
} else if (type.getCategory() == TypeDescription.Category.CHAR) {
ORCWriteUtils.setColumn("talend".charAt(r % 6), null, "t_char", vector, row);
} else {
throw new RuntimeException(type.getCategory() + " is not supported as BYTES vector");
}
break;
case DECIMAL:
ORCWriteUtils.setColumn(new BigDecimal(r + ".12345"), null, "t_decimal", vector, row);
break;
case DOUBLE:
if (type.getCategory() == TypeDescription.Category.DOUBLE) {
ORCWriteUtils.setColumn(r + 0.123, null, "t_double", vector, row);
} else if (type.getCategory() == TypeDescription.Category.FLOAT) {
ORCWriteUtils.setColumn(r + 0.456f, null, "t_float", vector, row);
} else {
throw new RuntimeException(type.getCategory() + " is not supported as DOUBLE vector");
}
break;
case LONG:
if (type.getCategory() == TypeDescription.Category.BOOLEAN) {
ORCWriteUtils.setColumn(true, null, "t_boolean", vector, row);
} else if (type.getCategory() == TypeDescription.Category.BYTE) {
ORCWriteUtils.setColumn((byte)(r % 128), null, "t_byte", vector, row);
} else if (type.getCategory() == TypeDescription.Category.INT) {
ORCWriteUtils.setColumn(r, null, "t_int", vector, row);
} else if (type.getCategory() == TypeDescription.Category.SHORT) {
ORCWriteUtils.setColumn((short)(r % 256), null, "t_short", vector, row);
} else if (type.getCategory() == TypeDescription.Category.LONG) {
ORCWriteUtils.setColumn(r * 1000L, null, "t_long", vector, row);
} else if (type.getCategory() == TypeDescription.Category.DATE) {
Date d = new Date(1633687854031L);
ORCWriteUtils.setColumn(d, null, "t_date", vector, row);
} else {
throw new RuntimeException(type.getCategory() + " is not supported as LONG vector");
}
break;
case TIMESTAMP:
Timestamp ts = new java.sql.Timestamp(1633687854031L);
ts.setNanos(123456789);
ORCWriteUtils.setColumn(ts, null, "t_ts", vector, row);
break;
case LIST:
List<String> values = new ArrayList<>();
values.add("v1_" + r);
values.add("v2_" + r);
values.add("v3_" + r);
ORCWriteUtils.setColumn(values, ORCWriteUtils.detectType("v1_" + r), "t_ list", vector, row);
break;
default:
throw new RuntimeException(vector.type + " is not supported");
}
}
if (batch.size == batch.getMaxSize()) {
writer.addRowBatch(batch);
batch.reset();
}
}
if (batch.size != 0) {
writer.addRowBatch(batch);
}
writer.close();
}
private void readAndCheckData(String filePath) throws Throwable {
Reader reader = OrcFile.createReader(new Path(filePath), OrcFile.readerOptions(new Configuration()));
TypeDescription schema = reader.getSchema();
VectorizedRowBatch batch = schema.createRowBatch();
RecordReader rowIterator = reader.rows(reader.options().schema(schema));
int nuberLine = 0;
List<Object> nb_500 = new ArrayList<>();
List<Object> nb_666 = new ArrayList<>();
while (rowIterator.nextBatch(batch)) {
ColumnVector[] colVectors = batch.cols;
for (int row = 0; row < batch.size; ++row) {
nuberLine++;
for (String columnName : schema.getFieldNames()) {
ColumnVector colVector = colVectors[schema.getFieldNames().indexOf(columnName)];
int colRow = colVector.isRepeating ? 0 : row;
Object value = ORCReadUtils.readColumnByName(batch, columnName, schema, colRow);
if (nuberLine == 500) {
nb_500.add(value);
}else if (nuberLine == 667) {
nb_666.add(value);
}
}
}
}
Assertions.assertEquals(true, nb_500.get(0));
Assertions.assertEquals(Byte.valueOf("115"), nb_500.get(1));
Assertions.assertEquals("this is byte[] 499", new String((byte[]) nb_500.get(2)));
Assertions.assertEquals("a", nb_500.get(3));
Date t_date = (Date) nb_500.get(4);
Assertions.assertEquals((1633687854000L/86400000), t_date.getTime()/86400000);
Timestamp t_ts = (Timestamp) nb_500.get(5);
Assertions.assertEquals(1633687854123L, t_ts.getTime());
Assertions.assertEquals(123456789, t_ts.getNanos());
Assertions.assertEquals(499.123, nb_500.get(6));
Assertions.assertEquals(499.456f, (((float) nb_500.get(7)) * 1000) / 1000f);
Assertions.assertEquals(new BigDecimal("499.12345"), nb_500.get(8));
Assertions.assertEquals(499, nb_500.get(9));
Assertions.assertEquals(499000L, nb_500.get(10));
Assertions.assertEquals(Short.valueOf("243"), nb_500.get(11));
Assertions.assertEquals("this is String 499", nb_500.get(12));
Assertions.assertArrayEquals(Arrays.asList("v1_499", "v2_499", "v3_499").toArray(),
((List<Object>) nb_500.get(13)).toArray());
//NB_LINE 666
Assertions.assertNull( nb_666.get(12));
rowIterator.close();
}
public static File createTempDirectory() throws IOException {
final File temp;
temp = File.createTempFile("temp", Long.toString(System.nanoTime()));
if (!temp.delete()) {
throw new IOException("Could not delete temp file: " + temp.getAbsolutePath());
}
if (!temp.mkdir()) {
throw new IOException("Could not create temp directory: " + temp.getAbsolutePath());
}
return temp;
}
}

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

@@ -2,7 +2,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.talend.libraries</groupId>
<groupId>org.talend.components</groupId>
<artifactId>talendcsv</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>

View File

@@ -8,13 +8,8 @@ import java.io.Reader;
import java.io.StringReader;
import java.util.HashMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class CSVReader {
private final static Logger log = LoggerFactory.getLogger(CSVReader.class);
private Reader reader;
private char separator = ',';
@@ -29,6 +24,8 @@ public class CSVReader {
private boolean trimWhitespace = true;
private boolean safetySwitch = false;
private static final int BUFFER_SIZE = 4 * 1024;
private static final int FETCH_SIZE = 10 * 50;
@@ -55,26 +52,28 @@ public class CSVReader {
private boolean inQuote = false;
private boolean closed = false;
private StringBuilder sb = new StringBuilder(16);
private boolean storeRawRecord = false;
private StringBuilder stringBuilder = new StringBuilder(16 * 10);
private String rawRecord = "";
public CSVReader(final String filename, final char separator, final String charset) throws IOException {
public CSVReader(String filename,char separator,String charset) throws IOException {
this(new FileInputStream(filename), separator, charset);
}
public CSVReader(final InputStream inputStream, final char separator, final String charset) throws IOException {
public CSVReader(InputStream inputStream,char separator,String charset) throws IOException {
this(new UnicodeReader(inputStream, charset), separator);
}
public CSVReader(final Reader reader, final char separator) {
public CSVReader(Reader reader,char separator) {
this.reader = new BufferedReader(reader,BUFFER_SIZE);
this.separator = separator;
}
public static CSVReader parse(final String content) {
public static CSVReader parse(String content) {
if (content == null) {
throw new IllegalArgumentException(
"Parameter content can not be null.");
@@ -83,31 +82,22 @@ public class CSVReader {
return new CSVReader(new StringReader(content),',');
}
public CSVReader setLineEnd(final String lineEnd) {
if ("\n".equals(lineEnd) || "\r\n".equals(lineEnd)) {
// classic line end (linux or windows), treat by default.
this.lineEnd = null;
}
else {
this.lineEnd = lineEnd;
if (lineEnd != null && lineEnd.length() != 1) {
log.warn("Line end params {} must be single character", lineEnd);
}
}
public CSVReader setLineEnd(String lineEnd) {
this.lineEnd = lineEnd;
return this;
}
public CSVReader setSeparator(final char separator) {
public CSVReader setSeparator(char separator) {
this.separator = separator;
return this;
}
public CSVReader setEscapeChar(final char escapechar) {
public CSVReader setEscapeChar(char escapechar) {
this.escapechar = escapechar;
return this;
}
public CSVReader setQuoteChar(final char quotechar) {
public CSVReader setQuoteChar(char quotechar) {
this.quotechar = quotechar;
return this;
}
@@ -116,372 +106,388 @@ public class CSVReader {
return this.quotechar;
}
public CSVReader setTrimWhitespace(final boolean trimWhitespace) {
public CSVReader setTrimWhitespace(boolean trimWhitespace) {
this.trimWhitespace = trimWhitespace;
return this;
}
public CSVReader setSkipEmptyRecords(final boolean skipEmptyRecords) {
public CSVReader setSkipEmptyRecords(boolean skipEmptyRecords) {
this.skipEmptyRecords = skipEmptyRecords;
return this;
}
public CSVReader setStoreRawRecord(final boolean storeRawRecord) {
public CSVReader setStoreRawRecord(boolean storeRawRecord) {
this.storeRawRecord = storeRawRecord;
return this;
}
public void setSafetySwitch(boolean safetySwitch) {
this.safetySwitch = safetySwitch;
}
public String getRawRecord() {
return this.rawRecord;
return rawRecord;
}
public void endRecord() {
this.hasNext = true;
hasNext = true;
}
public void endColumn() {
this.inColumn = false;
if (columnCount >= 100000 && safetySwitch) {
try {
close();
} catch(IOException e) {
//close quietly
}
throw new RuntimeException("Exceed the maximum column count in single record : 100000. And you can set the safetySwitch field to false to skip this check");
}
inColumn = false;
String currentValue = this.sb.toString();
String currentValue = sb.toString();
if(this.trimWhitespace && !this.inQuote) {
currentValue = this.trimTail(currentValue);
if(trimWhitespace && !inQuote) {
currentValue = trimTail(currentValue);
}
if (this.columnCount == this.values.length) {
final int newLength = this.values.length * 2;
if (columnCount == values.length) {
int newLength = values.length * 2;
final String[] holder = new String[newLength];
String[] holder = new String[newLength];
System.arraycopy(this.values, 0, holder, 0, this.values.length);
System.arraycopy(values, 0, holder, 0, values.length);
this.values = holder;
values = holder;
}
this.values[this.columnCount] = currentValue;
this.columnCount++;
this.sb.setLength(0);
values[columnCount] = currentValue;
columnCount++;
sb.setLength(0);
}
public boolean readNext() throws IOException {
this.columnCount = 0;
this.hasNext = false;
this.rawRecord = "";
boolean warningNonRFC = false;
columnCount = 0;
hasNext = false;
if(!this.hasMoreData) {
rawRecord = "";
if(!hasMoreData) {
return false;
}
while(this.hasMoreData && !this.hasNext) {
if(this.arriveEnd()) {
this.fill();
while(hasMoreData && !hasNext) {
if(arriveEnd()) {
fill();
continue;
}
char currentChar = this.buffer[this.currentPosition];
this.inQuote = false;
char currentChar = buffer[currentPosition];
if(this.quotechar !='\0' && currentChar == this.quotechar) {//quote char as start of column
this.inColumn = true;
this.inQuote = true;
this.currentPosition++;
this.escaping = false;
inQuote = false;
if(quotechar!='\0' && currentChar == quotechar) {//quote char as start of column
inColumn = true;
inQuote = true;
currentPosition++;
escaping = false;
boolean previousCharAsQuote = false;
boolean deleteTrailNoUseChars = false;
if(this.storeRawRecord) {
this.stringBuilder.append(currentChar);
if(storeRawRecord) {
stringBuilder.append(currentChar);
}
while(this.hasMoreData && this.inColumn) {
if(this.arriveEnd()) {
this.fill();
while(hasMoreData && inColumn) {
if(arriveEnd()) {
fill();
continue;
}
currentChar = this.buffer[this.currentPosition];
currentChar = buffer[currentPosition];
if(deleteTrailNoUseChars){
if(currentChar == this.separator) {
this.endColumn();
if(currentChar == separator) {
endColumn();
if(this.storeRawRecord) {
this.stringBuilder.append(currentChar);
if(storeRawRecord) {
stringBuilder.append(currentChar);
}
} else if((this.lineEnd == null && (currentChar == '\n' || currentChar == '\r'))
|| (this.lineEnd !=null && currentChar == this.lineEnd.charAt(0))) {
this.endColumn();
this.endRecord();
} else if((lineEnd == null && (currentChar == '\n' || currentChar == '\r'))
|| (lineEnd!=null && currentChar == lineEnd.charAt(0))) {
endColumn();
endRecord();
} else {
if ((!warningNonRFC) && currentChar != ' ' && currentChar != '\t' && currentChar != '\r') {
log.warn("CSV source '{}' is not conform to RFC, some data will be ignored.", this.sb.toString());
warningNonRFC = true;
}
if(this.storeRawRecord) {
this.stringBuilder.append(currentChar);
if(storeRawRecord) {
stringBuilder.append(currentChar);
}
}
} else if(currentChar == this.quotechar) {
if(this.escaping) {//quote char as text
this.sb.append(currentChar);
this.escaping = false;
} else if(currentChar == quotechar) {
if(escaping) {//quote char as text
sb.append(currentChar);
escaping = false;
previousCharAsQuote = false;
} else {//quote char as escape or end of column
if(this.escapechar !='\0' && currentChar == this.escapechar) {
this.escaping = true;
if(escapechar!='\0' && currentChar == escapechar) {
escaping = true;
}
previousCharAsQuote = true;
}
if(this.storeRawRecord) {
this.stringBuilder.append(currentChar);
if(storeRawRecord) {
stringBuilder.append(currentChar);
}
} else if(this.escapechar !='\0' && this.escapechar != this.quotechar && this.escaping) {
} else if(escapechar!='\0' && escapechar!=quotechar && escaping) {
switch (currentChar) {
case 'n':
this.sb.append('\n');
sb.append('\n');
break;
case 'r':
this.sb.append('\r');
sb.append('\r');
break;
case 't':
this.sb.append('\t');
sb.append('\t');
break;
case 'b':
this.sb.append('\b');
sb.append('\b');
break;
case 'f':
this.sb.append('\f');
sb.append('\f');
break;
case 'e':
this.sb.append('\u001B');
sb.append('\u001B');
break;
case 'v':
this.sb.append('\u000B');
sb.append('\u000B');
break;
case 'a':
this.sb.append('\u0007');
sb.append('\u0007');
break;
default :
this.sb.append(currentChar);
default :
sb.append(currentChar);
break;
}
this.escaping = false;
if(this.storeRawRecord) {
this.stringBuilder.append(currentChar);
escaping = false;
if(storeRawRecord) {
stringBuilder.append(currentChar);
}
} else if(this.escapechar !='\0' && currentChar == this.escapechar) {
this.escaping = true;
} else if(escapechar!='\0' && currentChar == escapechar) {
escaping = true;
if(this.storeRawRecord) {
this.stringBuilder.append(currentChar);
if(storeRawRecord) {
stringBuilder.append(currentChar);
}
} else if(previousCharAsQuote) {//quote char as end of column
if(currentChar == this.separator) {
this.endColumn();
if(currentChar == separator) {
endColumn();
if(this.storeRawRecord) {
this.stringBuilder.append(currentChar);
if(storeRawRecord) {
stringBuilder.append(currentChar);
}
} else if((this.lineEnd == null && (currentChar == '\n' || currentChar == '\r'))
|| (this.lineEnd !=null && currentChar == this.lineEnd.charAt(0))) {
this.endColumn();
this.endRecord();
} else if((lineEnd == null && (currentChar == '\n' || currentChar == '\r'))
|| (lineEnd!=null && currentChar == lineEnd.charAt(0))) {
endColumn();
endRecord();
} else {
deleteTrailNoUseChars = true;
if ((!warningNonRFC) && currentChar != ' ' && currentChar != '\t' && currentChar != '\r') {
log.warn("CSV source '{}' is not conform to RFC, some data will be ignored.", this.sb.toString());
warningNonRFC = true;
}
if(this.storeRawRecord) {
this.stringBuilder.append(currentChar);
if(storeRawRecord) {
stringBuilder.append(currentChar);
}
}
previousCharAsQuote = false;
} else {
this.sb.append(currentChar);
sb.append(currentChar);
if(this.storeRawRecord) {
this.stringBuilder.append(currentChar);
if(storeRawRecord) {
stringBuilder.append(currentChar);
}
}
this.previousChar = currentChar;
this.currentPosition++;
previousChar = currentChar;
currentPosition++;
if(inColumn && safetySwitch && sb.length() > 100000) {
close();
throw new RuntimeException("Exceed the maximum length of single column : 100000. And you can set the safetySwitch field to false to skip this check");
}
}
} else if(currentChar == this.separator) {
this.previousChar = currentChar;
this.endColumn();
this.currentPosition++;
} else if(currentChar == separator) {
previousChar = currentChar;
endColumn();
currentPosition++;
if(this.storeRawRecord) {
this.stringBuilder.append(currentChar);
if(storeRawRecord) {
stringBuilder.append(currentChar);
}
} else if (this.lineEnd !=null && currentChar == this.lineEnd.charAt(0)) {
if (this.inColumn || this.columnCount > 0 || !this.skipEmptyRecords) {
this.endColumn();
this.endRecord();
} else if (lineEnd!=null && currentChar == lineEnd.charAt(0)) {
if (inColumn || columnCount > 0 || !skipEmptyRecords) {
endColumn();
endRecord();
}
this.currentPosition++;
this.previousChar = currentChar;
} else if(this.lineEnd ==null && (currentChar == '\r' || currentChar == '\n')) {
if (this.inColumn || this.columnCount > 0 || (!this.skipEmptyRecords && (currentChar == '\r' ||
this.previousChar !='\r'))) {
this.endColumn();
this.endRecord();
}
this.currentPosition++;
this.previousChar = currentChar;
} else if(this.trimWhitespace && (currentChar == ' ' || currentChar == '\t')) {
this.inColumn = true;
this.currentPosition++;
if(this.storeRawRecord) {
this.stringBuilder.append(currentChar);
currentPosition++;
previousChar = currentChar;
} else if(lineEnd==null && (currentChar == '\r' || currentChar == '\n')) {
if (inColumn || columnCount > 0 || (!skipEmptyRecords && (currentChar == '\r' || previousChar!='\r'))) {
endColumn();
endRecord();
}
currentPosition++;
previousChar = currentChar;
} else if(trimWhitespace && (currentChar == ' ' || currentChar == '\t')) {
inColumn = true;
currentPosition++;
if(storeRawRecord) {
stringBuilder.append(currentChar);
}
} else {
this.inColumn = true;
this.escaping = false;
inColumn = true;
escaping = false;
while(this.hasMoreData && this.inColumn) {
if(this.arriveEnd()) {
this.fill();
while(hasMoreData && inColumn) {
if(arriveEnd()) {
fill();
continue;
}
currentChar = this.buffer[this.currentPosition];
currentChar = buffer[currentPosition];
if(this.quotechar == '\0' && this.escapechar != '\0' && currentChar == this.escapechar) {
if(this.escaping) {
this.sb.append(currentChar);
this.escaping = false;
if(quotechar == '\0' && escapechar != '\0' && currentChar == escapechar) {
if(escaping) {
sb.append(currentChar);
escaping = false;
} else {
this.escaping = true;
escaping = true;
}
if(this.storeRawRecord) {
this.stringBuilder.append(currentChar);
if(storeRawRecord) {
stringBuilder.append(currentChar);
}
} else if(this.escapechar !='\0' && this.escapechar != this.quotechar && this.escaping) {
} else if(escapechar!='\0' && escapechar!=quotechar && escaping) {
switch (currentChar) {
case 'n':
this.sb.append('\n');
sb.append('\n');
break;
case 'r':
this.sb.append('\r');
sb.append('\r');
break;
case 't':
this.sb.append('\t');
sb.append('\t');
break;
case 'b':
this.sb.append('\b');
sb.append('\b');
break;
case 'f':
this.sb.append('\f');
sb.append('\f');
break;
case 'e':
this.sb.append('\u001B');
sb.append('\u001B');
break;
case 'v':
this.sb.append('\u000B');
sb.append('\u000B');
break;
case 'a':
this.sb.append('\u0007');
sb.append('\u0007');
break;
default :
this.sb.append(currentChar);
default :
sb.append(currentChar);
break;
}
this.escaping = false;
if(this.storeRawRecord) {
this.stringBuilder.append(currentChar);
}
} else if(currentChar == this.separator) {
this.endColumn();
escaping = false;
if(this.storeRawRecord) {
this.stringBuilder.append(currentChar);
if(storeRawRecord) {
stringBuilder.append(currentChar);
}
} else if((this.lineEnd == null && (currentChar == '\n' || currentChar == '\r'))
|| (this.lineEnd !=null && currentChar == this.lineEnd.charAt(0))) {
this.endColumn();
this.endRecord();
} else if(currentChar == separator) {
endColumn();
if(storeRawRecord) {
stringBuilder.append(currentChar);
}
} else if((lineEnd == null && (currentChar == '\n' || currentChar == '\r'))
|| (lineEnd!=null && currentChar == lineEnd.charAt(0))) {
endColumn();
endRecord();
} else {
this.sb.append(currentChar);
sb.append(currentChar);
if(this.storeRawRecord) {
this.stringBuilder.append(currentChar);
if(storeRawRecord) {
stringBuilder.append(currentChar);
}
}
this.previousChar = currentChar;
this.currentPosition++;
previousChar = currentChar;
currentPosition++;
if(inColumn && safetySwitch && sb.length() > 100000) {
close();
throw new RuntimeException("Exceed the maximum length of single column : 100000. And you can set the safetySwitch field to false to skip this check");
}
}
}
}
if(this.inColumn || this.previousChar == this.separator) {
this.endColumn();
this.endRecord();
if(inColumn || previousChar == separator) {
endColumn();
endRecord();
}
if(this.storeRawRecord) {
this.rawRecord = this.stringBuilder.toString();
this.stringBuilder.setLength(0);
if(storeRawRecord) {
rawRecord = stringBuilder.toString();
stringBuilder.setLength(0);
}
return this.hasNext;
return hasNext;
}
public String get(final int index) {
if (index > -1 && index < this.columnCount) {
return this.values[index];
public String get(int index) {
if (index > -1 && index < columnCount) {
return values[index];
} else {
return "";
}
}
public String[] getValues() {
final String[] result = new String[this.columnCount];
System.arraycopy(this.values, 0, result, 0, this.columnCount);
String[] result = new String[columnCount];
System.arraycopy(values, 0, result, 0, columnCount);
return result;
}
private void fill() throws IOException {
final int count = this.reader.read(this.buffer, 0, this.buffer.length);
this.currentPosition = 0;
this.bufferCount = count;
int count = reader.read(buffer, 0, buffer.length);
currentPosition = 0;
bufferCount = count;
if(count == -1) {
this.hasMoreData = false;
hasMoreData = false;
}
}
private boolean arriveEnd() {
return this.currentPosition == this.bufferCount;
return currentPosition == bufferCount;
}
private String trimTail(String content) {
final int len = content.length();
int len = content.length();
int newLen = len;
while (newLen > 0) {
final char tail = content.charAt(newLen - 1);
char tail = content.charAt(newLen - 1);
if(tail != ' ' && tail != '\t') {
break;
}
@@ -496,8 +502,12 @@ public class CSVReader {
}
public void close() throws IOException {
this.reader.close();
this.headersReader.clear();
if(!closed) {
reader.close();
headersReader.clear();
closed = true;
}
}
//Added 20141016 TDQ-9496
@@ -506,7 +516,7 @@ public class CSVReader {
}
public char getSeperator(){
return this.separator;
return separator;
}
/**
@@ -515,37 +525,37 @@ public class CSVReader {
* @return If the header was successfully read or not.
*/
public boolean readHeaders() throws IOException {
final boolean result = this.readNext();
boolean result = readNext();
this.headersReader.length = this.columnCount;
headersReader.length = columnCount;
this.headersReader.headers = new String[this.columnCount];
headersReader.headers = new String[columnCount];
for (int i = 0; i < this.headersReader.length; i++) {
final String columnValue = this.get(i);
this.headersReader.headers[i] = columnValue;
this.headersReader.indexByHeaderName.put(columnValue, new Integer(i));
for (int i = 0; i < headersReader.length; i++) {
String columnValue = get(i);
headersReader.headers[i] = columnValue;
headersReader.indexByHeaderName.put(columnValue, new Integer(i));
}
if (result) {
this.currentPosition--;
currentPosition--;
}
this.columnCount = 0;
columnCount = 0;
return result;
}
/**
* Returns the current column value for a given column header name.
*/
public String get(final String headerName) throws IOException {
return this.get(this.getIndex(headerName));
public String get(String headerName) throws IOException {
return get(getIndex(headerName));
}
private int getIndex(final String headerName) throws IOException {
if(this.headersReader.indexByHeaderName==null){
private int getIndex(String headerName) throws IOException {
if(headersReader.indexByHeaderName==null){
return -1;
}
final Object indexValue = this.headersReader.indexByHeaderName.get(headerName);
Object indexValue = headersReader.indexByHeaderName.get(headerName);
if (indexValue != null) {
return ((Integer) indexValue).intValue();
@@ -555,11 +565,12 @@ public class CSVReader {
}
public String[] getHeaders() throws IOException {
if (this.headersReader.headers == null) {
if (headersReader.headers == null) {
return null;
} else {
final String[] clone = new String[this.headersReader.length];
System.arraycopy(this.headersReader.headers, 0, clone, 0, this.headersReader.length);
String[] clone = new String[headersReader.length];
System.arraycopy(headersReader.headers, 0, clone, 0,
headersReader.length);
return clone;
}
}
@@ -572,14 +583,14 @@ public class CSVReader {
private HashMap indexByHeaderName;
public HeadersReader() {
this.headers = null;
this.length = 0;
this.indexByHeaderName = new HashMap();
headers = null;
length = 0;
indexByHeaderName = new HashMap();
}
public void clear(){
this.headers = null;
this.indexByHeaderName = null;
headers = null;
indexByHeaderName = null;
}
}
/**End of added by TDQ-9496 **/

View File

@@ -27,7 +27,7 @@ import java.util.List;
*/
public class CSVWriter implements Closeable {
public static final int INITIAL_STRING_SIZE = 128;
public static final int INITIAL_STRING_SIZE = 128;
private Writer rawWriter;
@@ -101,60 +101,68 @@ public class CSVWriter implements Closeable {
return this;
}
private boolean isFirstColumn = true;
/**
* Writes the next line to the file.
*
* @param nextLine a string array with each comma-separated element as a separate entry.
*/
public void writeNext(String[] nextLine) {
if (nextLine == null) {
return;
}
StringBuilder sb = new StringBuilder(INITIAL_STRING_SIZE);
for (int i = 0; i < nextLine.length; i++) {
if (i != 0) {
sb.append(separator);
}
String nextElement = nextLine[i];
if (nextElement == null) {
nextElement = "";
}
boolean quote = false;
if(this.quotestatus == QuoteStatus.AUTO) {
quote = needQuote(nextElement,i);
} else if(this.quotestatus == QuoteStatus.FORCE) {
quote = true;
}
if(quote) {
sb.append(quotechar);
}
StringBuilder escapeResult = escape(nextElement,quote);
if(escapeResult!=null) {
sb.append(escapeResult);
} else {
sb.append(nextElement);
}
if(quote) {
sb.append(quotechar);
}
writeColumn(nextLine[i]);
}
if(lineEnd!=null) {
sb.append(lineEnd);
pw.write(sb.toString());
endRow();
}
public void writeColumn(String value) {
if (!isFirstColumn) {
pw.append(separator);
}
if (value == null) {
value = "";
}
boolean quote = false;
if(this.quotestatus == QuoteStatus.AUTO) {
quote = needQuote(value);
} else if(this.quotestatus == QuoteStatus.FORCE) {
quote = true;
}
if(quote) {
pw.append(quotechar);
}
StringBuilder escapeResult = escape(value, quote);
if(escapeResult!=null) {
pw.append(escapeResult);
} else {
pw.println(sb.toString());
pw.append(value);
}
if(quote) {
pw.append(quotechar);
}
isFirstColumn = false;
}
public void endRow() {
if(lineEnd!=null) {
pw.append(lineEnd);
} else {
pw.println();
}
isFirstColumn = true;
}
/**
@@ -173,11 +181,10 @@ public class CSVWriter implements Closeable {
return;
}
StringBuilder sb = new StringBuilder(INITIAL_STRING_SIZE);
for (int i = 0; i < nextLine.length; i++) {
boolean isNil = false;
if (i != 0) {
sb.append(separator);
pw.append(separator);
}
String nextElement = nextLine[i];
@@ -189,7 +196,7 @@ public class CSVWriter implements Closeable {
boolean quote = false;
if(this.quotestatus == QuoteStatus.AUTO) {
quote = needQuote(nextElement,i);
quote = needQuote(nextElement);
} else if(this.quotestatus == QuoteStatus.FORCE) {
quote = true;
}
@@ -201,36 +208,32 @@ public class CSVWriter implements Closeable {
}
if(quote) {
sb.append(quotechar);
pw.append(quotechar);
}
StringBuilder escapeResult = escape(nextElement,quote);
if(escapeResult!=null) {
sb.append(escapeResult);
pw.append(escapeResult);
} else {
sb.append(nextElement);
pw.append(nextElement);
}
if(quote) {
sb.append(quotechar);
pw.append(quotechar);
}
isFirstColumn = false;
}
if(lineEnd!=null) {
sb.append(lineEnd);
pw.write(sb.toString());
} else {
pw.println(sb.toString());
}
endRow();
}
private boolean needQuote(String field, int fieldIndex) {
private boolean needQuote(String field) {
boolean need = field.indexOf(quotechar) > -1
|| field.indexOf(separator) > -1
|| (lineEnd == null && (field.indexOf('\n') > -1 || field.indexOf('\r') > -1))
|| (lineEnd != null && field.indexOf(lineEnd) > -1)
|| (fieldIndex == 0 && field.length() == 0);
|| (isFirstColumn && field.length() == 0);
if(!need && field.length() > 0) {
char first = field.charAt(0);
@@ -314,9 +317,7 @@ public class CSVWriter implements Closeable {
* @throws IOException if bad things happen
*/
public void flush() throws IOException {
pw.flush();
}
/**

View File

@@ -19,7 +19,6 @@ class CSVReaderTest {
Assertions.assertNotNull(values);
}
@Test
void readNext() throws IOException {
@@ -138,6 +137,38 @@ class CSVReaderTest {
Assertions.assertFalse(reader.readNext());
}
@Test
void testSetSafetySwitchWithTooManyColumns() {
Assertions.assertThrows(RuntimeException.class, ()-> {
StringBuilder sb = new StringBuilder();
sb.append("v");
for(int i=0;i<100000;i++) {
sb.append(",").append("v");
}
final String line = sb.toString();
final CSVReader reader = new CSVReader(new StringReader(line), ',');
reader.setSafetySwitch(true);
reader.readNext();
});
}
@Test
void testSetSafetySwitchWithTooBigColumn() {
Assertions.assertThrows(RuntimeException.class, ()-> {
StringBuilder sb = new StringBuilder();
sb.append("v,");
for(int i=0;i<=100000;i++) {
sb.append("v");
}
final String line = sb.toString();
final CSVReader reader = new CSVReader(new StringReader(line), ',');
reader.setSafetySwitch(true);
reader.readNext();
});
}
void checkNextValues(final String comment, final CSVReader reader, final String... excepted) throws IOException {
Assertions.assertTrue(reader.readNext());
final String[] values = reader.getValues();

View File

@@ -12,17 +12,121 @@ import com.talend.csv.CSVWriter.QuoteStatus;
class CSVWriterTest {
@Test
void write() throws IOException {
void writeCustom() throws IOException {
final StringWriter result = new StringWriter();
try (final CSVWriter writer = new CSVWriter(result)) {
writer.setSeparator(',').setEscapeChar('@').setQuoteChar('"').setLineEnd("\n").setQuoteStatus(QuoteStatus.AUTO);
writer.setSeparator(';').setEscapeChar('@').setQuoteChar('"').setLineEnd("\r\n").setQuoteStatus(QuoteStatus.AUTO);
writer.writeAll(Arrays.asList(new String[] { "1", "Hello", "\"Mad\" World" },
new String[] { "2", "Good by", "world @ by" }));
}
Assertions.assertEquals("1,Hello,\"@\"Mad@\" World\"\n2,Good by,world @@ by\n",
Assertions.assertEquals("1;Hello;\"@\"Mad@\" World\"\r\n2;Good by;world @@ by\r\n",
result.toString());
}
@Test
void writeDefault() throws IOException {
final StringWriter result = new StringWriter();
try (final CSVWriter writer = new CSVWriter(result)) {
writer.setLineEnd("\n");
writer.writeAll(Arrays.asList(new String[] { "1", "Hello", "\"Mad\" World" },
new String[] { "2", "Good by", "world \\ by" }));
}
Assertions.assertEquals("1,Hello,\"\"\"Mad\"\" World\"\n2,Good by,world \\ by\n",
result.toString());
}
@Test
void writeForceQuote() throws IOException {
final StringWriter result = new StringWriter();
try (final CSVWriter writer = new CSVWriter(result)) {
writer.setLineEnd("\n");
writer.setQuoteStatus(QuoteStatus.FORCE);
writer.writeAll(Arrays.asList(new String[] { "1", "Hello", "\"Mad\" World" },
new String[] { "2", "Good by", "world \\ by" }));
}
Assertions.assertEquals("\"1\",\"Hello\",\"\"\"Mad\"\" World\"\n\"2\",\"Good by\",\"world \\ by\"\n",
result.toString());
}
@Test
void writeAutoQuote() throws IOException {
final StringWriter result = new StringWriter();
try (final CSVWriter writer = new CSVWriter(result)) {
writer.setLineEnd("\n");
writer.setQuoteStatus(QuoteStatus.AUTO);
writer.writeAll(Arrays.asList(new String[] { "1", "Hello", "\"Mad\" World" },
new String[] { "2", "Good by", "world \\ by" }));
}
Assertions.assertEquals("1,Hello,\"\"\"Mad\"\" World\"\n2,Good by,world \\ by\n",
result.toString());
}
@Test
void writeNoQuote() throws IOException {
final StringWriter result = new StringWriter();
try (final CSVWriter writer = new CSVWriter(result)) {
writer.setLineEnd("\n");
writer.setQuoteStatus(QuoteStatus.NO);
writer.writeAll(Arrays.asList(new String[] { "1", "Hello", "\"Mad\" World" },
new String[] { "2", "Good by", "world \\ by" }));
}
Assertions.assertEquals("1,Hello,\"Mad\" World\n2,Good by,world \\ by\n",
result.toString());
}
@Test
void writeEscapeByBackSlash() throws IOException {
final StringWriter result = new StringWriter();
try (final CSVWriter writer = new CSVWriter(result)) {
writer.setLineEnd("\n");
writer.setEscapeChar('\\');
writer.writeAll(Arrays.asList(new String[] { "1", "Hello", "\"Mad\" World" },
new String[] { "2", "Good by", "world \\ by" }));
}
Assertions.assertEquals("1,Hello,\"\\\"Mad\\\" World\"\n2,Good by,world \\\\ by\n",
result.toString());
}
@Test
void writeFirstColumnEmptyStringCase() throws IOException {
final StringWriter result = new StringWriter();
try (final CSVWriter writer = new CSVWriter(result)) {
writer.setLineEnd("\n");
writer.writeAll(Arrays.asList(new String[] { "", "Hello", "" },
new String[] { "", "Good by", "world \\ by" }));
}
Assertions.assertEquals("\"\",Hello,\n\"\",Good by,world \\ by\n",
result.toString());
}
@Test
void writeWhiteSpaceAndTabProtection() throws IOException {
final StringWriter result = new StringWriter();
try (final CSVWriter writer = new CSVWriter(result)) {
writer.setLineEnd("\n");
writer.writeAll(Arrays.asList(new String[] { "1", "Hello ", "" },
new String[] { "2", " Good by", "world \\ by" }));
}
Assertions.assertEquals("1,\"Hello \",\n2,\" Good by\",world \\ by\n",
result.toString());
}
@Test
void writeNextEnhance() throws IOException {
final StringWriter result = new StringWriter();
try (final CSVWriter writer = new CSVWriter(result)) {
writer.setLineEnd("\n");
writer.writeNextEnhance((new String[] { "1", null, "World" }), "NULL");
writer.writeNextEnhance((new String[] { "", null, "World" }), "NULL");
writer.setQuoteStatus(QuoteStatus.FORCE);
writer.writeNextEnhance((new String[] { "3", null, "World" }), "NULL");
}
Assertions.assertEquals("1,NULL,World\n\"\",NULL,World\n\"3\",NULL,\"World\"\n",
result.toString());
}
}

View File

@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.talend.components</groupId>
<artifactId>talendzip</artifactId>
<version>1.1-20201120</version>
<version>1.2-20210901</version>
<build>
<plugins>
<plugin>
@@ -54,17 +54,17 @@
<artifactId>zip4j</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.19</version>
<version>1.21</version>
</dependency>
<dependency>
<groupId>org.talend.libraries</groupId>
<artifactId>checkArchive-1.1-20190917</artifactId>
<version>6.0.0</version>
<groupId>org.talend.components</groupId>
<artifactId>checkArchive</artifactId>
<version>1.2-20210901</version>
</dependency>
</dependencies>
</project>

View File

@@ -35,6 +35,8 @@ extra.. = platform:/fragment/org.talend.libraries.jboss.jars
jars.extra.classpath = platform:/plugin/org.talend.libraries.jboss.jars/lib/jboss-aop.jar,\
platform:/plugin/org.talend.libraries.jboss.jars/lib/jboss-common-core.jar,\
platform:/plugin/org.talend.libraries.jboss.jars/lib/jboss-j2ee-4.0.2.jar,\
platform:/plugin/org.talend.libraries.jboss.jars/lib/jboss-marshalling-2.0.12.Final.jar,\
platform:/plugin/org.talend.libraries.jboss.jars/lib/jboss-marshalling-river-2.0.12.Final.jar,\
platform:/plugin/org.talend.libraries.jboss.jars/lib/jboss-mdr.jar,\
platform:/plugin/org.talend.libraries.jboss.jars/lib/jboss-messaging-client.jar,\
platform:/plugin/org.talend.libraries.jboss.jars/lib/jboss-remoting.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

@@ -47,8 +47,6 @@
<PARAMETER NAME="DB_VERSION" FIELD="CLOSED_LIST" NUM_ROW="2"
REPOSITORY_VALUE="DB_VERSION">
<ITEMS DEFAULT="V7R1_V7R3">
<ITEM NAME="V5R2_V5R4" VALUE="jt400_V5R2.jar"/>
<ITEM NAME="V5R3_V6R1" VALUE="jt400_V5R3.jar" />
<ITEM NAME="V6R1_V7R2" VALUE="jt400_V6R1.jar" />
<ITEM NAME="V7R1_V7R3" VALUE="jt400-9.8.jar" />
</ITEMS>
@@ -145,12 +143,10 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Driver-V5R2_V5R4" MODULE="jt400_V5R2.jar" MVN="mvn:org.talend.libraries/jt400_V5R2/6.0.0" REQUIRED_IF="DB_VERSION == 'jt400_V5R2.jar'" />
<IMPORT NAME="Driver-V5R3_V6R1" MODULE="jt400_V5R3.jar" MVN="mvn:org.talend.libraries/jt400_V5R3/6.0.0" REQUIRED_IF="DB_VERSION == 'jt400_V5R3.jar'" />
<IMPORT NAME="Driver-V6R1_V7R2" MODULE="jt400_V6R1.jar" MVN="mvn:org.talend.libraries/jt400_V6R1/6.0.0" REQUIRED_IF="DB_VERSION == 'jt400_V6R1.jar'" />
<IMPORT NAME="Driver-V7R1_V7R3" MODULE="jt400-9.8.jar" MVN="mvn:net.sf.jt400/jt400/9.8" REQUIRED_IF="DB_VERSION == 'jt400-9.8.jar'" />
<IMPORT NAME="slf4j-api-1.7.25.jar" MODULE="slf4j-api-1.7.25.jar" MVN="mvn:org.slf4j/slf4j-api/1.7.25" REQUIRED_IF="USE_SHARED_CONNECTION =='true'" />
<IMPORT NAME="slf4j-log4j12-1.7.25.jar" MODULE="slf4j-log4j12-1.7.25.jar" MVN="mvn:org.slf4j/slf4j-log4j12/1.7.25" REQUIRED_IF="USE_SHARED_CONNECTION =='true'" />
<IMPORT NAME="slf4j-api-1.7.29.jar" MODULE="slf4j-api-1.7.29.jar" MVN="mvn:org.slf4j/slf4j-api/1.7.29" REQUIRED_IF="USE_SHARED_CONNECTION =='true'" />
<IMPORT NAME="slf4j-log4j12-1.7.29.jar" MODULE="slf4j-log4j12-1.7.29.jar" MVN="mvn:org.slf4j/slf4j-log4j12/1.7.29" REQUIRED_IF="USE_SHARED_CONNECTION =='true'" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -10,8 +10,6 @@ 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)
DB_VERSION.ITEM.V6R1_V7R2=V6R1 to V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1 to V7R3
USE_SHARED_CONNECTION.NAME=Use or register a shared DB Connection

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

@@ -10,8 +10,6 @@ PORT.NAME=Port
PROPERTIES.NAME=Param\u00E8tres suppl\u00E9mentaires JDBC
USER.NAME=Utilisateur
DB_VERSION.NAME=Version de la base de donn\u00E9es
DB_VERSION.ITEM.V5R2_V5R4=V5R2 \u00E0 V5R4 (d\u00E9pr\u00E9ci\u00E9e)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 \u00E0 V6R1 (D\u00E9pr\u00E9ci\u00E9)
DB_VERSION.ITEM.V6R1_V7R2=V6R1 \u00E0 V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u00E0 V7R3
USE_SHARED_CONNECTION.NAME=Utiliser ou enregistrer une connexion partag\u00E9e \u00E0 une base de donn\u00E9es

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

@@ -10,8 +10,6 @@ PORT.NAME=\u30DD\u30FC\u30C8
PROPERTIES.NAME=\u8FFD\u52A0\u306EJDBC\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC
USER.NAME=\u30E6\u30FC\u30B6\u30FC\u540D
DB_VERSION.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D0\u30FC\u30B8\u30E7\u30F3
DB_VERSION.ITEM.V5R2_V5R4=V5R2\u304B\u3089V5R4 (\u975E\u63A8\u5968)
DB_VERSION.ITEM.V5R3_V6R1=V5R3\u304B\u3089V6R1 (\u975E\u63A8\u5968)
DB_VERSION.ITEM.V6R1_V7R2=V6R1\u304B\u3089V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1\u304B\u3089V7R3
USE_SHARED_CONNECTION.NAME=\u5171\u6709DB\u63A5\u7D9A\u306E\u4F7F\u7528\u307E\u305F\u306F\u767B\u9332

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

@@ -10,8 +10,6 @@ PORT.NAME=\u7AEF\u53E3
PROPERTIES.NAME=\u9644\u52A0 JDBC \u53C2\u6570
USER.NAME=\u7528\u6237\u540D
DB_VERSION.NAME=\u6570\u636E\u5E93\u7248\u672C
DB_VERSION.ITEM.V5R2_V5R4=V5R2 \u5230 V5R4 (\u5DF2\u5F03\u7528)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 \u5230 V6R1 (\u5DF2\u5F03\u7528)
DB_VERSION.ITEM.V6R1_V7R2=V6R1 \u81F3 V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u5230 V7R3
USE_SHARED_CONNECTION.NAME=\u4F7F\u7528\u6216\u6CE8\u518C\u5171\u4EAB\u6570\u636E\u5E93\u8FDE\u63A5

View File

@@ -64,8 +64,6 @@
<PARAMETER NAME="DB_VERSION" FIELD="CLOSED_LIST" NUM_ROW="3"
REPOSITORY_VALUE="DB_VERSION" SHOW_IF="(USE_EXISTING_CONNECTION == 'false')">
<ITEMS DEFAULT="V7R1_V7R3">
<ITEM NAME="V5R2_V5R4" VALUE="jt400_V5R2.jar"/>
<ITEM NAME="V5R3_V6R1" VALUE="jt400_V5R3.jar" />
<ITEM NAME="V6R1_V7R2" VALUE="jt400_V6R1.jar" />
<ITEM NAME="V7R1_V7R3" VALUE="jt400-9.8.jar" />
</ITEMS>
@@ -199,12 +197,27 @@
<ITEM NAME="TRIM" FIELD="CHECK"></ITEM>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="SET_QUERY_TIMEOUT"
FIELD="CHECK"
NUM_ROW="50"
>
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="QUERY_TIMEOUT_IN_SECONDS"
FIELD="TEXT"
NUM_ROW="50"
SHOW_IF="SET_QUERY_TIMEOUT == 'true'"
>
<DEFAULT>30</DEFAULT>
</PARAMETER>
</ADVANCED_PARAMETERS>
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Driver-V5R2_V5R4" MODULE="jt400_V5R2.jar" MVN="mvn:org.talend.libraries/jt400_V5R2/6.0.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DB_VERSION == 'jt400_V5R2.jar')" />
<IMPORT NAME="Driver-V5R3_V6R1" MODULE="jt400_V5R3.jar" MVN="mvn:org.talend.libraries/jt400_V5R3/6.0.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DB_VERSION == 'jt400_V5R3.jar')" />
<IMPORT NAME="Driver-V6R1_V7R2" MODULE="jt400_V6R1.jar" MVN="mvn:org.talend.libraries/jt400_V6R1/6.0.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DB_VERSION == 'jt400_V6R1.jar')" />
<IMPORT NAME="Driver-V7R1_V7R3" MODULE="jt400-9.8.jar" MVN="mvn:net.sf.jt400/jt400/9.8" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DB_VERSION == 'jt400-9.8.jar')" />
</IMPORTS>

View File

@@ -14,15 +14,15 @@ 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)
DB_VERSION.ITEM.V6R1_V7R2=V6R1 to V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1 to V7R3
MAPPING.NAME=Mapping
SET_QUERY_TIMEOUT.NAME=Set Query Timeout
QUERY_TIMEOUT_IN_SECONDS.NAME=Timeout (seconds)
NB_LINE.NAME=Number of line
GUESS_SCHEMA.NAME=Guess Schema
CONNECTION.NAME=Component List
PROPERTY.NAME=Property Type
TYPE.NAME=Database Driver
SCHEMA.NAME=Schema
ENCODING.NAME=Encoding
ENCODING.NAME=Encoding

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

@@ -14,11 +14,11 @@ TRIM_COLUMN.NAME=Colonnes \u00E0 rogner
TRIM_COLUMN.ITEM.TRIM=Supprimer les espaces en d\u00E9but et en fin de champ
TABLE.NAME=Nom de la table
DB_VERSION.NAME=Version de la base de donn\u00E9es
DB_VERSION.ITEM.V5R2_V5R4=V5R2 \u00E0 V5R4 (d\u00E9pr\u00E9ci\u00E9e)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 \u00E0 V6R1 (D\u00E9pr\u00E9ci\u00E9)
DB_VERSION.ITEM.V6R1_V7R2=V6R1 \u00E0 V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u00E0 V7R3
MAPPING.NAME=Mapping
SET_QUERY_TIMEOUT.NAME=Configurer le d\u00E9lai avant expiration de la requ\u00EAte
QUERY_TIMEOUT_IN_SECONDS.NAME=D\u00E9lai avant expiration (secondes)
NB_LINE.NAME=Nombre de lignes
GUESS_SCHEMA.NAME=D\u00E9tecter le sch\u00E9ma
CONNECTION.NAME=Liste des composants

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

@@ -14,13 +14,13 @@ TRIM_COLUMN.NAME=\u30AB\u30E9\u30E0\u306E\u30C8\u30EA\u30E0
TRIM_COLUMN.ITEM.TRIM=\u30C8\u30EA\u30E0
TABLE.NAME=\u30C6\u30FC\u30D6\u30EB\u540D
DB_VERSION.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D0\u30FC\u30B8\u30E7\u30F3
DB_VERSION.ITEM.V5R2_V5R4=V5R2\u304B\u3089V5R4 (\u975E\u63A8\u5968)
DB_VERSION.ITEM.V5R3_V6R1=V5R3\u304B\u3089V6R1 (\u975E\u63A8\u5968)
DB_VERSION.ITEM.V6R1_V7R2=V6R1\u304B\u3089V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1\u304B\u3089V7R3
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

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