Compare commits

...

93 Commits

Author SHA1 Message Date
Sizhao Liu
2645eb4660 codegen backup 2022-07-19 01:08:09 +02:00
Sizhao Liu
db9444fc54 format classes before modifications 2022-07-18 02:10:51 +02:00
Dmytro Sylaiev
fdf0cf1596 feat(TDI-46563): Allow not to fire ANALYZE command (#7729) 2022-07-15 12:18:25 +03:00
tsasada-talend
315430e76b Add localized files (#7781)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-07-15 16:16:12 +08:00
Jane Ding
f96e6906b8 feat(TUP-35644):tMap - possible simplified metrics to send to Pendo (#7690) (#7777)
* feat(TUP-35644):tMap - possible simplified metrics to send to Pendo
https://jira.talendforge.org/browse/TUP-35644

* feat(TUP-35644):tMap - possible simplified metrics to send to Pendo
https://jira.talendforge.org/browse/TUP-35644

* feat(TUP-35644):tMap - possible simplified metrics to send to Pendo
https://jira.talendforge.org/browse/TUP-35644

* feat(TUP-35644):tMap - possible simplified metrics to send to Pendo
https://jira.talendforge.org/browse/TUP-35644

* feat(TUP-35644):tMap - possible simplified metrics to send to Pendo
https://jira.talendforge.org/browse/TUP-35644

* feat(TUP-35644):tMap - possible simplified metrics to send to Pendo
https://jira.talendforge.org/browse/TUP-35644

* feat(TUP-35644):tMap - possible simplified metrics to send to Pendo
https://jira.talendforge.org/browse/TUP-35644

* feat(TUP-35644):tMap - possible simplified metrics to send to Pendo
https://jira.talendforge.org/browse/TUP-35644

* feat(TUP-35644):tMap - possible simplified metrics to send to Pendo
https://jira.talendforge.org/browse/TUP-35644
2022-07-14 18:08:25 +08:00
vyu-talend
99bf99112d feat(TDI-44761):improve sftp in ftp components (#7728) (#7776)
* feat(TDI-44761):improve sftp in ftp components.

* feat(TDI-44761):update plugin.xml for migration task.

* Delete .project

* feat(TDI-47761):improve code

* feat(TDI-44761):fix something

* feat(TDI-44761):fix migration issue.

* feat(TDI-47761):fix migration task.

* feat(TDI-44761):test manual build patch

* feat(TDI-44761):test migration task.

* feat(TDI-44761):improve code

* feat(TDI-44761):fix string value issue.

* feat(TDI-44761):import java.util.map.

* feat(TDI-44761):fix UI issue.

* feat(TDI-44761):improve migration.

* feat(TDI-44761):improve migration.
2022-07-14 16:57:57 +08:00
hcyi
17b2bb6b34 feat(TUP-30684):fix a bug if the table is start with a number or (#7775)
illegal character.
2022-07-14 15:15:16 +08:00
zshen-talend
fe9ce8f275 fix(TDQ-20577): replace project name with lowercase mode in TDQItems when export job (#7767) 2022-07-14 14:29:58 +08:00
Jill Yan
a709eb1a3d APPINT-34809 fix JSON exception (#7753)
Co-authored-by: jillyan <yan955599@gmail.com>
2022-07-14 09:37:12 +08:00
Jane Ding
978f08b5b5 Jding/tup 35939 file dialog style (#7755) (#7766)
* fix(TUP-35939):tFileOutput components resulting in File not found error
when selecting a file path for saving the output file.
https://jira.talendforge.org/browse/TUP-35939

* fix(TUP-35939):tFileOutput components resulting in File not found error
when selecting a file path for saving the output file.
https://jira.talendforge.org/browse/TUP-35939

* fix(TUP-35939):tFileOutput components resulting in File not found error
when selecting a file path for saving the output file.
https://jira.talendforge.org/browse/TUP-35939
2022-07-13 19:07:59 +08:00
jiezhang-tlnd
c8e9707bb9 Revert "feat(TUP-35808)Generate module name from maven url (#7751)" (#7759)
This reverts commit 7365a191ea.
2022-07-12 16:58:14 +08:00
Dmytro Sylaiev
4b1cdc1193 fix(TDI-47908): Commit stats in case of Error (#7703) 2022-07-12 11:14:41 +03:00
pyzhou
2d8bc2352d fix(TDI-48290): tCould upgrade (#7750) 2022-07-12 09:20:38 +08:00
hcyi
0ebc632024 feat(TUP-30684):snowflake Feature request to refresh the table schema instead of automatically refreshing all table schemas. (#7699)
* feat(TUP-30684):snowflake Feature request to refresh the table schema
instead of automatically refreshing all table schemas.

* feat(TUP-30684):add junits
2022-07-11 18:41:33 +08:00
jiezhang-tlnd
7365a191ea feat(TUP-35808)Generate module name from maven url (#7751)
https://jira.talendforge.org/browse/TUP-35808
2022-07-11 17:46:56 +08:00
kjwang
c1182639f7 Fix: TUP-36107 In Studio 8 Stats & Logs project settings are removed (#7723) (#7749)
Fix: TUP-36107 In Studio 8 Stats & Logs project settings are removed after enabling "Publish to artifact repository" feature
https://jira.talendforge.org/browse/TUP-36107
2022-07-11 09:39:37 +08:00
zshen-talend
dc4e685dce fix(TDQ-20754): revert code to keep project is lowercase (#7746) 2022-07-08 17:46:37 +08:00
wang wei
068aed3cd8 fix(TDI-47694): [JDBC TCK]: Inject runtime context for tck connector runtime(#7743) 2022-07-08 15:44:23 +08:00
pyzhou
8cf06e4e2e fix(TDI-48107):gson CVE (#7649)
* fix(TDI-48107):gson CVE

* fix(TDI-48107):gson CVE 2.8.9

* fix(TDI-48107):gson CVE

* fix(TDI-48107):gson CVE

* upgrade version

* missing GoogleDataprocManage
2022-07-07 23:41:17 +08:00
Emmanuel GALLOIS
d54b04c285 fix(TCOMP-2171): fix ComponentIndex constructor in TaCoKitUtilTest (#7737) 2022-07-07 14:36:50 +02:00
tsasada-talend
c2af6c8d9f Add localized files (#7734)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-07-07 17:15:16 +08:00
Alexiane Yvonet
e85a60ebce Add localized files (#7733)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-07-07 17:11:55 +08:00
Emmanuel GALLOIS
87926e93b0 fix(TCOMP-2171): fix ComponentIndex constructor (#7715) 2022-07-07 10:28:40 +02:00
hzhao-talendbj
7e5d9ed650 chore(TUP-35265): upgrade 'crypto-utils' jar in low level (#7645) (#7724) 2022-07-06 09:53:52 +08:00
sponomarova
2fa2e5ad01 fix(TBD-13990): [Patch R2022-05v2_8.0.1] tHiveConnection component doesn't generate code for url_tHiveConnection variable definition (#7669) (#7720) 2022-07-04 14:59:30 +03:00
Dmytro Grygorenko
532b7e635d fix(TDI-48185): bump "nimbus-jose" version (leftovers). (#7712) 2022-07-04 11:23:11 +03:00
zyuan-talend
d2d9447caa fix(TUP-31721):Not clear studio index cache in normal case. (#7616) (#7705) 2022-07-01 19:37:09 +08:00
jzhao
3b61af4e85 fix(TDI-48159):tSalesforceEinsteinBulkExec align force-wsc with other sf (#7693)
components
2022-07-01 14:41:43 +08:00
jzhangbj
7de187df81 Add localized files (#7707)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-07-01 10:36:48 +08:00
tsasada-talend
65f171ac10 Add localized files (#7706)
Co-authored-by: jenkins-git <jenkins-git@talend.com>
2022-07-01 10:36:12 +08:00
Jane Ding
d7e2e05c66 fix(TUP-35939):tFileOutput components resulting in File not found error (#7666) (#7708)
* fix(TUP-35939):tFileOutput components resulting in File not found error
when selecting a file path for saving the output file.
https://jira.talendforge.org/browse/TUP-35939

* fix(TUP-35939):tFileOutput components resulting in File not found error
when selecting a file path for saving the output file.
https://jira.talendforge.org/browse/TUP-35939
2022-07-01 10:29:04 +08:00
Abdulhamid Rashankar
8c161c821f APPINT-34489 : profile added for prometheus dependencies (#7701) 2022-06-30 09:15:04 +02:00
wang wei
fc4c4b1900 fix(TDI-47714): [JDBC TCK]: "Use existed connection" ui appear in (#7586) (#7704) 2022-06-30 11:52:30 +08:00
pyzhou
0ccd9ff9fa fix(TDI-48113):CVE woodstox-core (#7650) 2022-06-30 10:16:08 +08:00
Dmytro Sylaiev
5df8cd540a fix(TDI-48004): Handle dependency with classifier (#7672) 2022-06-29 15:11:55 +03:00
zshen-talend
e6936b650c fix(TDQ-19623): fix junit about BuildJobHandlerTest.testBuildJobWithTDM (#7692) (#7698) 2022-06-29 13:03:54 +08:00
kjwang
3998e40cef Fix:TUP-35887 "build job" working in 7.2.1 fails in 8.0.1: Failed to generate code : NPE org.talend.designer.dbmap.language.oracle.OracleGenerationManager.addQuoteForSpecialChar (#7667) (#7696)
* Fix:TUP-35887
"build job" working in 7.2.1 fails in 8.0.1: Failed to generate code :
NPE org.talend.designer.dbmap.language.oracle.OracleGenerationManager.addQuoteForSpecialChar
https://jira.talendforge.org/browse/TUP-35887
2022-06-29 11:52:53 +08:00
bhe-talendbj
f5d80e4f01 fix(TUP-35942): update relevant job only after renaming joblet (#7673) (#7695) 2022-06-29 11:39:20 +08:00
Jill Yan
2d1fa2a083 APPINT-34694 build routelet module (#7675)
Co-authored-by: jillyan <yan955599@gmail.com>
2022-06-29 10:48:31 +08:00
Wei Hua
8125ca9a29 APPINT-31958 Wrong endpoint displayed in console message when using cRest/tRESTRequest (#7679) 2022-06-28 16:23:50 +08:00
Olha V
296df1bfde fix(TDI-48035): Add null marker to tBigQueryOutput (#7662) 2022-06-24 09:53:20 +03:00
Jane Ding
6a89474d30 fix(TUP-35599):SuggestionValues.Item support of user friendly UI label (#7686)
different from it's id
https://jira.talendforge.org/browse/TUP-35599
2022-06-24 14:27:00 +08:00
Chao MENG
acfaeb05a2 chore: update plugin timestamp (#7684) 2022-06-23 17:14:38 +08:00
Jane Ding
2f90ccd1a8 Jding/tup 35599 suggestion values UI to record id and label master (#7670)
* fix(TUP-35599):SuggestionValues.Item support of user friendly UI label
(#7619)

* fix(TUP-35599):SuggestionValues.Item support of user friendly UI label
different from it's id
https://jira.talendforge.org/browse/TUP-35599

* fix(TUP-35599):SuggestionValues.Item support of user friendly UI label
different from it's id
https://jira.talendforge.org/browse/TUP-35599

Conflicts:
	main/plugins/org.talend.repository/plugin.xml

* fix(TUP-35599):SuggestionValues.Item support of user friendly UI label
different from it's id
https://jira.talendforge.org/browse/TUP-35599
2022-06-22 09:51:29 +08:00
sbieliaievl
c0b30cf1e7 fix(APPINT-33830) - migration for demos (#7602)
* Added rename timeout parameters for tRESTClient migration

* fixed pom file structure

* Changed version in pom for migration

* fix(APPINT-33830) - rebase fix

* Update plugin.xml

* Update plugin.xml

* Update plugin.xml

* fix(APPINT-33830) - removed wrong break

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

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

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

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

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

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

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

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

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

* fix(TDI-47951): Handle possible NPE

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

* issue is that deleting datastore but dataset not be deleted

* fix selection issue on export wizard

* fomat code

* format code

* improve performance

* improve performance by adding objectType

* improve code and handle import issue

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

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

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

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

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

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

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

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

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

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

* generation document is ok from standard process

* format code

* reduce the same item to improve performance

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

* handle latest version on tRunjob

* handle version for joblet

* hanlde version

* improve performance with VersionList

* handle BD process part

* handle BD process

* handle route process

* code formate

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

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

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

* fix(TUP-31233):Routine pom is not updated after installed the required
jar of user routine
2022-05-25 18:05:03 +08:00
hzhao-talendbj
9eb840b026 Revert "chore(TUP-34757): Add a getOriginalName() in IConnection (#7301)" (#7563)
This reverts commit 5c9a80937a.
2022-05-25 17:28:19 +08:00
Dmytro Sylaiev
bc5d868c62 feat(TDI-44884): Change the label of Sybase SA (#7558) 2022-05-24 15:53:43 +03:00
497 changed files with 18230 additions and 1860 deletions

View File

@@ -1,4 +1,3 @@
#Thu Jan 06 14:39:43 CST 2011
eclipse.preferences.version=1
encoding//src/main/java/org/talend/designer/codegen/components/model/ComponentsFactory.java=UTF-8
encoding//src/main/java/org/talend/designer/codegen/components/ui/ComponentsPreferencePage.java=UTF-8

View File

@@ -33,8 +33,10 @@ Export-Package: org.talend.designer.codegen,
org.talend.designer.codegen.components.ui,
org.talend.designer.codegen.config,
org.talend.designer.codegen.exception,
org.talend.designer.codegen.i18n,
org.talend.designer.codegen.model,
org.talend.designer.codegen.proxy
org.talend.designer.codegen.proxy,
org.talend.designer.codegen.stigma
Bundle-Vendor: .Talend SA.
Bundle-Activator: org.talend.designer.codegen.CodeGeneratorActivator
Import-Package: org.apache.commons.lang

View File

@@ -0,0 +1,232 @@
<%@ jet
imports="
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.process.IConnection
org.talend.core.model.process.IConnectionCategory
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
org.talend.core.model.metadata.types.JavaTypesManager
org.talend.core.model.metadata.types.JavaType
java.util.List
java.util.Map
"
%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
String cid = node.getUniqueName();
String nbRows = ElementParameterParser.getValue(node, "__NB_ROWS__");
List<Map<String, String>> tableValues =
(List<Map<String,String>>)ElementParameterParser.getObjectValue(
node,
"__VALUES__"
);
boolean use_singleMode = ("true").equals(ElementParameterParser.getValue(node, "__USE_SINGLEMODE__"));
boolean use_inTable = ("true").equals(ElementParameterParser.getValue(node, "__USE_INTABLE__"));
boolean use_inlineContent = ("true").equals(ElementParameterParser.getValue(node, "__USE_INLINECONTENT__"));
String fieldSeparator = ElementParameterParser.getValue(node, "__FIELDSEPARATOR__");
String rowSeparator = ElementParameterParser.getValue(node, "__ROWSEPARATOR__");
List<Map<String, String>> inTableValues =
(List<Map<String,String>>)ElementParameterParser.getObjectValue(
node,
"__INTABLE__"
);
List<IMetadataTable> metadatas = node.getMetadataList();
IMetadataTable metadata = null;
if ((metadatas!=null)&&(metadatas.size()>0)) {
metadata = metadatas.get(0);
}
List< ? extends IConnection> conns = node.getOutgoingSortedConnections();
//************** the original part that get only one value for each column ********************
if(use_singleMode){
if(tableValues != null && tableValues.size() > 0 && conns != null && conns.size() > 0) {
%>
for (int i_<%=cid%> = 0 ; i_<%=cid%> < <%=nbRows%> ; i_<%=cid%>++) {
<%
String firstConnName = "";
for(IConnection conn : conns) {
if(conn.getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {
firstConnName = conn.getName();
break;
} // if(conn) end
} // for(conns) end
if (firstConnName !=null && !"".equals(firstConnName)) {
for(Map<String, String> tableValue : tableValues) {
String lable = tableValue.get("SCHEMA_COLUMN");
String value = tableValue.get("VALUE");
if(value == null || value.length() == 0){ //use the default value
IMetadataColumn column = metadata.getColumn(lable);
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getTalendType(), column.isNullable());
String defaultValue = JavaTypesManager.getDefaultValueFromJavaType(typeToGenerate, column.getDefault());
%>
<%=firstConnName%>.<%=lable %> = <%=defaultValue %>;
<%
}else{
%>
<%=firstConnName%>.<%=lable %> = <%=value %>;
<%
}
} // for (map) end
} // if(firstConnName) end
}
//***************************the original part end ***************************************
}else if(use_inTable){
//******************the new part ---get several values for each column*********************
if(inTableValues != null && inTableValues.size() > 0 && conns != null && conns.size() > 0) {
%>
int nb_line_<%=cid %> = 0;
<%
String firstConnName = "";
for(IConnection conn : conns) {
if(conn.getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {
firstConnName = conn.getName();
break;
}
}
if(firstConnName!=null && !firstConnName.equals("")){//XXX
%>
List<<%=firstConnName%>Struct> cacheList_<%=cid %> = new java.util.ArrayList<<%=firstConnName%>Struct>();
<%
for(Map<String, String> tableValue : inTableValues) {
%>
<%=firstConnName%> = new <%=firstConnName%>Struct();
<%
for(IMetadataColumn column: metadata.getListColumns()){
String label = column.getLabel();
String value = tableValue.get(label);
if(value == null || value.length() == 0){ //use the default value
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getTalendType(), column.isNullable());
String defaultValue = JavaTypesManager.getDefaultValueFromJavaType(typeToGenerate, column.getDefault());
%>
<%=firstConnName%>.<%=label %> = <%=defaultValue %>;
<%
}else{
%>
<%=firstConnName%>.<%=label %> = <%=value %>;
<%
}
}
%>
cacheList_<%=cid %>.add(<%=firstConnName%>);
<%
}
}
%>
for (int i_<%=cid%> = 0 ; i_<%=cid%> < <%=nbRows%> ; i_<%=cid%>++) {
<%
if(firstConnName!=null && !firstConnName.equals("")){
%>
for(<%=firstConnName%>Struct tmpRow_<%=cid %> : cacheList_<%=cid %>){
<%
}
%>
nb_line_<%=cid %> ++;
<%
if(firstConnName!=null && !firstConnName.equals("")){
%>
<%=firstConnName%> = tmpRow_<%=cid %>;
<%
}
}
//********************the new part end*****************************************************
}else if(use_inlineContent){
String fileContent = ElementParameterParser.getValue(node,"__INLINECONTENT__");
String lineSeparator = "\r\n";
String fileContentEnCodeStr = "";
try {
fileContentEnCodeStr = java.util.Base64.getMimeEncoder().encodeToString(fileContent.getBytes("UTF-8"));
} catch (java.io.UnsupportedEncodingException e) {
e.printStackTrace();
}
%>
StringBuilder result_<%=cid %> = new StringBuilder();
<%
String[] arrayStr = fileContentEnCodeStr.split(lineSeparator);
for(String item : arrayStr){
%>
result_<%=cid %>.append("<%=item %>");
<%}%>
String originalFileContent_<%=cid %> = "";
try {
originalFileContent_<%=cid %> = new String(java.util.Base64.getMimeDecoder().decode(result_<%=cid %>.toString()), utf8Charset);
} catch (java.lang.Exception e) {
globalMap.put("<%=cid%>_ERROR_MESSAGE",e.getMessage());
e.printStackTrace();
}
int nb_line_<%=cid %> = 0;
for (int i_<%=cid%> = 0 ; i_<%=cid%> < <%=nbRows%> ; i_<%=cid%>++) {
java.io.InputStream ins_<%=cid %> = new java.io.ByteArrayInputStream(originalFileContent_<%=cid %>.getBytes(utf8Charset));
org.talend.fileprocess.FileInputDelimited fid_<%=cid %> = new org.talend.fileprocess.FileInputDelimited(ins_<%=cid %>, utf8Charset,<%=fieldSeparator %>,<%=rowSeparator %>,true, 0, 0, -1, -1, false);
while (fid_<%=cid %>.nextRecord()) {
nb_line_<%=cid %>++;
<%
String firstConnName = "";
for(IConnection conn : conns) {
if(conn.getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {
firstConnName = conn.getName();
break;
}
}
if(!firstConnName.equals("")){//XXX
%>
<%=firstConnName %> = new <%=firstConnName %>Struct();
<%
List<IMetadataColumn> columns = metadata.getListColumns();
int sizeListColumns = columns.size();
for (int i=0;i<sizeListColumns;i++) {//AAA
IMetadataColumn column=columns.get(i);
String label = column.getLabel();
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getTalendType(), column.isNullable());
JavaType javaType = JavaTypesManager.getJavaTypeFromId(column.getTalendType());
String patternValue = column.getPattern() == null || column.getPattern().trim().length() == 0 ? null : column.getPattern();
String defaultValue = JavaTypesManager.getDefaultValueFromJavaType(typeToGenerate, column.getDefault());
%>
if(<%=i %> < fid_<%=cid %>.getColumnsCountOfCurrentRow()){
String colContent = fid_<%=cid %>.get(<%=i %>);
<%if(javaType == JavaTypesManager.STRING || javaType == JavaTypesManager.OBJECT) {%>
<%=firstConnName %>.<%=label %> = (colContent == null || colContent.length() == 0) ? <%=defaultValue %>: colContent;
<%}else if(javaType == JavaTypesManager.DATE){%>
<%=firstConnName %>.<%=label %> = (colContent == null || colContent.length() == 0) ? ParserUtils.parseTo_Date(<% if((defaultValue==null)||"".equals(defaultValue) || "null".equals(defaultValue)){%>(String)<%}%> <%=defaultValue %>, <%= patternValue %>) : ParserUtils.parseTo_Date(colContent, <%= patternValue %>);
<%}else if(javaType == JavaTypesManager.BYTE_ARRAY){%>
<%=firstConnName %>.<%=label %> = (colContent == null || colContent.length() == 0) ? <%=defaultValue %> : colContent.getBytes();
<%}else{%>
<%=firstConnName %>.<%=label %> = (colContent == null || colContent.trim().length() == 0) ? <%=defaultValue %> : ParserUtils.parseTo_<%= typeToGenerate %>(colContent);
<%}%>
} else {
<%if(javaType != JavaTypesManager.DATE){%>
<%=firstConnName %>.<%=label %> = <%=defaultValue %>;
<%}else {%>
<%=firstConnName %>.<%=label %> = ParserUtils.parseTo_Date(<% if(defaultValue==null||"".equals(defaultValue)|| "null".equals(defaultValue)){%>(String)<%}%><%=defaultValue %>, <%= patternValue %>);
<%}%>
}
<%
}//AAA
%>
<%
}//XXX
//********************the use_inTable part end*****************************************************
}
%>

View File

@@ -0,0 +1,80 @@
<%@ jet
imports="
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.process.IConnection
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.process.IConnectionCategory
java.util.List
java.util.Map"
%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
String cid = node.getUniqueName();
String nbRows = ElementParameterParser.getValue(node, "__NB_ROWS__");
boolean use_singleMode = ("true").equals(ElementParameterParser.getValue(node, "__USE_SINGLEMODE__"));
boolean use_inTable = ("true").equals(ElementParameterParser.getValue(node, "__USE_INTABLE__"));
boolean use_inlineContent = ("true").equals(ElementParameterParser.getValue(node, "__USE_INLINECONTENT__"));
List<Map<String, String>> tableValues =
(List<Map<String,String>>)ElementParameterParser.getObjectValue(
node,
"__VALUES__"
);
List<Map<String, String>> inTableValues =
(List<Map<String,String>>)ElementParameterParser.getObjectValue(
node,
"__INTABLE__"
);
List< ? extends IConnection> conns = node.getOutgoingSortedConnections();
if(use_singleMode){
if(tableValues != null && tableValues.size() > 0 && conns != null && conns.size() > 0) {
%>
}
globalMap.put("<%=cid%>_NB_LINE", <%=nbRows%>);
<%
}
//********************the new part*****************************************************
}else if(use_inTable){
if(inTableValues != null && inTableValues.size() > 0 && conns != null && conns.size() > 0) {
String firstConnName = null;
for(IConnection conn : conns) {
if(conn.getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {
firstConnName = conn.getName();
break;
}
}
if(firstConnName!=null && !firstConnName.equals("")){
%>
}
<%
}
%>
}
<%
if(firstConnName!=null && !firstConnName.equals("")){
%>
cacheList_<%=cid %>.clear();
<%
}
%>
globalMap.put("<%=cid%>_NB_LINE", nb_line_<%=cid %>);
<%
}
//********************the new part*****************************************************
} else if(use_inlineContent){
%>
}
fid_<%=cid %>.close();
}
globalMap.put("<%=cid%>_NB_LINE", nb_line_<%=cid %>);
<%
}
%>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,90 @@
<COMPONENT>
<HEADER PLATEFORM="ALL" SERIAL="" VERSION="0.102" STATUS="ALPHA"
COMPATIBILITY="ALL" AUTHOR="Talend" RELEASE_DATE="20050320A"
STARTABLE="true">
<SIGNATURE />
</HEADER>
<FAMILIES>
<FAMILY>Misc</FAMILY>
</FAMILIES>
<DOCUMENTATION>
<URL />
</DOCUMENTATION>
<CONNECTORS>
<CONNECTOR CTYPE="FLOW" MAX_INPUT="0" MAX_OUTPUT="1"/>
<CONNECTOR CTYPE="ITERATE" MAX_OUTPUT="1" MAX_INPUT="1" />
<CONNECTOR CTYPE="SUBJOB_OK" MAX_INPUT="1" />
<CONNECTOR CTYPE="SUBJOB_ERROR" MAX_INPUT="1" />
<CONNECTOR CTYPE="COMPONENT_OK" />
<CONNECTOR CTYPE="COMPONENT_ERROR" />
<CONNECTOR CTYPE="RUN_IF" />
</CONNECTORS>
<PARAMETERS>
<PARAMETER NAME="SCHEMA" FIELD="SCHEMA_TYPE" REQUIRED="true"
NUM_ROW="10">
<DEFAULT />
</PARAMETER>
<PARAMETER NAME="NB_ROWS" FIELD="TEXT" NUM_ROW="20">
<DEFAULT>1</DEFAULT>
</PARAMETER>
<PARAMETER NAME="USE_SINGLEMODE" FIELD="RADIO" REQUIRED="true"
NUM_ROW="30" GROUP="MODE">
<DEFAULT>true</DEFAULT>
</PARAMETER>
<PARAMETER NAME="VALUES" FIELD="TABLE" REQUIRED="true"
NUM_ROW="35" NB_LINES="5" SHOW_IF="USE_SINGLEMODE=='true'" GROUP="MODE">
<ITEMS BASED_ON_SCHEMA="true">
<ITEM NAME="VALUE" />
</ITEMS>
</PARAMETER>
<PARAMETER NAME="USE_INTABLE" FIELD="RADIO" REQUIRED="true"
NUM_ROW="40" GROUP="MODE">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="INTABLE" FIELD="TABLE" REQUIRED="true"
NUM_ROW="45" NB_LINES="5" SHOW_IF="USE_INTABLE=='true'" GROUP="MODE">
<ITEMS COLUMNS_BASED_ON_SCHEMA="true">
</ITEMS>
</PARAMETER>
<PARAMETER NAME="USE_INLINECONTENT" FIELD="RADIO" REQUIRED="true"
NUM_ROW="50" GROUP="MODE">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="ROWSEPARATOR" FIELD="TEXT" NUM_ROW="52"
REQUIRED="true" SHOW_IF="USE_INLINECONTENT=='true'" GROUP="MODE">
<DEFAULT>"\n"</DEFAULT>
</PARAMETER>
<PARAMETER NAME="FIELDSEPARATOR" FIELD="TEXT" NUM_ROW="52"
REQUIRED="true" SHOW_IF="USE_INLINECONTENT=='true'" GROUP="MODE">
<DEFAULT>";"</DEFAULT>
</PARAMETER>
<PARAMETER NAME="INLINECONTENT" FIELD="MEMO" RAW="true" REQUIRED="true"
NUM_ROW="55" NB_LINES="10" SHOW_IF="USE_INLINECONTENT=='true'" GROUP="MODE">
</PARAMETER>
</PARAMETERS>
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Talen File Enhanced" MODULE="talend_file_enhanced-1.1.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.1" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.1.jar" REQUIRED="true" />
</IMPORTS>
</CODEGENERATION>
<RETURNS>
<RETURN NAME="NB_LINE" TYPE="id_Integer" AVAILABILITY="AFTER" />
</RETURNS>
</COMPONENT>

View File

@@ -0,0 +1,14 @@
LONG_NAME=Creates a fixed flow from internal variables
HELP=org.talend.help.tFixedFlowInput
NB_LINE.NAME=Number of lines
NB_ROWS.NAME=Number of rows
VALUES.NAME=Values
VALUES.ITEM.VALUE=Value
INTABLE.NAME=Inline Table
MODE.NAME=Mode
USE_SINGLEMODE.NAME=Use Single Table
USE_INTABLE.NAME=Use Inline Table
USE_INLINECONTENT.NAME=Use Inline Content(delimited file)
INLINECONTENT.NAME=Content
ROWSEPARATOR.NAME=Row Separator
FIELDSEPARATOR.NAME=Field Separator

View File

@@ -0,0 +1,7 @@
NB_LINE.NAME=Anzahl an Zeilen
VALUES.NAME=Wert
VALUES.ITEM.VALUE=Wert
MODE.NAME=Modus
INLINECONTENT.NAME=Inhalt
ROWSEPARATOR.NAME=Zeilenseparator
FIELDSEPARATOR.NAME=Feldseparator

View File

@@ -0,0 +1,6 @@
NB_ROWS.NAME=N\u00FAmero de filas
VALUES.NAME=Valores
VALUES.ITEM.VALUE=Valor
INLINECONTENT.NAME=Contenido
ROWSEPARATOR.NAME=Separador de Fila
FIELDSEPARATOR.NAME=Separador de Campo

View File

@@ -0,0 +1,14 @@
LONG_NAME=Cr\u00E9e un flux fixe \u00E0 partir de variables internes
HELP=org.talend.help.tFixedFlowInput
NB_LINE.NAME=Nombre de lignes
NB_ROWS.NAME=Nombre de lignes
VALUES.NAME=Valeurs
VALUES.ITEM.VALUE=Valeur
INTABLE.NAME=Utiliser le tableau
MODE.NAME=Mode
USE_SINGLEMODE.NAME=Utiliser une table seule
USE_INTABLE.NAME=Utiliser le tableau
USE_INLINECONTENT.NAME=Utiliser du contenu align\u00E9 (fichier d\u00E9limit\u00E9)
INLINECONTENT.NAME=Contenu
ROWSEPARATOR.NAME=S\u00E9parateur de lignes
FIELDSEPARATOR.NAME=S\u00E9parateur de champs

View File

@@ -0,0 +1,13 @@
LONG_NAME=Crea un flusso fisso da variabili interne
NB_LINE.NAME=Numero di linee
NB_ROWS.NAME=Numero di righe
VALUES.NAME=Valori
VALUES.ITEM.VALUE=Valore
INTABLE.NAME=Tabella InLine
MODE.NAME=Modo
USE_SINGLEMODE.NAME=Utilizza tabella singola
USE_INTABLE.NAME=Utilizza tabella InLine
USE_INLINECONTENT.NAME=Utilizza contenuto Inline (file delimitato)
INLINECONTENT.NAME=contenuto
ROWSEPARATOR.NAME=Separatore riga
FIELDSEPARATOR.NAME=Separatore di campo

View File

@@ -0,0 +1,14 @@
LONG_NAME=\u5185\u90E8\u5909\u6570\u304B\u3089\u56FA\u5B9A\u30D5\u30ED\u30FC\u3092\u751F\u6210\u3057\u307E\u3059\u3002
HELP=org.talend.help.tFixedFlowInput
NB_LINE.NAME=\u884C\u6570
NB_ROWS.NAME=\u884C\u6570
VALUES.NAME=\u5024
VALUES.ITEM.VALUE=\u5024
INTABLE.NAME=\u30A4\u30F3\u30E9\u30A4\u30F3\u30C6\u30FC\u30D6\u30EB
MODE.NAME=\u30E2\u30FC\u30C9
USE_SINGLEMODE.NAME=\u30B7\u30F3\u30B0\u30EB\u30C6\u30FC\u30D6\u30EB\u306E\u4F7F\u7528
USE_INTABLE.NAME=\u30A4\u30F3\u30E9\u30A4\u30F3\u30C6\u30FC\u30D6\u30EB\u306E\u4F7F\u7528
USE_INLINECONTENT.NAME=\u30A4\u30F3\u30E9\u30A4\u30F3\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u4F7F\u7528
INLINECONTENT.NAME=\u30B3\u30F3\u30C6\u30F3\u30C4
ROWSEPARATOR.NAME=\u884C\u533A\u5207\u308A
FIELDSEPARATOR.NAME=\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5207\u308A

View File

@@ -0,0 +1,10 @@
LONG_NAME=\u5185\u90E8\u5909\u6570\u304B\u3089\u56FA\u5B9A\u30D5\u30ED\u30FC\u3092\u4F5C\u6210
HELP=org.talend.help.tFixedFlowInput
NB_LINE.NAME=\u884c\u6570
NB_ROWS.NAME=\u30ed\u30a6\u6570
VALUES.NAME=\u5024
VALUES.ITEM.VALUE=\u5024
MODE.NAME=\u30E2\u30FC\u30C9
INLINECONTENT.NAME=\u30B3\u30F3\u30C6\u30F3\u30C4
ROWSEPARATOR.NAME=\u30ED\u30A6\u30BB\u30D1\u30EC\u30FC\u30BF
FIELDSEPARATOR.NAME=\u30D5\u30A3\u30FC\u30EB\u30C9\u30BB\u30D1\u30EC\u30FC\u30BF

View File

@@ -0,0 +1,6 @@
NB_LINE.NAME=\u0427\u0438\u0441\u043B\u043E \u0441\u0442\u0440\u043E\u043A
VALUES.NAME=\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u044F
VALUES.ITEM.VALUE=\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435
INLINECONTENT.NAME=\u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435
ROWSEPARATOR.NAME=\u0420\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C \u0441\u0442\u0440\u043E\u043A
FIELDSEPARATOR.NAME=\u0420\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C \u043F\u043E\u043B\u0435\u0439

View File

@@ -0,0 +1,3 @@
VALUES.ITEM.VALUE=Hodnota
MODE.NAME=M\u00F3d
INLINECONTENT.NAME=Obsah

View File

@@ -0,0 +1,3 @@
VALUES.ITEM.VALUE=Hodnota
MODE.NAME=M<EFBFBD>d
INLINECONTENT.NAME=Obsah

View File

@@ -0,0 +1,14 @@
LONG_NAME=\u4ECE\u5185\u90E8\u53D8\u91CF\u521B\u5EFA\u56FA\u5B9A\u6D41
HELP=org.talend.help.tFixedFlowInput
NB_LINE.NAME=\u884C\u6570
NB_ROWS.NAME=\u884C\u6570
VALUES.NAME=\u503C
VALUES.ITEM.VALUE=\u503C
INTABLE.NAME=\u5185\u8054\u8868
MODE.NAME=\u6A21\u5F0F
USE_SINGLEMODE.NAME=\u4F7F\u7528\u5355\u8868
USE_INTABLE.NAME=\u4F7F\u7528\u5185\u8054\u8868
USE_INLINECONTENT.NAME=\u4F7F\u7528\u5185\u8054\u5185\u5BB9 (\u5206\u9694\u6587\u4EF6)
INLINECONTENT.NAME=\u5185\u5BB9
ROWSEPARATOR.NAME=\u884C\u5206\u9694\u7B26
FIELDSEPARATOR.NAME=\u5B57\u6BB5\u5206\u9694\u7B26

View File

@@ -0,0 +1,14 @@
<%@ jet
imports="
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.designer.codegen.config.CodeGeneratorArgument
"
%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
%>
<%=ElementParameterParser.getValue(node, "__CODE__") %>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,52 @@
<COMPONENT>
<HEADER
PLATEFORM="ALL"
SERIAL=""
VERSION="0.101"
STATUS="ALPHA"
COMPATIBILITY="ALL"
AUTHOR="Talend"
RELEASE_DATE="20070210A"
STARTABLE="true"
PARTITIONING="AUTO"
>
<SIGNATURE></SIGNATURE>
</HEADER>
<FAMILIES>
<FAMILY>Custom_Code</FAMILY>
</FAMILIES>
<DOCUMENTATION>
<URL/>
</DOCUMENTATION>
<CONNECTORS>
<CONNECTOR CTYPE="FLOW" MAX_INPUT="1" MAX_OUTPUT="1"/>
<CONNECTOR CTYPE="ITERATE" MAX_OUTPUT="1" MAX_INPUT="1"/>
<CONNECTOR CTYPE="SUBJOB_OK" MAX_INPUT="1" />
<CONNECTOR CTYPE="SUBJOB_ERROR" MAX_INPUT="1" />
<CONNECTOR CTYPE="COMPONENT_OK"/>
<CONNECTOR CTYPE="COMPONENT_ERROR"/>
<CONNECTOR CTYPE="RUN_IF"/>
</CONNECTORS>
<PARAMETERS>
<PARAMETER NAME="CODE" FIELD="MEMO_JAVA" RAW="true" REQUIRED="false" NUM_ROW="2" NB_LINES="9" CONTEXT="begin">
<DEFAULT>String foo = "bar";</DEFAULT>
</PARAMETER>
</PARAMETERS>
<ADVANCED_PARAMETERS>
<PARAMETER NAME="IMPORT" FIELD="MEMO_IMPORT" RAW="true" REQUIRED="false" NUM_ROW="1" NB_LINES="3">
<DEFAULT>//import java.util.List;</DEFAULT>
</PARAMETER>
</ADVANCED_PARAMETERS>
<CODEGENERATION/>
<RETURNS/>
</COMPONENT>

View File

@@ -0,0 +1,4 @@
CODE.NAME=Code
HELP=org.talend.help.tJava
LONG_NAME=Allows to enter manually the start Java-code part of a component
IMPORT.NAME=Import

View File

@@ -0,0 +1,3 @@
CODE.NAME=Code
LONG_NAME=Erm\u00F6glich die manuelle Eingabe des Java-Codes f\u00FCr den Start Bereich der Komponente
IMPORT.NAME=Importiere

View File

@@ -0,0 +1 @@
CODE.NAME=Codigo

View File

@@ -0,0 +1,4 @@
CODE.NAME=Code
HELP=org.talend.help.tJava
LONG_NAME=Permet de saisir manuellement le code Java initial d'un composant
IMPORT.NAME=Import

View File

@@ -0,0 +1,3 @@
CODE.NAME=Codice
LONG_NAME=Permetti di inserire manualmente lo start Java-code in un componente
IMPORT.NAME=Importa

View File

@@ -0,0 +1,4 @@
CODE.NAME=\u30B3\u30FC\u30C9
HELP=org.talend.help.tJava
LONG_NAME=Java\u30B3\u30FC\u30C9\u306B\u3066\u3001\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u958B\u59CB\u51E6\u7406(begin)\u306E\u30B9\u30AF\u30EA\u30D7\u30C8\u3092\u30DE\u30CB\u30E5\u30A2\u30EB\u4F5C\u6210
IMPORT.NAME=\u30A4\u30F3\u30DD\u30FC\u30C8

View File

@@ -0,0 +1,4 @@
CODE.NAME=\u30B3\u30FC\u30C9
HELP=org.talend.help.tJava
LONG_NAME=Java\u30B3\u30FC\u30C9\u306B\u3066\u3001\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u958B\u59CB\u51E6\u7406(begin)\u306E\u30B9\u30AF\u30EA\u30D7\u30C8\u3092\u30DE\u30CB\u30E5\u30A2\u30EB\u4F5C\u6210
IMPORT.NAME=\u30A4\u30F3\u30DD\u30FC\u30C8

View File

@@ -0,0 +1 @@
CODE.NAME=\u041A\u043E\u0434

View File

@@ -0,0 +1 @@
CODE.NAME=K\u00F3d

View File

@@ -0,0 +1 @@
CODE.NAME=K<EFBFBD>d

View File

@@ -0,0 +1,4 @@
CODE.NAME=\u4EE3\u7801
HELP=org.talend.help.tJava
LONG_NAME=\u5141\u8BB8\u624B\u52A8\u8F93\u5165\u7EC4\u4EF6\u7684 Java \u4EE3\u7801\u7684\u5F00\u59CB\u90E8\u5206\u3002
IMPORT.NAME=\u5BFC\u5165

View File

@@ -0,0 +1,441 @@
<%@ jet
imports="
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
org.talend.core.model.metadata.types.JavaType
org.talend.core.model.process.IConnection
org.talend.core.model.process.IConnectionCategory
org.talend.core.model.metadata.types.JavaTypesManager
org.talend.core.model.utils.NodeUtil
java.util.List
java.util.Map
"
%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
List<IMetadataTable> metadatas = node.getMetadataList();
if ((metadatas!=null)&&(metadatas.size()>0)) {//1
IMetadataTable metadata = metadatas.get(0);
if (metadata!=null) {//2
String cid = node.getUniqueName();
String label = ElementParameterParser.getValue(node, "__LABEL__");
if(("__UNIQUE_NAME__").equals(label))
label=cid;
boolean tablePrint = ("true").equals(ElementParameterParser.getValue(node,"__TABLE_PRINT__"));
String printHeader = ElementParameterParser.getValue(node,"__PRINT_HEADER__");
boolean vertical = ("true").equals(ElementParameterParser.getValue(node,"__VERTICAL__"));
boolean uniquePrint = ("true").equals(ElementParameterParser.getValue(node,"__PRINT_UNIQUE__"));
boolean titlePrint = ("true").equals(ElementParameterParser.getValue(node,"__PRINT_LABEL__"));
boolean uniqueTitlePrint = ("true").equals(ElementParameterParser.getValue(node,"__PRINT_UNIQUE_LABEL__"));
boolean basic = !(tablePrint||vertical);
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
boolean isLogContent = ("true").equals(ElementParameterParser.getValue(node,"__PRINT_CONTENT_WITH_LOG4J__"));
List<IMetadataColumn> columns = metadata.getListColumns();
int sizeColumns = columns.size();
%>
///////////////////////
<%
if(tablePrint) { // table display mode
%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/tablePrintLogUtil.javajet"%>
<%
}
// vertical display mode
if(vertical) {
%>
class Util_<%=cid %> {
String[] des_top = { ".", "-" };
String[] des_data = { "-", "+" };
String[] des_frame = { "|" };
public void printLine(StringBuilder sb, int titleWidth, int dataWidth){
sb.append("+");
for(int i=0; i<titleWidth+2; i++)
sb.append("-");
sb.append("+");
for(int i=0; i<dataWidth+2; i++)
sb.append("-");
sb.append("+" + "\n");
}
public String print(String[] row, int nbLine){
StringBuilder sb = new StringBuilder();
<%
if(uniquePrint) {
%>
String title = "#" + nbLine + ". " + "<%=cid%>";
<%
} else if(titlePrint) {
%>
String title = "#" + nbLine + ". " + "<%=label%>";
<%
} else if(uniqueTitlePrint) {
%>
String title = "#" + nbLine + ". " + "<%=cid%>--<%=label%>";
<%
}
%>
//step 1: get the max length of all the row[] member;
int dataWidth = 5; //the length of the string "value"
for(int i=0;i<row.length;i++) {
if(row[i] == null && 4 > dataWidth) {
dataWidth = 4;
}
else if(row[i] != null && row[i].length()>dataWidth)
dataWidth = row[i].length();
}
<%
int titleWidth = 3; //the length of the string 'key'
for(IMetadataColumn column:columns)
if(column.getLabel().length()>titleWidth) titleWidth = column.getLabel().length();
%>
int titleWidth = <%=titleWidth%>;
int totalWidth = dataWidth + titleWidth + 5;
//step 2: print the header with line number
sb.append(".");
for(int i=0 ; i<totalWidth ; i++)
sb.append("-");
sb.append("." + "\n" + "|");
int emptyCenterWidth = (totalWidth-title.length())/2;
for(int i=0 ; i<emptyCenterWidth; i++)
sb.append(" ");
sb.append(title);
for(int i=0 ; i<totalWidth - emptyCenterWidth - title.length() ; i++)
sb.append(" ");
sb.append("|" + "\n");
//step 3: print "key" and "value"
printLine(sb,titleWidth,dataWidth);
sb.append("|" + " key");
for(int i=0; i<titleWidth-2; i++)
sb.append(" ");
sb.append("|" + " value");
for(int i=0; i<dataWidth-4; i++)
sb.append(" ");
sb.append("|" + "\n");
printLine(sb,titleWidth,dataWidth);
//step 4: print dataset
<%
int count = 0;
for(IMetadataColumn column:columns){
%>
//for(int i=0; i<row.length; i++){
sb.append("| " + "<%=column.getLabel()%>");
for(int i=0; i<titleWidth -"<%=column.getLabel()%>".length()+ 1 ;i++)
sb.append(" ");
sb.append("| " + row[<%=count%>]);
for(int i=0; row[<%=count%>] == null && i<dataWidth - 3 || row[<%=count%>] != null && i<dataWidth -row[<%=count%>].length()+ 1 ;i++)
sb.append(" ");
sb.append("|" + "\n");
//}
<%
count++;
}%>
//step 5: print a line gap
printLine(sb,titleWidth,dataWidth);
return sb.toString();
}
}
Util_<%=cid %> util_<%=cid %> = new Util_<%=cid %>();
java.io.PrintStream consoleOut_<%=cid%> = null;
if (globalMap.get("tLogRow_CONSOLE")!=null){
consoleOut_<%=cid%> = (java.io.PrintStream) globalMap.get("tLogRow_CONSOLE");
}else{
consoleOut_<%=cid%> = new java.io.PrintStream(new java.io.BufferedOutputStream(System.out));
globalMap.put("tLogRow_CONSOLE",consoleOut_<%=cid%>);
}
<%
}
if(basic) {// basic display mode
%>
final String OUTPUT_FIELD_SEPARATOR_<%=cid %> = <%=ElementParameterParser.getValue(node, "__FIELDSEPARATOR__") %>;
java.io.PrintStream consoleOut_<%=cid%> = null;
<%
if (("true").equals(printHeader)) {
%>
StringBuilder sbHeader_<%=cid%> = new StringBuilder();
<%
for (int i = 0; i < sizeColumns; i++) {
IMetadataColumn column = columns.get(i);
%>
sbHeader_<%=cid%>.append("<%=column.getLabel() %>");
<%
if(i == sizeColumns-1) break;
%>
sbHeader_<%=cid%>.append("\t");
<%
}
%>
if (globalMap.get("tLogRow_CONSOLE")!=null)
{
consoleOut_<%=cid%> = (java.io.PrintStream) globalMap.get("tLogRow_CONSOLE");
}
else
{
consoleOut_<%=cid%> = new java.io.PrintStream(new java.io.BufferedOutputStream(System.out));
globalMap.put("tLogRow_CONSOLE",consoleOut_<%=cid%>);
}
<%
if(isLogContent && isLog4jEnabled){
%>
log.info("<%=cid%> - Header names: " + sbHeader_<%=cid%>.toString());
<%
}
%>
consoleOut_<%=cid%>.println(sbHeader_<%=cid%>.toString());
consoleOut_<%=cid%>.flush();
<%
}
%>
<%
}
%>
StringBuilder strBuffer_<%=cid%> = null;
int nb_line_<%=cid%> = 0;
///////////////////////
<%
String printColumnNames = ElementParameterParser.getValue(node,"__PRINT_COLNAMES__");
String useFixedLength = ElementParameterParser.getValue(node,"__USE_FIXED_LENGTH__");
List<Map<String, String>> lengths = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node,"__LENGTHS__");
List< ? extends IConnection> conns = node.getIncomingConnections();
for (IConnection conn : conns) {//3
if (conn.getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {//4
int schemaOptNum=100;
String schemaOptNumStr=ElementParameterParser.getValue(node, "__SCHEMA_OPT_NUM__");
if(schemaOptNumStr!=null && !"".equals(schemaOptNumStr) && !"\"\"".equals(schemaOptNumStr)){
schemaOptNum = Integer.parseInt(schemaOptNumStr);
}
boolean isOptimizeCode = false;
if(schemaOptNum < sizeColumns){
isOptimizeCode = true;
}
if(isOptimizeCode){//5
%>
class LogRowUtil_<%=cid%>{
<%
if (basic||vertical) { // A1
for (int i = 0; i < sizeColumns; i++) {//B1
IMetadataColumn column = columns.get(i);
JavaType javaType = JavaTypesManager.getJavaTypeFromId(column.getTalendType());
if(i%schemaOptNum==0){
%>
public void putBasicVerticalValue_<%=i/schemaOptNum%>(final <%=NodeUtil.getPrivateConnClassName(conn)%>Struct <%=conn.getName() %>,StringBuilder strBuffer_<%=cid%>){
<%
}
if (("true").equals(useFixedLength)) {//fix the column length
%>
java.util.Formatter formatter_<%=column.getLabel() %>_<%=cid%> = new java.util.Formatter(new StringBuilder());
<%
}
if (("true").equals(printColumnNames)) {//print the schema name
%>
strBuffer_<%=cid%>.append("<%=column.getLabel() %>: ");
<%
}
boolean isPrimitive = JavaTypesManager.isJavaPrimitiveType( javaType, column.isNullable());
if(!isPrimitive) { //begin
%>
if(<%=conn.getName() %>.<%=column.getLabel() %> != null) { //
<%
}
if (("true").equals(useFixedLength)) {//AAA
%>
strBuffer_<%=cid%>.append(formatter_<%=column.getLabel() %>_<%=cid%>.format("%1$"+<%=lengths.get(i).get("LENGTH") %>+"s",
<%
String pattern = column.getPattern() == null || column.getPattern().trim().length() == 0 ? null : column.getPattern();
if (javaType == JavaTypesManager.DATE && pattern != null && pattern.trim().length() != 0) {//Date
%>
FormatterUtils.format_Date(<%=conn.getName() %>.<%=column.getLabel() %>, <%= pattern %>)
<%
} else if (javaType == JavaTypesManager.BYTE_ARRAY) {//byte[]
%>
java.nio.charset.Charset.defaultCharset().decode(java.nio.ByteBuffer.wrap(<%=conn.getName() %>.<%=column.getLabel() %>)).toString()
<%
} else if (javaType == JavaTypesManager.BIGDECIMAL) {
%>
<%=column.getPrecision() == null? conn.getName() + "." + column.getLabel() : conn.getName() + "." + column.getLabel() + ".setScale(" + column.getPrecision() + ", java.math.RoundingMode.HALF_UP)" %>.toPlainString()
<%
} else if (javaType == JavaTypesManager.DOUBLE || javaType == JavaTypesManager.FLOAT ) {
%>
FormatterUtils.formatUnwithE(<%=conn.getName() %>.<%=column.getLabel() %>)
<%
} else {//others
%>
String.valueOf(<%=conn.getName() %>.<%=column.getLabel() %>)
<%
}
%>
).toString());
<%
} else {//AAA
%>
strBuffer_<%=cid%>.append(
<%
String pattern = column.getPattern() == null || column.getPattern().trim().length() == 0 ? null : column.getPattern();
if (javaType == JavaTypesManager.DATE && pattern != null && pattern.trim().length() != 0) {//Date
%>
FormatterUtils.format_Date(<%=conn.getName() %>.<%=column.getLabel() %>, <%= pattern %>)
<%
} else if (javaType == JavaTypesManager.BYTE_ARRAY) {//byte[]
%>
java.nio.charset.Charset.defaultCharset().decode(java.nio.ByteBuffer.wrap(<%=conn.getName() %>.<%=column.getLabel() %>)).toString()
<%
} else if (javaType == JavaTypesManager.BIGDECIMAL) {
%>
<%=column.getPrecision() == null? conn.getName() + "." + column.getLabel() : conn.getName() + "." + column.getLabel() + ".setScale(" + column.getPrecision() + ", java.math.RoundingMode.HALF_UP)" %>.toPlainString()
<%
} else if (javaType == JavaTypesManager.DOUBLE || javaType == JavaTypesManager.FLOAT ) {
%>
FormatterUtils.formatUnwithE(<%=conn.getName() %>.<%=column.getLabel() %>)
<%
} else {//others
%>
String.valueOf(<%=conn.getName() %>.<%=column.getLabel() %>)
<%
}
%>
);
<%
}//AAA
if(!isPrimitive) {//end
%>
} //
<%
}
if(i == sizeColumns-1){
if((i+1)%schemaOptNum==0){
%>
}
<%
}
break;
}else{
%>
strBuffer_<%=cid%>.append(<%=ElementParameterParser.getValue(node, "__FIELDSEPARATOR__") %>);
<%
}
if((i+1)%schemaOptNum==0){
%>
}
<%
}
}//B1
if(sizeColumns>0 && (sizeColumns%schemaOptNum)>0){
%>
}
<%
}
}//A1
if(tablePrint || vertical) { //C1
for (int i = 0; i < sizeColumns; i++) {//D1
IMetadataColumn column = columns.get(i);
JavaType javaType = JavaTypesManager.getJavaTypeFromId(column.getTalendType());
boolean isPrimitive = JavaTypesManager.isJavaPrimitiveType( javaType, column.isNullable());
if(i%schemaOptNum==0){
%>
public void putTableVerticalValue_<%=i/schemaOptNum%>(final <%=NodeUtil.getPrivateConnClassName(conn) %>Struct <%=conn.getName() %>,String[] row_<%=cid%>){
<%
}
if(!isPrimitive) { //begin
%>
if(<%=conn.getName() %>.<%=column.getLabel() %> != null) { //
<%
}
%>
row_<%=cid%>[<%=i %>]=
<%
String pattern = column.getPattern() == null || column.getPattern().trim().length() == 0 ? null : column.getPattern();
if (javaType == JavaTypesManager.DATE && pattern != null && pattern.trim().length() != 0) {//Date
%>
FormatterUtils.format_Date(<%=conn.getName() %>.<%=column.getLabel() %>, <%= pattern %>)
<%
} else if (javaType == JavaTypesManager.BYTE_ARRAY) {//byte[]
%>
java.nio.charset.Charset.defaultCharset().decode(java.nio.ByteBuffer.wrap(<%=conn.getName() %>.<%=column.getLabel() %>)).toString()
<%
} else if (javaType == JavaTypesManager.BIGDECIMAL) {
%>
<%=column.getPrecision() == null? conn.getName() + "." + column.getLabel() : conn.getName() + "." + column.getLabel() + ".setScale(" + column.getPrecision() + ", java.math.RoundingMode.HALF_UP)" %>.toPlainString()
<%
} else if (javaType == JavaTypesManager.DOUBLE || javaType == JavaTypesManager.FLOAT ) {
%>
FormatterUtils.formatUnwithE(<%=conn.getName() %>.<%=column.getLabel() %>)
<%
} else {//others
%>
String.valueOf(<%=conn.getName() %>.<%=column.getLabel() %>)
<%
}
%>
;
<%
if(!isPrimitive) {//end
%>
} //
<%
}
if((i+1)%schemaOptNum==0){
%>
}
<%
}
}//D1
if(sizeColumns>0&&(sizeColumns%schemaOptNum)>0){
%>
}
<%
}
}//C1
%>
}
LogRowUtil_<%=cid%> logRowUtil_<%=cid%>=new LogRowUtil_<%=cid%>();
<%
}//5
}//4
}//3
}//2
}//1
%>

View File

@@ -0,0 +1,54 @@
<%@ jet
imports="
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.metadata.IMetadataTable
java.util.List
"
%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Log4j/LogUtil.javajet"%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
log = new LogUtil(node);
List<IMetadataTable> metadatas = node.getMetadataList();
if ((metadatas!=null)&&(metadatas.size()>0)) {//1
IMetadataTable metadata = metadatas.get(0);
if (metadata!=null) {//2
String cid = node.getUniqueName();
String tablePrint = ElementParameterParser.getValue(node,"__TABLE_PRINT__");
%>
//////
<%
if (("true").equals(tablePrint)) {//print all records one time
%>
java.io.PrintStream consoleOut_<%=cid%> = null;
if (globalMap.get("tLogRow_CONSOLE")!=null)
{
consoleOut_<%=cid%> = (java.io.PrintStream) globalMap.get("tLogRow_CONSOLE");
}
else
{
consoleOut_<%=cid%> = new java.io.PrintStream(new java.io.BufferedOutputStream(System.out));
globalMap.put("tLogRow_CONSOLE",consoleOut_<%=cid%>);
}
consoleOut_<%=cid%>.println(util_<%=cid %>.format().toString());
consoleOut_<%=cid%>.flush();
<%
}
%>
//////
globalMap.put("<%=cid %>_NB_LINE",nb_line_<%=cid %>);
<%log.info(log.str("Printed row count: "), log.var("nb_line"), log.str("."));%>
///////////////////////
<%
}//2
}//1
%>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -0,0 +1,103 @@
<!-- $Id: tLogRow_perl.xml 1528 2007-01-19 17:03:36 +0000 (星期五, 19 一月 2007) smallet $ -->
<COMPONENT>
<HEADER PLATEFORM="ALL" SERIAL="" VERSION="0.101" STATUS="ALPHA"
COMPATIBILITY="ALL" AUTHOR="Talend" RELEASE_DATE="20050320A"
STARTABLE="false" PARTITIONING="AUTO" LOG4J_ENABLED="true">
<SIGNATURE></SIGNATURE>
</HEADER>
<FAMILIES>
<FAMILY>Logs_Errors</FAMILY>
</FAMILIES>
<DOCUMENTATION>
<URL />
</DOCUMENTATION>
<CONNECTORS>
<CONNECTOR CTYPE="FLOW" MAX_INPUT="1" MAX_OUTPUT="1"/>
<CONNECTOR CTYPE="ITERATE" MAX_OUTPUT="0" MAX_INPUT="0" />
<CONNECTOR CTYPE="SUBJOB_OK" MAX_INPUT="1" />
<CONNECTOR CTYPE="SUBJOB_ERROR" MAX_INPUT="1" />
<CONNECTOR CTYPE="COMPONENT_OK" />
<CONNECTOR CTYPE="COMPONENT_ERROR" />
<CONNECTOR CTYPE="RUN_IF" />
</CONNECTORS>
<PARAMETERS>
<PARAMETER NAME="SCHEMA" FIELD="SCHEMA_TYPE" REQUIRED="true"
NUM_ROW="10" />
<PARAMETER NAME="BASIC_MODE" FIELD="RADIO" NUM_ROW="11" GROUP="MODE">
<DEFAULT>true</DEFAULT>
</PARAMETER>
<PARAMETER NAME="TABLE_PRINT" FIELD="RADIO" NUM_ROW="12" GROUP="MODE">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="VERTICAL" FIELD="RADIO" NUM_ROW="13" GROUP="MODE">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="PRINT_UNIQUE" FIELD="RADIO" GROUP="TITLE_PRINT" NUM_ROW="15"
SHOW_IF="(BASIC_MODE == 'false') and (VERTICAL == 'true')">
<DEFAULT>true</DEFAULT>
</PARAMETER>
<PARAMETER NAME="PRINT_LABEL" FIELD="RADIO" GROUP="TITLE_PRINT" NUM_ROW="15"
SHOW_IF="(BASIC_MODE == 'false') and (VERTICAL == 'true')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="PRINT_UNIQUE_LABEL" FIELD="RADIO" GROUP="TITLE_PRINT" NUM_ROW="15"
SHOW_IF="(BASIC_MODE == 'false') and (VERTICAL == 'true')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="FIELDSEPARATOR" FIELD="TEXT" NUM_ROW="20"
SHOW_IF="(TABLE_PRINT == 'false') and (VERTICAL == 'false')">
<DEFAULT>"|"</DEFAULT>
</PARAMETER>
<PARAMETER NAME="PRINT_HEADER" FIELD="CHECK" NUM_ROW="25"
SHOW_IF="(TABLE_PRINT == 'false') and (VERTICAL == 'false')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="PRINT_UNIQUE_NAME" FIELD="CHECK" NUM_ROW="30"
SHOW_IF="(TABLE_PRINT == 'false') and (VERTICAL == 'false')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="PRINT_COLNAMES" FIELD="CHECK" NUM_ROW="40"
SHOW_IF="(TABLE_PRINT == 'false') and (VERTICAL == 'false')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="USE_FIXED_LENGTH" FIELD="CHECK" NUM_ROW="50"
SHOW_IF="(TABLE_PRINT == 'false') and (VERTICAL == 'false')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="LENGTHS" FIELD="TABLE" REQUIRED="true"
NUM_ROW="60" NB_LINES="5"
SHOW_IF="(USE_FIXED_LENGTH == 'true') and ((TABLE_PRINT == 'false') and (VERTICAL == 'false'))">
<ITEMS BASED_ON_SCHEMA="true">
<ITEM NAME="LENGTH" VALUE="10" />
</ITEMS>
</PARAMETER>
<PARAMETER NAME="PRINT_CONTENT_WITH_LOG4J" FIELD="CHECK" NUM_ROW="70" >
<DEFAULT>true</DEFAULT>
</PARAMETER>
<PARAMETER NAME="SCHEMA_OPT_NUM" FIELD="TEXT" NUM_ROW="100" REQUIRED="true" SHOW="false">
<DEFAULT>100</DEFAULT>
</PARAMETER>
</PARAMETERS>
<CODEGENERATION />
<RETURNS>
<RETURN NAME="NB_LINE" TYPE="id_Integer" AVAILABILITY="AFTER" />
</RETURNS>
</COMPONENT>

View File

@@ -0,0 +1,313 @@
<%@ jet
imports="
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.process.IConnection
org.talend.core.model.process.IConnectionCategory
org.talend.core.model.metadata.types.JavaTypesManager
org.talend.core.model.metadata.types.JavaType
java.util.List
java.util.Map
"
%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
List<IMetadataTable> metadatas = node.getMetadataList();
if ((metadatas!=null)&&(metadatas.size()>0)) {//1
IMetadataTable metadata = metadatas.get(0);
if (metadata!=null) {//2
String cid = node.getUniqueName();
boolean tablePrint = ("true").equals(ElementParameterParser.getValue(node,"__TABLE_PRINT__"));
boolean vertical = ("true").equals(ElementParameterParser.getValue(node,"__VERTICAL__"));
boolean basic = !(tablePrint||vertical);
String printUniqueName = ElementParameterParser.getValue(node,"__PRINT_UNIQUE_NAME__");
String printColumnNames = ElementParameterParser.getValue(node,"__PRINT_COLNAMES__");
String useFixedLength = ElementParameterParser.getValue(node,"__USE_FIXED_LENGTH__");
List<Map<String, String>> lengths = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node,"__LENGTHS__");
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
boolean isLogContent = ("true").equals(ElementParameterParser.getValue(node,"__PRINT_CONTENT_WITH_LOG4J__"));
List< ? extends IConnection> conns = node.getIncomingConnections();
for (IConnection conn : conns) {//3
if (conn.getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {//4
%>
///////////////////////
<%
List<IMetadataColumn> columns = metadata.getListColumns();
int sizeColumns = columns.size();
int schemaOptNum=100;
String schemaOptNumStr=ElementParameterParser.getValue(node, "__SCHEMA_OPT_NUM__");
if(schemaOptNumStr!=null && !"".equals(schemaOptNumStr) && !"\"\"".equals(schemaOptNumStr)){
schemaOptNum = Integer.parseInt(schemaOptNumStr);
}
boolean isOptimizeCode = false;
if(schemaOptNum < sizeColumns){
isOptimizeCode = true;
}
%>
<%
if (basic||vertical) { // don't print the table form//***
%>
strBuffer_<%=cid%> = new StringBuilder();
<%
if (("true").equals(printUniqueName)) {//print the component name.
%>
strBuffer_<%=cid%>.append("[<%=cid%>] ");
<%
}
%>
<%
for (int i = 0; i < sizeColumns; i++) {//5
IMetadataColumn column = columns.get(i);
JavaType javaType = JavaTypesManager.getJavaTypeFromId(column.getTalendType());
if(isOptimizeCode){
if(i%schemaOptNum == 0){
%>
logRowUtil_<%=cid%>.putBasicVerticalValue_<%=i/schemaOptNum%>(<%=conn.getName() %>,strBuffer_<%=cid%>);
<%
}
}else{
if (("true").equals(useFixedLength)) {//fix the column length
%>
java.util.Formatter formatter_<%=column.getLabel() %>_<%=cid%> = new java.util.Formatter(new StringBuilder());
<%
}
%>
<%
if (("true").equals(printColumnNames)) {//print the schema name
%>
strBuffer_<%=cid%>.append("<%=column.getLabel() %>: ");
<%
}
%>
<%
boolean isPrimitive = JavaTypesManager.isJavaPrimitiveType( javaType, column.isNullable());
if(!isPrimitive) { //begin
%>
if(<%=conn.getName() %>.<%=column.getLabel() %> != null) { //
<%
}
%>
<%
if (("true").equals(useFixedLength)) {//fixed the column length
%>
strBuffer_<%=cid%>.append(formatter_<%=column.getLabel() %>_<%=cid%>.format("%1$"+<%=lengths.get(i).get("LENGTH") %>+"s",
<%
String pattern = column.getPattern() == null || column.getPattern().trim().length() == 0 ? null : column.getPattern();
if (javaType == JavaTypesManager.DATE && pattern != null && pattern.trim().length() != 0) {//Date
%>
FormatterUtils.format_Date(<%=conn.getName() %>.<%=column.getLabel() %>, <%= pattern %>)
<%
} else if (javaType == JavaTypesManager.BYTE_ARRAY) {//byte[]
%>
java.nio.charset.Charset.defaultCharset().decode(java.nio.ByteBuffer.wrap(<%=conn.getName() %>.<%=column.getLabel() %>)).toString()
<%
} else if (javaType == JavaTypesManager.BIGDECIMAL) {
%>
<%=column.getPrecision() == null? conn.getName() + "." + column.getLabel() : conn.getName() + "." + column.getLabel() + ".setScale(" + column.getPrecision() + ", java.math.RoundingMode.HALF_UP)" %>.toPlainString()
<%
} else if (javaType == JavaTypesManager.DOUBLE || javaType == JavaTypesManager.FLOAT ) {
%>
FormatterUtils.formatUnwithE(<%=conn.getName() %>.<%=column.getLabel() %>)
<%
} else {//others
%>
String.valueOf(<%=conn.getName() %>.<%=column.getLabel() %>)
<%
}
%>
).toString());
<%
} else {
%>
strBuffer_<%=cid%>.append(
<%
String pattern = column.getPattern() == null || column.getPattern().trim().length() == 0 ? null : column.getPattern();
if (javaType == JavaTypesManager.DATE && pattern != null && pattern.trim().length() != 0) {//Date
%>
FormatterUtils.format_Date(<%=conn.getName() %>.<%=column.getLabel() %>, <%= pattern %>)
<%
} else if (javaType == JavaTypesManager.BYTE_ARRAY) {//byte[]
%>
java.nio.charset.Charset.defaultCharset().decode(java.nio.ByteBuffer.wrap(<%=conn.getName() %>.<%=column.getLabel() %>)).toString()
<%
} else if (javaType == JavaTypesManager.BIGDECIMAL) {
%>
<%=column.getPrecision() == null? conn.getName() + "." + column.getLabel() : conn.getName() + "." + column.getLabel() + ".setScale(" + column.getPrecision() + ", java.math.RoundingMode.HALF_UP)" %>.toPlainString()
<%
} else if (javaType == JavaTypesManager.DOUBLE || javaType == JavaTypesManager.FLOAT ) {
%>
FormatterUtils.formatUnwithE(<%=conn.getName() %>.<%=column.getLabel() %>)
<%
} else {//others
%>
String.valueOf(<%=conn.getName() %>.<%=column.getLabel() %>)
<%
}
%>
);
<%
}
%>
<%
if(!isPrimitive) {//end
%>
} //
<%
}
%>
<%
if(i == sizeColumns-1) break;
%>
strBuffer_<%=cid%>.append(<%=ElementParameterParser.getValue(node, "__FIELDSEPARATOR__") %>);
<%
}
}//5
}
if (basic) {
%>
if (globalMap.get("tLogRow_CONSOLE")!=null)
{
consoleOut_<%=cid%> = (java.io.PrintStream) globalMap.get("tLogRow_CONSOLE");
}
else
{
consoleOut_<%=cid%> = new java.io.PrintStream(new java.io.BufferedOutputStream(System.out));
globalMap.put("tLogRow_CONSOLE",consoleOut_<%=cid%>);
}
<%
if(isLogContent && isLog4jEnabled){
%>
log.info("<%=cid%> - Content of row "+(nb_line_<%=cid %>+1)+": " + strBuffer_<%=cid%>.toString());
<%
}
%>
consoleOut_<%=cid%>.println(strBuffer_<%=cid%>.toString());
consoleOut_<%=cid%>.flush();
nb_line_<%=cid %>++;
<%
}
if(tablePrint || vertical) { //print the table and vertical model//***
%>
String[] row_<%=cid%> = new String[<%=sizeColumns %>];
<%
for (int i = 0; i < sizeColumns; i++) {//5
IMetadataColumn column = columns.get(i);
JavaType javaType = JavaTypesManager.getJavaTypeFromId(column.getTalendType());
if(isOptimizeCode){
if(i%schemaOptNum == 0){
%>
logRowUtil_<%=cid%>.putTableVerticalValue_<%=i/schemaOptNum%>(<%=conn.getName() %>,row_<%=cid%>);
<%
}
}else{
boolean isPrimitive = JavaTypesManager.isJavaPrimitiveType( javaType, column.isNullable());
if(!isPrimitive) { //begin
%>
if(<%=conn.getName() %>.<%=column.getLabel() %> != null) { //
<%
}
%>
row_<%=cid%>[<%=i %>]=
<%
String pattern = column.getPattern() == null || column.getPattern().trim().length() == 0 ? null : column.getPattern();
if (javaType == JavaTypesManager.DATE && pattern != null && pattern.trim().length() != 0) {//Date
%>
FormatterUtils.format_Date(<%=conn.getName() %>.<%=column.getLabel() %>, <%= pattern %>)
<%
} else if (javaType == JavaTypesManager.BYTE_ARRAY) {//byte[]
%>
java.nio.charset.Charset.defaultCharset().decode(java.nio.ByteBuffer.wrap(<%=conn.getName() %>.<%=column.getLabel() %>)).toString()
<%
} else if (javaType == JavaTypesManager.BIGDECIMAL) {
%>
<%=column.getPrecision() == null? conn.getName() + "." + column.getLabel() : conn.getName() + "." + column.getLabel() + ".setScale(" + column.getPrecision() + ", java.math.RoundingMode.HALF_UP)" %>.toPlainString()
<%
} else if (javaType == JavaTypesManager.DOUBLE || javaType == JavaTypesManager.FLOAT ) {
%>
FormatterUtils.formatUnwithE(<%=conn.getName() %>.<%=column.getLabel() %>)
<%
} else {//others
%>
String.valueOf(<%=conn.getName() %>.<%=column.getLabel() %>)
<%
}
%>
;
<%
if(!isPrimitive) {//end
%>
} //
<%
}
%>
<%
}
}//5
if(tablePrint){
%>
util_<%=cid %>.addRow(row_<%=cid%>);
nb_line_<%=cid %>++;
<%
}else{
%>
nb_line_<%=cid %>++;
consoleOut_<%=cid%>.println(util_<%=cid %>.print(row_<%=cid%>,nb_line_<%=cid%>));
consoleOut_<%=cid%>.flush();
<%
}
if(isLogContent && isLog4jEnabled){
%>
log.info("<%=cid%> - Content of row "+nb_line_<%=cid %>+": " + TalendString.unionString("|",row_<%=cid%>));
<%
}
}//***
%>
//////
//////
///////////////////////
<%
}//4
}//3
}//2
}//1
%>

View File

@@ -0,0 +1,20 @@
LONG_NAME=Displays the flow content (rows) on the Run Job console
HELP=org.talend.help.tLogRow
MODE.NAME=Mode
BASIC_MODE.NAME=Basic
TABLE_PRINT.NAME=Table (print values in cells of a table)
VERTICAL.NAME=Vertical (each row is a key/value list)
FIELDSEPARATOR.NAME=Field Separator
NB_LINE.NAME=Number of lines
PRINT_UNIQUE_NAME.NAME=Print component unique name in front of each output row
PRINT_COLNAMES.NAME=Print schema column name in front of each value
USE_FIXED_LENGTH.NAME=Use fixed length for values
LENGTHS.NAME=Lengths
LENGTHS.ITEM.LENGTH=Length
PRINT_HEADER.NAME=Print header
PRINT_UNIQUE.NAME=Print unique name
PRINT_LABEL.NAME=Print label
PRINT_UNIQUE_LABEL.NAME=Print unique name and label
TITLE_PRINT.NAME=Title printing mode
SCHEMA_OPT_NUM.NAME=Min column number of optimize code
PRINT_CONTENT_WITH_LOG4J.NAME=Print content with log4j

View File

@@ -0,0 +1,10 @@
LONG_NAME=Zeigt den Inhalt (Zeilen) des Datenflusses auf der RunJob-Konsole an.
MODE.NAME=Modus
BASIC_MODE.NAME=Einfach
VERTICAL.NAME=Vertikal (wobei jede Zeile eine Schl\u00FCssel/Wertliste ist)
FIELDSEPARATOR.NAME=Feldseparator
NB_LINE.NAME=Anzahl an Zeilen
USE_FIXED_LENGTH.NAME=Feste L\u00E4nge f\u00FCr Werte verwenden
LENGTHS.ITEM.LENGTH=L\u00E4nge
PRINT_HEADER.NAME=Kopfzeile ausgeben
PRINT_LABEL.NAME=Beschriftungen ausgeben

View File

@@ -0,0 +1,3 @@
BASIC_MODE.NAME=Basico
FIELDSEPARATOR.NAME=Separador de Campo
LENGTHS.ITEM.LENGTH=Longitud

View File

@@ -0,0 +1,20 @@
LONG_NAME=Affiche le contenu du flux (lignes) dans la console d'ex\u00E9cution du Job
HELP=org.talend.help.tLogRow
MODE.NAME=Mode
BASIC_MODE.NAME=Simple
TABLE_PRINT.NAME=Table (afficher les valeurs dans des cellules)
VERTICAL.NAME=Vertical (chaque ligne est une liste cl\u00E9/valeur)
FIELDSEPARATOR.NAME=S\u00E9parateur de champs
NB_LINE.NAME=Nombre de lignes
PRINT_UNIQUE_NAME.NAME=Afficher le nom unique du composant devant chaque ligne de sortie
PRINT_COLNAMES.NAME=Afficher le nom de la colonne du sch\u00E9ma en face de chaque valeur
USE_FIXED_LENGTH.NAME=Utiliser une longueur fixe pour les valeurs
LENGTHS.NAME=Longueurs
LENGTHS.ITEM.LENGTH=Longueur
PRINT_HEADER.NAME=Afficher l'en-t\u00EAte
PRINT_UNIQUE.NAME=Afficher le nom unique
PRINT_LABEL.NAME=Afficher le libell\u00E9
PRINT_UNIQUE_LABEL.NAME=Afficher le nom unique et le libell\u00E9
TITLE_PRINT.NAME=Mode d'affichage du titre
SCHEMA_OPT_NUM.NAME=Nombre minimum de colonnes au code optimis\u00E9
PRINT_CONTENT_WITH_LOG4J.NAME=Afficher le contenu avec Log4j

View File

@@ -0,0 +1,17 @@
LONG_NAME=Mostra il contenuto del flusso (righe) nella console del Run Job
MODE.NAME=Modalit\u00E0
BASIC_MODE.NAME=Base
TABLE_PRINT.NAME=Tabella (stampa valori nelle celle di una tabella)
VERTICAL.NAME=Verticale (ogni riga \u00E8 una lista chiave/valore)
FIELDSEPARATOR.NAME=Separatore di campo
NB_LINE.NAME=Numero riga
PRINT_UNIQUE_NAME.NAME=Stampa nome componenti univoci all'inizio di ogni riga di output
PRINT_COLNAMES.NAME=Stampa nome colonna dello schema all'inizio di ogni valore
USE_FIXED_LENGTH.NAME=Usa lunghezza fissa per valori
LENGTHS.NAME=Lunghezze
LENGTHS.ITEM.LENGTH=Lunghezza
PRINT_HEADER.NAME=Stampa Header
PRINT_UNIQUE.NAME=Stampa nome univoco
PRINT_LABEL.NAME=Stampa etichetta
PRINT_UNIQUE_LABEL.NAME=Stampa etichetta e nome univoco
TITLE_PRINT.NAME=Titolo modalit\u00E0 stampa

View File

@@ -0,0 +1,20 @@
LONG_NAME=[\u30B8\u30E7\u30D6\u5B9F\u884C]\u30B3\u30F3\u30BD\u30FC\u30EB\u3067\u30D5\u30ED\u30FC\u30B3\u30F3\u30C6\u30F3\u30C4(\u884C)\u3092\u8868\u793A\u3057\u307E\u3059\u3002
HELP=org.talend.help.tLogRow
MODE.NAME=\u30E2\u30FC\u30C9
BASIC_MODE.NAME=\u30D9\u30FC\u30B7\u30C3\u30AF
TABLE_PRINT.NAME=\u30C6\u30FC\u30D6\u30EB\uFF08\u8868\u306E\u30BB\u30EB\u3067\u5024\u3092\u8868\u793A\uFF09
VERTICAL.NAME=\u7E26\u306B\u51FA\u529B\uFF08\u5404\u884C\u3092\u30AD\u30FC/\u5024\u306E\u30EA\u30B9\u30C8\u3067\u8868\u793A\uFF09
FIELDSEPARATOR.NAME=\u30D5\u30A3\u30FC\u30EB\u30C9\u533A\u5207\u308A
NB_LINE.NAME=\u884C\u6570
PRINT_UNIQUE_NAME.NAME=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30E6\u30CB\u30FC\u30AF\u540D\u3092\u51FA\u529B\u306E\u5404\u884C\u306E\u524D\u306B\u8868\u793A
PRINT_COLNAMES.NAME=\u30AB\u30E9\u30E0\u540D\u3092\u5024\u306E\u524D\u306B\u8868\u793A
USE_FIXED_LENGTH.NAME=\u5024\u3092\u56FA\u5B9A\u9577\u3067\u8868\u793A
LENGTHS.NAME=\u9577\u3055
LENGTHS.ITEM.LENGTH=\u9577\u3055
PRINT_HEADER.NAME=\u30D8\u30C3\u30C0\u30FC\u306E\u8868\u793A
PRINT_UNIQUE.NAME=\u30E6\u30CB\u30FC\u30AF\u540D\u306E\u8868\u793A
PRINT_LABEL.NAME=\u30E9\u30D9\u30EB\u306E\u8868\u793A
PRINT_UNIQUE_LABEL.NAME=\u30E6\u30CB\u30FC\u30AF\u540D\u3068\u30E9\u30D9\u30EB\u306E\u8868\u793A
TITLE_PRINT.NAME=\u30BF\u30A4\u30C8\u30EB\u8868\u793A\u30E2\u30FC\u30C9
SCHEMA_OPT_NUM.NAME=\u6700\u9069\u5316\u30B3\u30FC\u30C9\u306E\u6700\u5C0F\u30AB\u30E9\u30E0\u6570
PRINT_CONTENT_WITH_LOG4J.NAME=log4j\u3067\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u5370\u5237

View File

@@ -0,0 +1,7 @@
HELP=org.talend.help.tLogRow
MODE.NAME=\u30E2\u30FC\u30C9
BASIC_MODE.NAME=\u30D9\u30FC\u30B7\u30C3\u30AF
FIELDSEPARATOR.NAME=\u30D5\u30A3\u30FC\u30EB\u30C9\u30BB\u30D1\u30EC\u30FC\u30BF
NB_LINE.NAME=\u30E9\u30A4\u30F3\u6570
LENGTHS.NAME=\u9577\u3055
LENGTHS.ITEM.LENGTH=\u9577\u3055

View File

@@ -0,0 +1,5 @@
BASIC_MODE.NAME=\u041E\u0441\u043D\u043E\u0432\u043D\u043E\u0439
VERTICAL.NAME=\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u0439 (\u043A\u0430\u0436\u0434\u044B\u0439 \u0440\u044F\u0434 - \u043F\u0430\u0440\u0430 \u043A\u043B\u044E\u0447/\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435)
FIELDSEPARATOR.NAME=\u0420\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C \u043F\u043E\u043B\u0435\u0439
NB_LINE.NAME=\u0427\u0438\u0441\u043B\u043E \u0441\u0442\u0440\u043E\u043A
LENGTHS.ITEM.LENGTH=\u0414\u043B\u0438\u043D\u0430

View File

@@ -0,0 +1,2 @@
MODE.NAME=M\u00F3d
LENGTHS.ITEM.LENGTH=D\u013A\u017Eka

View File

@@ -0,0 +1,2 @@
MODE.NAME=M<EFBFBD>d
LENGTHS.ITEM.LENGTH=D\u013A\u017Eka

View File

@@ -0,0 +1,20 @@
LONG_NAME=\u5728\u8FD0\u884C\u4F5C\u4E1A\u63A7\u5236\u53F0\u4E0A\u663E\u793A\u6D41\u5185\u5BB9 (\u884C)
HELP=org.talend.help.tLogRow
MODE.NAME=\u6A21\u5F0F
BASIC_MODE.NAME=\u57FA\u672C
TABLE_PRINT.NAME=\u8868 (\u5728\u8868\u7684\u5355\u5143\u683C\u4E2D\u6253\u5370\u503C)
VERTICAL.NAME=\u5782\u76F4 (\u6BCF\u884C\u90FD\u662F\u4E00\u4E2A\u952E/\u503C\u5217\u8868)
FIELDSEPARATOR.NAME=\u5B57\u6BB5\u5206\u9694\u7B26
NB_LINE.NAME=\u884C\u6570
PRINT_UNIQUE_NAME.NAME=\u5728\u6BCF\u4E00\u4E2A\u8F93\u51FA\u884C\u524D\u6253\u5370\u552F\u4E00\u7EC4\u4EF6\u540D
PRINT_COLNAMES.NAME=\u5C06 schema \u5217\u540D\u6253\u5370\u5728\u6BCF\u4E2A\u503C\u7684\u524D\u9762
USE_FIXED_LENGTH.NAME=\u4F7F\u7528\u56FA\u5B9A\u957F\u5EA6\u7684\u503C
LENGTHS.NAME=\u957F\u5EA6
LENGTHS.ITEM.LENGTH=\u957F\u5EA6
PRINT_HEADER.NAME=\u6253\u5370\u6587\u4EF6\u5934
PRINT_UNIQUE.NAME=\u6253\u5370\u552F\u4E00\u540D\u79F0
PRINT_LABEL.NAME=\u6253\u5370\u6807\u7B7E
PRINT_UNIQUE_LABEL.NAME=\u6253\u5370\u552F\u4E00\u540D\u79F0\u548C\u6807\u7B7E
TITLE_PRINT.NAME=\u6807\u9898\u6253\u5370\u6A21\u5F0F
SCHEMA_OPT_NUM.NAME=\u4F18\u5316\u4EE3\u7801\u7684\u6700\u5C0F\u5217\u6570
PRINT_CONTENT_WITH_LOG4J.NAME=\u7528 log4j \u6253\u5370\u5185\u5BB9

View File

@@ -0,0 +1,57 @@
<%@ jet
%>
<%
JavaType[] commonTypes = {
JavaTypesManager.STRING,
JavaTypesManager.INTEGER,
JavaTypesManager.LONG,
JavaTypesManager.SHORT,
JavaTypesManager.BOOLEAN,
JavaTypesManager.CHARACTER,
JavaTypesManager.BYTE,
JavaTypesManager.BYTE_ARRAY,
JavaTypesManager.DATE,
JavaTypesManager.DOUBLE,
JavaTypesManager.FLOAT,
JavaTypesManager.OBJECT,
JavaTypesManager.LIST,
JavaTypesManager.BIGDECIMAL
};
for(JavaType sourceType : commonTypes) {
for(JavaType targetType : commonTypes) {
if(sourceType == targetType) {
continue;
}
String sourceTypeToGenerate = JavaTypesManager.getTypeToGenerate(sourceType.getId(), true);
sourceTypeToGenerate = sourceTypeToGenerate.contains(".") ? sourceTypeToGenerate.substring(sourceTypeToGenerate.lastIndexOf(".") + 1) : sourceTypeToGenerate;
if (("byte[]").equals(sourceTypeToGenerate)){
sourceTypeToGenerate = "byteArray";
}
String targetTypeToGenerate = JavaTypesManager.getTypeToGenerate(targetType.getId(), true);
targetTypeToGenerate = targetTypeToGenerate.contains(".") ? targetTypeToGenerate.substring(targetTypeToGenerate.lastIndexOf(".") + 1) : targetTypeToGenerate;
if (("byte[]").equals(targetTypeToGenerate)){
targetTypeToGenerate = "byteArray";
}
String function = null;
if("Date".equals(targetTypeToGenerate) && ("String".equals(sourceTypeToGenerate)||"Object".equals(sourceTypeToGenerate))) {
function = contact("routines.system.TypeConvert.", sourceTypeToGenerate, "2", targetTypeToGenerate, "(${0}, ${1})");
} else if("String".equals(targetTypeToGenerate) && "Date".equals(sourceTypeToGenerate)) {
function = contact("routines.system.TypeConvert.", sourceTypeToGenerate, "2", targetTypeToGenerate, "(${0}, ${1})");
} else {
function = contact("routines.system.TypeConvert.", sourceTypeToGenerate, "2", targetTypeToGenerate, "(${0})");
}
autoConverterMap.put(contact(sourceType.getId(), ":", targetType.getId()), function);
}
}
autoConverterMap.put(contact("id_Dynamic", ":", JavaTypesManager.STRING.getId()), "String.valueOf(${0})");
autoConverterMap.put(contact("id_Document", ":", JavaTypesManager.STRING.getId()), "String.valueOf(${0})");
autoConverterMap.put(contact(JavaTypesManager.STRING.getId(), ":", "id_Document"), "routines.system.ParserUtils.parseTo_Document(${0})");
%>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,40 @@
<%@ jet
imports="
java.util.ArrayList
java.util.List
java.util.Map
java.util.HashMap
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
org.talend.core.model.metadata.types.JavaTypesManager
org.talend.core.model.metadata.types.JavaType
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.designer.mapper.MapperComponent
org.talend.designer.mapper.external.data.ExternalMapperData
org.talend.designer.mapper.external.data.ExternalMapperTable
org.talend.designer.mapper.external.data.ExternalMapperTableEntry
org.talend.core.model.process.IConnection
org.talend.designer.mapper.language.ILanguage
org.talend.designer.mapper.language.generation.GenerationManagerFactory
org.talend.designer.mapper.language.generation.JavaGenerationManager
org.talend.designer.mapper.language.LanguageProvider
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.process.EConnectionType
org.talend.core.model.process.INode
org.talend.core.model.utils.TalendTextUtils
org.talend.designer.mapper.model.tableentry.TableEntryLocation
org.talend.designer.mapper.utils.DataMapExpressionParser
"
skeleton="tMap_commons.skeleton"
%>
<%@ include file="tMap_begin.inc.javajet" %>

View File

@@ -0,0 +1,259 @@
public class CLASS {
public boolean hasConcurrencyContext(List<IConnection> inputConnections, List<? extends INode> graphicalNodes) {
for(IConnection connection : inputConnections) {
EConnectionType connectionType = connection.getLineStyle();
if (connectionType == EConnectionType.FLOW_MAIN) {
INode node = connection.getSource();
return recursiveSearchIterateForConcurrency(node, graphicalNodes);
}
}
return false;
}
public boolean hasIterateConnectionBefore(List<IConnection> inputConnections, List<? extends INode> graphicalNodes) {
for(IConnection connection : inputConnections) {
EConnectionType connectionType = connection.getLineStyle();
if (connectionType == EConnectionType.FLOW_MAIN) {
INode node = connection.getSource();
return recursiveSearchIterate(node, graphicalNodes);
}
}
return false;
}
public boolean recursiveSearchIterate(INode node, List<? extends INode> graphicalNodes) {
//System.out.println(node);
List<IConnection> connections = (List<IConnection>) node.getIncomingConnections();
for(IConnection connection : connections) {
EConnectionType connectionType = connection.getLineStyle();
if (connectionType == EConnectionType.FLOW_MAIN) {
node = connection.getSource();
//System.out.println(connection.getName() + " connectionType=" + connectionType + " connection=" + String.valueOf(connection));
return recursiveSearchIterate(node, graphicalNodes);
} else if(connectionType == EConnectionType.ITERATE) {
//System.out.println("ITERATE return true");
return true;
}else{
//for virtual component
boolean find = false;
for(INode loopNode : graphicalNodes) {
if(loopNode.getUniqueName().equals(node.getUniqueName())){
find = true;
}
}
if(!find){
List<IConnection> vConnections = (List<IConnection>) node.getIncomingConnections();
for(IConnection vConnection : vConnections) {
node = vConnection.getSource();
break;
}
return recursiveSearchIterate(node, graphicalNodes);
}
}
}
//System.out.println("return false");
return false;
}
private boolean recursiveSearchIterateForConcurrency(INode node, List<? extends INode> graphicalNodes) {
List<IConnection> connections = (List<IConnection>) node.getIncomingConnections();
for(IConnection connection : connections) {
EConnectionType connectionType = connection.getLineStyle();
if (connectionType == EConnectionType.FLOW_MAIN) {
node = connection.getSource();
return recursiveSearchIterateForConcurrency(node, graphicalNodes);
} else if(connectionType == EConnectionType.ITERATE) {
boolean parallelIterate = "true".equals(ElementParameterParser.getValue(connection, "__ENABLE_PARALLEL__"));
if(parallelIterate) {
return true;
} else {
node = connection.getSource();
return recursiveSearchIterateForConcurrency(node, graphicalNodes);
}
}else{
//for virtual component
boolean find = false;
for(INode loopNode : graphicalNodes) {
if(loopNode.getUniqueName().equals(node.getUniqueName())){
find = true;
}
}
if(!find){
List<IConnection> vConnections = (List<IConnection>) node.getIncomingConnections();
for(IConnection vConnection : vConnections) {
node = vConnection.getSource();
break;
}
return recursiveSearchIterateForConcurrency(node, graphicalNodes);
}
}
}
return false;
}
public INode searchSubProcessStartNode(IConnection connection) {
INode source = connection.getSource();
//System.out.println(" source=" + source);
INode subprocessStartNode = null;
if(source != null) {
String searchedComponentName = source.getUniqueName();
//System.out.println(" searchedComponentName=" + searchedComponentName);
List<? extends INode> generatedNodes = source.getProcess().getGeneratingNodes();
for(INode loopNode : generatedNodes) {
if(loopNode.getUniqueName().equals(searchedComponentName)) {
subprocessStartNode = loopNode.getSubProcessStartNode(false);
//System.out.println(" subprocessStartNode=" + subprocessStartNode.getUniqueName());
}
}
}
return subprocessStartNode;
}
public boolean hasJoinedTable(String tableNameToTest, ExternalMapperData data) {
for (ExternalMapperTable table : data.getOutputTables()) {
if (table.getIsJoinTableOf() != null && table.getIsJoinTableOf().equals(tableNameToTest)) {
return true;
}
}
return false;
}
public boolean isErrorReject(ExternalMapperTable table){
String errorMessage = null;
String errorStackTrace = null;
if(table!=null&&table.getName()!=null&&table.getName().endsWith("ErrorReject")){
for(ExternalMapperTableEntry entry:table.getMetadataTableEntries()){
if("errorMessage".equals(entry.getName())){
errorMessage = entry.getName();
}else if("errorStackTrace".equals(entry.getName())){
errorStackTrace = entry.getName();
}
}
if(errorMessage!=null&&errorStackTrace!=null){
return true;
}
}
return false;
}
public String getExpressionWithAutoConvertFunction(
String expression,
ExternalMapperTableEntry targetTableEntry,
IMetadataColumn targetColumn,
DataMapExpressionParser expressionParser,
Map<TableEntryLocation, ExternalMapperTableEntry> locationMap4Entry,
Map<TableEntryLocation, IMetadataColumn> locationMap4Column,
Map<String,String> autoConverterMap,
boolean enable_auto_convert_type) {
if(!enable_auto_convert_type) {
return expression;
}
if(expression == null || expression.isEmpty()) {
return expression;
}
TableEntryLocation uniqueLocation = getUniqueEntryLocation(expression);
if(uniqueLocation == null) {
return expression;
}
ExternalMapperTableEntry uniqueSourceEntry = locationMap4Entry.get(uniqueLocation);
if(uniqueSourceEntry == null) {
return expression;
}
String source_talend_type = uniqueSourceEntry.getType();
String target_talend_type = targetTableEntry.getType();
String convertFunction = autoConverterMap.get(contact(source_talend_type, ":", target_talend_type));
if(convertFunction!=null && !convertFunction.isEmpty()) {
StringBuilder strbuilder = new StringBuilder();
if(uniqueSourceEntry.isNullable()) {
strbuilder.append("(((").append(expression).append(") == null) ? null : (");
}
expression = convertFunction.replace("${0}", expression);
String pattern = null;
if((JavaTypesManager.STRING.getId().equals(source_talend_type)||JavaTypesManager.OBJECT.getId().equals(source_talend_type)) && JavaTypesManager.DATE.getId().equals(target_talend_type)) {
if(targetColumn!=null) {
pattern = targetColumn.getPattern();
}
if(pattern == null || pattern.isEmpty()) {
pattern = "\"dd-MM-yyyy\"";
}
} else if(JavaTypesManager.DATE.getId().equals(source_talend_type) && JavaTypesManager.STRING.getId().equals(target_talend_type)) {
IMetadataColumn sourceColumn = locationMap4Column.get(uniqueLocation);
if(sourceColumn!=null) {
pattern = sourceColumn.getPattern();
}
if(pattern == null || pattern.isEmpty()) {
pattern = "\"dd-MM-yyyy\"";
}
}
if(pattern != null) {
expression = expression.replace("${1}", pattern);
}
strbuilder.append(expression);
if(uniqueSourceEntry.isNullable()) {
strbuilder.append("))");
}
return strbuilder.toString();
}
return expression;
}
java.util.regex.Pattern locationPattern = java.util.regex.Pattern.compile(LanguageProvider.getJavaLanguage().getLocationPattern());
private TableEntryLocation getUniqueEntryLocation(String expression) {
java.util.regex.Matcher matcher = locationPattern.matcher(expression);
if(matcher.matches()) {
return new TableEntryLocation(matcher.group(1), matcher.group(2));
}
return null;
}
StringBuilder strbuilder = new StringBuilder(20);
private String contact(String... content) {
strbuilder.setLength(0);
for(String each : content) {
strbuilder.append(each);
}
return strbuilder.toString();
}
public String generate(Object argument) {
}
}

View File

@@ -0,0 +1,169 @@
<%@ jet
imports="
java.util.ArrayList
java.util.List
org.talend.designer.mapper.external.data.ExternalMapperData
org.talend.designer.mapper.external.data.ExternalMapperTable
org.talend.designer.mapper.external.data.ExternalMapperTableEntry
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.designer.mapper.MapperComponent
org.talend.core.model.process.IElementParameter
org.talend.core.model.process.INode
org.talend.core.model.process.IConnection
java.util.HashMap
java.util.Map
org.talend.core.model.process.ElementParameterParser
"
skeleton="tMap_commons.skeleton"
%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
MapperComponent node = (MapperComponent) codeGenArgument.getArgument();
boolean stats = codeGenArgument.isStatistics();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ExternalMapperData data = (ExternalMapperData) node.getExternalData();
String componentName = node.getUniqueName();
boolean isVirtualIn = componentName.endsWith("TMAP_IN");
boolean isVirtualOut = componentName.endsWith("TMAP_OUT");
List<IConnection> inputConnections = (List<IConnection>) node.getIncomingConnections();
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
String uniqueNameComponent = componentName.replaceAll("_TMAP_IN", "");
uniqueNameComponent = uniqueNameComponent.replaceAll("_TMAP_OUT", "");
if(isVirtualIn) {
String searchedComponentName = componentName.replaceAll("TMAP_IN", "TMAP_OUT");
List<? extends INode> generatedNodes = node.getProcess().getGeneratingNodes();
for(INode loopNode : generatedNodes) {
if(loopNode.getUniqueName().equals(searchedComponentName)) {
inputConnections = (List<IConnection>) loopNode.getIncomingConnections();
break;
}
}
}
// Bug partially fixed, see bug:785
// Bug partially fixed, see bug:3966
boolean hasIterate = hasIterateConnectionBefore(inputConnections, node.getProcess().getGraphicalNodes());
%>
// ###############################
// # Lookup hashes releasing
<%
if(!isVirtualOut) {
HashMap<String, IConnection> hNameToConnection = new HashMap<String, IConnection>();
for (IConnection connection : inputConnections) {
hNameToConnection.put(connection.getName(), connection);
}
List<ExternalMapperTable> inputTablesList = new ArrayList<ExternalMapperTable>(data.getInputTables());
int lstSizeInputs = inputTablesList.size();
if(lstSizeInputs > 1) {
String mainTableName = inputTablesList.get(0).getName();
int joinedTableIndex = 0;
int tmpJoinedTableIndex = 0;
boolean hasPersistentLookup = false;
for (int i = 0; i < lstSizeInputs; i++) {
ExternalMapperTable inputTable = (ExternalMapperTable) inputTablesList.get(i);
if(hNameToConnection.get(inputTable.getName()) != null) {
if(inputTable.isPersistent()
&& !"ALL_ROWS".equals(inputTable.getMatchingMode())
) {
joinedTableIndex = tmpJoinedTableIndex;
hasPersistentLookup = true;
}
tmpJoinedTableIndex++;
}
}
if(hasPersistentLookup) {
%>
fsi_<%=uniqueNameComponent%>_<%=joinedTableIndex%>.endGet();
<%
}
}
for (int i = 1; i < lstSizeInputs; i++) {
ExternalMapperTable inputTable = (ExternalMapperTable) inputTablesList.get(i);
List<ExternalMapperTableEntry> tableEntries = inputTable.getMetadataTableEntries();
if (tableEntries == null) {
continue;
}
String tableName = inputTable.getName();
IConnection connection = hNameToConnection.get(tableName);
if(connection == null) {
continue;
}
String lookupMode = inputTable.getLookupMode();
boolean isCacheOrReload = org.talend.designer.mapper.model.table.LOOKUP_MODE.CACHE_OR_RELOAD.name().equals(lookupMode);
if(!hasIterate) {
%>
if(tHash_Lookup_<%=tableName%> != null) {
tHash_Lookup_<%=tableName%>.endGet();
}
globalMap.remove( "tHash_Lookup_<%=tableName%>" );
<%
if(isCacheOrReload) {
%>
tHash_Lookup_Cache_<%=tableName%>.endGet();
tHash_Lookup_Cache_<%=tableName%> = null;
tHash_Lookup_Real_<%=tableName%> = null;
<%
}
%>
<%
}
}
}
%>
// ###############################
<%
List<IConnection> outputConnections = (List<IConnection>) node.getOutgoingConnections();
Map<String, IConnection> nameToOutputConnection = new HashMap<String, IConnection>();
for (IConnection connection : outputConnections) {
nameToOutputConnection.put(connection.getName(), connection);
}
List<ExternalMapperTable> outputTables = data.getOutputTables();
for(ExternalMapperTable outputTable : outputTables){
String outputTableName = outputTable.getName();
List<ExternalMapperTableEntry> tableEntries = outputTable.getMetadataTableEntries();
if (tableEntries == null || nameToOutputConnection.get(outputTable.getName()) == null) {
continue;
}
if(isLog4jEnabled){
if(!isVirtualOut) {
%>
log.debug("<%=uniqueNameComponent%> - Written records count in the table '<%=outputTableName%>': " + count_<%=outputTableName%>_<%=uniqueNameComponent%> + ".");
<%
}
}
}
%>

View File

@@ -0,0 +1,29 @@
<%@ jet
imports="
java.util.ArrayList
java.util.List
org.talend.designer.mapper.external.data.ExternalMapperData
org.talend.designer.mapper.external.data.ExternalMapperTable
org.talend.designer.mapper.external.data.ExternalMapperTableEntry
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.designer.mapper.MapperComponent
org.talend.core.model.process.INode
java.util.HashMap
java.util.Map
org.talend.core.model.process.IConnection
org.talend.core.model.process.EConnectionType
org.talend.core.model.process.ElementParameterParser
org.talend.designer.mapper.model.tableentry.TableEntryLocation
org.talend.designer.mapper.utils.DataMapExpressionParser
org.talend.designer.mapper.language.LanguageProvider
org.talend.core.model.metadata.IMetadataColumn
org.talend.core.model.metadata.types.JavaTypesManager
"
skeleton="tMap_commons.skeleton"
%>
<%@ include file="tMap_end.inc.javajet" %>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,143 @@
<COMPONENT>
<HEADER PLATEFORM="ALL"
SERIAL=""
VERSION="2.1"
STATUS="ALPHA"
COMPATIBILITY="WIN32"
AUTHOR="Talend"
RELEASE_DATE="20070703A"
STARTABLE="false"
EXTENSION="org.talend.designer.mapper"
SCHEMA_AUTO_PROPAGATE="false"
DATA_AUTO_PROPAGATE="false"
HAS_CONDITIONAL_OUTPUTS="true"
PARTITIONING="AUTO"
LOG4J_ENABLED="true"
>
<SIGNATURE></SIGNATURE>
</HEADER>
<FAMILIES>
<FAMILY>Processing</FAMILY>
</FAMILIES>
<DOCUMENTATION>
<URL/>
</DOCUMENTATION>
<CONNECTORS>
<CONNECTOR BUILTIN="true" CTYPE="FLOW" MIN_INPUT="1" MIN_OUTPUT="1"/>
<CONNECTOR CTYPE="LOOKUP" COMPONENT="tAdvancedHash"/>
<CONNECTOR CTYPE="ITERATE" MAX_OUTPUT="0" MAX_INPUT="0"/>
<CONNECTOR CTYPE="SUBJOB_OK" MAX_INPUT="0"/>
<CONNECTOR CTYPE="SUBJOB_ERROR" MAX_INPUT="0"/>
<CONNECTOR CTYPE="COMPONENT_OK" MAX_OUTPUT="0"/>
<CONNECTOR CTYPE="COMPONENT_ERROR" MAX_OUTPUT="0"/>
<CONNECTOR CTYPE="RUN_IF" MAX_OUTPUT="0"/>
</CONNECTORS>
<PARAMETERS>
<PARAMETER NAME="MAP" FIELD="EXTERNAL" NUM_ROW="1">
<DEFAULT/>
</PARAMETER>
<PARAMETER
NAME="LINK_STYLE"
FIELD="CLOSED_LIST"
NUM_ROW="1"
>
<ITEMS DEFAULT="">
<ITEM NAME="AUTO" VALUE="AUTO" />
<ITEM NAME="BEZIER_CURVE" VALUE="BEZIER_CURVE" />
<ITEM NAME="LINE" VALUE="LINE" />
</ITEMS>
</PARAMETER>
<PARAMETER NAME="TEMPORARY_DATA_DIRECTORY" FIELD="DIRECTORY"
NUM_ROW="2" GROUP="STORE_ON_DISK"
>
<!--<DEFAULT>"__COMP_DEFAULT_FILE_DIR__/temp"</DEFAULT>
--></PARAMETER>
<PARAMETER NAME="PREVIEW" FIELD="IMAGE" SHOW="true" NUM_ROW="4">
<DEFAULT/>
</PARAMETER>
<PARAMETER
NAME="DIE_ON_ERROR"
FIELD="CHECK"
NUM_ROW="100"
SHOW="false"
>
<DEFAULT>true</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="LKUP_PARALLELIZE"
FIELD="CHECK"
NUM_ROW="100"
SHOW="false"
>
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="LEVENSHTEIN"
FIELD = "TEXT"
NUM_ROW="120"
SHOW="false"
>
<DEFAULT>0</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="JACCARD"
FIELD = "TEXT"
NUM_ROW="120"
SHOW="false"
>
<DEFAULT>0</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="ENABLE_AUTO_CONVERT_TYPE"
FIELD="CHECK"
NUM_ROW="110"
SHOW="false"
>
<DEFAULT>false</DEFAULT>
</PARAMETER>
</PARAMETERS>
<ADVANCED_PARAMETERS>
<PARAMETER NAME="ROWS_BUFFER_SIZE" FIELD="TEXT"
REQUIRED="true" NUM_ROW="1" SHOW="true" GROUP="STORE_ON_DISK"
>
<DEFAULT>2000000</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="CHANGE_HASH_AND_EQUALS_FOR_BIGDECIMAL"
FIELD="CHECK"
NUM_ROW="10"
>
<DEFAULT>true</DEFAULT>
</PARAMETER>
</ADVANCED_PARAMETERS>
<CODEGENERATION>
<TEMPLATES INPUT="TMAP_OUT" OUTPUT="TMAP_IN">
<TEMPLATE NAME="TMAP_OUT" COMPONENT="tMapOut">
<LINK_TO NAME="TMAP_IN" CTYPE="ROWS_END"/>
</TEMPLATE>
<TEMPLATE NAME="TMAP_IN" COMPONENT="tMapIn"/>
</TEMPLATES>
</CODEGENERATION>
<RETURNS/>
<PLUGINDEPENDENCIES>
<PLUGINDEPENDENCY ID="org.talend.designer.abstractmap" />
</PLUGINDEPENDENCIES>
</COMPONENT>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,46 @@
<%@ jet
imports="
java.util.ArrayList
java.util.Collections
java.util.Comparator
java.util.List
java.util.HashMap
java.util.Map
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.commons.utils.generation.CodeGenerationUtils
org.talend.designer.mapper.MapperComponent
org.talend.designer.mapper.external.data.ExternalMapperData
org.talend.designer.mapper.external.data.ExternalMapperTable
org.talend.designer.mapper.external.data.ExternalMapperTableEntry
org.talend.designer.mapper.language.ILanguage
org.talend.designer.mapper.language.generation.JavaGenerationManager
org.talend.designer.mapper.language.generation.HashedMetadataTable
org.talend.designer.mapper.language.LanguageProvider
org.talend.designer.mapper.model.tableentry.TableEntryLocation
org.talend.designer.mapper.utils.DataMapExpressionParser
org.talend.core.model.process.IConnection
org.talend.core.model.process.EConnectionType
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
org.talend.core.model.metadata.types.JavaTypesManager
org.talend.core.model.metadata.types.JavaType
org.talend.core.model.process.BlockCode
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.GlobalServiceRegister
org.talend.core.model.metadata.IAutoConvertTypesService
org.talend.core.model.metadata.types.AutoConversionType
"
skeleton="tMap_commons.skeleton"
%>
<%@ include file="tMap_main.inc.javajet" %>

View File

@@ -0,0 +1,12 @@
HELP=org.talend.help.tMap
LONG_NAME=Allows joins, column or row filtering, transformations, and multiple outputs
MAP.NAME=Map Editor:
PREVIEW.NAME=Preview
STORE_ON_DISK.NAME=Store on disk
TEMPORARY_DATA_DIRECTORY.NAME=Temp data directory path:
ROWS_BUFFER_SIZE.NAME=Max buffer size (nb of rows):
LINK_STYLE.NAME=Mapping links display as:
LINK_STYLE.ITEM.AUTO=Auto
LINK_STYLE.ITEM.BEZIER_CURVE=Curves
LINK_STYLE.ITEM.LINE=Lines (fast)
CHANGE_HASH_AND_EQUALS_FOR_BIGDECIMAL.NAME=Ignore trailing zeros for BigDecimal

View File

@@ -0,0 +1,10 @@
LONG_NAME=Erm\u00F6glicht Joins, Spalten- oder Zeilenfilter, Transformationen und multiple Ausgaben
MAP.NAME=Map Editor\:
PREVIEW.NAME=Vorschau
STORE_ON_DISK.NAME=Speichere auf Festplatte
TEMPORARY_DATA_DIRECTORY.NAME=Verzeichnis f\u00FCr tempor\u00E4re Daten:
ROWS_BUFFER_SIZE.NAME=Maximale Puffergr\u00F6\u00DFe (Anzahl Zeilen)
LINK_STYLE.NAME=Mapping Verbindungen anzeigen als:
LINK_STYLE.ITEM.AUTO=Auto
LINK_STYLE.ITEM.BEZIER_CURVE=Kurven
LINK_STYLE.ITEM.LINE=Linien (schnell)

View File

@@ -0,0 +1,12 @@
HELP=org.talend.help.tMap
LONG_NAME=Permet d'effectuer des jointures, des filtres de colonnes ou de lignes, des transformations et de multiples sorties
MAP.NAME=\u00C9diteur de mapping
PREVIEW.NAME=Aper\u00E7u
STORE_ON_DISK.NAME=Stocker sur le disque
TEMPORARY_DATA_DIRECTORY.NAME=Chemin du r\u00E9pertoire des donn\u00E9es temporaires :
ROWS_BUFFER_SIZE.NAME=Taille maximale de la m\u00E9moire tampon (nombre de lignes) :
LINK_STYLE.NAME=Les liens de mapping s'affichent comme\u00A0:
LINK_STYLE.ITEM.AUTO=Auto
LINK_STYLE.ITEM.BEZIER_CURVE=Courbes
LINK_STYLE.ITEM.LINE=Lignes (rapide)
CHANGE_HASH_AND_EQUALS_FOR_BIGDECIMAL.NAME=Ignorer les z\u00E9ros de fin pour BigDecimal

View File

@@ -0,0 +1,10 @@
LONG_NAME=Permetti join, colonne o righe filtrate, trasforazioni, e output multipli
MAP.NAME=Editor Map:
PREVIEW.NAME=Anteprima
STORE_ON_DISK.NAME=Salva su disco
TEMPORARY_DATA_DIRECTORY.NAME=Temp data directory path:
ROWS_BUFFER_SIZE.NAME=Grandezza buffer (n. di record)
LINK_STYLE.NAME=Mappa collegameti come:
LINK_STYLE.ITEM.AUTO=Auto
LINK_STYLE.ITEM.BEZIER_CURVE=Curve
LINK_STYLE.ITEM.LINE=Linee (veloce)

View File

@@ -0,0 +1,12 @@
HELP=org.talend.help.tMap
LONG_NAME=\u7D50\u5408\u3001\u30AB\u30E9\u30E0\u3001\u884C\u306E\u3044\u305A\u308C\u304B\u306E\u30D5\u30A3\u30EB\u30BF\u30EA\u30F3\u30B0\u3001\u5909\u63DB\u3001\u8907\u6570\u51FA\u529B\u3092\u8A31\u53EF\u3057\u307E\u3059
MAP.NAME=\u30DE\u30C3\u30D7\u30A8\u30C7\u30A3\u30BF\u30FC
PREVIEW.NAME=\u30D7\u30EC\u30D3\u30E5\u30FC
STORE_ON_DISK.NAME=\u30C7\u30A3\u30B9\u30AF\u306B\u4FDD\u7BA1
TEMPORARY_DATA_DIRECTORY.NAME=\u4E00\u6642\u30C7\u30FC\u30BF\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30FC\u30D1\u30B9
ROWS_BUFFER_SIZE.NAME=\u6700\u5927\u30D0\u30C3\u30D5\u30A1\u30FC\u30B5\u30A4\u30BA\uFF08\u884C\u6570\uFF09
LINK_STYLE.NAME=\u30DE\u30C3\u30D4\u30F3\u30B0\u30EA\u30F3\u30AF\u3092\u6B21\u306E\u3088\u3046\u306B\u8868\u793A:
LINK_STYLE.ITEM.AUTO=\u81EA\u52D5
LINK_STYLE.ITEM.BEZIER_CURVE=\u66F2\u7DDA
LINK_STYLE.ITEM.LINE=\u76F4\u7DDA\uFF08\u9AD8\u901F\uFF09
CHANGE_HASH_AND_EQUALS_FOR_BIGDECIMAL.NAME=BigDecimal\u3067\u672B\u5C3E\u306E0\u3092\u7121\u52B9\u5316

View File

@@ -0,0 +1,11 @@
HELP=org.talend.help.tMap
LONG_NAME=\u30b8\u30e7\u30a4\u30f3\u3001\u30ed\u30a6\u307e\u305f\u306f\u30ab\u30e9\u30e0\u306e\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u3001\u5909\u63db\u3001\u30de\u30eb\u30c1\u51fa\u529b\u3092\u30b5\u30dd\u30fc\u30c8
MAP.NAME=\u30de\u30c3\u30d7\u30a8\u30c7\u30a3\u30bf:
PREVIEW.NAME=\u30D7\u30EC\u30D3\u30E5\u30FC
STORE_ON_DISK.NAME=\u30c7\u30a3\u30b9\u30af\u306b\u4fdd\u5b58
TEMPORARY_DATA_DIRECTORY.NAME=\u4e00\u6642\u30c7\u30fc\u30bf\u30c7\u30a3\u30ec\u30af\u30c8\u30ea:
ROWS_BUFFER_SIZE.NAME=\u6700\u5927\u30d0\u30c3\u30d5\u30a1\u30b5\u30a4\u30ba\uff08\u30ed\u30a6\u6570\uff09:
LINK_STYLE.NAME=\u30de\u30c3\u30d4\u30f3\u30b0\u30ea\u30f3\u30af\u8868\u793a:
LINK_STYLE.ITEM.AUTO=\u81EA\u52D5
LINK_STYLE.ITEM.BEZIER_CURVE=\u66F2\u7DDA
LINK_STYLE.ITEM.LINE=\u76F4\u7DDA\uFF08\u9AD8\u901F\uFF09

View File

@@ -0,0 +1,2 @@
PREVIEW.NAME=\u041F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440
STORE_ON_DISK.NAME=\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043D\u0430 \u0434\u0438\u0441\u043A

View File

@@ -0,0 +1 @@
STORE_ON_DISK.NAME=Ulo\u017Ei\u0165 na disk

View File

@@ -0,0 +1 @@
STORE_ON_DISK.NAME=Ulo\u017Ei\u0165 na disk

View File

@@ -0,0 +1,12 @@
HELP=org.talend.help.tMap
LONG_NAME=\u5141\u8BB8\u8FDE\u63A5\u3001\u5217\u6216\u884C\u7B5B\u9009\u3001\u8F6C\u6362\u4EE5\u53CA\u591A\u4E2A\u8F93\u51FA
MAP.NAME=Map \u7F16\u8F91\u5668:
PREVIEW.NAME=\u9884\u89C8
STORE_ON_DISK.NAME=\u5B58\u50A8\u5728\u78C1\u76D8\u4E0A
TEMPORARY_DATA_DIRECTORY.NAME=\u4E34\u65F6\u6570\u636E\u76EE\u5F55\u8DEF\u5F84:
ROWS_BUFFER_SIZE.NAME=\u6700\u5927\u7F13\u51B2\u533A\u5927\u5C0F (\u884C\u6570):
LINK_STYLE.NAME=\u6620\u5C04\u8FDE\u63A5\u663E\u793A\u4E3A:
LINK_STYLE.ITEM.AUTO=\u81EA\u52A8
LINK_STYLE.ITEM.BEZIER_CURVE=\u66F2\u7EBF
LINK_STYLE.ITEM.LINE=\u76F4\u7EBF (\u5FEB)
CHANGE_HASH_AND_EQUALS_FOR_BIGDECIMAL.NAME=\u5FFD\u7565 BigDecimal \u7684\u5C3E\u968F\u96F6

View File

@@ -0,0 +1,43 @@
<%@ jet
imports="
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.designer.codegen.config.CodeGeneratorArgument
"
%>
<%@ include file="../templates/DB/HelpClass/HelpClass.javajet"%>
<%
class ConnectionUtil extends DefaultConnectionUtil{
public void createURL(INode node) {
super.createURL(node);
String dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
String jdbcURL = "jdbc:mysql";
if("MARIADB".equals(dbVersion)){
jdbcURL = "jdbc:mariadb";
}
final boolean supportBulkComponent = true;
%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Mysql/jdbcurl4connection_output.javajet"%>
<%
}
public String getDirverClassName(INode node){
String dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
if("MARIADB".equals(dbVersion)){
return "org.mariadb.jdbc.Driver";
} else if ("MYSQL_8".equals(dbVersion)){
return "com.mysql.cj.jdbc.Driver";
} else {
return "com.mysql.jdbc.Driver";
}
}
}//end class
connUtil = new ConnectionUtil();
%>
<%//----------------------------component codes-----------------------------------------%>
<%@ include file="../templates/DB/AbstractDBConnection.javajet"%>
globalMap.put("db_<%=cid%>",<%=dbname%>);

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,203 @@
<COMPONENT>
<HEADER
PLATEFORM="ALL"
SERIAL=""
VERSION="0.102"
STATUS="ALPHA"
COMPATIBILITY="ALL"
AUTHOR="Talend"
RELEASE_DATE="20050320A"
STARTABLE="true"
LOG4J_ENABLED="true"
>
<SIGNATURE/>
</HEADER>
<FAMILIES>
<FAMILY>Databases/DB Specifics/MySQL</FAMILY>
<FAMILY>ELT/Connections</FAMILY>
</FAMILIES>
<DOCUMENTATION>
<URL/>
</DOCUMENTATION>
<CONNECTORS>
<CONNECTOR CTYPE="FLOW" MAX_INPUT="0" MAX_OUTPUT="0"/>
<CONNECTOR CTYPE="ITERATE" MAX_OUTPUT="0" MAX_INPUT="1"/>
<CONNECTOR CTYPE="SUBJOB_OK" MAX_INPUT="1" />
<CONNECTOR CTYPE="SUBJOB_ERROR" MAX_INPUT="1" />
<CONNECTOR CTYPE="COMPONENT_OK"/>
<CONNECTOR CTYPE="COMPONENT_ERROR"/>
<CONNECTOR CTYPE="RUN_IF"/>
</CONNECTORS>
<PARAMETERS>
<PARAMETER
NAME="PROPERTY"
FIELD="PROPERTY_TYPE"
SHOW="true"
NUM_ROW="1"
REPOSITORY_VALUE="DATABASE:MYSQL"
/>
<PARAMETER
NAME="DB_VERSION"
FIELD="CLOSED_LIST"
NUM_ROW="10"
REPOSITORY_VALUE="DB_VERSION">
<ITEMS DEFAULT="MYSQL_8">
<ITEM NAME="MYSQL_8" VALUE="MYSQL_8" />
<ITEM NAME="MYSQL_5" VALUE="MYSQL_5" />
<ITEM NAME="MARIADB" VALUE="MARIADB" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="HOST"
FIELD="TEXT"
NUM_ROW="20"
REPOSITORY_VALUE="SERVER_NAME"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TYPE"
FIELD="TEXT"
NUM_ROW="3"
SHOW="false"
REPOSITORY_VALUE="TYPE"
>
<DEFAULT>MySQL</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="PORT"
FIELD="TEXT"
NUM_ROW="20"
REPOSITORY_VALUE="PORT"
>
<DEFAULT>"3306"</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="DBNAME"
FIELD="TEXT"
NUM_ROW="30"
REPOSITORY_VALUE="SID"
REQUIRED="true"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="PROPERTIES"
FIELD="TEXT"
NUM_ROW="30"
REPOSITORY_VALUE="PROPERTIES_STRING">
<DEFAULT>"noDatetimeStringSync=true"</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="USER"
FIELD="TEXT"
NUM_ROW="40"
REPOSITORY_VALUE="USERNAME"
REQUIRED="true"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="PASS"
FIELD="PASSWORD"
NUM_ROW="40"
REPOSITORY_VALUE="PASSWORD"
REQUIRED="true"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="ENCODING"
FIELD="ENCODING_TYPE"
NUM_ROW="50"
REQUIRED="true"
SHOW="false"
>
<DEFAULT>"ISO-8859-15"</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="USE_SHARED_CONNECTION"
FIELD="CHECK"
NUM_ROW="60"
REQUIRED="true"
SHOW_IF="SPECIFY_DATASOURCE_ALIAS=='false'"
>
</PARAMETER>
<PARAMETER
NAME="SHARED_CONNECTION_NAME"
FIELD="TEXT"
NUM_ROW="60"
REQUIRED="true"
SHOW_IF="(USE_SHARED_CONNECTION == 'true' AND SPECIFY_DATASOURCE_ALIAS=='false')"
>
<DEFAULT></DEFAULT>
</PARAMETER>
<PARAMETER
NAME="NOTE"
FIELD="LABEL"
NUM_ROW="63"
GROUP="DATASOURCE"
SHOW_IF="USE_SHARED_CONNECTION=='false'"
>
<DEFAULT>This option only applies when deploying and running in the Talend Runtime</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SPECIFY_DATASOURCE_ALIAS"
FIELD="CHECK"
NUM_ROW="64"
REQUIRED="true"
GROUP="DATASOURCE"
SHOW_IF="USE_SHARED_CONNECTION=='false'"
>
</PARAMETER>
<PARAMETER
NAME="DATASOURCE_ALIAS"
FIELD="TEXT"
NUM_ROW="65"
REQUIRED="true"
GROUP="DATASOURCE"
SHOW_IF="(SPECIFY_DATASOURCE_ALIAS=='true' AND USE_SHARED_CONNECTION=='false')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
</PARAMETERS>
<ADVANCED_PARAMETERS>
<PARAMETER
NAME="AUTO_COMMIT"
FIELD="CHECK"
NUM_ROW="10">
<DEFAULT>false</DEFAULT>
</PARAMETER>
</ADVANCED_PARAMETERS>
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Mysql_Driver8" MODULE="mysql-connector-java-8.0.18.jar" MVN="mvn:mysql/mysql-connector-java/8.0.18" REQUIRED_IF="(DB_VERSION == 'MYSQL_8')" />
<IMPORT NAME="Mysql_Driver5" MODULE="mysql-connector-java-5.1.49.jar" MVN="mvn:mysql/mysql-connector-java/5.1.49" REQUIRED_IF="(DB_VERSION == 'MYSQL_5')" />
<IMPORT NAME="Mysql_MARIADB" MODULE="mariadb-java-client-2.5.3.jar" MVN="mvn:org.mariadb.jdbc/mariadb-java-client/2.5.3" REQUIRED_IF="(DB_VERSION == 'MARIADB')" />
<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' AND SPECIFY_DATASOURCE_ALIAS=='false')" />
<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' AND SPECIFY_DATASOURCE_ALIAS=='false')" />
</IMPORTS>
</CODEGENERATION>
<RETURNS/>
</COMPONENT>

View File

@@ -0,0 +1,38 @@
DBD-ODBC.INFO=Required for ODBC-like connection
DBD-Oracle.INFO=Required for Oracle
DBD-Pg.INFO=Required for PostgreSQL
DBD-mysql.INFO=Required for MySQL
DBNAME.NAME=Database
ENCODING.NAME=Encoding
HELP=org.talend.help.tMysqlConnection
HOST.NAME=Host
LONG_NAME=Creates a connection to a MySQL database
NB_LINE.NAME=Number of line
NULL_CHAR.NAME=Null Char
PASS.NAME=Password
PORT.NAME=Port
QUERY.NAME=Query
QUERYSTORE.NAME=Query Type
SCHEMA.NAME=Schema
SCHEMA_DB.NAME=Schema
SQL_SYNTAX.NAME=Sql Syntax
STRING_QUOTE.NAME=String Quote
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc driver)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=Generic ODBC
TYPE.ITEM.ORACLE=Oracle
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=Database Driver
USER.NAME=Username
PROPERTIES.NAME=Additional JDBC Parameters
USE_SHARED_CONNECTION.NAME=Use or register a shared DB Connection
SHARED_CONNECTION_NAME.NAME=Shared DB Connection Name
SPECIFY_DATASOURCE_ALIAS.NAME=Specify a data source alias
DATASOURCE.NAME=Data source
DATASOURCE_ALIAS.NAME=Data source alias
AUTO_COMMIT.NAME=Auto Commit
PROPERTY.NAME=Property Type
DB_VERSION.NAME=DB Version
DB_VERSION.ITEM.MYSQL_5=Mysql 5
DB_VERSION.ITEM.MYSQL_8=Mysql 8
DB_VERSION.ITEM.MARIADB=MariaDB

View File

@@ -0,0 +1,30 @@
DBD-ODBC.INFO=F\u00FCr ODBC-\u00E4hnliche Verbindung ben\u00F6tigt
DBD-Oracle.INFO=F\u00FCr Oracle ben\u00F6tigt
DBD-Pg.INFO=F\u00FCr PostgreSQL ben\u00F6tigt
DBD-mysql.INFO=F\u00FCr MySQL ben\u00F6tigt
ENCODING.NAME=Encoding
HOST.NAME=Host
LONG_NAME=Baut eine Verbindung zur MySQL Datenbank auf
PASS.NAME=Passwort
PORT.NAME=Port
QUERY.NAME=Abfrage
QUERYSTORE.NAME=Abfragetyp
SCHEMA.NAME=Schema
SCHEMA_DB.NAME=Schema
SQL_SYNTAX.NAME=SQL Syntax
STRING_QUOTE.NAME=Text Quotierung
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc Treiber)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=Generischer ODBC
TYPE.ITEM.ORACLE=Oracle
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=Datenbanktreiber
USER.NAME=Benutzername
PROPERTIES.NAME=Zus\u00E4tzliche JDBC Parameter
USE_SHARED_CONNECTION.NAME=Verwende oder melde eine geteilte DB Verbindung an
SHARED_CONNECTION_NAME.NAME=Gemeinsam verwendeter DB Verbindungsname
AUTO_COMMIT.NAME=Autocommit
PROPERTY.NAME=Eigenschaftstyp
DB_VERSION.NAME=Datenbankversion
DB_VERSION.ITEM.MYSQL_5=Mysql 5
DATASOURCE.NAME=Datenquelle

View File

@@ -0,0 +1,16 @@
ENCODING.NAME=Codificaci\u00F3n
HOST.NAME=Host
LONG_NAME=Crea una conexi\u00F3n a una base de datos MySQL
PASS.NAME=Contrase\u00F1a
PORT.NAME=Puerto
SCHEMA.NAME=Esquema
SCHEMA_DB.NAME=Esquema
SQL_SYNTAX.NAME=Sintaxis SQL
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Controlador ODBC)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=ODBC Gen\u00E9rico
TYPE.ITEM.ORACLE=Oracle
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=Controlador de base de datos
USER.NAME=Nombre de usuario
AUTO_COMMIT.NAME=Auto Commit

View File

@@ -0,0 +1,38 @@
DBD-ODBC.INFO=Requis pour les connexions de type ODBC
DBD-Oracle.INFO=Requis pour Oracle
DBD-Pg.INFO=Requis pour PostgreSQL
DBD-mysql.INFO=Requis pour MySQL
DBNAME.NAME=Base de donn\u00E9es
ENCODING.NAME=Encodage
HELP=org.talend.help.tMysqlConnection
HOST.NAME=H\u00F4te
LONG_NAME=Cr\u00E9e une connexion \u00E0 une base de donn\u00E9es MySQL
NB_LINE.NAME=Nombre de lignes
NULL_CHAR.NAME=Caract\u00E8re Null
PASS.NAME=Mot de passe
PORT.NAME=Port
QUERY.NAME=Requ\u00EAte
QUERYSTORE.NAME=Type de requ\u00EAte
SCHEMA.NAME=Sch\u00E9ma
SCHEMA_DB.NAME=Sch\u00E9ma
SQL_SYNTAX.NAME=Syntaxe SQL
STRING_QUOTE.NAME=S\u00E9parateur de cha\u00EEne de caract\u00E8res
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (pilote ODBC)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=ODBC g\u00E9n\u00E9rique
TYPE.ITEM.ORACLE=Oracle
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=Pilote de la base de donn\u00E9es
USER.NAME=Utilisateur
PROPERTIES.NAME=Param\u00E8tres suppl\u00E9mentaires JDBC
USE_SHARED_CONNECTION.NAME=Utiliser ou enregistrer une connexion partag\u00E9e \u00E0 une base de donn\u00E9es
SHARED_CONNECTION_NAME.NAME=Nom de la connexion partag\u00E9e \u00E0 la base de donn\u00E9es
SPECIFY_DATASOURCE_ALIAS.NAME=Sp\u00E9cifier un alias de source de donn\u00E9es
DATASOURCE.NAME=Source de donn\u00E9es
DATASOURCE_ALIAS.NAME=Alias de la source de donn\u00E9es
AUTO_COMMIT.NAME=Commit auto
PROPERTY.NAME=Type de propri\u00E9t\u00E9
DB_VERSION.NAME=Version de la base de donn\u00E9es
DB_VERSION.ITEM.MYSQL_5=MySQL 5
DB_VERSION.ITEM.MYSQL_8=MySQL 8
DB_VERSION.ITEM.MARIADB=MariaDB

View File

@@ -0,0 +1,26 @@
DBD-ODBC.INFO=Richiesto per connessione ODBC-like
DBD-Oracle.INFO=Richiesto per Oracle
DBD-Pg.INFO=Richiesto per PostgreSQL
DBD-mysql.INFO=Richiesto per MySQL
ENCODING.NAME=Codifica
HOST.NAME=Host
LONG_NAME=Crea una connesione ad un DB MySQL
NULL_CHAR.NAME=Carattere Nullo
PASS.NAME=Password
PORT.NAME=Porta
QUERY.NAME=Query
QUERYSTORE.NAME=Tipo query
SCHEMA.NAME=Schema
SCHEMA_DB.NAME=Schema
SQL_SYNTAX.NAME=Sintassi SQL
STRING_QUOTE.NAME=Quota stringa
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc driver)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=ODBC Generico
TYPE.ITEM.ORACLE=Oracle
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=Database Driver
USER.NAME=Username
PROPERTIES.NAME=Parametri aggiuntivi JDBC
PROPERTY.NAME=Tipo propriet\u00E0
DB_VERSION.NAME=Versione Db

View File

@@ -0,0 +1,38 @@
DBD-ODBC.INFO=ODBC\u306E\u3088\u3046\u306A\u63A5\u7D9A\u3067\u5FC5\u9808
DBD-Oracle.INFO=Oracle\u3067\u5FC5\u9808
DBD-Pg.INFO=PostgreSQL\u3067\u5FC5\u9808
DBD-mysql.INFO=MySQL\u3067\u5FC5\u9808
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
ENCODING.NAME=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0
HELP=org.talend.help.tMysqlConnection
HOST.NAME=\u30DB\u30B9\u30C8
LONG_NAME=MySQL\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3078\u306E\u63A5\u7D9A\u3092\u4F5C\u6210\u3057\u307E\u3059
NB_LINE.NAME=\u884C\u6570
NULL_CHAR.NAME=Null\u6587\u5B57
PASS.NAME=\u30D1\u30B9\u30EF\u30FC\u30C9
PORT.NAME=\u30DD\u30FC\u30C8
QUERY.NAME=\u30AF\u30A8\u30EA\u30FC
QUERYSTORE.NAME=\u30AF\u30A8\u30EA\u30FC\u30BF\u30A4\u30D7
SCHEMA.NAME=\u30B9\u30AD\u30FC\u30DE
SCHEMA_DB.NAME=\u30B9\u30AD\u30FC\u30DE
SQL_SYNTAX.NAME=Sql\u69CB\u6587
STRING_QUOTE.NAME=\u5F15\u7528\u7B26
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc\u30C9\u30E9\u30A4\u30D0\u30FC)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=\u6C4E\u7528ODBC
TYPE.ITEM.ORACLE=Oracle
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C9\u30E9\u30A4\u30D0\u30FC
USER.NAME=\u30E6\u30FC\u30B6\u30FC\u540D
PROPERTIES.NAME=\u8FFD\u52A0\u306EJDBC\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC
USE_SHARED_CONNECTION.NAME=\u5171\u6709DB\u63A5\u7D9A\u306E\u4F7F\u7528\u307E\u305F\u306F\u767B\u9332
SHARED_CONNECTION_NAME.NAME=\u5171\u6709DB\u63A5\u7D9A\u540D
SPECIFY_DATASOURCE_ALIAS.NAME=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u30A8\u30A4\u30EA\u30A2\u30B9\u3092\u6307\u5B9A
DATASOURCE.NAME=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9
DATASOURCE_ALIAS.NAME=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u30A8\u30A4\u30EA\u30A2\u30B9
AUTO_COMMIT.NAME=\u81EA\u52D5\u30B3\u30DF\u30C3\u30C8
PROPERTY.NAME=\u30D7\u30ED\u30D1\u30C6\u30A3\u30BF\u30A4\u30D7
DB_VERSION.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D0\u30FC\u30B8\u30E7\u30F3
DB_VERSION.ITEM.MYSQL_5=Mysql 5
DB_VERSION.ITEM.MYSQL_8=Mysql8
DB_VERSION.ITEM.MARIADB=MariaDB

View File

@@ -0,0 +1,32 @@
DBD-ODBC.INFO=ODBC-like connection\u306E\u5834\u5408\u306F\u5FC5\u9808
DBD-Oracle.INFO=Oracle\u306E\u5834\u5408\u306F\u5FC5\u9808
DBD-Pg.INFO=PostgreSQL\u306E\u5834\u5408\u306F\u5FC5\u9808
DBD-mysql.INFO=MySQL\u306E\u5834\u5408\u306F\u5FC5\u9808
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
ENCODING.NAME=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0
HELP=org.talend.help.tMysqlConnection
HOST.NAME=\u30DB\u30B9\u30C8
LONG_NAME=MySQL\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3078\u306E\u63A5\u7D9A\u3092\u4F5C\u6210
NB_LINE.NAME=\u884c\u6570
NULL_CHAR.NAME=Null\u30AD\u30E3\u30E9\u30AF\u30BF
PASS.NAME=\u30D1\u30B9\u30EF\u30FC\u30C9
PORT.NAME=\u30DD\u30FC\u30C8
QUERY.NAME=\u30AF\u30A8\u30EA
QUERYSTORE.NAME=\u30AF\u30A8\u30EA\u30BF\u30A4\u30D7
SCHEMA.NAME=\u30B9\u30AD\u30FC\u30DE
SCHEMA_DB.NAME=\u30B9\u30AD\u30FC\u30DE
SQL_SYNTAX.NAME=SQL\u69CB\u6587
STRING_QUOTE.NAME=\u6587\u5B57\u5217\u306E\u5F15\u7528
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc \u30C9\u30E9\u30A4\u30D0)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=\u6c4e\u7528ODBC
TYPE.ITEM.ORACLE=Oracle
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C9\u30E9\u30A4\u30D0
USER.NAME=\u30e6\u30fc\u30b6\u540d
PROPERTIES.NAME=\u8ffd\u52a0\u306eJDBC\u30d1\u30e9\u30e1\u30fc\u30bf
USE_SHARED_CONNECTION.NAME=\u5171\u6709DB\u63a5\u7d9a\u3092\u4f7f\u7528/\u767b\u9332
SHARED_CONNECTION_NAME.NAME=\u5171\u6709DB\u63A5\u7D9A\u540D
AUTO_COMMIT.NAME=\u81EA\u52D5\u30B3\u30DF\u30C3\u30C8
PROPERTY.NAME=\u30D7\u30ED\u30D1\u30C6\u30A3\u30BF\u30A4\u30D7
DB_VERSION.NAME=DB\u30D0\u30FC\u30B8\u30E7\u30F3

View File

@@ -0,0 +1,23 @@
DBD-ODBC.INFO=\u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C \u0434\u043B\u044F \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0439 ODBC \u0442\u0438\u043F\u0430
DBD-Oracle.INFO=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F Oracle
DBD-Pg.INFO=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F PostgreSQL
DBD-mysql.INFO=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F MySQL
ENCODING.NAME=\u041A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430
HOST.NAME=\u0425\u043E\u0441\u0442
NULL_CHAR.NAME=\u041F\u0443\u0441\u0442\u043E\u0439 \u0441\u0438\u043C\u0432\u043E\u043B
PASS.NAME=\u041F\u0430\u0440\u043E\u043B\u044C
PORT.NAME=\u041F\u043E\u0440\u0442
QUERY.NAME=\u0417\u0430\u043F\u0440\u043E\u0441
QUERYSTORE.NAME=\u0422\u0438\u043F \u0437\u0430\u043F\u0440\u043E\u0441\u0430
SCHEMA.NAME=\u0421\u0445\u0435\u043C\u0430
SCHEMA_DB.NAME=\u0421\u0445\u0435\u043C\u0430
SQL_SYNTAX.NAME=SQL \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc driver)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=Generic ODBC
TYPE.ITEM.ORACLE=Oracle
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=\u0414\u0440\u0430\u0439\u0432\u0435\u0440 \u0431\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445
USER.NAME=\u0418\u043C\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F
DB_VERSION.NAME=\u0412\u0435\u0440\u0441\u0438\u044F \u0411\u0414
DB_VERSION.ITEM.MYSQL_5=Mysql 5

View File

@@ -0,0 +1,8 @@
ENCODING.NAME=K\u00F3dovanie
HOST.NAME=Host
PASS.NAME=Heslo
PORT.NAME=Port
SCHEMA.NAME=Sch\u00E9ma
SCHEMA_DB.NAME=Sch\u00E9ma
USER.NAME=U\u017E\u00EDvate\u013Esk\u00E9 Meno
DB_VERSION.ITEM.MYSQL_5=Mysql 5

View File

@@ -0,0 +1,9 @@
ENCODING.NAME=K<EFBFBD>dovanie
HOST.NAME=Host
PASS.NAME=Heslo
PORT.NAME=Port
SCHEMA.NAME=Sch<EFBFBD>ma
SCHEMA_DB.NAME=Sch<EFBFBD>ma
USER.NAME=U\u017E<37>vate\u013Esk<73> Meno
DB_VERSION.ITEM.MYSQL_4=Mysql 4
DB_VERSION.ITEM.MYSQL_5=Mysql 5

View File

@@ -0,0 +1,38 @@
DBD-ODBC.INFO=\u4E3A\u7C7B\u4F3C ODBC \u8FDE\u63A5\u6240\u5FC5\u9700
DBD-Oracle.INFO=\u4E3A Oracle \u6240\u5FC5\u9700
DBD-Pg.INFO=\u4E3A PostgreSQL \u6240\u5FC5\u9700
DBD-mysql.INFO=\u4E3A MySQL \u6240\u5FC5\u9700
DBNAME.NAME=\u6570\u636E\u5E93
ENCODING.NAME=\u7F16\u7801
HELP=org.talend.help.tMysqlConnection
HOST.NAME=\u4E3B\u673A
LONG_NAME=\u521B\u5EFA\u5230 MySQL \u6570\u636E\u5E93\u7684\u8FDE\u63A5
NB_LINE.NAME=\u884C\u6570
NULL_CHAR.NAME=Null \u5B57\u7B26
PASS.NAME=\u5BC6\u7801
PORT.NAME=\u7AEF\u53E3
QUERY.NAME=\u67E5\u8BE2
QUERYSTORE.NAME=\u67E5\u8BE2\u7C7B\u578B
SCHEMA.NAME=Schema
SCHEMA_DB.NAME=Schema
SQL_SYNTAX.NAME=Sql \u8BED\u6CD5
STRING_QUOTE.NAME=\u5B57\u7B26\u4E32\u5F15\u7528
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc \u9A71\u52A8)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=\u901A\u7528 ODBC
TYPE.ITEM.ORACLE=\u5B9E\u6570\u7EDD\u5BF9\u503C
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=\u6570\u636E\u5E93\u9A71\u52A8
USER.NAME=\u7528\u6237\u540D
PROPERTIES.NAME=\u9644\u52A0 JDBC \u53C2\u6570
USE_SHARED_CONNECTION.NAME=\u4F7F\u7528\u6216\u6CE8\u518C\u5171\u4EAB\u6570\u636E\u5E93\u8FDE\u63A5
SHARED_CONNECTION_NAME.NAME=\u5171\u4EAB\u6570\u636E\u5E93\u8FDE\u63A5\u540D\u79F0
SPECIFY_DATASOURCE_ALIAS.NAME=\u6307\u5B9A\u6570\u636E\u6E90\u522B\u540D
DATASOURCE.NAME=\u6570\u636E\u6E90
DATASOURCE_ALIAS.NAME=\u6570\u636E\u6E90\u522B\u540D
AUTO_COMMIT.NAME=\u81EA\u52A8\u63D0\u4EA4
PROPERTY.NAME=\u5C5E\u6027\u7C7B\u578B
DB_VERSION.NAME=\u6570\u636E\u5E93\u7248\u672C
DB_VERSION.ITEM.MYSQL_5=Mysql 5
DB_VERSION.ITEM.MYSQL_8=Mysql 8
DB_VERSION.ITEM.MARIADB=MariaDB

View File

@@ -0,0 +1,343 @@
GNU General Public License
**************************
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

View File

@@ -0,0 +1,126 @@
<%@ jet
imports="
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.process.IConnection
org.talend.core.model.process.IConnectionCategory
org.talend.core.model.metadata.types.JavaTypesManager
java.util.List
java.util.Map
"
%>
<%@ include file="../templates/DB/Input/HelpClass.javajet"%>
<%
class DBInputBeginUtil extends DefaultDBInputUtil{
public void beforeComponentProcess(INode node){
super.beforeComponentProcess(node);
cid = node.getUniqueName();
%>
java.util.Calendar calendar_<%=cid%> = java.util.Calendar.getInstance();
calendar_<%=cid%>.set(0, 0, 0, 0, 0, 0);
java.util.Date year0_<%=cid%> = calendar_<%=cid%>.getTime();
<%
}
public void setURL(INode node) {
String dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
String jdbcURL = "jdbc:mysql";
if("MARIADB".equals(dbVersion)){
jdbcURL = "jdbc:mariadb";
}
%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Mysql/jdbcurl4basic.javajet"%>
<%
}
public String getDirverClassName(INode node){
String dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
if("MARIADB".equals(dbVersion)){
return "org.mariadb.jdbc.Driver";
} else if ("MYSQL_8".equals(dbVersion)){
return "com.mysql.cj.jdbc.Driver";
} else {
return "com.mysql.jdbc.Driver";
}
}
public void createStatement(INode node) {
super.createStatement(node);
String enableStream = ElementParameterParser.getValue(node, "__ENABLE_STREAM__");
boolean useExistMySQLConn = "true".equalsIgnoreCase(ElementParameterParser.getValue(node,"__USE_EXISTING_CONNECTION__"));
String dbVersion = "";
if (useExistMySQLConn) {
List< ? extends INode> nodes = node.getProcess().getNodesOfType("tMysqlConnection");
String connectionMySQL = ElementParameterParser.getValue(node,"__CONNECTION__");
for (INode ne : nodes) {
if (connectionMySQL.equals(ne.getUniqueName())) {
dbVersion = ElementParameterParser.getValue(ne, "__DB_VERSION__");
}
}
} else {
dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
}
if(("true").equals(enableStream)&&(!"MARIADB".equals(dbVersion))&&(!"MYSQL_8".equals(dbVersion))) {
%>
if(stmt_<%=cid %> instanceof com.mysql.jdbc.Statement){
((com.mysql.jdbc.Statement)stmt_<%=cid %>).enableStreamingResults();
}else if(stmt_<%=cid %> instanceof com.mysql.jdbc.jdbc2.optional.JDBC4StatementWrapper){
((com.mysql.jdbc.jdbc2.optional.JDBC4StatementWrapper)stmt_<%=cid %>).enableStreamingResults();
}
<%
} else if (("true").equals(enableStream) && ("MYSQL_8".equals(dbVersion))){
%>
if(stmt_<%=cid %> instanceof com.mysql.cj.jdbc.StatementImpl){
((com.mysql.cj.jdbc.StatementImpl)stmt_<%=cid %>).enableStreamingResults();
}else if(stmt_<%=cid %> instanceof com.mysql.cj.jdbc.StatementWrapper){
((com.mysql.cj.jdbc.StatementWrapper)stmt_<%=cid %>).enableStreamingResults();
}
<%
}
}
public void generateYearResultSet(String firstConnName, IMetadataColumn column, int currentColNo) {
%>
//check if year is null in DB
String yearStringValue_<%=cid %> = rs_<%=cid%>.getString(<%if(isDynamic){%>column_index_<%=cid%><%}else{%><%=currentColNo%><%}%>);
if (null != yearStringValue_<%=cid %>) {
Integer yearValue_<%=cid%> = rs_<%=cid%>.getInt(<%if(isDynamic){%>column_index_<%=cid%><%}else{%><%=currentColNo%><%}%>);
calendar_<%=cid %>.set(yearValue_<%=cid%>, 0, 1);
<%=firstConnName%>.<%=column.getLabel()%> = calendar_<%=cid %>.getTime();
} else {
<%=firstConnName%>.<%=column.getLabel()%> = null;
}
<%
}
//-----------according schema type to generate ResultSet
public void generateTimestampResultSet(String firstConnName, IMetadataColumn column, int currentColNo) {
if ("YEAR".equalsIgnoreCase(column.getType())) {
generateYearResultSet(firstConnName, column, currentColNo);
} else {
%>
if(rs_<%=cid %>.getString(<%if(isDynamic){%>column_index_<%=cid%><%}else{%><%=currentColNo%><%}%>) != null) {
String dateString_<%=cid%> = rs_<%=cid%>.getString(<%if(isDynamic){%>column_index_<%=cid%><%}else{%><%=currentColNo%><%}%>);
if (!("0000-00-00").equals(dateString_<%=cid%>) && !("0000-00-00 00:00:00").equals(dateString_<%=cid%>)) {
<%=firstConnName%>.<%=column.getLabel()%> = rs_<%=cid%>.getTimestamp(<%if(isDynamic){%>column_index_<%=cid%><%}else{%><%=currentColNo%><%}%>);
} else {
<%=firstConnName%>.<%=column.getLabel()%> = (java.util.Date) year0_<%=cid%>.clone();
}
} else {
<%=firstConnName%>.<%=column.getLabel()%> = null;
}
<%
}
}
//---------end according schema type to generate ResultSet
}//end class
dbInputBeginUtil = new DBInputBeginUtil();
%>
<%@ include file="../templates/DB/Input/AbstractDBInputBegin.javajet"%>

View File

@@ -0,0 +1,51 @@
<%@ jet
imports="
org.talend.core.model.process.INode
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.process.ElementParameterParser
"
%>
<%@ include file="../templates/Log4j/Log4jDBConnUtil.javajet"%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
String cid = node.getUniqueName();
String useExistingConn = ElementParameterParser.getValue(node,"__USE_EXISTING_CONNECTION__");
%>
}
}finally{
if (rs_<%=cid%> != null) {
rs_<%=cid%>.close();
}
if (stmt_<%=cid%> != null) {
stmt_<%=cid%>.close();
}
<%
if(!("true").equals(useExistingConn))
{
%>
if(conn_<%=cid%> != null && !conn_<%=cid%>.isClosed()) {
<%log4jCodeGenerateUtil.close(node);%>
}
<%
}
%>
}
<%
boolean isAmazonAurora = node.isVirtualGenerateNode() && (cid.matches("^.*?tAmazonAuroraInput_\\d+_in$") || cid.matches("^.*?tDBInput_\\d+_in$"));
if(isAmazonAurora){
// why 3: ==> "_in".length()
%>
globalMap.put("<%= cid.substring(0,cid.length() - 3) %>_NB_LINE",nb_line_<%=cid%>);
<%
}else{
%>
globalMap.put("<%=cid %>_NB_LINE",nb_line_<%=cid%>);
<%
}
%>
<%
log4jCodeGenerateUtil.retrieveRecordsCount(node);
%>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -0,0 +1,282 @@
<COMPONENT>
<HEADER
PLATEFORM="ALL"
SERIAL=""
VERSION="0.102"
STATUS="ALPHA"
COMPATIBILITY="ALL"
AUTHOR="Talend"
RELEASE_DATE="20070312A"
STARTABLE="true"
LOG4J_ENABLED="true"
>
<SIGNATURE/>
</HEADER>
<FAMILIES>
<FAMILY>Databases/DB Specifics/MySQL</FAMILY>
</FAMILIES>
<DOCUMENTATION>
<URL/>
</DOCUMENTATION>
<CONNECTORS>
<CONNECTOR CTYPE="FLOW" MAX_INPUT="0" MAX_OUTPUT="1"/>
<CONNECTOR CTYPE="ITERATE" MAX_OUTPUT="1" MAX_INPUT="1"/>
<CONNECTOR CTYPE="SUBJOB_OK" MAX_INPUT="1" />
<CONNECTOR CTYPE="SUBJOB_ERROR" MAX_INPUT="1" />
<CONNECTOR CTYPE="COMPONENT_OK"/>
<CONNECTOR CTYPE="COMPONENT_ERROR"/>
<CONNECTOR CTYPE="RUN_IF"/>
</CONNECTORS>
<PARAMETERS>
<PARAMETER
NAME="PROPERTY"
FIELD="PROPERTY_TYPE"
NUM_ROW="1"
REPOSITORY_VALUE="DATABASE:MYSQL"
SHOW_IF="USE_EXISTING_CONNECTION == 'false'"
/>
<PARAMETER
NAME="DB_VERSION"
FIELD="CLOSED_LIST"
NUM_ROW="10"
REPOSITORY_VALUE="DB_VERSION"
SHOW_IF="USE_EXISTING_CONNECTION == 'false'">
<ITEMS DEFAULT="MYSQL_8">
<ITEM NAME="MYSQL_8" VALUE="MYSQL_8" />
<ITEM NAME="MYSQL_5" VALUE="MYSQL_5" />
<ITEM NAME="MARIADB" VALUE="MARIADB" />
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="USE_EXISTING_CONNECTION"
FIELD="CHECK"
NUM_ROW="15"
>
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="CONNECTION"
FIELD="COMPONENT_LIST"
REQUIRED="true" FILTER="tMysqlConnection"
NUM_ROW="15"
SHOW_IF="USE_EXISTING_CONNECTION == 'true'"
DYNAMIC_SETTINGS="true"
/>
<PARAMETER
NAME="HOST"
FIELD="TEXT"
NUM_ROW="20"
REPOSITORY_VALUE="SERVER_NAME"
REQUIRED="true"
SHOW_IF="USE_EXISTING_CONNECTION == 'false'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="PORT"
FIELD="TEXT"
NUM_ROW="20"
REPOSITORY_VALUE="PORT"
REQUIRED="true"
SHOW_IF="USE_EXISTING_CONNECTION == 'false'"
>
<DEFAULT>"3306"</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="DBNAME"
FIELD="TEXT"
NUM_ROW="20"
REPOSITORY_VALUE="SID"
REQUIRED="true"
SHOW_IF="USE_EXISTING_CONNECTION == 'false'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TYPE"
FIELD="TEXT"
NUM_ROW="20"
SHOW="false"
REPOSITORY_VALUE="TYPE"
>
<DEFAULT>MySQL</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="USER"
FIELD="TEXT"
NUM_ROW="25"
REPOSITORY_VALUE="USERNAME"
REQUIRED="true"
SHOW_IF="USE_EXISTING_CONNECTION == 'false'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="PASS"
FIELD="PASSWORD"
NUM_ROW="25"
REPOSITORY_VALUE="PASSWORD"
REQUIRED="true"
SHOW_IF="USE_EXISTING_CONNECTION == 'false'"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SCHEMA"
FIELD="SCHEMA_TYPE"
NUM_ROW="30"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TABLE"
FIELD="DBTABLE"
NUM_ROW="35"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="QUERYSTORE"
FIELD="QUERYSTORE_TYPE"
NUM_ROW="40"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="GUESS_SCHEMA"
FIELD="GUESS_SCHEMA"
NUM_ROW="40"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="QUERY"
FIELD="MEMO_SQL"
NUM_ROW="45"
REQUIRED="true"
>
<DEFAULT>"select id, name from employee"</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="NOTE"
FIELD="LABEL"
NUM_ROW="63"
GROUP="DATASOURCE"
SHOW_IF="USE_EXISTING_CONNECTION=='false'"
>
<DEFAULT>This option only applies when deploying and running in the Talend Runtime</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="SPECIFY_DATASOURCE_ALIAS"
FIELD="CHECK"
NUM_ROW="64"
REQUIRED="true"
GROUP="DATASOURCE"
SHOW_IF="USE_EXISTING_CONNECTION=='false'"
>
</PARAMETER>
<PARAMETER
NAME="DATASOURCE_ALIAS"
FIELD="TEXT"
NUM_ROW="65"
REQUIRED="true"
GROUP="DATASOURCE"
SHOW_IF="(SPECIFY_DATASOURCE_ALIAS=='true' AND USE_EXISTING_CONNECTION=='false')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="MAPPING"
FIELD="MAPPING_TYPE"
NUM_ROW="120"
SHOW="false"
>
<DEFAULT>mysql_id</DEFAULT>
</PARAMETER>
</PARAMETERS>
<ADVANCED_PARAMETERS>
<PARAMETER
NAME="PROPERTIES"
FIELD="TEXT"
NUM_ROW="4"
REPOSITORY_VALUE="PROPERTIES_STRING"
SHOW_IF="USE_EXISTING_CONNECTION == 'false'">
<DEFAULT>"noDatetimeStringSync=true"</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="ENCODING"
FIELD="ENCODING_TYPE"
NUM_ROW="10"
REQUIRED="true"
SHOW="false"
>
<DEFAULT>"ISO-8859-15"</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="ENABLE_STREAM"
FIELD="CHECK"
NUM_ROW="20"
SHOW_IF="DB_VERSION != 'MARIADB'"
>
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TRIM_ALL_COLUMN"
FIELD="CHECK"
NUM_ROW="30">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="TRIM_COLUMN"
FIELD="TABLE"
NUM_ROW="40"
NB_LINES="5"
SHOW_IF="TRIM_ALL_COLUMN == 'false'">
<ITEMS BASED_ON_SCHEMA="true">
<ITEM NAME="TRIM" FIELD="CHECK"></ITEM>
</ITEMS>
</PARAMETER>
</ADVANCED_PARAMETERS>
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Mysql_Driver8" MODULE="mysql-connector-java-8.0.18.jar" MVN="mvn:mysql/mysql-connector-java/8.0.18" REQUIRED_IF="(DB_VERSION == 'MYSQL_8') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Mysql_Driver5" MODULE="mysql-connector-java-5.1.49.jar" MVN="mvn:mysql/mysql-connector-java/5.1.49" REQUIRED_IF="(DB_VERSION == 'MYSQL_5') AND (USE_EXISTING_CONNECTION == 'false')" />
<IMPORT NAME="Mysql_MARIADB" MODULE="mariadb-java-client-2.5.3.jar" MVN="mvn:org.mariadb.jdbc/mariadb-java-client/2.5.3" REQUIRED_IF="(DB_VERSION == 'MARIADB') AND (USE_EXISTING_CONNECTION == 'false')" />
</IMPORTS>
</CODEGENERATION>
<RETURNS>
<RETURN NAME="NB_LINE" TYPE="id_Integer" AVAILABILITY="AFTER"/>
<RETURN NAME="QUERY" TYPE="id_String" AVAILABILITY="FLOW"/>
</RETURNS>
</COMPONENT>

View File

@@ -0,0 +1,45 @@
DBD-ODBC.INFO=Required for ODBC-like connection
DBD-Oracle.INFO=Required for Oracle
DBD-Pg.INFO=Required for PostgreSQL
DBD-mysql.INFO=Required for MySQL
DBNAME.NAME=Database
DBTABLE.NAME=Table Name
ENABLE_STREAM.NAME=Enable stream
ENCODING.NAME=Encoding
HELP=org.talend.help.tMysqlInput
HOST.NAME=Host
LONG_NAME=Reads a MySQL table and extracts fields based on an SQL query
NB_LINE.NAME=Number of line
NULL_CHAR.NAME=Null Char
PASS.NAME=Password
PORT.NAME=Port
PROPERTIES.NAME=Additional JDBC Parameters
QUERY.NAME=Query
QUERYSTORE.NAME=Query Type
SCHEMA.NAME=Schema
SCHEMA_DB.NAME=Schema
SQL_SYNTAX.NAME=Sql Syntax
STRING_QUOTE.NAME=String Quote
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc driver)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=Generic ODBC
TYPE.ITEM.ORACLE=Oracle
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=Database Driver
USER.NAME=Username
USE_EXISTING_CONNECTION.NAME=Use 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
GUESS_SCHEMA.NAME=Guess Schema
CONNECTION.NAME=Component List
PROPERTY.NAME=Property Type
MAPPING.NAME=Mapping
DB_VERSION.NAME=DB Version
DB_VERSION.ITEM.MYSQL_5=Mysql 5
DB_VERSION.ITEM.MYSQL_8=Mysql 8
DB_VERSION.ITEM.MARIADB=MariaDB
SPECIFY_DATASOURCE_ALIAS.NAME=Specify a data source alias
DATASOURCE.NAME=Data source
DATASOURCE_ALIAS.NAME=Data source alias

View File

@@ -0,0 +1,35 @@
DBD-ODBC.INFO=F\u00FCr ODBC-\u00E4hnliche Verbindung ben\u00F6tigt
DBD-Oracle.INFO=F\u00FCr Oracle ben\u00F6tigt
DBD-Pg.INFO=F\u00FCr PostgreSQL ben\u00F6tigt
DBD-mysql.INFO=F\u00FCr MySQL ben\u00F6tigt
DBTABLE.NAME=Tabellenname
ENCODING.NAME=Encoding
HOST.NAME=Host
PASS.NAME=Passwort
PORT.NAME=Port
PROPERTIES.NAME=Zus\u00E4tzliche JDBC Parameter
QUERY.NAME=Abfrage
QUERYSTORE.NAME=Abfragetyp
SCHEMA.NAME=Schema
SCHEMA_DB.NAME=Schema
SQL_SYNTAX.NAME=SQL Syntax
STRING_QUOTE.NAME=Text Quotierung
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc Treiber)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=Generischer ODBC
TYPE.ITEM.ORACLE=Oracle
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=Datenbanktreiber
USER.NAME=Benutzername
USE_EXISTING_CONNECTION.NAME=eine bestehende Verbindung verwenden
TRIM_ALL_COLUMN.NAME=Trimme alle Zeichenketten/Zeichen-Spalten
TRIM_COLUMN.NAME=Trimmt Spalte
TRIM_COLUMN.ITEM.TRIM=Trimmen
TABLE.NAME=Tabellenname
GUESS_SCHEMA.NAME=Errate Schema
CONNECTION.NAME=Komponenten Liste
PROPERTY.NAME=Eigenschaftstyp
DB_VERSION.NAME=Datenbankversion
DB_VERSION.ITEM.MYSQL_5=Mysql 5
MAPPING.NAME=Mapping
DATASOURCE.NAME=Datenquelle

View File

@@ -0,0 +1,15 @@
ENCODING.NAME=Codificaci\u00F3n
HOST.NAME=Host
PASS.NAME=Contrase\u00F1a
PORT.NAME=Puerto
SCHEMA.NAME=Esquema
SCHEMA_DB.NAME=Esquema
SQL_SYNTAX.NAME=Sintaxis SQL
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Controlador ODBC)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=ODBC Gen\u00E9rico
TYPE.ITEM.ORACLE=Oracle
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=Controlador de base de datos
USER.NAME=Nombre de usuario
USE_EXISTING_CONNECTION.NAME=Usar una conexi\u00F3n existente

View File

@@ -0,0 +1,45 @@
DBD-ODBC.INFO=Requis pour les connexions de type ODBC
DBD-Oracle.INFO=Requis pour Oracle
DBD-Pg.INFO=Requis pour PostgreSQL
DBD-mysql.INFO=Requis pour MySQL
DBNAME.NAME=Base de donn\u00E9es
DBTABLE.NAME=Nom de la table
ENABLE_STREAM.NAME=Activer le flux
ENCODING.NAME=Encodage
HELP=org.talend.help.tMysqlInput
HOST.NAME=H\u00F4te
LONG_NAME=Lit une table MySQL et extrait des champs \u00E0 partir d'une requ\u00EAte SQL
NB_LINE.NAME=Nombre de lignes
NULL_CHAR.NAME=Caract\u00E8re Null
PASS.NAME=Mot de passe
PORT.NAME=Port
PROPERTIES.NAME=Param\u00E8tres suppl\u00E9mentaires JDBC
QUERY.NAME=Requ\u00EAte
QUERYSTORE.NAME=Type de requ\u00EAte
SCHEMA.NAME=Sch\u00E9ma
SCHEMA_DB.NAME=Sch\u00E9ma
SQL_SYNTAX.NAME=Syntaxe SQL
STRING_QUOTE.NAME=S\u00E9parateur de cha\u00EEne de caract\u00E8res
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (pilote ODBC)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=ODBC g\u00E9n\u00E9rique
TYPE.ITEM.ORACLE=Oracle
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=Pilote de la base de donn\u00E9es
USER.NAME=Utilisateur
USE_EXISTING_CONNECTION.NAME=Utiliser une connexion existante
TRIM_ALL_COLUMN.NAME=Supprimer les espaces entourant toutes les colonnes String/Char
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
GUESS_SCHEMA.NAME=D\u00E9tecter le sch\u00E9ma
CONNECTION.NAME=Liste des composants
PROPERTY.NAME=Type de propri\u00E9t\u00E9
MAPPING.NAME=Mapping
DB_VERSION.NAME=Version de la base de donn\u00E9es
DB_VERSION.ITEM.MYSQL_5=MySQL 5
DB_VERSION.ITEM.MYSQL_8=MySQL 8
DB_VERSION.ITEM.MARIADB=MariaDB
SPECIFY_DATASOURCE_ALIAS.NAME=Sp\u00E9cifier un alias de source de donn\u00E9es
DATASOURCE.NAME=Source de donn\u00E9es
DATASOURCE_ALIAS.NAME=Alias de la source de donn\u00E9es

View File

@@ -0,0 +1,35 @@
DBD-ODBC.INFO=Richiesto per connessione ODBC-like
DBD-Oracle.INFO=Richiesto per Oracle
DBD-Pg.INFO=Richiesto per PostgreSQL
DBD-mysql.INFO=Richiesto per MySQL
DBTABLE.NAME=Nome Tabella
ENCODING.NAME=Codifica
HOST.NAME=Host
LONG_NAME=Leggi tabella MySQL ed estrai i campi tramite query SQL
NULL_CHAR.NAME=Carattere Nullo
PASS.NAME=Password
PORT.NAME=Porta
PROPERTIES.NAME=Parametri aggiuntivi JDBC
QUERY.NAME=Query
QUERYSTORE.NAME=Tipo query
SCHEMA.NAME=Schema
SCHEMA_DB.NAME=Schema
SQL_SYNTAX.NAME=Sintassi SQL
STRING_QUOTE.NAME=Quota stringa
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc driver)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=ODBC Generico
TYPE.ITEM.ORACLE=Oracle
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=Database Driver
USER.NAME=Username
USE_EXISTING_CONNECTION.NAME=Usa una connessione esistente
TRIM_ALL_COLUMN.NAME=Regola colonne String/Char
TRIM_COLUMN.NAME=Regola colonna
TRIM_COLUMN.ITEM.TRIM=Regola
TABLE.NAME=Nome Tabella
GUESS_SCHEMA.NAME=Intuire schema
CONNECTION.NAME=Lista componente
PROPERTY.NAME=Tipo propriet\u00E0
DB_VERSION.NAME=Versione Db
MAPPING.NAME=Mapping

View File

@@ -0,0 +1,45 @@
DBD-ODBC.INFO=ODBC\u306E\u3088\u3046\u306A\u63A5\u7D9A\u3067\u5FC5\u9808
DBD-Oracle.INFO=Oracle\u3067\u5FC5\u9808
DBD-Pg.INFO=PostgreSQL\u3067\u5FC5\u9808
DBD-mysql.INFO=MySQL\u3067\u5FC5\u9808
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
DBTABLE.NAME=\u30C6\u30FC\u30D6\u30EB\u540D
ENABLE_STREAM.NAME=\u30B9\u30C8\u30EA\u30FC\u30E0\u3092\u6709\u52B9\u5316
ENCODING.NAME=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0
HELP=org.talend.help.tMysqlInput
HOST.NAME=\u30DB\u30B9\u30C8
LONG_NAME=MySQL\u30C6\u30FC\u30D6\u30EB\u3092\u8AAD\u307F\u53D6\u308A\u3001SQL\u30AF\u30A8\u30EA\u30FC\u306B\u57FA\u3065\u3044\u3066\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u62BD\u51FA\u3057\u307E\u3059\u3002
NB_LINE.NAME=\u884C\u6570
NULL_CHAR.NAME=Null\u6587\u5B57
PASS.NAME=\u30D1\u30B9\u30EF\u30FC\u30C9
PORT.NAME=\u30DD\u30FC\u30C8
PROPERTIES.NAME=\u8FFD\u52A0\u306EJDBC\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC
QUERY.NAME=\u30AF\u30A8\u30EA\u30FC
QUERYSTORE.NAME=\u30AF\u30A8\u30EA\u30FC\u30BF\u30A4\u30D7
SCHEMA.NAME=\u30B9\u30AD\u30FC\u30DE
SCHEMA_DB.NAME=\u30B9\u30AD\u30FC\u30DE
SQL_SYNTAX.NAME=Sql\u69CB\u6587
STRING_QUOTE.NAME=\u5F15\u7528\u7B26
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc\u30C9\u30E9\u30A4\u30D0\u30FC)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=\u6C4E\u7528ODBC
TYPE.ITEM.ORACLE=Oracle
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C9\u30E9\u30A4\u30D0\u30FC
USER.NAME=\u30E6\u30FC\u30B6\u30FC\u540D
USE_EXISTING_CONNECTION.NAME=\u65E2\u5B58\u306E\u63A5\u7D9A\u3092\u4F7F\u7528
TRIM_ALL_COLUMN.NAME=\u3059\u3079\u3066\u306E\u6587\u5B57\u5217/\u6587\u5B57\u306E\u30AB\u30E9\u30E0\u3092\u30C8\u30EA\u30E0
TRIM_COLUMN.NAME=\u30AB\u30E9\u30E0\u306E\u30C8\u30EA\u30E0
TRIM_COLUMN.ITEM.TRIM=\u30C8\u30EA\u30E0
TABLE.NAME=\u30C6\u30FC\u30D6\u30EB\u540D
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
MAPPING.NAME=\u30DE\u30C3\u30D4\u30F3\u30B0
DB_VERSION.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D0\u30FC\u30B8\u30E7\u30F3
DB_VERSION.ITEM.MYSQL_5=Mysql 5
DB_VERSION.ITEM.MYSQL_8=Mysql8
DB_VERSION.ITEM.MARIADB=MariaDB
SPECIFY_DATASOURCE_ALIAS.NAME=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u30A8\u30A4\u30EA\u30A2\u30B9\u3092\u6307\u5B9A
DATASOURCE.NAME=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9
DATASOURCE_ALIAS.NAME=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u30A8\u30A4\u30EA\u30A2\u30B9

View File

@@ -0,0 +1,38 @@
DBD-ODBC.INFO=ODBC-like connection\u306E\u5834\u5408\u306F\u5FC5\u9808
DBD-Oracle.INFO=Oracle\u306E\u5834\u5408\u306F\u5FC5\u9808
DBD-Pg.INFO=PostgreSQL\u306E\u5834\u5408\u306F\u5FC5\u9808
DBD-mysql.INFO=MySQL\u306E\u5834\u5408\u306F\u5FC5\u9808
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
DBTABLE.NAME=\u30C6\u30FC\u30D6\u30EB\u540D
ENABLE_STREAM.NAME=\u30B9\u30C8\u30EA\u30FC\u30E0\u3092\u6709\u52B9\u306B\u3059\u308B
ENCODING.NAME=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0
HELP=org.talend.help.tMysqlInput
HOST.NAME=\u30DB\u30B9\u30C8
LONG_NAME=MySQL\u30c6\u30fc\u30d6\u30eb\u3092\u8aad\u8fbc\u307f\u3001SQL\u30af\u30a8\u30ea\u306b\u57fa\u3065\u304d\u3001\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u62bd\u51fa
NB_LINE.NAME=\u884c\u6570
NULL_CHAR.NAME=Null\u30AD\u30E3\u30E9\u30AF\u30BF
PASS.NAME=\u30D1\u30B9\u30EF\u30FC\u30C9
PORT.NAME=\u30DD\u30FC\u30C8
PROPERTIES.NAME=\u8ffd\u52a0\u306eJDBC\u30d1\u30e9\u30e1\u30fc\u30bf
QUERY.NAME=\u30AF\u30A8\u30EA
QUERYSTORE.NAME=\u30AF\u30A8\u30EA\u30BF\u30A4\u30D7
SCHEMA.NAME=\u30B9\u30AD\u30FC\u30DE
SCHEMA_DB.NAME=\u30B9\u30AD\u30FC\u30DE
SQL_SYNTAX.NAME=SQL\u69CB\u6587
STRING_QUOTE.NAME=\u6587\u5B57\u5217\u306E\u5F15\u7528
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc \u30C9\u30E9\u30A4\u30D0)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=\u6c4e\u7528ODBC
TYPE.ITEM.ORACLE=Oracle
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C9\u30E9\u30A4\u30D0
USER.NAME=\u30e6\u30fc\u30b6\u540d
USE_EXISTING_CONNECTION.NAME=\u65e2\u5b58\u63a5\u7d9a\u3092\u4f7f\u7528
TRIM_ALL_COLUMN.NAME=\u5168\u6587\u5b57\u5217\u30ab\u30e9\u30e0\u3092\u30c8\u30ea\u30df\u30f3\u30b0
TRIM_COLUMN.NAME=\u30ab\u30e9\u30e0\u3092\u30c8\u30ea\u30df\u30f3\u30b0
TRIM_COLUMN.ITEM.TRIM=\u30c8\u30ea\u30df\u30f3\u30b0
TABLE.NAME=\u30C6\u30FC\u30D6\u30EB\u540D
GUESS_SCHEMA.NAME=\u30B9\u30AD\u30FC\u30DE\u3092\u63A8\u5B9A\u3059\u308B
CONNECTION.NAME=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30EA\u30B9\u30C8
PROPERTY.NAME=\u30D7\u30ED\u30D1\u30C6\u30A3\u30BF\u30A4\u30D7
DB_VERSION.NAME=DB\u30D0\u30FC\u30B8\u30E7\u30F3

View File

@@ -0,0 +1,31 @@
DBD-ODBC.INFO=\u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C \u0434\u043B\u044F \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0439 ODBC \u0442\u0438\u043F\u0430
DBD-Oracle.INFO=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F Oracle
DBD-Pg.INFO=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F PostgreSQL
DBD-mysql.INFO=\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0434\u043B\u044F MySQL
DBTABLE.NAME=\u0418\u043C\u044F \u0442\u0430\u0431\u043B\u0438\u0446\u044B
ENABLE_STREAM.NAME=\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0442\u0440\u0438\u043C
ENCODING.NAME=\u041A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430
HOST.NAME=\u0425\u043E\u0441\u0442
NULL_CHAR.NAME=\u041F\u0443\u0441\u0442\u043E\u0439 \u0441\u0438\u043C\u0432\u043E\u043B
PASS.NAME=\u041F\u0430\u0440\u043E\u043B\u044C
PORT.NAME=\u041F\u043E\u0440\u0442
QUERY.NAME=\u0417\u0430\u043F\u0440\u043E\u0441
QUERYSTORE.NAME=\u0422\u0438\u043F \u0437\u0430\u043F\u0440\u043E\u0441\u0430
SCHEMA.NAME=\u0421\u0445\u0435\u043C\u0430
SCHEMA_DB.NAME=\u0421\u0445\u0435\u043C\u0430
SQL_SYNTAX.NAME=SQL \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc driver)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=Generic ODBC
TYPE.ITEM.ORACLE=Oracle
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=\u0414\u0440\u0430\u0439\u0432\u0435\u0440 \u0431\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445
USER.NAME=\u0418\u043C\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F
USE_EXISTING_CONNECTION.NAME=\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0435 \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435
TRIM_ALL_COLUMN.NAME="\u041E\u0431\u0440\u0435\u0437\u0430\u0442\u044C" \u0432\u0441\u0435 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0435 \u043F\u043E\u043B\u044F
TRIM_COLUMN.NAME="\u041E\u0431\u0440\u0435\u0437\u0430\u0442\u044C" \u0441\u0442\u043E\u043B\u0431\u0435\u0446
TABLE.NAME=\u0418\u043C\u044F \u0442\u0430\u0431\u043B\u0438\u0446\u044B
GUESS_SCHEMA.NAME=\u041F\u0440\u0435\u0434\u043F\u043E\u043B\u043E\u0436\u0438\u0442\u044C \u0441\u0445\u0435\u043C\u0443
CONNECTION.NAME=\u041B\u0438\u0441\u0442 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442
DB_VERSION.NAME=\u0412\u0435\u0440\u0441\u0438\u044F \u0411\u0414
DB_VERSION.ITEM.MYSQL_5=Mysql 5

View File

@@ -0,0 +1,10 @@
DBTABLE.NAME=N\u00E1zov Tabu\u013Eky
ENCODING.NAME=K\u00F3dovanie
HOST.NAME=Host
PASS.NAME=Heslo
PORT.NAME=Port
SCHEMA.NAME=Sch\u00E9ma
SCHEMA_DB.NAME=Sch\u00E9ma
USER.NAME=U\u017E\u00EDvate\u013Esk\u00E9 Meno
TABLE.NAME=N\u00E1zov Tabu\u013Eky
DB_VERSION.ITEM.MYSQL_5=Mysql 5

View File

@@ -0,0 +1,11 @@
DBTABLE.NAME=N<EFBFBD>zov Tabu\u013Eky
ENCODING.NAME=K<EFBFBD>dovanie
HOST.NAME=Host
PASS.NAME=Heslo
PORT.NAME=Port
SCHEMA.NAME=Sch<EFBFBD>ma
SCHEMA_DB.NAME=Sch<EFBFBD>ma
USER.NAME=U\u017E<37>vate\u013Esk<73> Meno
TABLE.NAME=N<EFBFBD>zov Tabu\u013Eky
DB_VERSION.ITEM.MYSQL_4=Mysql 4
DB_VERSION.ITEM.MYSQL_5=Mysql 5

View File

@@ -0,0 +1,45 @@
DBD-ODBC.INFO=\u4E3A\u7C7B\u4F3C ODBC \u8FDE\u63A5\u6240\u5FC5\u9700
DBD-Oracle.INFO=\u4E3A Oracle \u6240\u5FC5\u9700
DBD-Pg.INFO=\u4E3A PostgreSQL \u6240\u5FC5\u9700
DBD-mysql.INFO=\u4E3A MySQL \u6240\u5FC5\u9700
DBNAME.NAME=\u6570\u636E\u5E93
DBTABLE.NAME=\u8868\u540D\u79F0
ENABLE_STREAM.NAME=\u542F\u7528\u6D41
ENCODING.NAME=\u7F16\u7801
HELP=org.talend.help.tMysqlInput
HOST.NAME=\u4E3B\u673A
LONG_NAME=\u8BFB\u53D6 MySQL \u8868\u5E76\u57FA\u4E8E SQL \u67E5\u8BE2\u63D0\u53D6\u5B57\u6BB5
NB_LINE.NAME=\u884C\u6570
NULL_CHAR.NAME=Null \u5B57\u7B26
PASS.NAME=\u5BC6\u7801
PORT.NAME=\u7AEF\u53E3
PROPERTIES.NAME=\u9644\u52A0 JDBC \u53C2\u6570
QUERY.NAME=\u67E5\u8BE2
QUERYSTORE.NAME=\u67E5\u8BE2\u7C7B\u578B
SCHEMA.NAME=Schema
SCHEMA_DB.NAME=Schema
SQL_SYNTAX.NAME=Sql \u8BED\u6CD5
STRING_QUOTE.NAME=\u5B57\u7B26\u4E32\u5F15\u7528
TYPE.ITEM.MSSQL_ODBC=Microsoft SQL (Odbc \u9A71\u52A8)
TYPE.ITEM.MYSQL=MySQL
TYPE.ITEM.ODBC=\u901A\u7528 ODBC
TYPE.ITEM.ORACLE=\u5B9E\u6570\u7EDD\u5BF9\u503C
TYPE.ITEM.PGSQL=PostgreSQL
TYPE.NAME=\u6570\u636E\u5E93\u9A71\u52A8
USER.NAME=\u7528\u6237\u540D
USE_EXISTING_CONNECTION.NAME=\u4F7F\u7528\u4E00\u4E2A\u73B0\u6709\u8FDE\u63A5
TRIM_ALL_COLUMN.NAME=\u526A\u88C1\u6240\u6709\u7684\u5B57\u7B26\u4E32/\u5B57\u7B26\u5217
TRIM_COLUMN.NAME=\u526A\u88C1\u5217
TRIM_COLUMN.ITEM.TRIM=\u526A\u88C1
TABLE.NAME=\u8868\u540D\u79F0
GUESS_SCHEMA.NAME=\u63A8\u6D4B Schema
CONNECTION.NAME=\u7EC4\u4EF6\u5217\u8868
PROPERTY.NAME=\u5C5E\u6027\u7C7B\u578B
MAPPING.NAME=\u6620\u5C04
DB_VERSION.NAME=\u6570\u636E\u5E93\u7248\u672C
DB_VERSION.ITEM.MYSQL_5=Mysql 5
DB_VERSION.ITEM.MYSQL_8=Mysql 8
DB_VERSION.ITEM.MARIADB=MariaDB
SPECIFY_DATASOURCE_ALIAS.NAME=\u6307\u5B9A\u6570\u636E\u6E90\u522B\u540D
DATASOURCE.NAME=\u6570\u636E\u6E90
DATASOURCE_ALIAS.NAME=\u6570\u636E\u6E90\u522B\u540D

View File

@@ -0,0 +1,604 @@
<%@ jet
imports="
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.types.JavaTypesManager
org.talend.core.model.metadata.MappingTypeRetriever
org.talend.core.model.metadata.MetadataTalendType
org.talend.core.model.process.IProcess
org.talend.core.model.process.IConnection
java.util.List
java.util.ArrayList
java.util.Map
java.util.HashMap
"
skeleton="../templates/db_output_bulk.skeleton"
%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Log4j/DBLogUtil.javajet"%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
String cid = node.getUniqueName();
boolean isAmazonAurora = node.isVirtualGenerateNode() && (cid.matches("^.*?tAmazonAuroraOutput_\\d+_out$") || cid.matches("^.*?tDBOutput_\\d+_out$"));
if(isAmazonAurora){
cid = cid.substring(0,cid.length()-4);// 4 ==> "_out".length();
}
dbLog = new DBLogUtil(node);
IProcess process = node.getProcess();
String dbtypeDefinition = ElementParameterParser.getValue(node, "__TYPE__");
List<Map<String, String>> addCols =
(List<Map<String,String>>)ElementParameterParser.getObjectValue(
node,"__ADD_COLS__" );
boolean useFieldOptions = ("true").equals(ElementParameterParser.getValue(node, "__USE_FIELD_OPTIONS__"));
List<Map<String, String>> fieldOptions = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__FIELD_OPTIONS__");
String dbname= ElementParameterParser.getValue(node, "__DBNAME__");
String dbproperties = ElementParameterParser.getValue(node, "__PROPERTIES__");
String dbhost = ElementParameterParser.getValue(node, "__HOST__");
String dbport = ElementParameterParser.getValue(node, "__PORT__");
String dbuser= ElementParameterParser.getValue(node, "__USER__");
String table = ElementParameterParser.getValue(node,"__TABLE__");
String dbmsId = ElementParameterParser.getValue(node,"__MAPPING__");
String dataAction = ElementParameterParser.getValue(node,"__DATA_ACTION__");
String tableAction = ElementParameterParser.getValue(node,"__TABLE_ACTION__");
String commitEvery = ElementParameterParser.getValue(node, "__COMMIT_EVERY__");
boolean extendedInsert = false;
String dbVersion = "" ;
if ("INSERT".equalsIgnoreCase(dataAction)) {
extendedInsert = ("true").equals(ElementParameterParser.getValue(node, "__EXTENDINSERT__"));
//to fixed: bug8422
if((cid.equals("talendLogs_DB") || cid.equals("talendStats_DB") || cid.equals("talendMeter_DB"))){
extendedInsert = false;
}
}else {
extendedInsert = false;
}
String numPerInsert = ElementParameterParser.getValue(node, "__NB_ROWS_PER_INSERT__");
boolean isEnableDebug = ("true").equals(ElementParameterParser.getValue(node,"__ENABLE_DEBUG_MODE__"));
boolean useBatchSize = ("true").equals(ElementParameterParser.getValue(node,"__USE_BATCH_SIZE__"));
String batchSize=ElementParameterParser.getValue(node,"__BATCH_SIZE__");
%>
<%
getManager(dbmsId, cid, node);
boolean isDynamic = false;
List<IMetadataTable> metadatas = node.getMetadataList();
if ((metadatas!=null)&&(metadatas.size()>0)) {
IMetadataTable metadata = metadatas.get(0);
isDynamic = metadata.isDynamicSchema();
}
List<IMetadataColumn> columnList = getColumnList(node);
List<Column> stmtStructure = null;
Manager manager = null;
if(columnList != null && columnList.size() > 0) {
stmtStructure = getManager(dbmsId, cid).createColumnList(columnList, useFieldOptions, fieldOptions, addCols);
isDynamic = isDynamic && !getManager(dbmsId, cid).isDynamicColumnReplaced();
}
%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/DB/Output/CheckKeysForUpdateAndDelete.javajet"%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/DB/Output/CheckKeysForUpdateOnDuplicateKey.javajet"%>
int nb_line_<%=cid%> = 0;
int nb_line_update_<%=cid%> = 0;
int nb_line_inserted_<%=cid%> = 0;
int nb_line_deleted_<%=cid%> = 0;
int nb_line_rejected_<%=cid%> = 0;
int deletedCount_<%=cid%>=0;
int updatedCount_<%=cid%>=0;
int insertedCount_<%=cid%>=0;
int rowsToCommitCount_<%=cid%>=0;
int rejectedCount_<%=cid%>=0;
String tableName_<%=cid%> = <%=table%>;
boolean whetherReject_<%=cid%> = false;
java.util.Calendar calendar_<%=cid %> = java.util.Calendar.getInstance();
calendar_<%=cid %>.set(1, 0, 1, 0, 0, 0);
long year1_<%=cid %> = calendar_<%=cid %>.getTime().getTime();
calendar_<%=cid %>.set(10000, 0, 1, 0, 0, 0);
long year10000_<%=cid %> = calendar_<%=cid %>.getTime().getTime();
long date_<%=cid %>;
java.sql.Connection conn_<%=cid%> = null;
<%
boolean useExistingConnection = "true".equalsIgnoreCase(ElementParameterParser.getValue(node,"__USE_EXISTING_CONNECTION__"));
if(useExistingConnection) {
String connection = ElementParameterParser.getValue(node,"__CONNECTION__");
String conn = "conn_" + connection;
if(isAmazonAurora){
conn += "_in";
dbVersion = "MYSQL_5";
}else{
List< ? extends INode> nodes = process.getNodesOfType("tMysqlConnection");
for (INode ne:nodes) {
if (connection.equals(ne.getUniqueName())) {
dbVersion = ElementParameterParser.getValue(ne, "__DB_VERSION__");
}
}
}
%>
conn_<%=cid%> = (java.sql.Connection)globalMap.get("<%=conn%>");
<%dbLog.conn().useExistConn("conn_"+cid+".getMetaData().getURL()", "conn_"+cid+".getMetaData().getUserName()");%>
<%
} else {
%>
<%
boolean specify_alias = "true".equals(ElementParameterParser.getValue(node, "__SPECIFY_DATASOURCE_ALIAS__"));
if(specify_alias){
String alias = ElementParameterParser.getValue(node, "__DATASOURCE_ALIAS__");
%>
java.util.Map<String, routines.system.TalendDataSource> dataSources_<%=cid%> = (java.util.Map<String, routines.system.TalendDataSource>) globalMap.get(KEY_DB_DATASOURCES);
if (null != dataSources_<%=cid%>) {
String dsAlias_<%=cid%> = <%=(null != alias && !("".equals(alias)))?alias:"\"\""%>;
if (dataSources_<%=cid%>.get(dsAlias_<%=cid%>) == null) {
throw new RuntimeException("No DataSource with alias: " + dsAlias_<%=cid%> + " available!");
}
conn_<%=cid%> = dataSources_<%=cid%>.get(dsAlias_<%=cid%>).getConnection();
} else {
<%
}
dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
String drverClass = "com.mysql.jdbc.Driver";
String jdbcURL = "jdbc:mysql";
if("MARIADB".equals(dbVersion)){
drverClass = "org.mariadb.jdbc.Driver";
jdbcURL = "jdbc:mariadb";
} else if ("MYSQL_8".equals(dbVersion)) {
drverClass = "com.mysql.cj.jdbc.Driver";
}
final boolean supportBulkComponent = true;
%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Mysql/jdbcurl4connection_output.javajet"%>
String driverClass_<%=cid%> = "<%=drverClass%>";
<%dbLog.conn().logJDBCDriver(dbLog.var("driverClass"));%>
String dbUser_<%=cid %> = <%=dbuser%>;
<%
String passwordFieldName = "__PASS__";
%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/password.javajet"%>
String dbPwd_<%=cid %> = decryptedPassword_<%=cid%>;
java.lang.Class.forName(driverClass_<%=cid%>);
<%dbLog.conn().connTry(dbLog.var("url"), dbLog.var("dbUser"));%>
conn_<%=cid%> = java.sql.DriverManager.getConnection(url_<%=cid %>, dbUser_<%=cid%>, dbPwd_<%=cid%>);
<%dbLog.conn().connDone(dbLog.var("url"));%>
<%
if(specify_alias){
%>
}
<%
}
%>
resourceMap.put("conn_<%=cid%>", conn_<%=cid%>);
<%
}
if(!useExistingConnection) {
if(!("").equals(commitEvery)&&!("0").equals(commitEvery)){
%>
conn_<%=cid%>.setAutoCommit(false);
int commitEvery_<%=cid%> = <%=commitEvery%>;
int commitCounter_<%=cid%> = 0;
<%
}
}
dbLog.commit().logAutoCommit("conn_"+cid+".getAutoCommit()");
%>
<%
if (useBatchSize && ("MYSQL_8".equals(dbVersion) || "MYSQL_5".equals(dbVersion) || "MARIADB".equals(dbVersion)) && (("UPDATE").equals(dataAction)||("DELETE").equals(dataAction))) {
if(!("").equals(batchSize)&&!("0").equals(batchSize)) {
%>
int batchSize_<%=cid%> = <%=batchSize%>;
int batchSizeCounter_<%=cid%>=0;
<%
}
}
%>
<%
if(!isDynamic) {
%>
int count_<%=cid%>=0;
<%
///// hint options/////
boolean useHintOptions = ("true").equals(ElementParameterParser.getValue(node,"__USE_HINT_OPTIONS__"));
Map<String, String> hintsValues = null;
if (useHintOptions) {
List<Map<String, String>> hintOptions = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__HINT_OPTIONS__");
hintsValues = new HashMap<String, String>();
String hintValue = null;
boolean firstInsert = true;
boolean firstUpdate = true;
boolean firstDelete = true;
boolean firstTableName = true;
for(java.util.Map<String, String> option : hintOptions) {
//get
hintValue = option.get("HINT");
//set
if ("INSERT".equalsIgnoreCase(option.get("SQL_STMT"))){
if(firstInsert){
hintsValues.put("INSERT", hintValue) ;
firstInsert = false;
}else {
hintsValues.put("INSERT", hintsValues.get("INSERT") + "+" + hintValue) ;
}
}else if ("UPDATE".equalsIgnoreCase(option.get("SQL_STMT"))) {
if(firstUpdate){
hintsValues.put("UPDATE", hintValue) ;
firstUpdate = false;
}else {
hintsValues.put("UPDATE", hintsValues.get("UPDATE") + "+" + hintValue) ;
}
}else if ("DELETE".equalsIgnoreCase(option.get("SQL_STMT"))) {
if (firstDelete){
hintsValues.put("DELETE", hintValue) ;
firstDelete =false;
}else {
hintsValues.put("DELETE", hintsValues.get("DELETE") + "+" + hintValue) ;
}
}
}
}
//// hint options end ////
if(columnList != null && columnList.size() > 0) {
%>
<%@ include file="../templates/_tableActionForOutput.javajet"%>
<%
Map<String, StringBuilder> actionSQLMap = getManager(dbmsId, cid).createProcessSQL(stmtStructure);
StringBuilder insertColName = actionSQLMap.get(INSERT_COLUMN_NAME);
StringBuilder insertValueStmt = actionSQLMap.get(INSERT_VALUE_STMT);
StringBuilder updateSetStmt = actionSQLMap.get(UPDATE_SET_STMT);
StringBuilder updateWhereStmt = actionSQLMap.get(UPDATE_WHERE_STMT);
StringBuilder deleteWhereStmt = actionSQLMap.get(DELETE_WHERE_STMT);
boolean supportDuplicateUpdate = "true".equalsIgnoreCase(ElementParameterParser.getValue(node,"__ON_DUPLICATE_KEY_UPDATE__"));
if(("INSERT").equals(dataAction)) {
if (supportDuplicateUpdate) {
List<Map<String, String>> duplicateKeys = (List<Map<String,String>>)ElementParameterParser.getObjectValue( node,"__DUPLICATED_KEYS__" );
if (duplicateKeys.size() > 0) {
%>
StringBuffer duplidateClause_<%=cid%> = new StringBuffer(" ON DUPLICATE KEY UPDATE ");
<%
for (int i=0; i< duplicateKeys.size() ; i++) {
if (i >0) {
%>
duplidateClause_<%=cid%>.append(",");
<%
}
%>
duplidateClause_<%=cid%>.append ("`" + <%=duplicateKeys.get(i).get("DUPLICATED_KEY")%> + "`");
duplidateClause_<%=cid%>.append ("=");
duplidateClause_<%=cid%>.append (<%=duplicateKeys.get(i).get("DUPLICATED_VALUE")%>);
<%
}
}
}
%>
<%
if(!extendedInsert) {
%>
String insert_<%=cid%> = "INSERT INTO `" + <%=table%> + "` (<%=insertColName.toString()%>) VALUES (<%=insertValueStmt.toString()%>)";
<%
if (supportDuplicateUpdate) {
%>
insert_<%=cid%> += duplidateClause_<%=cid%>.toString();
<%
}
%>
<%@ include file="../templates/_hintInsert.javajet" %>
<%
//to fixed: bug8422
if(!(cid.equals("talendLogs_DB") || cid.equals("talendStats_DB") || cid.equals("talendMeter_DB"))){%>
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insert_<%=cid%>);
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
<%}%>
<%
//to fixed: bug8422
if((cid.equals("talendLogs_DB") || cid.equals("talendStats_DB") || cid.equals("talendMeter_DB"))){ %>
java.sql.PreparedStatement pstmt_<%=cid %> = null;
// [%connection%][psmt][tableName]
String keyPsmt_<%=cid %> = conn_<%=cid%> + "[psmt]" + "[" + <%=table%> + "]";
pstmt_<%=cid %> = SharedDBPreparedStatement.getSharedPreparedStatement(conn_<%=cid%>,insert_<%=cid%>,keyPsmt_<%=cid%>);
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
<%}%>
<%
} else {//extended-insert mode(begin)
if ("MYSQL_4".equals(dbVersion)) {
%>
class BufferLine_<%=cid%> {
<%
for(Column column : stmtStructure) {
if(!column.isReplaced() && !column.isAddCol() && column.isInsertable()) {
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getColumn().getTalendType(), column.getColumn().isNullable());
%>
<%=typeToGenerate%> <%=column.getName()%>;
<%
}
}
%>
public BufferLine_<%=cid%>(
<%
int count = 0;
for(Column column : stmtStructure) {
if(!column.isReplaced() && !column.isAddCol() && column.isInsertable()) {
if(count != 0) {
%>
,
<%
}
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getColumn().getTalendType(), column.getColumn().isNullable());
%>
<%=typeToGenerate%> <%=column.getName()%>
<%
count++;
}
}
%>
){
<%
for(Column column : stmtStructure) {
if(!column.isReplaced() && !column.isAddCol() && column.isInsertable()) {
%>
this.<%=column.getName()%> = <%=column.getName()%>;
<%
}
}
%>
}
}
java.util.List<BufferLine_<%=cid%>> exInsertColValueList<%=cid%> = new java.util.ArrayList();
BufferLine_<%=cid%> exInsertColValue<%=cid%> = null;
StringBuilder extendInsertValueStmt_<%=cid%> = new StringBuilder();
for(int i=0;i < <%=numPerInsert%>;i++){
extendInsertValueStmt_<%=cid%>.append("(<%=insertValueStmt.toString()%>)");
if (i!=<%=numPerInsert%>-1) extendInsertValueStmt_<%=cid%>.append(",");
}
String insert_<%=cid%> = "INSERT INTO `"+<%=table%>+"` (<%=insertColName.toString()%>) VALUES " + extendInsertValueStmt_<%=cid%>.toString();
<%
if (supportDuplicateUpdate) {
%>
insert_<%=cid%> += duplidateClause_<%=cid%>.toString();
<%
}
%>
<%@ include file="../templates/_hintInsert.javajet" %>
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insert_<%=cid%>);
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
String insertColName<%=cid%> = "<%=insertColName.toString()%>";
String insertColValue<%=cid%> = "<%=insertValueStmt.toString()%>";
int rowCount<%=cid%> = 0;
<%
} else if ("MYSQL_8".equals(dbVersion) || "MYSQL_5".equals(dbVersion) || "MARIADB".equals(dbVersion)) {
%>
String insert_<%=cid%> = "INSERT INTO `" + <%=table%> + "` (<%=insertColName.toString()%>) VALUES (<%=insertValueStmt.toString()%>)";
<%
if (supportDuplicateUpdate) {
%>
insert_<%=cid%> += duplidateClause_<%=cid%>.toString();
<%
}
%>
int batchSize_<%=cid%> = <%=numPerInsert%>;
int batchSizeCounter_<%=cid%>=0;
<%@ include file="../templates/_hintInsert.javajet" %>
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insert_<%=cid%>);
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
<%
}
}//extended-insert mode(end)
} else if (("UPDATE").equals(dataAction)) {
%>
String update_<%=cid%> = "UPDATE `" + <%=table%> + "` SET <%=updateSetStmt.toString()%> WHERE <%=updateWhereStmt.toString()%>";
<%@ include file="../templates/_hintUpdate.javajet" %>
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(update_<%=cid%>);
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
<%
} else if (("INSERT_OR_UPDATE").equals(dataAction)) {
%>
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement("SELECT COUNT(1) FROM `" + <%=table%> + "` WHERE <%=updateWhereStmt.toString()%>");
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
String insert_<%=cid%> = "INSERT INTO `" + <%=table%> + "` (<%=insertColName.toString()%>) VALUES (<%=insertValueStmt.toString()%>)";
<%@ include file="../templates/_hintInsert.javajet" %>
java.sql.PreparedStatement pstmtInsert_<%=cid %> = conn_<%=cid%>.prepareStatement(insert_<%=cid%>);
resourceMap.put("pstmtInsert_<%=cid %>", pstmtInsert_<%=cid %>);
String update_<%=cid%> = "UPDATE `" + <%=table%> + "` SET <%=updateSetStmt.toString()%> WHERE <%=updateWhereStmt.toString()%>";
<%@ include file="../templates/_hintUpdate.javajet" %>
java.sql.PreparedStatement pstmtUpdate_<%=cid %> = conn_<%=cid%>.prepareStatement(update_<%=cid%>);
resourceMap.put("pstmtUpdate_<%=cid %>", pstmtUpdate_<%=cid %>);
<%
} else if (("UPDATE_OR_INSERT").equals(dataAction)) {
%>
String update_<%=cid%> = "UPDATE `" + <%=table%> + "` SET <%=updateSetStmt.toString()%> WHERE <%=updateWhereStmt.toString()%>";
<%@ include file="../templates/_hintUpdate.javajet" %>
java.sql.PreparedStatement pstmtUpdate_<%=cid %> = conn_<%=cid%>.prepareStatement(update_<%=cid%>);
resourceMap.put("pstmtUpdate_<%=cid %>", pstmtUpdate_<%=cid %>);
String insert_<%=cid%> = "INSERT INTO `" + <%=table%> + "` (<%=insertColName.toString()%>) VALUES (<%=insertValueStmt.toString()%>)";
<%@ include file="../templates/_hintInsert.javajet" %>
java.sql.PreparedStatement pstmtInsert_<%=cid %> = conn_<%=cid%>.prepareStatement(insert_<%=cid%>);
resourceMap.put("pstmtInsert_<%=cid %>", pstmtInsert_<%=cid %>);
<%
} else if (("DELETE").equals(dataAction)) {
%>
String delete_<%=cid%> = "DELETE FROM `" + <%=table%> + "` WHERE <%=deleteWhereStmt.toString()%>";
<%@ include file="../templates/_hintDelete.javajet" %>
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(delete_<%=cid%>);
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
<%
} else if(("REPLACE").equals(dataAction)) {
%>
String replace_<%=cid%> = "REPLACE INTO `" + <%=table%> + "` (<%=insertColName.toString()%>) VALUES (<%=insertValueStmt.toString()%>)";
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(replace_<%=cid%>);
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
<%
} else if(("INSERT_ON_DUPLICATE_KEY_UPDATE").equals(dataAction)) {
%>
String insertIgnore_<%=cid%> = "INSERT IGNORE INTO `" + <%=table%> + "` (<%=insertColName.toString()%>) VALUES (<%=insertValueStmt.toString()%>) ON DUPLICATE KEY UPDATE <%=updateSetStmt.toString()%>";
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insertIgnore_<%=cid%>);
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
<%
} else if(("INSERT_IGNORE").equals(dataAction)) {
%>
String insert_<%=cid%> = "INSERT IGNORE INTO `" + <%=table%> + "` (<%=insertColName.toString()%>) VALUES (<%=insertValueStmt.toString()%>)";
<%@ include file="../templates/_hintInsert.javajet" %>
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insert_<%=cid%>);
resourceMap.put("pstmt_<%=cid %>", pstmt_<%=cid %>);
<%
}
if(isEnableDebug) {
%>
StringBuffer query_<%=cid%> = null;
<%@ include file="../templates/DB/Output/splitSQLForAllDBInBegin.javajet" %>
<%
}
}
}
if(isDynamic) {
if ("MYSQL_4".equals(dbVersion) && extendedInsert) {
%>
class BufferLine_<%=cid%> {
<%
for(Column column : stmtStructure) {
if(!column.isReplaced() && !column.isAddCol() && column.isInsertable() && !column.isDynamic()) {
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getColumn().getTalendType(), column.getColumn().isNullable());
%>
<%=typeToGenerate%> <%=column.getName()%>;
<%
}
}
if(isDynamic) {
Column dynamicColumn = getColumn(getDynamicColumn());
String typeToGenerate = JavaTypesManager.getTypeToGenerate(dynamicColumn.getColumn().getTalendType(), dynamicColumn.getColumn().isNullable());
if("Dynamic".equals(typeToGenerate)) {
%>
routines.system.Dynamic <%=dynamicColumn.getName()%>;
<%
}
}
%>
public BufferLine_<%=cid%>(
<%
int count = 0;
for(Column column : stmtStructure) {
if(!column.isReplaced() && !column.isAddCol() && column.isInsertable() && !column.isDynamic()) {
if(count != 0) {
%>
,
<%
}
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getColumn().getTalendType(), column.getColumn().isNullable());
%>
<%=typeToGenerate%> <%=column.getName()%>
<%
count++;
}
}
if(isDynamic) {
Column dynamicColumn = getColumn(getDynamicColumn());
String typeToGenerate = JavaTypesManager.getTypeToGenerate(dynamicColumn.getColumn().getTalendType(), dynamicColumn.getColumn().isNullable());
if("Dynamic".equals(typeToGenerate)) {
%>
, routines.system.Dynamic <%=dynamicColumn.getName()%>
<%
}
}
%>
){
<%
for(Column column : stmtStructure) {
if(!column.isReplaced() && !column.isAddCol() && column.isInsertable() && !column.isDynamic()) {
%>
this.<%=column.getName()%> = <%=column.getName()%>;
<%
}
}
if(isDynamic) {
Column dynamicColumn = getColumn(getDynamicColumn());
String typeToGenerate = JavaTypesManager.getTypeToGenerate(dynamicColumn.getColumn().getTalendType(), dynamicColumn.getColumn().isNullable());
if("Dynamic".equals(typeToGenerate)) {
%>
this.<%=dynamicColumn.getName()%>=<%=dynamicColumn.getName()%>;
<%
}
}
%>
}
}
java.util.List<BufferLine_<%=cid%>> exInsertColValueList<%=cid%> = new java.util.ArrayList();
BufferLine_<%=cid%> exInsertColValue<%=cid%> = null;
String insert_<%=cid%>="";
String insertColValue<%=cid%>="";
String insertColName<%=cid%>="";
int counter<%=cid%>=1;
<%
}else if (("MYSQL_8".equals(dbVersion) || "MYSQL_5".equals(dbVersion) || "MARIADB".equals(dbVersion)) && extendedInsert){
%>
int batchSizeCounter_<%=cid%>=0;
int batchSize_<%=cid%>=0;
<%
}
%>
java.sql.PreparedStatement pstmt_<%=cid %> =null;
java.sql.PreparedStatement pstmtInsert_<%=cid %> =null;
java.sql.PreparedStatement pstmtUpdate_<%=cid %> =null;
int rowCount<%=cid%>=0;
<%if(isEnableDebug) {%>
StringBuffer query_<%=cid%> = null;
<%@ include file="../templates/DB/Output/splitSQLForAllDBInDynamicBegin.javajet" %>
<%
}
}
%>

View File

@@ -0,0 +1,561 @@
<%@ jet
imports="
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.process.IConnection
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.types.JavaTypesManager
org.talend.core.model.metadata.MappingTypeRetriever
org.talend.core.model.metadata.MetadataTalendType
org.talend.core.model.process.IProcess
java.util.List
java.util.ArrayList
java.util.Map
java.util.HashMap
"
skeleton="../templates/db_output_bulk.skeleton"
%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Log4j/DBLogUtil.javajet"%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
String cid = node.getUniqueName();
boolean isAmazonAurora = node.isVirtualGenerateNode() && (cid.matches("^.*?tAmazonAuroraOutput_\\d+_out$") || cid.matches("^.*?tDBOutput_\\d+_out$"));
if(isAmazonAurora){
cid = cid.substring(0,cid.length()-4);
}
dbLog = new DBLogUtil(node);
IProcess process = node.getProcess();
String dbmsId = ElementParameterParser.getValue(node,"__MAPPING__");
List<Map<String, String>> addCols =
(List<Map<String,String>>)ElementParameterParser.getObjectValue(node,"__ADD_COLS__");
boolean useFieldOptions = ("true").equals(ElementParameterParser.getValue(node, "__USE_FIELD_OPTIONS__"));
List<Map<String, String>> fieldOptions = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__FIELD_OPTIONS__");
String dataAction = ElementParameterParser.getValue(node,"__DATA_ACTION__");
String commitEvery = ElementParameterParser.getValue(node, "__COMMIT_EVERY__");
boolean setAutoCommit = false;
boolean useExistingConnection = "true".equals(ElementParameterParser.getValue(node,"__USE_EXISTING_CONNECTION__"));;
boolean extendedInsert = false;
boolean supportDuplicateUpdate = "true".equalsIgnoreCase(ElementParameterParser.getValue(node,"__ON_DUPLICATE_KEY_UPDATE__"));
String dieOnError = ElementParameterParser.getValue(node, "__DIE_ON_ERROR__");
boolean onErrDie = "true".equals(dieOnError);
boolean useBatchSize = ("true").equals(ElementParameterParser.getValue(node,"__USE_BATCH_SIZE__"));
String rejectConnName = null;
List<? extends IConnection> rejectConns = node.getOutgoingConnections("REJECT");
if(rejectConns != null && rejectConns.size() > 0) {
IConnection rejectConn = rejectConns.get(0);
rejectConnName = rejectConn.getName();
}
if ("INSERT".equalsIgnoreCase(dataAction)) {
extendedInsert = ("true").equals(ElementParameterParser.getValue(node, "__EXTENDINSERT__"));
//to fixed: bug8422
if((cid.equals("talendLogs_DB") || cid.equals("talendStats_DB") || cid.equals("talendMeter_DB"))){
extendedInsert = false;
}
}else {
extendedInsert = false;
}
String tableName = ElementParameterParser.getValue(node,"__TABLE__");
String numPerInsert = ElementParameterParser.getValue(node, "__NB_ROWS_PER_INSERT__");
String incomingConnName = null;
List<IMetadataColumn> columnList = getColumnList(node);
List< ? extends IConnection> conns = node.getIncomingConnections();
if(conns!=null && conns.size()>0){
IConnection conn = conns.get(0);
incomingConnName = conn.getName();
}
boolean isDynamic = false;
List<IMetadataTable> metadatas = node.getMetadataList();
if ((metadatas!=null)&&(metadatas.size()>0)) {
IMetadataTable metadata = metadatas.get(0);
isDynamic = metadata.isDynamicSchema();
}
List<Column> stmtStructure = getManager(dbmsId, cid).createColumnList(columnList, useFieldOptions, fieldOptions, addCols);
isDynamic = isDynamic && !getManager(dbmsId, cid).isDynamicColumnReplaced();
String dbVersion = "" ;
String connection = ElementParameterParser.getValue(node,"__CONNECTION__");
if(useExistingConnection) {
if(isAmazonAurora){
dbVersion = "MYSQL_5";
}else{
List<? extends INode> nodes = process.getNodesOfType("tMysqlConnection");
for (INode ne:nodes) {
if (connection.equals(ne.getUniqueName())) {
dbVersion = ElementParameterParser.getValue(ne, "__DB_VERSION__");
setAutoCommit = "true".equals(ElementParameterParser.getValue(ne, "__AUTO_COMMIT__"));
break;
}
}
}
} else {
dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
}
if(extendedInsert){
if ("MYSQL_4".equals(dbVersion)) {
class ExtendInsertOperation{
public String generateType(String typeToGenerate){
if(("byte[]").equals(typeToGenerate)){
typeToGenerate = "Bytes";
}else if(("java.util.Date").equals(typeToGenerate)){
typeToGenerate = "Date";
}else if(("Integer").equals(typeToGenerate)){
typeToGenerate = "Int";
}else if(("List").equals(typeToGenerate)){
typeToGenerate = "Object";
}else{
typeToGenerate=typeToGenerate.substring(0,1).toUpperCase()+typeToGenerate.substring(1);
}
return typeToGenerate;
}
public void generateSetStmt(String typeToGenerate,Column column,String cid){
boolean isObject = false;
String prefix = "pstmt_";
%>
<%
if(("Character").equals(typeToGenerate)) {
isObject = true;
%>
if(bufferL<%=cid%>.<%=column.getName()%>==null){
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.CHAR);
<%
}else if(("Date").equals(typeToGenerate)){
isObject = true;
%>
if(bufferL<%=cid%>.<%=column.getName()%>==null){
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.DATE);
<%
}else if(("byte[]").equals(typeToGenerate)){
isObject = true;
%>
if(bufferL<%=cid%>.<%=column.getName()%>==null){
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.ARRAY);
<%
}else if(("Long").equals(typeToGenerate)||("Byte").equals(typeToGenerate)||("Integer").equals(typeToGenerate)||("Short").equals(typeToGenerate)){
isObject = true;
%>
if(bufferL<%=cid%>.<%=column.getName()%>==null){
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.INTEGER);
<%
}else if(("String").equals(typeToGenerate)){
isObject = true;
%>
if(bufferL<%=cid%>.<%=column.getName()%>==null){
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.VARCHAR);
<%
}else if(("Object").equals(typeToGenerate)){
isObject = true;
%>
if(bufferL<%=cid%>.<%=column.getName()%>==null){
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.OTHER);
<%
}else if(("Boolean").equals(typeToGenerate)){
isObject = true;
%>
if(bufferL<%=cid%>.<%=column.getName()%>==null){
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.BOOLEAN);
<%
}else if(("Double").equals(typeToGenerate)){
isObject = true;
%>
if(bufferL<%=cid%>.<%=column.getName()%>==null){
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.DOUBLE);
<%
}else if(("Float").equals(typeToGenerate)){
isObject = true;
%>
if(bufferL<%=cid%>.<%=column.getName()%>==null){
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.FLOAT);
<%
}
if(isObject){
%>
}else{
<%
}
typeToGenerate = generateType(typeToGenerate);
if(("Char").equals(typeToGenerate)||("Character").equals(typeToGenerate)){
%>
<%
if(isObject) {
%>
if(bufferL<%=cid%>.<%=column.getName()%>==null){
<%
} else {
%>
if(("null").equals(String.valueOf(bufferL<%=cid%>.<%=column.getName()%>).toLowerCase())){
<%
}
%>
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.CHAR);
} else if(bufferL<%=cid%>.<%=column.getName()%> == '\0') {
<%=prefix+cid%>.setString(count<%=cid%>,"");
} else {
<%=prefix+cid%>.setString(count<%=cid%>,String.valueOf(bufferL<%=cid%>.<%=column.getName()%>));
}
<%
}else if(("Date").equals(typeToGenerate)){
%>
if(bufferL<%=cid%>.<%=column.getName()%>!=null){
// timestamp < min java date value (year 1) || timestamp > max mysql value (year 10000) => set 0000-00-00 as date in MySQL
date_<%=cid %> = bufferL<%=cid%>.<%=column.getName()%>.getTime();
if (date_<%=cid %> < year1_<%=cid %> || date_<%=cid %> >= year10000_<%=cid %>) {
<%=prefix+cid%>.setString(count<%=cid%>, "0000-00-00 00:00:00");
} else {
<%=prefix+cid%>.setTimestamp(count<%=cid%>, new java.sql.Timestamp(date_<%=cid %>));
}
}else{
<%=prefix+cid%>.setNull(count<%=cid%>,java.sql.Types.DATE);
}
<%
}else{
%>
<%=prefix+cid%>.set<%=typeToGenerate%>(count<%=cid%>,bufferL<%=cid%>.<%=column.getName()%>);
<%
}
if(isObject){
%>
}
<%
}
}
}
ExtendInsertOperation eiOperation = new ExtendInsertOperation();
%>
if(rowCount<%=cid%>!=0){
StringBuilder extendInsertValueStmt = new StringBuilder();
for(int i=0 ; i < rowCount<%=cid%> ; i++){
extendInsertValueStmt.append("("+insertColValue<%=cid%>+")");
if (i != rowCount<%=cid%> - 1) extendInsertValueStmt.append(",");
}
insert_<%=cid%> = "INSERT INTO `"+<%=tableName%>+"` ("+insertColName<%=cid%>+") VALUES "+extendInsertValueStmt.toString();
<%if (supportDuplicateUpdate) {
%>
<%
List<Map<String, String>> duplicateKeys =
(List<Map<String,String>>)ElementParameterParser.getObjectValue(
node,"__DUPLICATED_KEYS__" );
if (duplicateKeys.size() > 0) {
%>
insert_<%=cid%> += " ON DUPLICATE KEY UPDATE ";
duplidateClause_<%=cid%> = new StringBuffer("");
<%
for (int i=0; i< duplicateKeys.size() ; i++) {
if (i >0) {
%>
duplidateClause_<%=cid%>.append(",");
<%
}
%>
duplidateClause_<%=cid%>.append ("`" + <%=duplicateKeys.get(i).get("DUPLICATED_KEY")%> + "`");
duplidateClause_<%=cid%>.append ("=");
duplidateClause_<%=cid%>.append (<%=duplicateKeys.get(i).get("DUPLICATED_VALUE")%>);
<%
}
%>
insert_<%=cid%> += duplidateClause_<%=cid%>.toString();
<%
}
%>
<%
}%>
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insert_<%=cid%>);
int row2Count<%=cid%> = 0;
<%
if(isDynamic) {
%>
int count<%=cid%> = 1;
<%
} else {
%>
int count<%=cid%> = 0;
<%
}
%>
for(BufferLine_<%=cid%> bufferL<%=cid%> : exInsertColValueList<%=cid%>){
<%
if(!isDynamic) {
%>
count<%=cid%> = row2Count<%=cid%>*<%=columnList.size()%>+1;
<%
}
for(Column column : stmtStructure) {
if(!column.isReplaced() && !column.isAddCol() && column.isInsertable() && !column.isDynamic()) {
String typeToGenerate = JavaTypesManager.getTypeToGenerate(column.getColumn().getTalendType(), column.getColumn().isNullable());
eiOperation.generateSetStmt(typeToGenerate, column, cid);
%>
count<%=cid%>++;
<%
}
}
if(isDynamic) {
Column dynamicColumn = getColumn(getDynamicColumn());
String typeToGenerate = JavaTypesManager.getTypeToGenerate(dynamicColumn.getColumn().getTalendType(), dynamicColumn.getColumn().isNullable());
if("Dynamic".equals(typeToGenerate)) {
%>
int count_dyn_<%=cid%>=DynamicUtils.writeColumnsToDatabse(<%=incomingConnName%>.<%=dynamicColumn.getName()%>, pstmt_<%=cid%>, count<%=cid%>-1, "<%=dbmsId%>");
count<%=cid%>+=count_dyn_<%=cid%>;
<%
}
}
%>
row2Count<%=cid%>++;
<%
if(!useExistingConnection) {
if(!("").equals(commitEvery)&&!("0").equals(commitEvery)){
%>
commitCounter_<%=cid%> += exInsertColValueList<%=cid%>.size();
<%
}
}
%>
}
try{
int processedCount_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
insertedCount_<%=cid%> += processedCount_<%=cid%>;
rowsToCommitCount_<%=cid%> += processedCount_<%=cid%>;
}catch(java.lang.Exception e){
globalMap.put("<%=cid%>_ERROR_MESSAGE",e.getMessage());
<% if(onErrDie){%>
throw e;
<% }else{
dbLog.logPrintedException("e.getMessage()");
%>
System.err.println(e.getMessage());
<%}%>
}
}
<%
} else if ("MYSQL_8".equals(dbVersion) || "MYSQL_5".equals(dbVersion) || "MARIADB".equals(dbVersion)) {
//////////batch execute by batch size///////
if(!("").equals(numPerInsert ) && !("0").equals(numPerInsert)) {
%>
<%if ((rejectConnName==null) && ("INSERT").equals(dataAction)) {
%>
try {
if (batchSizeCounter_<%=cid%> != 0) {
int countSum_<%=cid%> = 0;
<%dbLog.batch().executeTry(dbLog.str(dataAction));%>
for(int countEach_<%=cid%>: pstmt_<%=cid %>.executeBatch()) {
countSum_<%=cid%> += (countEach_<%=cid%> == java.sql.Statement.EXECUTE_FAILED ? 0 : 1);
}
rowsToCommitCount_<%=cid%> += countSum_<%=cid%>;
<%dbLog.batch().executeDone(dbLog.str(dataAction));%>
<%if (("INSERT").equals(dataAction)) {
%>
insertedCount_<%=cid%> += countSum_<%=cid%>;
<%
}
%>
}
}catch (java.sql.BatchUpdateException e){
globalMap.put(currentComponent+"_ERROR_MESSAGE",e.getMessage());
<%if(("true").equals(dieOnError)) {
%>
throw(e);
<%
}else {
%>
int countSum_<%=cid%> = 0;
for(int countEach_<%=cid%>: e.getUpdateCounts()) {
countSum_<%=cid%> += (countEach_<%=cid%> < 0 ? 0 : countEach_<%=cid%>);
}
rowsToCommitCount_<%=cid%> += countSum_<%=cid%>;
<%if (("INSERT").equals(dataAction)) {
%>
insertedCount_<%=cid%> += countSum_<%=cid%>;
<%
}
dbLog.logPrintedException("e.getMessage()");
%>
System.err.println(e.getMessage());
<%
}%>
}
batchSizeCounter_<%=cid%> = 0;
<%
}
%>
<%
}
}
}
if(("INSERT_OR_UPDATE").equals(dataAction)) {
%>
if(pstmtUpdate_<%=cid%> != null){
pstmtUpdate_<%=cid %>.close();
resourceMap.remove("pstmtUpdate_<%=cid %>");
}
if(pstmtInsert_<%=cid %> != null){
pstmtInsert_<%=cid %>.close();
resourceMap.remove("pstmtInsert_<%=cid %>");
}
if(pstmt_<%=cid %> != null) {
pstmt_<%=cid %>.close();
resourceMap.remove("pstmt_<%=cid %>");
}
<%
} else if(("UPDATE_OR_INSERT").equals(dataAction)) {
%>
if(pstmtUpdate_<%=cid%> != null){
pstmtUpdate_<%=cid %>.close();
resourceMap.remove("pstmtUpdate_<%=cid %>");
}
if(pstmtInsert_<%=cid %> != null){
pstmtInsert_<%=cid %>.close();
resourceMap.remove("pstmtInsert_<%=cid %>");
}
<%
} else {
%>
<%if ((rejectConnName==null && ("MYSQL_8".equals(dbVersion) || "MYSQL_5".equals(dbVersion) || "MARIADB".equals(dbVersion)) && useBatchSize) && (("UPDATE").equals(dataAction) || ("DELETE").equals(dataAction))) {
%>
try {
if(pstmt_<%=cid %> != null){
int countSum_<%=cid%> = 0;
<%dbLog.batch().executeTry(dbLog.str(dataAction));%>
for(int countEach_<%=cid%>: pstmt_<%=cid %>.executeBatch()) {
countSum_<%=cid%> += (countEach_<%=cid%> < 0 ? 0 : countEach_<%=cid%>);
}
rowsToCommitCount_<%=cid%> += countSum_<%=cid%>;
<%dbLog.batch().executeDone(dbLog.str(dataAction));%>
<%if (("UPDATE").equals(dataAction)) {
%>
updatedCount_<%=cid%> += countSum_<%=cid%>;
<%
}else if (("DELETE").equals(dataAction)) {
%>
deletedCount_<%=cid%> += countSum_<%=cid%>;
<%
}%>
}
}catch (java.sql.BatchUpdateException e){
globalMap.put("<%=cid%>_ERROR_MESSAGE",e.getMessage());
<%if(("true").equals(dieOnError)) {
%>
throw(e);
<%
}else {
%>
int countSum_<%=cid%> = 0;
for(int countEach_<%=cid%>: e.getUpdateCounts()) {
countSum_<%=cid%> += (countEach_<%=cid%> < 0 ? 0 : countEach_<%=cid%>);
}
rowsToCommitCount_<%=cid%> += countSum_<%=cid%>;
<%if (("UPDATE").equals(dataAction)) {
%>
updatedCount_<%=cid%> += countSum_<%=cid%>;
<%
}else if (("DELETE").equals(dataAction)) {
%>
deletedCount_<%=cid%> += countSum_<%=cid%>;
<%
}
dbLog.logPrintedException("e.getMessage()");%>
System.err.println(e.getMessage());
<%
}%>
}
<%
}%>
if(pstmt_<%=cid %> != null) {
<%
//to fixed: bug8422
if(!(cid.equals("talendLogs_DB") || cid.equals("talendStats_DB") || cid.equals("talendMeter_DB"))){
%>
pstmt_<%=cid %>.close();
resourceMap.remove("pstmt_<%=cid %>");
<%
}else{
%>
SharedDBPreparedStatement.releasePreparedStatement(keyPsmt_<%=cid%>);
<%
}
%>
}
<%
}
%>
resourceMap.put("statementClosed_<%=cid%>", true);
<%
if(!useExistingConnection){
if(!("").equals(commitEvery) && !("0").equals(commitEvery))
{
%>
if (commitCounter_<%=cid%> > 0 && rowsToCommitCount_<%=cid%> != 0) {
<%dbLog.commit().commitTry(null, dbLog.var("rowsToCommitCount"));%>
}
conn_<%=cid%>.commit();
if (commitCounter_<%=cid%> > 0 && rowsToCommitCount_<%=cid%> != 0) {
<%dbLog.commit().commitDone(null);%>
rowsToCommitCount_<%=cid%> = 0;
}
commitCounter_<%=cid%> = 0;
<%
}
commitEvery = "0";
%>
<%dbLog.conn().closeTry(null);%>
conn_<%=cid%> .close();
<%dbLog.conn().closeDone(null);%>
resourceMap.put("finish_<%=cid%>", true);
<%
}
%>
<%@ include file="../templates/DB/Output/DBOutputEndGlobalVars.javajet"%>

View File

@@ -0,0 +1 @@
<%@ include file="../templates/DB/Output/AbstractDBOutputFinally.javajet" %>

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