Compare commits

..

112 Commits

Author SHA1 Message Date
vyu
f3a58f2bb8 fix(TDI-46153):fix db commit issue and close conn log. 2021-11-02 17:41:54 +08:00
Andreas Mattes
3b3be3a38e fix(APPINT-33820): Add support for log assignment to TESB task. (#6740) 2021-10-29 16:12:31 +02:00
pyzhou
7bebb2dd41 fix(TDI-46937): fix tmap tuj (#6845)
* fix(TDI-46937): fix tmap tuj

* fix(TDI-46937):fix tuj
2021-10-29 16:39:02 +08:00
sbliu
69bec6798c feat(TUP-33462) align version for as400 db. (#6816) 2021-10-29 16:27:15 +08:00
wang wei
b1f6d21099 fix(TDI-46476): as we remove some components, should adjust some tup junit(#6837) (#6849) 2021-10-29 15:08:17 +08:00
Dmytro Sylaiev
a623cac57f fix(TDI-46876): Fix dependencies list for tGoogleDataprocManage (#6820) 2021-10-29 10:45:32 +08:00
pyzhou
718889c5ca fix(TDI-46857):Upgrade bcprov-jdk15on-1.69 (#6791) 2021-10-28 19:47:21 +08:00
Dmytro Sylaiev
8bcf305d3d chore(TDI-46859): Add license for talend-mscrm lib (#6787) 2021-10-28 14:00:52 +03:00
hcyi
f50a2d9148 fix(TUP-33449):tPreJob trigger fails with GSS exception when "Set path (#6840)
to custom hadoop jar" is checked in 7.3.1
2021-10-28 15:50:17 +08:00
hcyi
3a6c61c3d6 feat(TUP-33477):Remove username/password authentication from Studio. (#6818)
* feat(TUP-33477):Remove username/password authentication from Studio.

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

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

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

* fix(TUP-33485): [tELTMap] Delimited identifiers does not work for
2021-10-27 17:43:18 +08:00
wang wei
081cb65784 fix(TDI-46286): upgrade org.slf4j version to 1.7.29 from 1.7.25 (#6733) 2021-10-27 15:32:36 +08:00
bhe-talendbj
771a3b472d chore(TUP-33502): Show installation of components only in debug mode (#6832)
* chore(TUP-33502): change logs

* chore(TUP-33502): print logs in debug mode
2021-10-27 15:28:29 +08:00
vyu-talend
a032ac99d6 fix(TDI-46921):change maven url path for miscrm. (#6824) 2021-10-27 10:19:56 +08:00
wang wei
7717b3e202 fix(TDI-46476): Remove deprecated components in 8.0 (#6730) 2021-10-26 16:26:47 +08:00
zyuan-talend
ffa3316b40 fix(TUP-33392): remove un-needed Map Reduce related tests. (#6822) 2021-10-26 14:59:59 +08:00
Dmytro Sylaiev
615e5bd5e3 chore(TDI-46859): Add license to azure-utils (#6748) 2021-10-25 18:15:31 +03:00
jiezhang-tlnd
85a693f6e2 update text (#6814) 2021-10-25 09:53:50 +08:00
AlixMetivier
f11620e9f2 fix ExpressiontTest.testSparkVersion (#6815) 2021-10-22 15:33:01 +02:00
Jane Ding
516e4a8fa6 fix(TUP-33447):"servlet-api-2.5-20081211.jar" download failed when (#6809)
install libraries
https://jira.talendforge.org/browse/TUP-33447
2021-10-22 10:35:35 +08:00
sbouyer
aa470dbab3 Add localized files (#6804)
Co-authored-by: root <obricha@talend.com>
2021-10-21 17:23:32 +08:00
Alexiane Yvonet
f7bbc3d17b Add localized files (#6805)
Co-authored-by: root <obricha@talend.com>
2021-10-21 17:17:10 +08:00
sbouyer
f897438858 Add localized files (#6807)
Co-authored-by: root <obricha@talend.com>
2021-10-21 17:08:32 +08:00
apoltavtsev
7d5e785786 feat(APPINT-33780) Project analysis task - Seek for unresolved routines & beans dependencies (#6803)
* feat(APPINT-33780) Project analysis task - Seek for unresolved routines & beans dependencies

* Add files via upload

* Update UnresolvedRoutineDependencyAnalysisTask.java

* Update messages.properties

* Update messages.properties

* Update UnresolvedRoutineDependencyAnalysisTask.java

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

* add log

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

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

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

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

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

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

* remove jboss

* change method supportMarshaller()

* add override method

* fix bug

* fix bug of cannot flush the last part

* fix(TDI-46572):use jboss marshaller

* fix bug

* Upgrade dependency

* fix tuj bug

* fix bug

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

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

* fix(TUP-33380): remove double quotes

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

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

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

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

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

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

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

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

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

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

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

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

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

* feat(TUP-33112): add missing license

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

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

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

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

* feat(TUP-32561): restart studio while switching branch
2021-09-26 15:16:28 +08:00
Laurent BOURGEOIS
6edaf6c964 fix(TBD-12972):Incorrect default Spark mode (#6669) 2021-09-24 17:16:54 +02:00
Dmytro Sylaiev
6709ec4c12 TDI-46772 - Port TDI-46610 to master 2021-09-24 15:01:40 +03:00
bhe-talendbj
978046c657 fix(TUP-26609): Harden deserialization (#6638) 2021-09-24 12:18:25 +08:00
nrousseau
ff6bd6fb4d Revert "feat(TUP-32454): change required to import plugins (#6665)" (#6671)
This reverts commit b0d8caf5b0.
2021-09-23 11:56:03 +08:00
Zhiwei Xue
916ed34890 chore():fix junit (#6670) 2021-09-23 09:37:56 +08:00
Zhiwei Xue
edaa962b76 fix(TUP-32942):Miss routines-8.0.1.jar when I local run spark universal (#6653)
spark 2.4.7 with EMR529
2021-09-22 17:08:58 +08:00
apoltavtsev
2c61ab6256 fix(APPINT-32494) cleanup Studio artifact sensitive parameters
in contexts files during publish to Cloud (backport APPINT-28826)
2021-09-22 05:33:43 +02:00
jiezhang-tlnd
13e5ad1618 fix(TUP-32888)can't use tHiveConnection in job (#6664) 2021-09-22 10:42:28 +08:00
nrousseau
b0d8caf5b0 feat(TUP-32454): change required to import plugins (#6665) 2021-09-22 09:27:38 +08:00
Jane Ding
7760033f35 feat(TUP-32281):Provide a project analysis report (#6663)
https://jira.talendforge.org/browse/TUP-32281
2021-09-18 10:14:51 +08:00
AlixMetivier
666082535a feat(TBD-12334): add run submit mode to DBR (#6629) (#6660) 2021-09-17 15:28:06 +02:00
jiezhang-tlnd
16a3a5c471 Jzhang/tup 27026 (#6652)
* feat(TUP-27026)Update Log4j 2 to 2.13.2

* Update Log4j 2 to 2.13.2
2021-09-17 17:45:16 +08:00
jzhao
0e33d378e4 fix(TDI-46527):Dataloss with Parquet components for timestamp field with nano seconds(#6627) (#6658) 2021-09-17 16:37:02 +08:00
jiezhang-tlnd
7fe27c7283 fix(TUP-31794)jar slf4j-log4j12-1.7.25.jar pop up when build job with (#6316)
log4j1
https://jira.talendforge.org/browse/TUP-31794
2021-09-17 16:25:39 +08:00
jiezhang-tlnd
93f5e55f55 chore(TUP-32666)CVE: commons-io-[2.2-2.6] (#6637) 2021-09-17 15:52:44 +08:00
jzhao
49f8cea66f fix(TDI-46315):migration task should return ExecutionResult.NOTHING_TO_DO when doesn't change anything (#6651)
* fix(TDI-46315):migration task should return
ExecutionResult.NOTHING_TO_DO when doesn't change anything

* fix(TDI-46315):remove useless code.
2021-09-17 14:02:18 +08:00
Jane Ding
c3c41f56f3 feat(TUP-32631):Add Project Audit on the Studio Core of Feature Manager (#6620)
https://jira.talendforge.org/browse/TUP-32631
2021-09-17 10:15:27 +08:00
wang wei
612b81d2ee fix(TDI-46348): studio fix for delta format (#6574) (#6657) 2021-09-17 09:45:01 +08:00
clesaec
727b6d9a8a TDI-46721 - shorter generic code (#6640) (#6655)
* TDI-46721 - shorter generic code
2021-09-16 13:27:41 +02:00
wang wei
31c2afe9df fix(TDI-45468): support streaming append (#6623) (#6654) 2021-09-16 16:29:17 +08:00
wang wei
306491b33b fix(TDI-46185): MySQL Connection issues due to TLS 1.2 after java upgrade to 1.8.0_292 (#6306) (#6633) 2021-09-16 15:26:30 +08:00
Jill Yan
23593c3682 APPINT-33092 omit ds if not set (#6643) 2021-09-16 09:05:51 +02:00
jzhao
c4cd4df0fc fix(TDI-46511):[7.3.1] tMomInput: "Sleeping time" parameter is not used in code generated for Websphere MQ (#6602) (#6644) 2021-09-15 22:50:41 +08:00
obricha
c4bc4536f2 add ja localized properties files (#6646) 2021-09-15 21:37:15 +08:00
obricha
4ff84bcf56 add fr localized properties files (#6642) 2021-09-15 21:32:37 +08:00
obricha
6d5eb95eeb add zh_CN localized properties files (#6615) 2021-09-15 21:29:01 +08:00
Wei Hua
d38ff249b7 APPINT-33503 '@' not generated with tRESTResponse after migration. (#6650)
- Add migration task to set default value
2021-09-15 21:28:26 +08:00
3493 changed files with 41956 additions and 101907 deletions

View File

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

View File

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

View File

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,16 +1,17 @@
prefs.configuration.title=Pr\u00E9f\u00E9rences des composants de mapping :
prefs.configuration.LINK_STYLE=Les liens de mapping par d\u00E9faut s'affichent comme :
prefs.configuration.LINK_STYLE.AUTO=Auto
prefs.configuration.title=Pr\u00E9f\u00E9rences des composants de mapping\:
prefs.configuration.LINK_STYLE.LINE=Lignes (rapide)
prefs.configuration.LINK_STYLE.BEZIER_CURVE=Courbes
prefs.configuration.LINK_STYLE=Affichage par d\u00E9faut du lien de mapping \:
DraggingInfosPopup.draggingEntry=Glissement de {0} entr\u00E9e.
DraggingInfosPopup.dropInvalid=\n<< D\u00E9poser invalide >>\n
prefs.configuration.LINK_STYLE.LINE=Lignes (rapide)
DraggingInfosPopup.draggingEntry=Glissement de {0} entr\u00E9e(s).
DraggingInfosPopup.dropInvalid=\n<< D\u00E9p\u00F4t impossible >>\n
DraggingInfosPopup.draggingEntries=Glissement de {0} entr\u00E9es.
DraggingInfosPopup.overwriteMode=\ > Mode \u00E9crasement
DraggingInfosPopup.appendMode=\ > Mode \u00E9crire apr\u00E8s
DraggingInfosPopup.appendModeToOverwrite=> Mode \u00E9criture \u00E0 la suite (Ctrl pour \u00E9craser)
DraggingInfosPopup.insertAllSelectedEntries=\ > Ins\u00E9rer toutes les entr\u00E9es s\u00E9lectionn\u00E9es
DraggingInfosPopup.insertRemainingEntries=\ > Ins\u00E9rer les entr\u00E9es restantes
DraggingInfosPopup.dropInvalidWithKey=\n<<D\u00E9p\u00F4t impossible>>\n : appuyez sur Maj et Ctrl pour mapper en un pour un et \u00E9craser
DraggingInfosPopup.overwriteMode= > Mode \u00E9crasement
DraggingInfosPopup.appendMode= > Mode \u00E9criture \u00E0 la suite
DraggingInfosPopup.appendModeToOverwrite= > Mode \u00E9criture \u00E0 la suite (Ctrl pour \u00E9craser)
DraggingInfosPopup.insertAllSelectedEntries= > Ins\u00E9rer toutes les entr\u00E9es s\u00E9lectionn\u00E9es
DraggingInfosPopup.insertRemainingEntries= > Ins\u00E9rer toutes les entr\u00E9es restantes
DraggingInfosPopup.eachSourceEntryExpressionToEachTargetExpression=> Chaque expression source vers chaque expression cible
DraggingInfosPopup.eachSourceEntryToEachTargetExpression=> Chaque expression source vers chaque expression cible
DraggingInfosPopup.allSourceEntriesExpressionToASingleOneTargetExpressionShiftKey=> Toutes les expressions source vers une seule expression cible (Maj pour modifier le mapping)

View File

@@ -1,17 +1,17 @@
prefs.configuration.title=\u30DE\u30C3\u30D7\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u57FA\u672C\u8A2D\u5B9A:
prefs.configuration.LINK_STYLE=\u30C7\u30D5\u30A9\u30EB\u30C8\u30DE\u30C3\u30D4\u30F3\u30B0\u30EA\u30F3\u30AF\u306E\u8868\u793A:
prefs.configuration.LINK_STYLE.AUTO=\u81EA\u52D5
prefs.configuration.title=\u30DE\u30C3\u30D7\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u57FA\u672C\u8A2D\u5B9A :
prefs.configuration.LINK_STYLE.LINE=Lines (fast)
prefs.configuration.LINK_STYLE.BEZIER_CURVE=\u66F2\u7DDA
prefs.configuration.LINK_STYLE=\u30C7\u30D5\u30A9\u30EB\u30C8\u30DE\u30C3\u30D4\u30F3\u30B0\u30EA\u30F3\u30AF\u306E\u8868\u793A :
DraggingInfosPopup.draggingEntry={0} \u30A8\u30F3\u30C8\u30EA\u3092\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u3044\u307E\u3059\u3002
prefs.configuration.LINK_STYLE.LINE=\u76F4\u7DDA\uFF08\u9AD8\u901F\uFF09
DraggingInfosPopup.draggingEntry={0}\u30A8\u30F3\u30C8\u30EA\u3092\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u3044\u307E\u3059\u3002
DraggingInfosPopup.dropInvalid=\n<< \u7121\u52B9\u306A\u30C9\u30ED\u30C3\u30D7 >>\n
DraggingInfosPopup.draggingEntries={0} \u30A8\u30F3\u30C8\u30EA\u3092\u30C9\u30E9\u30C3\u30B0
DraggingInfosPopup.dropInvalidWithKey=\n<< \u7121\u52B9\u306A\u30C9\u30ED\u30C3\u30D7 >>\n\u4E00\u5BFE\u4E00\u3067\u30DE\u30C3\u30D4\u30F3\u30B0\u3057\u3001\u4E0A\u66F8\u304D\u3059\u308B\u5834\u5408\u306F\u3001Shift\u30AD\u30FC\u3068Ctrl\u30AD\u30FC\u3092\u540C\u6642\u306B\u62BC\u3057\u307E\u3059
DraggingInfosPopup.overwriteMode=> \u4E0A\u66F8\u304D\u30E2\u30FC\u30C9
DraggingInfosPopup.appendMode=> \u8FFD\u52A0\u30E2\u30FC\u30C9
DraggingInfosPopup.appendModeToOverwrite=> \u8FFD\u52A0\u30E2\u30FC\u30C9(\u4E0A\u66F8\u304D\u3059\u308B\u306B\u306FCtrl\u30AD\u30FC)
DraggingInfosPopup.insertAllSelectedEntries=> \u9078\u629E\u3057\u305F\u3059\u3079\u3066\u306E\u30A8\u30F3\u30C8\u30EA\u3092\u633F\u5165\u3057\u307E\u3059
DraggingInfosPopup.insertRemainingEntries=> \u6B8B\u308A\u306E\u30A8\u30F3\u30C8\u30EA\u3092\u633F\u5165\u3057\u307E\u3059
DraggingInfosPopup.draggingEntries={0}\u30A8\u30F3\u30C8\u30EA\u3092\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u3044\u307E\u3059\u3002
DraggingInfosPopup.dropInvalidWithKey=\n<< \u7121\u52B9\u306A\u30C9\u30ED\u30C3\u30D7 >>\n\u4E00\u5BFE\u4E00\u30DE\u30C3\u30D4\u30F3\u30B0\u3057\u3001\u4E0A\u66F8\u304D\u3059\u308B\u5834\u5408\u306F\u3001Shift\u30AD\u30FC\u3068Ctrl\u30AD\u30FC\u3092\u540C\u6642\u306B\u62BC\u3057\u307E\u3059
DraggingInfosPopup.overwriteMode= > \u4E0A\u66F8\u304D\u30E2\u30FC\u30C9
DraggingInfosPopup.appendMode= > \u8FFD\u52A0\u30E2\u30FC\u30C9
DraggingInfosPopup.appendModeToOverwrite= > \u8FFD\u52A0\u30E2\u30FC\u30C9(\u4E0A\u66F8\u304D\u3059\u308B\u306B\u306F[Ctrl]\u30AD\u30FC)
DraggingInfosPopup.insertAllSelectedEntries= > \u9078\u629E\u3057\u305F\u3059\u3079\u3066\u306E\u30A8\u30F3\u30C8\u30EA\u3092\u633F\u5165\u3057\u307E\u3059
DraggingInfosPopup.insertRemainingEntries= > \u6B8B\u308A\u306E\u30A8\u30F3\u30C8\u30EA\u3092\u633F\u5165\u3057\u307E\u3059
DraggingInfosPopup.eachSourceEntryExpressionToEachTargetExpression=> \u5404\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u5404\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u5F0F
DraggingInfosPopup.eachSourceEntryToEachTargetExpression=> \u5404\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u5404\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA
DraggingInfosPopup.allSourceEntriesExpressionToASingleOneTargetExpressionShiftKey=> 1\u3064\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u3059\u3079\u3066\u306E\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u5F0F (\u30DE\u30C3\u30D4\u30F3\u30B0\u3092\u5909\u66F4\u3059\u308B\u306B\u306FShift\u30AD\u30FC)

View File

@@ -1,17 +1,17 @@
prefs.configuration.LINK_STYLE.AUTO=\u81EA\u52A8
prefs.configuration.title=\u6620\u5C04\u7EC4\u4EF6\u9996\u9009\u9879:
prefs.configuration.LINK_STYLE.LINE=\u76F4\u7EBF (\u5FEB)
prefs.configuration.LINK_STYLE.BEZIER_CURVE=\u66F2\u7EBF
prefs.configuration.LINK_STYLE=\u9ED8\u8BA4\u6620\u5C04\u8FDE\u63A5\u663E\u793A\u4E3A:
prefs.configuration.LINK_STYLE.AUTO=\u81EA\u52A8
prefs.configuration.LINK_STYLE.BEZIER_CURVE=\u66F2\u7EBF
prefs.configuration.LINK_STYLE.LINE=\u76F4\u7EBF (\u5FEB)
DraggingInfosPopup.draggingEntry=\u62D6\u52A8 {0} \u6761\u76EE
DraggingInfosPopup.dropInvalid=\\n<< \u65E0\u6548\u653E\u7F6E >>\\n
DraggingInfosPopup.dropInvalid=\n<< \u65E0\u6548\u91CA\u653E >>\n
DraggingInfosPopup.draggingEntries=\u62D6\u52A8 {0} \u4E2A\u6761\u76EE\u3002
DraggingInfosPopup.dropInvalidWithKey=\\n<<\u65E0\u6548\u653E\u7F6E>>\\n\u6309\u4F4F Shift \u548C Ctrl \u952E\u4EE5\u8FDB\u884C\u4E00\u5BF9\u4E00\u6620\u5C04\u5E76\u6539\u5199
DraggingInfosPopup.overwriteMode=\\ > \u6539\u5199\u6A21\u5F0F
DraggingInfosPopup.appendMode=\\ > \u8FFD\u52A0\u6A21\u5F0F
DraggingInfosPopup.appendModeToOverwrite=\\ > \u8FFD\u52A0\u6A21\u5F0F (Ctrl \u952E\u6765\u6539\u5199)
DraggingInfosPopup.insertAllSelectedEntries=\\ > \u63D2\u5165\u6240\u6709\u9009\u5B9A\u6761\u76EE
DraggingInfosPopup.insertRemainingEntries=\\ > \u63D2\u5165\u5269\u4F59\u6761\u76EE
DraggingInfosPopup.dropInvalidWithKey=\n<<\u65E0\u6548\u653E\u7F6E>>\n\u6309\u4F4F Shift \u548C Ctrl \u952E\u4EE5\u8FDB\u884C\u4E00\u5BF9\u4E00\u6620\u5C04\u5E76\u6539\u5199
DraggingInfosPopup.overwriteMode= > \u91CD\u5199\u6A21\u5F0F
DraggingInfosPopup.appendMode= >\u9644\u52A0\u6A21\u5F0F
DraggingInfosPopup.appendModeToOverwrite= > \u8FFD\u52A0\u6A21\u5F0F (Ctrl \u952E\u6765\u6539\u5199)
DraggingInfosPopup.insertAllSelectedEntries= > \u63D2\u5165\u6240\u6709\u9009\u62E9\u9879
DraggingInfosPopup.insertRemainingEntries= > \u63D2\u5165\u5269\u4F59\u9879
DraggingInfosPopup.eachSourceEntryExpressionToEachTargetExpression=> \u6BCF\u4E2A\u6E90\u6761\u76EE\u8868\u8FBE\u5F0F\u5230\u6BCF\u4E2A\u76EE\u6807\u8868\u8FBE\u5F0F
DraggingInfosPopup.eachSourceEntryToEachTargetExpression=> \u6BCF\u4E2A\u6E90\u6761\u76EE\u5230\u6BCF\u4E2A\u76EE\u6807\u8868\u8FBE\u5F0F
DraggingInfosPopup.allSourceEntriesExpressionToASingleOneTargetExpressionShiftKey=\u6240\u6709\u6E90\u9879\u90FD\u8868\u793A\u4E3A\u5355\u4E2A\u76EE\u6807\u8868\u8FBE\u5F0F(Shift\u952E\u8F6C\u6362\u4E3A\u66F4\u6539\u6620\u5C04)

View File

@@ -1,20 +1,20 @@
AlfrescoModelDialog.missingAspectDefinitions.msg=Les aspects s\u00E9lectionn\u00E9s se r\u00E9f\u00E8rent \u00E0 des aspects Alfresco inconnus : ${0}.\nVeuillez fournir les mod\u00E8les Alfresco qui les d\u00E9finissent.
AlfrescoModelDialog.modelTable.title=Titre
AlfrescoModelDialog.availableAspects=Aspects disponibles
AlfrescoModelDialog.missingAspectDefinitions.title=D\u00E9finitions d'aspects manquantes
AlfrescoOutputManager.failedLoadModel=\u00C9chec du chargement du mod\u00E8le depuis les m\u00E9tadonn\u00E9es du composant, r\u00E9initialisation.
AlfrescoOutputManager.schemaError.title=Erreur dans le sch\u00E9ma
AlfrescoModelDialog.missingTypeDefinitions.msg=Le type s\u00E9lectionn\u00E9 se r\u00E9f\u00E8re \u00E0 des aspects ou types Alfresco inconnus : ${0}. Veuillez fournir les mod\u00E8les Alfresco qui les d\u00E9finissent.
AlfrescoModelDialog.missingTypeDefinitions.title=D\u00E9finitions de type manquantes
AlfrescoModelDialog.add=Ajouter...
AlfrescoOutputModelManager.errorReadingModel=Erreur de lecture du fichier mod\u00E8le Alfresco
AlfrescoModelDialog.aspects=Aspects
AlfrescoOutputManager.schemaError.msg=Veuillez synchroniser le sch\u00E9ma d'abord
AlfrescoOutputModelManager.alreadyAdded=Ce mod\u00E8le a d\u00E9j\u00E0 \u00E9t\u00E9 ajout\u00E9
AlfrescoModelDialog.removeModelFailed=Echec de la suppression du mod\u00E8le
AlfrescoOutputModelManager.prefixConflict=Impossible d'ajouter le mod\u00E8le, pr\u00E9fixe en conflit avec le mod\u00E8le ajout\u00E9 pr\u00E9c\u00E9demment pour
AlfrescoOutputModelManager.errorReadingModel=Erreur de lecture du fichier mod\u00E8le Alfresco
AlfrescoOutputModelManager.notYetAdded=Ce mod\u00E8le n'a pas encore \u00E9t\u00E9 ajout\u00E9
AlfrescoOutputModelManager.prefixConflict=Impossible d'ajouter le mod\u00E8le, pr\u00E9fixe en conflit avec le mod\u00E8le ajout\u00E9 pr\u00E9c\u00E9demment pour
AlfrescoModelDialog.type=Type
AlfrescoModelDialog.addModelFailed=Echec de l'ajout du mod\u00E8le
AlfrescoModelDialog.modelTable.name=Nom
AlfrescoModelDialog.aspects=Aspects
AlfrescoModelDialog.availableAspects=Aspects disponibles
AlfrescoModelDialog.add=Ajouter...
AlfrescoModelDialog.addModelFailed=\u00C9chec de l'ajout du mod\u00E8le
AlfrescoModelDialog.remove=Supprimer
AlfrescoOutputManager.failedLoadModel=\u00C9chec du chargement du mod\u00E8le depuis les m\u00E9tadonn\u00E9es du composant, r\u00E9initialisation.
AlfrescoModelDialog.removeModelFailed=\u00C9chec de la suppression du mod\u00E8le
AlfrescoModelDialog.missingTypeDefinitions.title=D\u00E9finitions de type manquantes
AlfrescoModelDialog.missingTypeDefinitions.msg=Le type s\u00E9lectionn\u00E9 se r\u00E9f\u00E8re \u00E0 des aspects ou types Alfresco inconnus : ${0}.\nVeuillez fournir les mod\u00E8les Alfresco qui les d\u00E9finissent.
AlfrescoModelDialog.missingAspectDefinitions.title=D\u00E9finitions d'aspects manquantes
AlfrescoModelDialog.missingAspectDefinitions.msg=Les aspects s\u00E9lectionn\u00E9s se r\u00E9f\u00E8rent \u00E0 des aspects Alfresco inconnus : ${0}.\nVeuillez fournir les mod\u00E8les Alfresco qui les d\u00E9finissent.
AlfrescoModelDialog.modelTable.title=Titre
AlfrescoModelDialog.modelTable.name=Nom

View File

@@ -1,20 +1,20 @@
AlfrescoModelDialog.missingAspectDefinitions.msg=\u9078\u629E\u3055\u308C\u305F\u30A2\u30B9\u30DA\u30AF\u30C8\u306F\u4E0D\u660E\u306EAlfresco\u30A2\u30B9\u30DA\u30AF\u30C8:${0}\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\u305D\u308C\u3089\u3092\u5B9A\u7FA9\u3057\u305FAlfresco\u30E2\u30C7\u30EB\u30D5\u30A1\u30A4\u30EB\u3092\u63D0\u4F9B\u3057\u3066\u304F\u3060\u3055\u3044\u3002
AlfrescoModelDialog.modelTable.title=\u30BF\u30A4\u30C8\u30EB
AlfrescoModelDialog.availableAspects=\u53EF\u80FD\u306A\u30A2\u30B9\u30DA\u30AF\u30C8
AlfrescoModelDialog.missingAspectDefinitions.title=\u30A2\u30B9\u30DA\u30AF\u30C8\u5B9A\u7FA9\u304C\u3042\u308A\u307E\u305B\u3093\u3002
AlfrescoOutputManager.failedLoadModel=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30E1\u30BF\u30C7\u30FC\u30BF\u304B\u3089\u30E2\u30C7\u30EB\u30ED\u30FC\u30C9\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u518D\u521D\u671F\u5316\u4E2D,
AlfrescoOutputManager.schemaError.title=\u30B9\u30AD\u30FC\u30DE\u306E\u30A8\u30E9\u30FC
AlfrescoModelDialog.missingTypeDefinitions.msg=\u9078\u629E\u3057\u305F\u65B9\u306F\u4E0D\u660E\u306EAlfresco\u578B\u3082\u3057\u304F\u306F\u30A2\u30B9\u30DA\u30AF\u30C8${0}\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\u305D\u308C\u3089\u3092\u5B9A\u7FA9\u3057\u305FAlfresco\u30E2\u30C7\u30EB\u30D5\u30A1\u30A4\u30EB\u3092\u63D0\u4F9B\u3057\u3066\u304F\u3060\u3055\u3044\u3002
AlfrescoModelDialog.missingTypeDefinitions.title=\u578B\u5B9A\u7FA9\u304C\u3042\u308A\u307E\u305B\u3093
AlfrescoModelDialog.add=\u8FFD\u52A0...
AlfrescoOutputModelManager.errorReadingModel=Alfresco\u30E2\u30C7\u30EB\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u8FBC\u307F\u30A8\u30E9\u30FC
AlfrescoModelDialog.aspects=\u30A2\u30B9\u30DA\u30AF\u30C8
AlfrescoOutputManager.schemaError.msg=\u6700\u521D\u306B\u30B9\u30AD\u30FC\u30DE\u3092\u540C\u671F\u3057\u3066\u304F\u3060\u3055\u3044\u3002
AlfrescoOutputModelManager.alreadyAdded=\u3053\u306E\u30E2\u30C7\u30EB\u306F\u65E2\u306B\u8FFD\u52A0\u6E08\u307F\u3067\u3059\u3002
AlfrescoModelDialog.removeModelFailed=\u30E2\u30C7\u30EB\u306E\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F
AlfrescoOutputModelManager.prefixConflict=\u5148\u306B\u8FFD\u52A0\u3055\u308C\u305F\u30E2\u30C7\u30EB\u306E\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u306E\u885D\u7A81\u306E\u305F\u3081\u3001\u30E2\u30C7\u30EB\u306E\u8FFD\u52A0\u304C\u51FA\u6765\u307E\u305B\u3093\u3002
AlfrescoOutputModelManager.errorReadingModel=Alfresco\u30E2\u30C7\u30EB\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u8FBC\u307F\u30A8\u30E9\u30FC
AlfrescoOutputModelManager.notYetAdded=\u3053\u306E\u30E2\u30C7\u30EB\u306F\u307E\u3060\u8FFD\u52A0\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
AlfrescoOutputModelManager.prefixConflict=\u5148\u306B\u8FFD\u52A0\u3055\u308C\u305F\u30E2\u30C7\u30EB\u306E\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u306E\u885D\u7A81\u306E\u305F\u3081\u3001\u30E2\u30C7\u30EB\u306E\u8FFD\u52A0\u304C\u51FA\u6765\u307E\u305B\u3093\u3002
AlfrescoModelDialog.type=\u30BF\u30A4\u30D7
AlfrescoModelDialog.aspects=\u30A2\u30B9\u30DA\u30AF\u30C8
AlfrescoModelDialog.availableAspects=\u53EF\u80FD\u306A\u30A2\u30B9\u30DA\u30AF\u30C8
AlfrescoModelDialog.add=\u8FFD\u52A0...
AlfrescoModelDialog.addModelFailed=\u30E2\u30C7\u30EB\u8FFD\u52A0\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002
AlfrescoModelDialog.modelTable.name=\u540D\u524D
AlfrescoModelDialog.remove=\u524A\u9664
AlfrescoOutputManager.failedLoadModel=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30E1\u30BF\u30C7\u30FC\u30BF\u304B\u3089\u30E2\u30C7\u30EB\u30ED\u30FC\u30C9\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u518D\u521D\u671F\u5316\u4E2D
AlfrescoModelDialog.removeModelFailed=\u30E2\u30C7\u30EB\u306E\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F
AlfrescoModelDialog.missingTypeDefinitions.title=\u578B\u5B9A\u7FA9\u304C\u3042\u308A\u307E\u305B\u3093
AlfrescoModelDialog.missingTypeDefinitions.msg=\u9078\u629E\u3057\u305F\u65B9\u306F\u4E0D\u660E\u306EAlfresco\u578B\u3082\u3057\u304F\u306F\u30A2\u30B9\u30DA\u30AF\u30C8: ${0}\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\n\u305D\u308C\u3089\u3092\u5B9A\u7FA9\u3057\u305FAlfresco\u30E2\u30C7\u30EB\u30D5\u30A1\u30A4\u30EB\u3092\u63D0\u4F9B\u3057\u3066\u304F\u3060\u3055\u3044\u3002
AlfrescoModelDialog.missingAspectDefinitions.title=\u30A2\u30B9\u30DA\u30AF\u30C8\u5B9A\u7FA9\u304C\u3042\u308A\u307E\u305B\u3093\u3002
AlfrescoModelDialog.missingAspectDefinitions.msg=\u9078\u629E\u3055\u308C\u305F\u30A2\u30B9\u30DA\u30AF\u30C8\u306F\u4E0D\u660E\u306EAlfresco\u30A2\u30B9\u30DA\u30AF\u30C8: ${0}\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\n\u305D\u308C\u3089\u3092\u5B9A\u7FA9\u3057\u305FAlfresco\u30E2\u30C7\u30EB\u30D5\u30A1\u30A4\u30EB\u3092\u63D0\u4F9B\u3057\u3066\u304F\u3060\u3055\u3044\u3002
AlfrescoModelDialog.modelTable.title=\u30BF\u30A4\u30C8\u30EB
AlfrescoModelDialog.modelTable.name=\u540D\u524D

View File

@@ -1,20 +1,20 @@
AlfrescoModelDialog.missingAspectDefinitions.msg=\u6240\u9009\u62E9\u7684\u65B9\u9762\u6D89\u53CA\u672A\u77E5\u7684Alfresco\u65B9\u9762: ${0}.\u8BF7\u63D0\u4F9Balfresco \u6A21\u578B\u6587\u4EF6\u5B9A\u4E49\u4ED6\u4EEC.
AlfrescoModelDialog.modelTable.title=\u6807\u9898
AlfrescoModelDialog.availableAspects=\u53EF\u7528\u56E0\u7D20
AlfrescoModelDialog.missingAspectDefinitions.title=\u7F3A\u7701\u65B9\u9762\u5B9A\u4E49
AlfrescoOutputManager.failedLoadModel=\u65E0\u6CD5\u52A0\u8F7D\u7684\u7EC4\u4EF6\u5143\u6570\u636E\u6A21\u578B, \u91CD\u65B0\u521D\u59CB\u5316
AlfrescoOutputManager.schemaError.title=Schema \u9519\u8BEF
AlfrescoModelDialog.missingTypeDefinitions.msg=\u6240\u9009\u62E9\u7684\u7C7B\u578B\u6D89\u53CA\u672A\u77E5\u7684Alfresco\u7C7B\u578B\u6216\u65B9\u9762: ${0}.\uFF0C\u8BF7\u63D0\u4F9Balfresco \u6A21\u578B\u6587\u4EF6\u5B9A\u4E49\u4ED6\u4EEC.
AlfrescoModelDialog.missingTypeDefinitions.title=\u7F3A\u7701\u7C7B\u578B\u5B9A\u4E49
AlfrescoModelDialog.add=\u6DFB\u52A0...
AlfrescoOutputModelManager.errorReadingModel=\u8BFB\u53D6Alfresco\u7684\u6A21\u578B\u6587\u4EF6\u9519\u8BEF
AlfrescoModelDialog.aspects=\u65B9\u9762
AlfrescoOutputManager.schemaError.msg=\u8BF7\u5148\u540C\u6B65 schema
AlfrescoOutputModelManager.alreadyAdded=\u8BE5\u6A21\u578B\u5DF2\u6DFB\u52A0
AlfrescoModelDialog.removeModelFailed=\u79FB\u9664\u6A21\u578B\u5931\u8D25
AlfrescoOutputModelManager.prefixConflict=\u65E0\u6CD5\u6DFB\u52A0\u6A21\u578B\uFF0C\u524D\u7F00\u4E0E\u4EE5\u524D\u6DFB\u52A0\u6A21\u578B\u51B2\u7A81
AlfrescoOutputModelManager.errorReadingModel=\u8BFB\u53D6Alfresco\u7684\u6A21\u578B\u6587\u4EF6\u9519\u8BEF
AlfrescoOutputModelManager.notYetAdded=\u8BE5\u6A21\u578B\u5C1A\u672A\u6DFB\u52A0
AlfrescoOutputModelManager.prefixConflict=\u65E0\u6CD5\u6DFB\u52A0\u6A21\u578B\uFF0C\u524D\u7F00\u4E0E\u4EE5\u524D\u6DFB\u52A0\u6A21\u578B\u51B2\u7A81
AlfrescoModelDialog.type=\u7C7B\u578B
AlfrescoModelDialog.aspects=\u65B9\u9762
AlfrescoModelDialog.availableAspects=\u53EF\u7528\u56E0\u7D20
AlfrescoModelDialog.add=\u6DFB\u52A0...
AlfrescoModelDialog.addModelFailed=\u6DFB\u52A0\u6A21\u578B\u5931\u8D25
AlfrescoModelDialog.modelTable.name=\u540D\u79F0
AlfrescoModelDialog.remove=\u79FB\u9664
AlfrescoOutputManager.failedLoadModel=\u65E0\u6CD5\u52A0\u8F7D\u7684\u7EC4\u4EF6\u5143\u6570\u636E\u6A21\u578B, \u91CD\u65B0\u521D\u59CB\u5316
AlfrescoModelDialog.removeModelFailed=\u79FB\u9664\u6A21\u578B\u5931\u8D25
AlfrescoModelDialog.missingTypeDefinitions.title=\u7F3A\u7701\u7C7B\u578B\u5B9A\u4E49
AlfrescoModelDialog.missingTypeDefinitions.msg=\u6240\u9009\u62E9\u7684\u7C7B\u578B\u6D89\u53CA\u4E00\u4E2A\u6216\u591A\u4E2A\u672A\u77E5\u7684 Alfresco \u7C7B\u578B\u6216asepct: ${0}.\n \u8BF7\u63D0\u4F9B\u5B9A\u4E49\u8FD9\u4E9B \u7C7B\u578B\u6216 aspect \u7684 Alfresco \u6A21\u578B\u6587\u4EF6\u3002
AlfrescoModelDialog.missingAspectDefinitions.title=\u7F3A\u7701\u65B9\u9762\u5B9A\u4E49
AlfrescoModelDialog.missingAspectDefinitions.msg=\u6240\u9009\u62E9\u7684\u65B9\u9762\u6D89\u53CA\u4E00\u4E2A\u6216\u591A\u4E2A\u672A\u77E5\u7684 Alfresco aspect: ${0}.\n \u8BF7\u63D0\u4F9B\u5B9A\u4E49\u8FD9\u4E9B aspect \u7684 Alfresco \u6A21\u578B\u6587\u4EF6\u3002
AlfrescoModelDialog.modelTable.title=\u6807\u9898
AlfrescoModelDialog.modelTable.name=\u540D\u79F0

View File

@@ -735,9 +735,6 @@
} catch (java.lang.RuntimeException e) {
//do nothing
}
} else {
context.<%=ctxParam.getName()%> = pwd_<%=ctxParam.getName()%>_value;
context.put("<%=ctxParam.getName()%>",context.<%=ctxParam.getName()%>);
}
}
<%

View File

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

View File

@@ -1,5 +1,5 @@
providerName=www.example.org
pluginName=Mod\u00E8le EmittersPool
providerName=www.example.org
components=Composants
trunjob=tRunJob
format=Format

View File

@@ -1,5 +1,5 @@
providerName=www.example.org
pluginName=EmittersPool \u30E2\u30C7\u30EB
providerName=www.example.org
components=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8
trunjob=tRunJob
format=\u5F62\u5F0F

View File

@@ -1,5 +1,5 @@
providerName=www.example.org
pluginName=\u7EC4\u4EF6\u6A21\u5757
providerName=www.example.org
components=\u7EC4\u4EF6
trunjob=tRunJob
format=\u683C\u5F0F

View File

@@ -1,61 +1,75 @@
JavaRoutineSynchronizer.UnsupportedOperation.Exception1=M\u00E9thode non impl\u00E9ment\u00E9e : org.talend.designer.codegen.JavaRoutineSynchronizer line:49
CodeGeneratorEmittersPoolFactory.JETEmitters.NoPresent=Le projet JETEmitters est introuvable, une r\u00E9initialisation compl\u00E8te est requise
generatedcode.footerprocess.nbcharsgenerated={0} caract\u00E8res g\u00E9n\u00E9r\u00E9s par {1}
CodeGeneratorEmittersPoolFactory.Class.NotFound=Le template est toujours pr\u00E9sent, mais la classe {0} a disparue. Cette fonction doit d'\u00EAtre recompil\u00E9e.
CodeGeneratorEmittersPoolFactory.PersitentData.Error=Les donn\u00E9es persistantes ne peuvent pas \u00EAtre enregistr\u00E9es :
generatedcode.copyright.title=Copyright (c) 2005-2011, Talend Inc.
CodeGeneratorEmittersPoolFactory.initMessage=L'initialisation du moteur de g\u00E9n\u00E9ration est en cours...
generatedcode.copyright.body5=(http://www.gnu.org/licenses/lgpl.html).
EmfEmittersPersistence.CodeGen.DataMissing=Donn\u00E9e de g\u00E9n\u00E9ration de code manquante. D\u00E9but de g\u00E9n\u00E9ration du code entier.
CodeGenerator.JET.TimeOut=D\u00E9lai d'initialisation JET d\u00E9pass\u00E9
generatedcode.copyright.body4=Vous pouvez distribuer ce code sous les termes de la licence GNU LGPL
CodeGenerator.Node.NotFound=Noeud introuvable dans le processus courant
generatedcode.copyright.body3=Vous pouvez trouver plus d'informations sur les produits Talend sur www.talend.com.
EmittersPoolFactoryImpl.Class.IllegalArg=La classe '{0}' n'est pas un classifiant valide
generatedcode.copyright.title=Copyright (c) 2005-2011, Talend SA.
generatedcode.copyright.body1=Le code source a \u00E9t\u00E9 automatiquement g\u00E9n\u00E9r\u00E9 par {0}
generatedcode.copyright.body2=/ JobDesigner (CodeGenerator version {0}).
JavaRoutineSynchronizer.UnsupportedOperation.Exception2=M\u00E9thode non impl\u00E9ment\u00E9e : org.talend.designer.codegen.JavaRoutineSynchronizer line:58
generatedcode.copyright.body3=Vous pouvez trouver plus d'informations sur les produits Talend sur www.talend.com.
generatedcode.copyright.body4=Vous pouvez distribuer ce code sous les termes de la licence GNU LGPL
generatedcode.copyright.body5=(http://www.gnu.org/licenses/lgpl.html).
generatedcode.footerprocess.nbcharsgenerated={0} caract\u00E8res g\u00E9n\u00E9r\u00E9s par {1}
CodeGenerator.getGraphicalNode1=------process.getGraphicalNodes()------
CodeGenerator.getGraphicalNode2=------process.getGeneratingNodes()------
CodeGenerator.JET.TimeOut=D\u00E9lai d'initialisation JET d\u00E9pass\u00E9
CodeGenerator.newLine=\n\n\n\n
CodeGenerator.Node.NotFound=N\u0153ud introuvable dans le processus courant
JavaRoutineSynchronizer.UnsupportedOperation.Exception1=M\u00E9thode non impl\u00E9ment\u00E9e : org.talend.designer.codegen.JavaRoutineSynchronizer line:49
JavaRoutineSynchronizer.UnsupportedOperation.Exception2=M\u00E9thode non impl\u00E9ment\u00E9e : org.talend.designer.codegen.JavaRoutineSynchronizer line:58
JetSkeletonManager.unableLoad=Impossible de charger le fichier de cache de la mise \u00E0 jour du squelette
JetSkeletonManager.unableSave=impossible d'enregistrer le fichier de cache de la mise \u00E0 jour skeleton
JetSkeletonManager.updateProblem=quand les donn\u00E9es persistantes du squelette sont mises \u00E0 jour, il y a des probl\u00E8mes.
JetSkeletonManager.unableSave=impossible d'enregistrer le fichier de cache de la mise \u00E0 jour du squelette
JetSkeletonManager.updateProblem=Des probl\u00E8mes sont survenus lors de la mise \u00E0 jour des donn\u00E9es persistantes du squelette.
EmfEmittersPersistence.CodeGen.DataMissing=Donn\u00E9e de g\u00E9n\u00E9ration de code manquante. D\u00E9but de g\u00E9n\u00E9ration du code entier.
CodeGeneratorEmittersPoolFactory.PersitentData.Error=Les donn\u00E9es persistantes ne peuvent pas \u00EAtre enregistr\u00E9es\u00A0:
CodeGeneratorEmittersPoolFactory.JETEmitters.NoPresent=Le projet JETEmitters est introuvable, une r\u00E9initialisation compl\u00E8te est requise
CodeGeneratorEmittersPoolFactory.Class.NotFound=Le template est toujours pr\u00E9sent, mais la classe {0} a disparue. Cette fonction doit d'\u00EAtre recompil\u00E9e.
CodeGeneratorEmittersPoolFactory.codeThread=G\u00E9n\u00E9ration de code en arri\u00E8re-plan
CodeGeneratorEmittersPoolFactory.componentCompiled=Composants compil\u00E9s en {0} ms
CodeGeneratorEmittersPoolFactory.failCompail=\u00C9chec de compilation des composants \: \r\n
CodeGeneratorEmittersPoolFactory.dialogContent=La g\u00E9n\u00E9ration JetEmitter est annul\u00E9e, afin d'\u00E9viter des probl\u00E8mes. Veuillez appuyez sur Ctrl+Maj+F3 pour g\u00E9n\u00E9rer \u00E0 nouveau.
CodeGeneratorEmittersPoolFactory.failCompail=\u00C9chec de compilation des composants : \r\n
EmittersPoolFactoryImpl.Class.IllegalArg=La classe ' {0} ' n'est pas un classifiant valide.
CodeGeneratorEmittersPoolFactory.initialException=Exception durant l'initialisation
CodeGeneratorEmittersPoolFactory.initMessage=Initialisation du moteur de g\u00E9n\u00E9ration en cours...
CodeGeneratorEmittersPoolFactory.jetEmitterInitialException=Erreur d'initialisation de JetEmitter
CodeGeneratorEmittersPoolFactory.operationCanceled=Op\u00E9ration annul\u00E9e
CodeGeneratorEmittersPoolFactory.updatePaletteForEditors=Mettre \u00E0 jour la palette pour les \u00E9diteurs
CodeGeneratorService.invalidLanguage1=Type de langage invalide.
CodeGeneratorService.invalidLanguage2=Type de langage invalide.
CodeGenInit.addMarkers=Ajouter des marqueurs dans l'espace de travail
CodeGenInit.createProject=Cr\u00E9er le projet {0}
CodeGenInit.createProject=Cr\u00E9er un projet {0}
CodeGenInit.deleteProject=Supprimer le projet {0}
CodeGenInit.initTemplate=Init templates
CodeGenInit.removeLink=Supprimer les ressources li\u00E9es
CodeGenInit.saveWorkspace=Enregistrement de l'espace de travail
DocumentRootImpl.mixed=(mix\u00E9\:
DocumentRootImpl.mixed= (m\u00E9lang\u00E9 :
NodesSubTree.enableParallel=__ENABLE_PARALLEL__
PoolTypeImpl.persistentPool=(PoolPersistant \:
PoolTypeImpl.persistentPool= (PoolPersistant :
TalendJetEmitter.compileFail= erreur de compilation : {0} : {1}
TalendJetEmitter.exception=Exception sur
JetFilesProviderManager.unableLoad=Impossible de charger {0} JetFilesProviderManager.unableLoad
CodeGeneratorEmittersPoolFactory.dialogContent=La g\u00E9n\u00E9ration JetEmitter est annul\u00E9e, afin d'\u00E9viter des probl\u00E8mes, veuillez appuyez sur Ctrl+Maj+F3 pour g\u00E9n\u00E9rer \u00E0 nouveau.
CodeGeneratorEmittersPoolFactory.operationCanceled=Op\u00E9ration annul\u00E9e
ComponentsFactory.afterSystemComponent=apr\u00E8s le(s) composant(s) syst\u00E8me
ComponentsFactory.componentNotFound=Impossible de trouver le dossier du composant :
JetFilesProviderManager.unableLoad=Impossible de charger {0}
ComponentsFactory.afterSystemComponent=apr\u00E8s le composant syst\u00E8me
ComponentsFactory.componentNotFound=Dossier du composant introuvable :
ComponentsFactory.load.components=Chargement des composants...
ComponentsFactory.parentNotRecompiled=Attention\: les parents de *.inc.javajet ne sont pas recompil\u00E9s.
ComponentsFactory.parentNotRecompiled=Avertissement : les parents des *.inc.javajet n'ont pas \u00E9t\u00E9 recompil\u00E9s !
ComponentsFactory.loadComponents.missingFolder=Le dossier "{0}" ne contient pas le plug-in "{1}".
ComponentsFactory.init.waitForFinish.timeout=Impossible d'initialiser ComponentsFactory, veuillez r\u00E9essayer.
ComponentsLocalProviderService.componentLoadError=Erreur de chargement du composant
ComponentsLocalProviderService.talendExchangeError=Erreur de Talend Exchange
ComponentsPreferencePage.ButtonLabel0=OK
ComponentsLocalProviderService.talendExchangeError=Erreur Talend Exchange
ComponentsPreferencePage.ButtonLabel0=Ok
ComponentsPreferencePage.componentAssist=Activer l'assistant de cr\u00E9ation de composant
ComponentsPreferencePage.configuration.LINK_STYLE=Les liens de mapping par d\u00E9faut s'affichent comme :
ComponentsPreferencePage.rowLimit=Limite de lignes
ComponentsPreferencePage.WarningMsg=Vous devez red\u00E9marrer Talend Open Studio afin de charger les composants suppl\u00E9mentaires.
ComponentsPreferencePage.WarningTitle=Avertissement
ComponentsPreferencePage.directoryFieldLabel=Dossier des composants utilisateur :
ComponentsProviderManager.unableLoad=Impossible de charger un fournisseur de composant
ComponenttRunJobPreferencePage.label=Ne pas afficher le Job correspondant apr\u00E8s un double-clic sur un composant tRunJob.
ComponentsPreferencePage.directoryFieldLabel=R\u00E9pertoire des composants utilisateur :
ComponentsPreferencePage.notValidDirectory=Votre s\u00E9lection va imbriquer des dossiers, ce n'est pas recommand\u00E9. Continuer ?
ComponentsPreferencePage.installComponentsFailure=\u00C9chec de l'installation des composants
ComponentsProviderManager.unableLoad=impossible de charger un fournisseur de composant
ComponenttRunJobPreferencePage.label=Ne pas ouvrir le Job correspondant lors du double-clic sur un tRunJob.
ComponentJobletPreferencePage.label=Ne pas afficher le Job correspondant apr\u00E8s un double-clic sur un composant Joblet.
ComponentsPreferencePage_SuccessTitle=Succ\u00E8s
ComponentsPreferencePage_SuccessMessage1=Red\u00E9marrez le Studio pour charger les nouveaux composants. Sinon, ils seront charg\u00E9s au prochain d\u00E9marrage.
ComponentsPreferencePage_SuccessMessage2=Red\u00E9marrer maintenant ?
ComponentsPreferencePage.enableOnLineHelp=Activer l'aide en ligne pour les composants
ComponentsPreferencePage.titleInstallHelp=Installer la fonctionnalit\u00E9 d'aide hors ligne\u00A0?
ComponentsPreferencePage.msgInstallHelp=Cela va ouvrir une bo\u00EEte de dialogue de packages suppl\u00E9mentaires pour installer la fonctionnalit\u00E9 d'aide hors ligne, continuer ?
ComponentsPreferencePage.grpHelp=Aide
ComponenttRunJobPreferencePage.showCorrespondingJob=Afficher le Job correspondant apr\u00E8s un double-clic sur un composant tRunJob.
XsdValidationCacheManager.unableLoadxsd=impossible de charger le fichier de cache de validation xsd
XsdValidationCacheManager.unableSavexsd=impossible d'enregistrer le fichier de cache de validation xsd
@@ -63,19 +77,20 @@ prefs.configuration.LINK_STYLE.AUTO=Auto
prefs.configuration.LINK_STYLE.BEZIER_CURVE=Courbes
prefs.configuration.LINK_STYLE.LINE=Lignes (rapide)
FAMILY.AS400=AS400
FAMILY.Access=Access
FAMILY.Access=Acc\u00E8s
FAMILY.Alfresco=Alfresco
FAMILY.Business=Applications M\u00E9tier
FAMILY.Business_Intelligence=Business Intelligence
FAMILY.CentricCRM=CentricCRM
FAMILY.Charts=Graphiques
FAMILY.Charts=Diagrammes
FAMILY.Connections=Connexions
FAMILY.Custom_Code=Code Utilisateur
FAMILY.Custom_Code=Code personnalis\u00E9
FAMILY.DB2=DB2
FAMILY.DB_Generic=Base de donn\u00E9es g\u00E9n\u00E9rique
FAMILY.DB_JDBC=Base de donn\u00E9es JDBC
FAMILY.DB_SCD=DB SCD
FAMILY.DB_SCD=Base de donn\u00E9es SCD
FAMILY.Data_Quality=Qualit\u00E9 de donn\u00E9es
FAMILY.Data_Privacy=Confidentialit\u00E9 des donn\u00E9es
FAMILY.Databases=Bases de donn\u00E9es
FAMILY.ELT=ELT
FAMILY.ESB=ESB
@@ -86,7 +101,7 @@ FAMILY.Fields=Champs
FAMILY.File=Fichier
FAMILY.FireBird=Firebird
FAMILY.Greenplum=Greenplum
FAMILY.HSQLDb=HSQLDb
FAMILY.HSQLDb=HSQLDB
FAMILY.Healthcare=Healthcare
FAMILY.Hive=Hive
FAMILY.Informix=Informix
@@ -111,11 +126,11 @@ FAMILY.Netezza=Netezza
FAMILY.OLAP_Cube=Cube OLAP
FAMILY.Oracle=Oracle
FAMILY.Orchestration=Orchestration
FAMILY.Output=\u00C9criture
FAMILY.ParAccel=Paraccel
FAMILY.Output=Sortie
FAMILY.ParAccel=ParAccel
FAMILY.PostgreSQL=PostgreSQL
FAMILY.PostgresPlus=PostgresPlus
FAMILY.Processing=Transformation
FAMILY.Processing=Traitement de
FAMILY.SAP=SAP
FAMILY.Sas=Sas
FAMILY.SCD=SCD
@@ -131,15 +146,3 @@ FAMILY.Teradata=Teradata
FAMILY.Vertica=Vertica
FAMILY.VtigerCRM=VtigerCRM
FAMILY.XML=XML
CodeGeneratorEmittersPoolFactory.updatePaletteForEditors=Mettre \u00E0 jour la palette pour les \u00E9diteurs
ComponentsPreferencePage.componentAssist=Activer l'assistant de cr\u00E9ation de composant
ComponentsPreferencePage.notValidDirectory=Votre s\u00E9lection va imbriquer des dossiers, ce n'est pas recommand\u00E9. Continuer ?
ComponentsFactory.loadComponents.missingFolder=Le plug-in "{1}" manque dans le dossier "{0}".
ComponentsPreferencePage_SuccessMessage1=Red\u00E9marrez le Studio pour charger les nouveaux composants. Sinon,ils seront charg\u00E9s au prochain d\u00E9marrage.
ComponentsPreferencePage_SuccessMessage2=Red\u00E9marrer maintenant ?
ComponentsPreferencePage.installComponentsFailure=\u00C9chec de l'installation des composants
ComponentsFactory.init.waitForFinish.timeout=Impossible d\'initialiser ComponentsFactory, veuillez r\u00E9essayer.
ComponentsPreferencePage.enableOnLineHelp=Activer l\'aide en ligne pour les composants
ComponentsPreferencePage.titleInstallHelp=Installer la fonctionnalit\u00E9 d\'aide hors ligne\u00A0?
ComponentsPreferencePage.msgInstallHelp=Cela va ouvrir une bo\u00EEte de dialogue de packages suppl\u00E9mentaires pour installer la fonctionnalit\u00E9 d\'aide hors ligne, continuer ?
ComponentsPreferencePage.grpHelp=Aide

View File

@@ -1,97 +1,112 @@
JavaRoutineSynchronizer.UnsupportedOperation.Exception1=\u30E1\u30BD\u30C3\u30C9\u304C\u5B9F\u88C5\u3055\u308C\u3066\u3044\u307E\u305B\u3093: org.talend.designer.codegen.JavaRoutineSynchronizer line:49
CodeGeneratorEmittersPoolFactory.JETEmitters.NoPresent=JETEmitter \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3001\u5168\u4F53\u306E\u518D\u521D\u671F\u5316\u304C\u5FC5\u8981\u3067\u3059\u3002
generatedcode.footerprocess.nbcharsgenerated={1} \u306B\u3088\u308A {0} \u6587\u5B57\u751F\u6210\u3055\u308C\u307E\u3057\u305F
CodeGeneratorEmittersPoolFactory.Class.NotFound=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F\u307E\u3060\u5B58\u5728\u3057\u307E\u3059\u304C\u3001\u30AF\u30E9\u30B9 {0} \u306F\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u304B\u3089\u6D88\u3048\u307E\u3057\u305F\u3002\u3053\u306E\u30E6\u30CB\u30C3\u30C8\u306E\u518D\u30B3\u30F3\u30D1\u30A4\u30EB\u304C\u5FC5\u8981\u3067\u3059\u3002
CodeGeneratorEmittersPoolFactory.PersitentData.Error=\u6301\u7D9A\u30C7\u30FC\u30BF\u3092\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093 :
generatedcode.copyright.title=Copyright (c) 2005-2009, Talend Inc.
CodeGeneratorEmittersPoolFactory.initMessage=\u751F\u6210\u30A8\u30F3\u30B8\u30F3\u306E\u521D\u671F\u5316\u4E2D...
generatedcode.copyright.body5=(http://www.gnu.org/licenses/lgpl.html)\u3002
EmfEmittersPersistence.CodeGen.DataMissing=\u30B3\u30FC\u30C9\u751F\u6210\u306E\u30C7\u30FC\u30BF\u304C\u4E0D\u8DB3\u3057\u3066\u3044\u307E\u3059\u3002\u5B8C\u5168\u306A\u30B3\u30FC\u30C9\u751F\u6210\u3092\u958B\u59CB\u3057\u3066\u3044\u307E\u3059\u3002
CodeGenerator.JET.TimeOut=JET\u521D\u671F\u5316\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8
generatedcode.copyright.body4=\u3053\u306E\u30B3\u30FC\u30C9\u306FGNU LGPL\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u6761\u4EF6\u306B\u57FA\u3065\u3044\u3066\u914D\u5E03\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059
CodeGenerator.Node.NotFound=\u73FE\u5728\u306E\u30D7\u30ED\u30BB\u30B9\u306B\u30CE\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
generatedcode.copyright.body3=Talend\u88FD\u54C1\u306E\u3055\u3089\u306B\u8A73\u3057\u3044\u60C5\u5831\u306F\u3001www.talend.com\u3092\u3054\u89A7\u4E0B\u3055\u3044\u3002
EmittersPoolFactoryImpl.Class.IllegalArg=\u30AF\u30E9\u30B9 '{0}' \u306F\u6709\u52B9\u306A\u5206\u985E\u5B50\u3067\u306F\u3042\u308A\u307E\u305B\u3093
generatedcode.copyright.title=Copyright (c) 2005-2011, Talend Inc.
generatedcode.copyright.body1=\u3053\u306E\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9\u306F{0}\u306B\u3088\u3063\u3066\u81EA\u52D5\u7684\u306B\u751F\u6210\u3055\u308C\u307E\u3057\u305F
generatedcode.copyright.body2=/ JobDesigner (CodeGenerator\u30D0\u30FC\u30B8\u30E7\u30F3{0}).
JavaRoutineSynchronizer.UnsupportedOperation.Exception2=\u30E1\u30BD\u30C3\u30C9\u304C\u5B9F\u88C5\u3055\u308C\u3066\u3044\u307E\u305B\u3093: org.talend.designer.codegen.JavaRoutineSynchronizer line:58
generatedcode.copyright.body3=You can find more information about Talend products at www.talend.com.
generatedcode.copyright.body4=\u3053\u306E\u30B3\u30FC\u30C9\u306FGNU LGPL\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u6761\u4EF6\u306B\u57FA\u3065\u3044\u3066\u914D\u5E03\u3067\u304D\u307E\u3059
generatedcode.copyright.body5=(http://www.gnu.org/licenses/lgpl.html).
generatedcode.footerprocess.nbcharsgenerated={1}\u306B\u3088\u308A{0}\u6587\u5B57\u751F\u6210\u3055\u308C\u307E\u3057\u305F
CodeGenerator.getGraphicalNode1=------process.getGraphicalNodes()------
CodeGenerator.getGraphicalNode2=------process.getGeneratingNodes()------
CodeGenerator.newLine=\\n\\n\\n\\n
CodeGenerator.JET.TimeOut=JET\u306E\u521D\u671F\u5316\u51E6\u7406\u304C\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F
CodeGenerator.newLine=\n\n\n\n
CodeGenerator.Node.NotFound=\u73FE\u5728\u306E\u30D7\u30ED\u30BB\u30B9\u306B\u30CE\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
JavaRoutineSynchronizer.UnsupportedOperation.Exception1=\u30E1\u30BD\u30C3\u30C9\u304C\u5B9F\u88C5\u3055\u308C\u3066\u3044\u307E\u305B\u3093\\: org.talend.designer.codegen.JavaRoutineSynchronizer line\\:49
JavaRoutineSynchronizer.UnsupportedOperation.Exception2=\u30E1\u30BD\u30C3\u30C9\u304C\u5B9F\u88C5\u3055\u308C\u3066\u3044\u307E\u305B\u3093\\: org.talend.designer.codegen.JavaRoutineSynchronizer line\\:58
JetSkeletonManager.unableLoad=\u30B9\u30B1\u30EB\u30C8\u30F3\u66F4\u65B0\u30AD\u30E3\u30C3\u30B7\u30E5\u30D5\u30A1\u30A4\u30EB\u3092\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093
JetSkeletonManager.unableSave=\u30B9\u30B1\u30EB\u30C8\u30F3\u66F4\u65B0\u30AD\u30E3\u30C3\u30B7\u30E5\u30D5\u30A1\u30A4\u30EB\u3092\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093
JetSkeletonManager.updateProblem=\u30B9\u30B1\u30EB\u30C8\u30F3\u6C38\u7D9A\u30C7\u30FC\u30BF\u66F4\u65B0\u6642\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F
JetSkeletonManager.updateProblem=\u30B9\u30B1\u30EB\u30C8\u30F3\u6C38\u7D9A\u30C7\u30FC\u30BF\u66F4\u65B0\u6642\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F,
EmfEmittersPersistence.CodeGen.DataMissing=\u30B3\u30FC\u30C9\u751F\u6210\u306E\u30C7\u30FC\u30BF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002\u5B8C\u5168\u306A\u30B3\u30FC\u30C9\u751F\u6210\u3092\u958B\u59CB\u3057\u3066\u3044\u307E\u3059\u3002
CodeGeneratorEmittersPoolFactory.PersitentData.Error=\u6301\u7D9A\u30C7\u30FC\u30BF\u3092\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093:
CodeGeneratorEmittersPoolFactory.JETEmitters.NoPresent=JETEmitter \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3001\u5168\u4F53\u306E\u518D\u521D\u671F\u5316\u304C\u5FC5\u8981\u3067\u3059\u3002
CodeGeneratorEmittersPoolFactory.Class.NotFound=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F\u307E\u3060\u5B58\u5728\u3057\u307E\u3059\u304C\u3001\u30AF\u30E9\u30B9{0}\u306F\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u304B\u3089\u6D88\u3048\u307E\u3057\u305F\u3002\u3053\u306E\u30E6\u30CB\u30C3\u30C8\u306E\u518D\u30B3\u30F3\u30D1\u30A4\u30EB\u304C\u5FC5\u8981\u3067\u3059\u3002
CodeGeneratorEmittersPoolFactory.codeThread=\u30B3\u30FC\u30C9\u751F\u6210\u306E\u30D0\u30C3\u30AF\u30B0\u30E9\u30A6\u30F3\u30C9\u30B9\u30EC\u30C3\u30C9
CodeGeneratorEmittersPoolFactory.componentCompiled=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306F{0}\u30DF\u30EA\u79D2\u3067\u30B3\u30F3\u30D1\u30A4\u30EB\u3055\u308C\u307E\u3057\u305F
CodeGeneratorEmittersPoolFactory.failCompail=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30B3\u30F3\u30D1\u30A4\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F : \\r\\n
CodeGeneratorEmittersPoolFactory.dialogContent=JetEmitter\u751F\u6210\u306F\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F\u3001\u3053\u306E\u539F\u56E0\u3092\u907F\u3051\u308B\u305F\u3081\u306B\u3001Ctrl + Shift + F3 \u3092\u62BC\u4E0B\u3057\u3066\u518D\u5EA6\u751F\u6210\u3057\u3066\u304F\u3060\u3055\u3044\u3002
CodeGeneratorEmittersPoolFactory.failCompail=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30B3\u30F3\u30D1\u30A4\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F : \r\n
EmittersPoolFactoryImpl.Class.IllegalArg=\u30AF\u30E9\u30B9{0}\u306F\u6709\u52B9\u306A\u5206\u985E\u5B50\u3067\u306F\u3042\u308A\u307E\u305B\u3093
CodeGeneratorEmittersPoolFactory.initialException=\u521D\u671F\u5316\u4E2D\u306B\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F
CodeGeneratorEmittersPoolFactory.initMessage=\u751F\u6210\u30A8\u30F3\u30B8\u30F3\u306E\u521D\u671F\u5316\u4E2D...
CodeGeneratorEmittersPoolFactory.jetEmitterInitialException=JetEmitter\u306E\u521D\u671F\u5316\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F
CodeGeneratorEmittersPoolFactory.operationCanceled=\u64CD\u4F5C\u306F\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F
CodeGeneratorEmittersPoolFactory.updatePaletteForEditors=\u30D1\u30EC\u30C3\u30C8\u3092\u66F4\u65B0
CodeGeneratorService.invalidLanguage1=\u7121\u52B9\u306A\u8A00\u8A9E\u30BF\u30A4\u30D7\u3067\u3059\u3002
CodeGeneratorService.invalidLanguage2=\u7121\u52B9\u306A\u8A00\u8A9E\u30BF\u30A4\u30D7\u3067\u3059\u3002
CodeGenInit.addMarkers=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306B\u30DE\u30FC\u30AB\u30FC\u3092\u8FFD\u52A0\u4E2D
CodeGenInit.createProject={0} \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u4F5C\u6210
CodeGenInit.deleteProject={0} \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u524A\u9664
CodeGenInit.createProject={0}\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4F5C\u6210
CodeGenInit.deleteProject={0}\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u524A\u9664
CodeGenInit.initTemplate=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u521D\u671F\u5316
CodeGenInit.removeLink=\u30EA\u30F3\u30AF\u3055\u308C\u305F\u30EA\u30BD\u30FC\u30B9\u306E\u524A\u9664
CodeGenInit.saveWorkspace=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u4FDD\u5B58\u4E2D
DocumentRootImpl.mixed=\ (mixed :
DocumentRootImpl.mixed= (\u4E21\u7528:
NodesSubTree.enableParallel=__ENABLE_PARALLEL__
PoolTypeImpl.persistentPool=\ (persistentPool:
TalendJetEmitter.compileFail=\u30B3\u30F3\u30D1\u30A4\u30EB\u5931\u6557\uFF1A{0}\uFF1A{1}
PoolTypeImpl.persistentPool= (persistentPool:
TalendJetEmitter.compileFail= \u30B3\u30F3\u30D1\u30A4\u30EB\u5931\u6557: {0} : {1}
TalendJetEmitter.exception=\u4F8B\u5916
JetFilesProviderManager.unableLoad={0}JetFilesProviderManager \u3092\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093
CodeGeneratorEmittersPoolFactory.dialogContent=JetEmitter\u751F\u6210\u306F\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F\u3001\u3053\u306E\u539F\u56E0\u3092\u907F\u3051\u308B\u305F\u3081\u306B\u3001Ctrl + Shift + F3 \u3092\u62BC\u4E0B\u3057\u3066\u518D\u5EA6\u751F\u6210\u3057\u3066\u304F\u3060\u3055\u3044\u3002
CodeGeneratorEmittersPoolFactory.operationCanceled=\u64CD\u4F5C\u306F\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F
JetFilesProviderManager.unableLoad={0}\u3092\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093
ComponentsFactory.afterSystemComponent=\u30B7\u30B9\u30C6\u30E0\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u5F8C
ComponentsFactory.componentNotFound=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30D5\u30A9\u30EB\u30C0\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 :
ComponentsFactory.load.components=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30ED\u30FC\u30C9...
ComponentsFactory.parentNotRecompiled=\u8B66\u544A: *.inc.javajet\u306E\u89AA\u304C\u30EA\u30B3\u30F3\u30D1\u30A4\u30EB\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF01
ComponentsLocalProviderService.componentLoadError=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30ED\u30FC\u30C9\u30A8\u30E9\u30FC
ComponentsFactory.componentNotFound=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30D5\u30A9\u30EB\u30C0\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 \\:
ComponentsFactory.load.components=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30ED\u30FC\u30C9...
ComponentsFactory.parentNotRecompiled=\u8B66\u544A: *.inc.javajet\u306E\u89AA\u306F\u518D\u30B3\u30F3\u30D1\u30A4\u30EB\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
ComponentsFactory.loadComponents.missingFolder=\u30D7\u30E9\u30B0\u30A4\u30F3"{1}"\u306B\u30D5\u30A9\u30EB\u30C0\u30FC"{0}"\u304C\u3042\u308A\u307E\u305B\u3093\u3002
ComponentsFactory.init.waitForFinish.timeout=ComponentsFactory\u3092\u521D\u671F\u5316\u3067\u304D\u307E\u305B\u3093\u3002\u3082\u3046\u4E00\u5EA6\u8A66\u3057\u3066\u304F\u3060\u3055\u3044\u3002
ComponentsLocalProviderService.componentLoadError=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30ED\u30FC\u30C9\u30A8\u30E9\u30FC
ComponentsLocalProviderService.talendExchangeError=Talend Exchange \u30A8\u30E9\u30FC
ComponentsPreferencePage.ButtonLabel0=OK
ComponentsPreferencePage.configuration.LINK_STYLE=\u30C7\u30D5\u30A9\u30EB\u30C8\u30DE\u30C3\u30D4\u30F3\u30B0\u30EA\u30F3\u30AF\u306E\u8868\u793A :
ComponentsPreferencePage.componentAssist=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u4F5C\u6210\u30A2\u30B7\u30B9\u30BF\u30F3\u30C8\u3092\u6709\u52B9\u5316
ComponentsPreferencePage.configuration.LINK_STYLE=\u30C7\u30D5\u30A9\u30EB\u30C8\u30DE\u30C3\u30D4\u30F3\u30B0\u30EA\u30F3\u30AF\u306E\u8868\u793A:
ComponentsPreferencePage.rowLimit=\u884C\u6570\u5236\u9650
ComponentsPreferencePage.WarningMsg=Talend Open Studio\u3092\u518D\u8D77\u52D5\u3057\u3066\u3001\u62E1\u5F35\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30ED\u30FC\u30C9\u3057\u307E\u3059\u3002
ComponentsPreferencePage.WarningMsg=Talend Open Studio\u3092\u518D\u8D77\u52D5\u3057\u3066\u3001\u62E1\u5F35\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30ED\u30FC\u30C9\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
ComponentsPreferencePage.WarningTitle=\u8B66\u544A
ComponentsPreferencePage.directoryFieldLabel=\u30E6\u30FC\u30B6\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30D5\u30A9\u30EB\u30C0 :
ComponentsProviderManager.unableLoad=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30D7\u30ED\u30D0\u30A4\u30C0\u304C\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093
ComponentsPreferencePage.directoryFieldLabel=\u30E6\u30FC\u30B6\u30FC\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30D5\u30A9\u30EB\u30C0 \\:
ComponentsPreferencePage.notValidDirectory=\u3053\u308C\u3092\u9078\u629E\u3059\u308B\u3068\u30D5\u30A9\u30EB\u30C0\u30FC\u304C\u30CD\u30B9\u30C8\u3055\u308C\u307E\u3059\u3002\u3053\u308C\u306F\u63A8\u5968\u3055\u308C\u307E\u305B\u3093\u3002 \u7D9A\u884C\u3057\u307E\u3059\u304B?,
ComponentsPreferencePage.installComponentsFailure=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F
ComponentsProviderManager.unableLoad=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30D7\u30ED\u30D0\u30A4\u30C0\u306E\u30ED\u30FC\u30C9\u304C\u3067\u304D\u307E\u305B\u3093
ComponenttRunJobPreferencePage.label=tRunJob\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u5F8C\u3001\u5BFE\u5FDC\u30B8\u30E7\u30D6\u3092\u8868\u793A\u3057\u306A\u3044\u3002
ComponentJobletPreferencePage.label=\u30B8\u30E7\u30D6\u30EC\u30C3\u30C8\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u305F\u5F8C\u306B\u5BFE\u5FDC\u3059\u308B\u30B8\u30E7\u30D6\u3092\u8868\u793A\u3057\u306A\u3044\u3002
ComponenttRunJobPreferencePage.showCorrespondingJob=tRunJob\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u5F8C\u3001\u5BFE\u5FDC\u30B8\u30E7\u30D6\u3092\u8868\u793A\u3059\u308B
ComponentJobletPreferencePage.label=Joblet\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u5F8C\u3001\u5BFE\u5FDC\u30B8\u30E7\u30D6\u3092\u8868\u793A\u3057\u306A\u3044\u3002
ComponentsPreferencePage_SuccessTitle=\u6210\u529F
ComponentsPreferencePage_SuccessMessage1=\u65B0\u898F\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30ED\u30FC\u30C9\u3059\u308B\u305F\u3081\u306B\u306F\u3001Studio\u3092\u518D\u8D77\u52D5\u3057\u307E\u3059\u3002\u307E\u305F\u306F\u6B21\u56DE\u306E\u958B\u59CB\u6642\u306B\u30ED\u30FC\u30C9\u3055\u308C\u307E\u3059\u3002
ComponentsPreferencePage_SuccessMessage2=\u518D\u8D77\u52D5\u3057\u307E\u3059\u304B\uFF1F
ComponentsPreferencePage.enableOnLineHelp=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30AA\u30F3\u30E9\u30A4\u30F3\u30D8\u30EB\u30D7\u3092\u6709\u52B9\u5316
ComponentsPreferencePage.titleInstallHelp=\u30AA\u30D5\u30E9\u30A4\u30F3\u30D8\u30EB\u30D7\u6A5F\u80FD\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B?
ComponentsPreferencePage.msgInstallHelp=\u3053\u308C\u306B\u3088\u3063\u3066\u8FFD\u52A0\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30C0\u30A4\u30A2\u30ED\u30B0\u304C\u958B\u304D\u3001\u30AA\u30D5\u30E9\u30A4\u30F3\u30D8\u30EB\u30D7\u6A5F\u80FD\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u307E\u3059\u3002\u7D9A\u884C\u3057\u307E\u3059\u304B?
ComponentsPreferencePage.grpHelp=\u30D8\u30EB\u30D7
ComponenttRunJobPreferencePage.showCorrespondingJob=tRunJob\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u5F8C\u3001\u5BFE\u5FDC\u30B8\u30E7\u30D6\u3092\u8868\u793A\u3059\u308B\u3002
XsdValidationCacheManager.unableLoadxsd=XSD\u30D0\u30EA\u30C7\u30FC\u30B7\u30E7\u30F3\u306E\u30AD\u30E3\u30C3\u30B7\u30E5\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3002
XsdValidationCacheManager.unableSavexsd=XSD\u30D0\u30EA\u30C7\u30FC\u30B7\u30E7\u30F3\u306E\u30AD\u30E3\u30C3\u30B7\u30E5\u30D5\u30A1\u30A4\u30EB\u3092\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093
prefs.configuration.LINK_STYLE.AUTO=\u81EA\u52D5
prefs.configuration.LINK_STYLE.BEZIER_CURVE=\u66F2\u7DDA
prefs.configuration.LINK_STYLE.LINE=Lines (fast)
prefs.configuration.LINK_STYLE.LINE=\u76F4\u7DDA\uFF08\u9AD8\u901F\uFF09
FAMILY.AS400=AS400
FAMILY.Access=Access
FAMILY.Access=\u30A2\u30AF\u30BB\u30B9
FAMILY.Alfresco=Alfresco
FAMILY.Business=\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3
FAMILY.Business=\u30D3\u30B8\u30CD\u30B9
FAMILY.Business_Intelligence=\u30D3\u30B8\u30CD\u30B9\u30A4\u30F3\u30C6\u30EA\u30B8\u30A7\u30F3\u30B9
FAMILY.CentricCRM=CentricCRM
FAMILY.Charts=\u30C1\u30E3\u30FC\u30C8
FAMILY.Connections=\u63A5\u7D9A\u8A2D\u5B9A
FAMILY.Connections=\u63A5\u7D9A
FAMILY.Custom_Code=\u30AB\u30B9\u30BF\u30E0\u30B3\u30FC\u30C9
FAMILY.DB2=DB2
FAMILY.DB_Generic=\u6C4E\u7528ODBC
FAMILY.DB_JDBC=\u6C4E\u7528JDBC
FAMILY.DB_SCD=DB SCD
FAMILY.Data_Quality=\u30C7\u30FC\u30BF\u30AF\u30AA\u30EA\u30C6\u30A3
FAMILY.Data_Privacy=\u30C7\u30FC\u30BF\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC
FAMILY.Databases=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
FAMILY.ELT=ELT
FAMILY.ESB=ESB
FAMILY.EXASolution=EXASolution
FAMILY.eXist=eXist
FAMILY.FTP=ftp
FAMILY.Fields=\u9805\u76EE\u5024
FAMILY.FTP=FTP
FAMILY.Fields=\u30D5\u30A3\u30FC\u30EB\u30C9
FAMILY.File=\u30D5\u30A1\u30A4\u30EB
FAMILY.FireBird=Firebird
FAMILY.FireBird=FireBird
FAMILY.Greenplum=Greenplum
FAMILY.HSQLDb=HSQLdb
FAMILY.Healthcare=\u30D8\u30EB\u30B9\u30B1\u30A2
FAMILY.HSQLDb=HSQLDb
FAMILY.Healthcare=Healthcare
FAMILY.Hive=Hive
FAMILY.Informix=Informix
FAMILY.Ingres=Ingres
FAMILY.Input=\u30D5\u30A1\u30A4\u30EB\u5165\u529B
FAMILY.Input=\u5165\u529B
FAMILY.Interbase=Interbase
FAMILY.Internet=\u30A4\u30F3\u30BF\u30FC\u30CD\u30C3\u30C8
FAMILY.Jasper=Jasper
@@ -111,13 +126,13 @@ FAMILY.Netezza=Netezza
FAMILY.OLAP_Cube=OLAP\u30AD\u30E5\u30FC\u30D6
FAMILY.Oracle=Oracle
FAMILY.Orchestration=\u30D7\u30ED\u30BB\u30B9\u5236\u5FA1
FAMILY.Output=\u30D5\u30A1\u30A4\u30EB\u51FA\u529B
FAMILY.Output=\u51FA\u529B
FAMILY.ParAccel=ParAccel
FAMILY.PostgreSQL=PostgreSQL
FAMILY.PostgresPlus=PostgresPlus
FAMILY.Processing=\u5909\u63DB\u51E6\u7406
FAMILY.Processing=\u51E6\u7406\u4E2D
FAMILY.SAP=SAP
FAMILY.Sas=SAS
FAMILY.Sas=Sas
FAMILY.SCD=SCD
FAMILY.SCP=SCP
FAMILY.SPSS=SPSS
@@ -130,19 +145,4 @@ FAMILY.Technical=\u30C6\u30AF\u30CB\u30AB\u30EB
FAMILY.Teradata=Teradata
FAMILY.Vertica=Vertica
FAMILY.VtigerCRM=VtigerCRM
FAMILY.XML=XML\u30D5\u30A1\u30A4\u30EB
CodeGeneratorEmittersPoolFactory.updatePaletteForEditors=\u30D1\u30EC\u30C3\u30C8\u3092\u66F4\u65B0
ComponentsPreferencePage.componentAssist=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u4F5C\u6210\u30A2\u30B7\u30B9\u30BF\u30F3\u30C8\u3092\u6709\u52B9\u5316
ComponentsPreferencePage.notValidDirectory=\u3053\u308C\u3092\u9078\u629E\u3059\u308B\u3068\u30D5\u30A9\u30EB\u30C0\u30FC\u304C\u30CD\u30B9\u30C8\u3055\u308C\u307E\u3059\u3002\u3053\u308C\u306F\u63A8\u5968\u3055\u308C\u307E\u305B\u3093\u3002 \u7D9A\u884C\u3057\u307E\u3059\u304B?
ComponentsFactory.loadComponents.missingFolder=\u30D7\u30E9\u30B0\u30A4\u30F3"{1}"\u5185\u306B\u30D5\u30A9\u30EB\u30C0\u30FC"{0}"\u304C\u3042\u308A\u307E\u305B\u3093\u3002
ComponentsPreferencePage_SuccessTitle=\u6210\u529F
ComponentsPreferencePage_SuccessMessage1=\u65B0\u898F\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30ED\u30FC\u30C9\u3059\u308B\u305F\u3081\u306B\u306F\u3001Studio\u3092\u518D\u8D77\u52D5\u3057\u307E\u3059\u3002\u53C8\u306F\u6B21\u56DE\u306E\u958B\u59CB\u6642\u306B\u30ED\u30FC\u30C9\u3055\u308C\u307E\u3059\u3002
ComponentsPreferencePage_SuccessMessage2=\u518D\u8D77\u52D5\u3057\u307E\u3059\u304B\uFF1F
ComponentsPreferencePage.installComponentsFailure=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F
generatedcode.copyright.body1=\u3053\u306E\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9\u306F{0}\u306B\u3088\u3063\u3066\u81EA\u52D5\u7684\u306B\u751F\u6210\u3055\u308C\u307E\u3057\u305F
ComponentsFactory.init.waitForFinish.timeout=ComponentsFactory\u3092\u521D\u671F\u5316\u3067\u304D\u307E\u305B\u3093\u3002\u3082\u3046\u4E00\u5EA6\u8A66\u3057\u3066\u4E0B\u3055\u3044\u3002
FAMILY.Data_Privacy=\u30C7\u30FC\u30BF\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC
ComponentsPreferencePage.enableOnLineHelp=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30AA\u30F3\u30E9\u30A4\u30F3\u30D8\u30EB\u30D7\u3092\u6709\u52B9\u5316
ComponentsPreferencePage.titleInstallHelp=\u30AA\u30D5\u30E9\u30A4\u30F3\u30D8\u30EB\u30D7\u6A5F\u80FD\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B?
ComponentsPreferencePage.msgInstallHelp=\u3053\u308C\u306B\u3088\u3063\u3066\u8FFD\u52A0\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30C0\u30A4\u30A2\u30ED\u30B0\u304C\u958B\u304D\u3001\u30AA\u30D5\u30E9\u30A4\u30F3\u30D8\u30EB\u30D7\u6A5F\u80FD\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u307E\u3059\u3002\u7D9A\u884C\u3057\u307E\u3059\u304B?
ComponentsPreferencePage.grpHelp=\u30D8\u30EB\u30D7
FAMILY.XML=XML

View File

@@ -1,30 +1,34 @@
JavaRoutineSynchronizer.UnsupportedOperation.Exception1=\u65B9\u6CD5\u672A\u5B9E\u65BD\uFF1Aorg.talend.designer.codegen.JavaRoutineSynchronizer line:49
CodeGeneratorEmittersPoolFactory.JETEmitters.NoPresent=JETEmitters\u5DE5\u7A0B\u4E0D\u5B58\u5728\uFF0C\u9700\u8981\u91CD\u65B0\u5B8C\u6574\u521D\u59CB\u5316\u3002
generatedcode.footerprocess.nbcharsgenerated=\u7531 {1} \u751F\u6210\u7684 {0} \u4E2A\u5B57\u7B26
CodeGeneratorEmittersPoolFactory.Class.NotFound=\u6A21\u677F\u4F9D\u7136\u5B58\u5728\uFF0C\u4F46\u662F\u7C7B{0}
CodeGeneratorEmittersPoolFactory.PersitentData.Error=\u6301\u4E45\u5316\u6570\u636E\u4E0D\u80FD\u4FDD\u5B58\uFF1A
generatedcode.copyright.title=\u7248\u6743\u6240\u6709 (c) 2005-2011\uFF0CTalend Inc.
CodeGeneratorEmittersPoolFactory.initMessage=\u751F\u6210\u5F15\u64CE\u6B63\u5728\u521D\u59CB\u5316...
generatedcode.copyright.body5=(http://www.gnu.org/licenses/lgpl.html)\u3002
EmfEmittersPersistence.CodeGen.DataMissing=\u4EE3\u7801\u751F\u6210\u6570\u636E\u6D41\u5931\uFF0C\u5F00\u59CB\u91CD\u65B0\u751F\u6210\u4EE3\u7801\u3002
CodeGenerator.JET.TimeOut=JET \u521D\u59CB\u5316\u8D85\u65F6
generatedcode.copyright.body4=\u4F60\u53EF\u4EE5\u5728\u5728GNU LGPL \u8BB8\u53EF\u8BC1\u4E0B\u652F\u914D\u8FD9\u4E9B\u4EE3\u7801
CodeGenerator.Node.NotFound=\u5728\u5F53\u524D
generatedcode.copyright.body3=\u4F60\u53EF\u4EE5\u5728www.talend.com\u53D1\u73B0\u66F4\u591A\u5173\u4E8ETalend\u4EA7\u54C1\u4FE1\u606F
EmittersPoolFactoryImpl.Class.IllegalArg=\u7C7B \' {0}\' \u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u5206\u7C7B\u5668
generatedcode.copyright.body1=\u6B64\u6E90\u4EE3\u7801\u5DF2\u7531 {0} \u81EA\u52A8\u751F\u6210
generatedcode.copyright.body2=/ \u4F5C\u4E1A\u8BBE\u8BA1 (CodeGenerator version {0}).
JavaRoutineSynchronizer.UnsupportedOperation.Exception2=\u65B9\u6CD5\u672A\u5B9E\u65BD\uFF1Aorg.talend.designer.codegen.JavaRoutineSynchronizer line:58
generatedcode.copyright.body3=\u4F60\u53EF\u4EE5\u5728www.talend.com\u53D1\u73B0\u66F4\u591A\u5173\u4E8ETalend\u4EA7\u54C1\u4FE1\u606F
generatedcode.copyright.body4=\u4F60\u53EF\u4EE5\u5728\u5728GNU LGPL \u8BB8\u53EF\u8BC1\u4E0B\u652F\u914D\u8FD9\u4E9B\u4EE3\u7801
generatedcode.copyright.body5=(http://www.gnu.org/licenses/lgpl.html)\u3002
generatedcode.footerprocess.nbcharsgenerated=\u7531 {1} \u751F\u6210\u7684 {0} \u4E2A\u5B57\u7B26
CodeGenerator.getGraphicalNode1=\u8FDB\u7A0B\u5F97\u5230\u56FE\u5F62\u8282\u70B9\uFF08\uFF09
CodeGenerator.getGraphicalNode2=\u8FDB\u7A0B\u5F97\u5230\u751F\u6210\u8282\u70B9\uFF08\uFF09
CodeGenerator.newLine=\\n\\n\\n\\n
CodeGenerator.JET.TimeOut=JET \u521D\u59CB\u5316\u8D85\u65F6
CodeGenerator.newLine=\n\n\n\n
CodeGenerator.Node.NotFound=\u5728\u5F53\u524D
JavaRoutineSynchronizer.UnsupportedOperation.Exception1=\u65B9\u6CD5\u672A\u5B9E\u65BD\uFF1Aorg.talend.designer.codegen.JavaRoutineSynchronizer line:49
JavaRoutineSynchronizer.UnsupportedOperation.Exception2=\u65B9\u6CD5\u672A\u5B9E\u65BD\uFF1Aorg.talend.designer.codegen.JavaRoutineSynchronizer line:58
JetSkeletonManager.unableLoad=\u65E0\u6CD5\u52A0\u8F7D\u4E3B\u5E72\u66F4\u65B0\u7F13\u5B58\u6587\u4EF6
JetSkeletonManager.unableSave=\u65E0\u6CD5\u4FDD\u5B58\u4E3B\u5E72\u66F4\u65B0\u7F13\u5B58\u6587\u4EF6
JetSkeletonManager.updateProblem=\u5F53\u66F4\u65B0\u6301\u4E45\u6570\u636E\u65F6\u51FA\u73B0\u9519\u8BEF
EmfEmittersPersistence.CodeGen.DataMissing=\u4EE3\u7801\u751F\u6210\u6570\u636E\u6D41\u5931\uFF0C\u5F00\u59CB\u91CD\u65B0\u751F\u6210\u4EE3\u7801\u3002
CodeGeneratorEmittersPoolFactory.PersitentData.Error=\u6301\u4E45\u5316\u6570\u636E\u4E0D\u80FD\u4FDD\u5B58\uFF1A
CodeGeneratorEmittersPoolFactory.JETEmitters.NoPresent=JETEmitters\u5DE5\u7A0B\u4E0D\u5B58\u5728\uFF0C\u9700\u8981\u91CD\u65B0\u5B8C\u6574\u521D\u59CB\u5316\u3002
CodeGeneratorEmittersPoolFactory.Class.NotFound=\u6A21\u677F\u4F9D\u7136\u5B58\u5728\uFF0C\u4F46\u662F\u7C7B{0}
CodeGeneratorEmittersPoolFactory.codeThread=\u4EE3\u7801\u751F\u6210\u540E\u53F0\u7EBF\u7A0B
CodeGeneratorEmittersPoolFactory.componentCompiled=\u7EC4\u4EF6\u7F16\u8BD1{0}\u6BEB\u79D2
CodeGeneratorEmittersPoolFactory.failCompail=\u7EC4\u4EF6\u7F16\u8BD1\u5931\u8D25: \\r\\n
CodeGeneratorEmittersPoolFactory.dialogContent=\u4E3A\u4E86\u907F\u514D\u4EA7\u751F\u95EE\u9898\uFF0C\u8BF7\u6309Ctrl+Shift+F3\u6765\u518D\u6B21\u751F\u6210\uFF01
CodeGeneratorEmittersPoolFactory.failCompail=\u7EC4\u4EF6\u7F16\u8BD1\u5931\u8D25: \r\n
EmittersPoolFactoryImpl.Class.IllegalArg=\u7C7B ' {0}' \u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u5206\u7C7B\u5668
CodeGeneratorEmittersPoolFactory.initialException=\u521D\u59CB\u5316\u5F02\u5E38
CodeGeneratorEmittersPoolFactory.initMessage=\u751F\u6210\u5F15\u64CE\u6B63\u5728\u521D\u59CB\u5316...
CodeGeneratorEmittersPoolFactory.jetEmitterInitialException=\u521D\u59CB\u5316JetEmitter\u51FA\u9519
CodeGeneratorEmittersPoolFactory.operationCanceled=\u64CD\u4F5C\u5DF2\u53D6\u6D88
CodeGeneratorEmittersPoolFactory.updatePaletteForEditors=\u66F4\u65B0\u7F16\u8F91\u5668\u7684\u8C03\u8272\u677F
CodeGeneratorService.invalidLanguage1=\u65E0\u6548\u7684\u8BED\u8A00\u7C7B\u578B\u3002
CodeGeneratorService.invalidLanguage2=\u65E0\u6548\u7684\u8BED\u8A00\u7C7B\u578B\u3002
CodeGenInit.addMarkers=\u5DE5\u4F5C\u533A\u4E2D\u6DFB\u52A0\u6807\u8BB0
@@ -33,29 +37,39 @@ CodeGenInit.deleteProject=\u5220\u9664{0} \u5DE5\u7A0B
CodeGenInit.initTemplate=\u521D\u59CB\u5316\u6A21\u677F
CodeGenInit.removeLink=\u5220\u9664\u8FDE\u63A5\u8D44\u6E90
CodeGenInit.saveWorkspace=\u4FDD\u5B58\u5DE5\u4F5C\u533A
DocumentRootImpl.mixed=\\ (\u6DF7\u5408:
DocumentRootImpl.mixed= (\u6DF7\u5408:
NodesSubTree.enableParallel=__ENABLE_PARALLEL__
PoolTypeImpl.persistentPool=\\ (persistentPool:
TalendJetEmitter.compileFail=\\ \u7F16\u8BD1\u5931\u8D25\uFF1A{0} : {1}
PoolTypeImpl.persistentPool= (persistentPool:
TalendJetEmitter.compileFail= \u7F16\u8BD1\u5931\u8D25\uFF1A{0} : {1}
TalendJetEmitter.exception=\u5F02\u5E38
JetFilesProviderManager.unableLoad=\u65E0\u6CD5\u52A0\u8F7D {0}JetFilesProviderManager.unableLoad
CodeGeneratorEmittersPoolFactory.dialogContent=\u4E3A\u4E86\u907F\u514D\u4EA7\u751F\u95EE\u9898\uFF0C\u8BF7\u6309Ctrl+Shift+F3\u6765\u518D\u6B21\u751F\u6210\uFF01
CodeGeneratorEmittersPoolFactory.operationCanceled=\u64CD\u4F5C\u5DF2\u53D6\u6D88
JetFilesProviderManager.unableLoad=\u65E0\u6CD5\u52A0\u8F7D {0}
ComponentsFactory.afterSystemComponent=\u5728\u7CFB\u7EDF\u7EC4\u4EF6\u4E4B\u540E
ComponentsFactory.componentNotFound=\u627E\u4E0D\u5230\u7EC4\u4EF6\u6587\u4EF6\u5939:
ComponentsFactory.load.components=\u52A0\u8F7D\u7EC4\u4EF6...
ComponentsFactory.parentNotRecompiled=\u8B66\u544A\uFF1A*.inc.javajet \u7684\u7236\u7EA7\u6CA1\u6709\u91CD\u65B0\u7F16\u8BD1
ComponentsFactory.loadComponents.missingFolder=\u6587\u4EF6\u5939 "{0}" \u7F3A\u5C11\u63D2\u4EF6 "{1}".
ComponentsFactory.init.waitForFinish.timeout=\u65E0\u6CD5\u521D\u59CB\u5316 ComponentsFactory\uFF0C\u8BF7\u91CD\u8BD5\u3002
ComponentsLocalProviderService.componentLoadError=\u7EC4\u4EF6\u52A0\u8F7D\u9519\u8BEF
ComponentsLocalProviderService.talendExchangeError=Talend Exchange \u9519\u8BEF
ComponentsPreferencePage.ButtonLabel0=\u786E\u5B9A
ComponentsPreferencePage.ButtonLabel0=\u786E\u8BA4
ComponentsPreferencePage.componentAssist=\u542F\u7528\u7EC4\u4EF6\u521B\u5EFA\u52A9\u624B
ComponentsPreferencePage.configuration.LINK_STYLE=\u9ED8\u8BA4\u6620\u5C04\u8FDE\u63A5\u663E\u793A\u4E3A:
ComponentsPreferencePage.rowLimit=\u884C\u9650\u5236
ComponentsPreferencePage.WarningMsg=\u60A8\u9700\u8981\u91CD\u65B0\u542F\u52A8Talend Open Studio\u4EE5\u52A0\u8F7D\u989D\u5916\u7684\u7EC4\u4EF6\u3002
ComponentsPreferencePage.WarningTitle=\u8B66\u544A
ComponentsPreferencePage.directoryFieldLabel=\u7528\u6237\u7EC4\u4EF6\u6587\u4EF6\u5939:
ComponentsPreferencePage.notValidDirectory=\u60A8\u7684\u9009\u62E9\u5C06\u5BFC\u81F4\u6587\u4EF6\u5939\u5D4C\u5957\uFF0C\u8FD9\u662F\u4E0D\u63A8\u8350\u7684\u3002 \u4F60\u60F3\u7EE7\u7EED\u5417\uFF1F
ComponentsPreferencePage.installComponentsFailure=\u5B89\u88C5\u7EC4\u4EF6\u5931\u8D25
ComponentsProviderManager.unableLoad=\u65E0\u6CD5\u52A0\u8F7D\u7EC4\u4EF6\u63D0\u4F9B\u7A0B\u5E8F
ComponenttRunJobPreferencePage.label=\u53CC\u51FB tRunJob \u7EC4\u4EF6\u540E\uFF0C\u4E0D\u663E\u793A\u5BF9\u5E94\u7684\u4F5C\u4E1A
ComponentJobletPreferencePage.label=\u53CC\u51FB\u5C0F\u4F5C\u4E1A\u7EC4\u4EF6\u540E\uFF0C\u4E0D\u663E\u793A\u76F8\u5E94\u7684\u4F5C\u4E1A\u3002
ComponentsPreferencePage_SuccessTitle=\u6210\u529F
ComponentsPreferencePage_SuccessMessage1=\u9700\u8981\u91CD\u542FStudio\u6765\u52A0\u8F7D\u7EC4\u4EF6\u3002\u5426\u5219\uFF0C\u4F1A\u5728\u4E0B\u6B21\u542F\u52A8\u65F6\u52A0\u8F7D\u3002
ComponentsPreferencePage_SuccessMessage2=\u60A8\u60F3\u8981\u9A6C\u4E0A\u91CD\u542F\u5417\uFF1F
ComponentsPreferencePage.enableOnLineHelp=\u542F\u7528\u7EC4\u4EF6\u7684\u5728\u7EBF\u5E2E\u52A9
ComponentsPreferencePage.titleInstallHelp=\u5B89\u88C5\u79BB\u7EBF\u5E2E\u52A9\u529F\u80FD\uFF1F
ComponentsPreferencePage.msgInstallHelp=\u8FD9\u4F1A\u6253\u5F00\u5176\u4ED6\u8F6F\u4EF6\u5305\u5BF9\u8BDD\u6846\u4EE5\u5B89\u88C5\u79BB\u7EBF\u5E2E\u52A9\u529F\u80FD\uFF0C\u662F\u5426\u7EE7\u7EED\uFF1F
ComponentsPreferencePage.grpHelp=\u5E2E\u52A9
ComponenttRunJobPreferencePage.showCorrespondingJob=\u53CC\u51FB tRunJob \u7EC4\u4EF6\u540E\u663E\u793A\u5BF9\u5E94\u4F5C\u4E1A
XsdValidationCacheManager.unableLoadxsd=\u65E0\u6CD5\u52A0\u8F7D xsd \u9A8C\u8BC1\u7F13\u5B58\u6587\u4EF6
XsdValidationCacheManager.unableSavexsd=\u65E0\u6CD5\u4FDD\u5B58 xsd \u9A8C\u8BC1\u7F13\u5B58\u6587\u4EF6
@@ -76,6 +90,7 @@ FAMILY.DB_Generic=\u6570\u636E\u5E93\u901A\u7528
FAMILY.DB_JDBC=DB JDBC
FAMILY.DB_SCD=DB SCD
FAMILY.Data_Quality=Data Quality
FAMILY.Data_Privacy=\u6570\u636E\u9690\u79C1
FAMILY.Databases=\u6570\u636E\u5E93
FAMILY.ELT=ELT
FAMILY.ESB=ESB
@@ -84,7 +99,7 @@ FAMILY.eXist=eXist
FAMILY.FTP=FTP
FAMILY.Fields=\u5B57\u6BB5
FAMILY.File=\u6587\u4EF6
FAMILY.FireBird=Firebird
FAMILY.FireBird=FireBird
FAMILY.Greenplum=Greenplum
FAMILY.HSQLDb=HSQLdb
FAMILY.Healthcare=Healthcare
@@ -131,18 +146,3 @@ FAMILY.Teradata=Teradata
FAMILY.Vertica=Vertica
FAMILY.VtigerCRM=VtigerCRM
FAMILY.XML=XML
CodeGeneratorEmittersPoolFactory.updatePaletteForEditors=\u66F4\u65B0\u7F16\u8F91\u5668\u7684\u8C03\u8272\u677F
ComponentsPreferencePage.componentAssist=\u542F\u7528\u7EC4\u4EF6\u521B\u5EFA\u52A9\u624B
ComponentsPreferencePage.notValidDirectory=\u60A8\u7684\u9009\u62E9\u5C06\u5BFC\u81F4\u6587\u4EF6\u5939\u5D4C\u5957\uFF0C\u8FD9\u662F\u4E0D\u63A8\u8350\u7684\u3002 \u4F60\u60F3\u7EE7\u7EED\u5417\uFF1F
ComponentsFactory.loadComponents.missingFolder=\u6587\u4EF6\u5939 \"{0}\" \u7F3A\u5C11\u63D2\u4EF6 \"{1}\".
ComponentsPreferencePage_SuccessTitle=\u6210\u529F
ComponentsPreferencePage_SuccessMessage1=\u9700\u8981\u91CD\u542FStudio\u6765\u52A0\u8F7D\u7EC4\u4EF6\u3002\u5426\u5219\uFF0C\u4F1A\u5728\u4E0B\u6B21\u542F\u52A8\u65F6\u52A0\u8F7D\u3002
ComponentsPreferencePage_SuccessMessage2=\u60A8\u60F3\u8981\u9A6C\u4E0A\u91CD\u542F\u5417\uFF1F
ComponentsPreferencePage.installComponentsFailure=\u5B89\u88C5\u7EC4\u4EF6\u5931\u8D25
generatedcode.copyright.body1=\u6B64\u6E90\u4EE3\u7801\u5DF2\u7531 {0} \u81EA\u52A8\u751F\u6210
ComponentsFactory.init.waitForFinish.timeout=\u65E0\u6CD5\u521D\u59CB\u5316 ComponentsFactory\uFF0C\u8BF7\u91CD\u8BD5\u3002
FAMILY.Data_Privacy=\u6570\u636E\u9690\u79C1
ComponentsPreferencePage.enableOnLineHelp=\u542F\u7528\u7EC4\u4EF6\u7684\u5728\u7EBF\u5E2E\u52A9
ComponentsPreferencePage.titleInstallHelp=\u5B89\u88C5\u79BB\u7EBF\u5E2E\u52A9\u529F\u80FD\uFF1F
ComponentsPreferencePage.msgInstallHelp=\u8FD9\u4F1A\u6253\u5F00\u5176\u4ED6\u8F6F\u4EF6\u5305\u5BF9\u8BDD\u6846\u4EE5\u5B89\u88C5\u79BB\u7EBF\u5E2E\u52A9\u529F\u80FD\uFF0C\u662F\u5426\u7EE7\u7EED\uFF1F
ComponentsPreferencePage.grpHelp=\u5E2E\u52A9

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
Exchange=Exchange
DownloadComponenentsAction.Label=T\u00E9l\u00E9charger les composants s\u00E9lectionn\u00E9s
RefreshComponenentsAction.Label=Rafra\u00EEchir la liste des composants
RefreshComponenentsAction.Label=Actualiser la liste des composants
providerName=www.example.org
pluginName=Mod\u00E8le Exchange

View File

@@ -2,31 +2,35 @@ ExchangeView.Exchange=Exchange
AvailableExtensionsComposite.ExtensionName=Nom de l'extension
AvailableExtensionsComposite.Version=Version
AvailableExtensionsComposite.Rating=Note
AvailableExtensionsComposite.Author=Auteur
AvailableExtensionsComposite.Author=Cr\u00E9\u00E9 par :
AvailableExtensionsComposite.FilterTitle=Filtre
AvailableExtensionsComposite.ViewDetail.installOperateStatus=Installer
AvailableExtensionsComposite.ViewDetail.WriteReview=Donnez votre avis
AvailableExtensionsComposite.ViewDetail.InsertionReviewFailureTip=Veuillez v\u00E9rifier.
AvailableExtensionsComposite.ViewDetail.InsertionReviewFailure=\u00C9chec d'insertion de la revue.
AvailableExtensionsComposite.ViewDetail.InsertionReviewFailureTip=V\u00E9rifiez.
DownloadedExtensionsComposite.ExtensionName=Nom de l'extension
DownloadedExtensionsComposite.DownloadedVersion=Version t\u00E9l\u00E9charg\u00E9e
DownloadedExtensionsComposite.DownloadDate=Date de t\u00E9l\u00E9chargement
DownloadedExtensionsComposite.OperateStatus=Statut de l'op\u00E9ration
DownloadedExtensionsComposite.installOperateStatus=Installer
DownloadedExtensionsComposite.installedOperateStatus=Install\u00E9
DownloadedExtensionsComposite.updateOperateStatus=UPDATE
DownloadedExtensionsComposite.updateOperateStatus=Update
MyExtensionsComposite.ExtensionName=Nom de l'extension
MyExtensionsComposite.Version=Version
MyExtensionsComposite.UploadDate=Date du chargement
MyExtensionsComposite.AddNewExtensionTitle=Ajouter une nouvelle extension
MyExtensionsComposite.UploadDate=Date de chargement
MyExtensionsComposite.AddNewExtensionTitle=Ajouter une extension
MyExtensionsComposite.UpLoadNewVersionOperateStatus=Charger une nouvelle version
MyExtensionsComposite.UpdateOperateStatus=UPDATE
MyExtensionsComposite.UpdateOperateStatus=Update
MyExtensionsComposite.ModifyOperateStatus=Modifier
MyExtensionsComposite.DeleteOperateStatus=DELETE
MyExtensionsComposite.DeleteOperateStatus=Supprimer
MyExtensionsComposite.Form.Return=Retourner
MyExtensionsComposite.Form.ExtensionTitle=Titre de l'extension
MyExtensionsComposite.Form.InitialVersion=Version initiale
MyExtensionsComposite.Form.Compatibility=Compatibilit\u00E9
MyExtensionsComposite.Form.Compatibility.AllVersions=Toutes les versions
MyExtensionsComposite.Form.Compatibility.Version=Version
MyExtensionsComposite.Form.Compatibility.AndOlder=et plus ancien
MyExtensionsComposite.Form.Compatibility.AndNewer=et plus r\u00E9cent
MyExtensionsComposite.Form.Compatibility.AllVersionsExcept=Toutes les versions sauf :
MyExtensionsComposite.Form.Compatibility.OnlyTheseVersions=Uniquement ces versions :
MyExtensionsComposite.Form.Description=Description
@@ -38,55 +42,60 @@ MyExtensionsComposite.Form.Upload.SelectAnItem=S\u00E9lectionnez un \u00E9l\u00E
MyExtensionsComposite.Form.Upload.File=Fichier :
MyExtensionsComposite.Form.Upload.Browse=Parcourir...
MyExtensionsComposite.Form.Upload.Browse.SelectFile=S\u00E9lectionnez un fichier de l'extension \u00E0 charger
MyExtensionsComposite.Form.DeleteExtensionTile=Supprimer cette extension
MyExtensionsComposite.Form.DeleteExtensionMessage=Voulez-vous vraiment supprimer cette extension ?
MyExtensionsComposite.Form.DeleteExtensionTile=Supprimer l'extension
MyExtensionsComposite.Form.DeleteExtensionMessage=Voulez-vous vraiment supprimer cette extension\u00A0?
MyExtensionsComposite.Form.UploadExtension=Charger l'extension
MyExtensionsComposite.Form.UpdateExtension=Mettre \u00E0 jour l'extension
MyExtensionsComposite.Form.ModifyExtension=Modifier l'extension
Exchange.logon.error=L'utilisateur d'Exchange n'est pas enregistr\u00E9. Enregistrez-vous via les Pr\u00E9f\u00E9rences.
RefreshJob.FindExtensions.Title=Recherche d'extensions disponibles
RefreshJob.FindExtensions.Message=Recherche d'extensions depuis Exchange...
ShowContributedExtensionsJob.ShowContributedExtensions.Title=Recherche des extensions communautaires
ShowContributedExtensionsJob.ShowContributedExtensions.Message=Recherche d'extensions communautaires depuis Exchange...
ShowInstalledExtensionsJob.ShowInstalledExtensions.Title=Recherche d'extensions install\u00E9es
ShowInstalledExtensionsJob.ShowInstalledExtensions.Message=Recherche d'extensions install\u00E9es depuis Exchange...
DeleteExtensionJob.DeleteExtensionJob.Title=Supprimer une extension...
DeleteExtensionJob.DeleteExtensionJob.Message=Supprimer une extension...
DeleteExtensionJob.DeleteFailure=Echec de la connexion.
DeleteExtensionJob.DeleteFailureTip=Veuillez v\u00E9rifier.
DeleteExtensionJob.DeleteFailure=\u00C9chec de la suppression.
DeleteExtensionJob.DeleteFailureTip=V\u00E9rifiez.
ModifyExtensionJob.Title=Modifier une extension...
ModifyExtensionJob.Message=Modifier une extension...
ModifyExtensionJob.ModifyFailure=Echec de la modification
ModifyExtensionJob.ModifyFailure=\u00C9chec de la modification
ModifyExtensionJob.ModifyFailureTip=V\u00E9rifiez.
InstalledExtensionJob.Title=Installation de l'extension...
InsertionExtensionAction.InstalledFailure=Echec de l'installation
InsertionExtensionAction.InstalledFailureTip=Vous devez le v\u00E9rifier.
InstalledExtensionJob.Message=Installation de l'extension...
InsertionExtensionAction.InstalledFailure=\u00C9chec de l'installation
InsertionExtensionAction.InstalledFailureTip=V\u00E9rifiez.
UploadRevisionJob.Title=Chargement de la r\u00E9vision...
UploadRevisionJob.Message=Charger une r\u00E9vision...
UploadRevisionAction.InstalledFailure=Echec du chargement de la r\u00E9vision.
UploadRevisionAction.InstalledFailureTip=Vous devez le v\u00E9rifier.
UploadRevisionJob.Message=Chargement de la r\u00E9vision...
UploadRevisionAction.InstalledFailure=\u00C9chec du chargement de la r\u00E9vision.
UploadRevisionAction.InstalledFailureTip=V\u00E9rifiez.
DownloadComponenentsAction_restartMessage=Installation du nouveau composant r\u00E9ussie, mais un red\u00E9marrage est requis pour le charger. Red\u00E9marrer ?
DownloadComponenentsAction_restartTitle=Red\u00E9marrage requis
DownloadComponenentsAction_failureTitle=\u00C9chec
DownloadComponenentsAction_failureMessage=\u00C9chec de l'installation du composant {0}, v\u00E9rifiez s'il est valide.
DownloadComponenentsAction.installExchange=Installer les composants Exchange
DownloadComponenentsAction.DownloadTaskTitle=T\u00E9l\u00E9chargement des fichiers depuis Exchange
DownloadComponenentsAction.DownloadTaskName=T\u00E9l\u00E9chargement du fichier depuis l'URL :
DownloadComponenentsAction.ReloadPalette=Recharger la palette...
DownloadComponenentsAction.DownloadFailure=Echec du t\u00E9l\u00E9chargement
DownloadComponenentsAction.ReloadPalette=Actualisation de la Palette...
DownloadComponenentsAction.DownloadFailure=\u00C9chec du t\u00E9l\u00E9chargement
DownloadComponenentsAction.DownloadFailureTip=Vous devez modifier les param\u00E8tres de t\u00E9l\u00E9chargement.
DownloadComponenentsAction.installComponentsTitle=Installer les composants
ExchangeWebService.insertionExtensionSuccessful=Insertion de l'extension r\u00E9ussie.
ExchangeWebService.downloadingExtensionSuccessful=T\u00E9l\u00E9chargement de l'extension r\u00E9ussi.
ExchangeWebService.deleteExtensionSuccessful=Suppression de l'extension r\u00E9ussie.
ExchangeWebService.insertReviewSuccessful=Insertion de la r\u00E9vision r\u00E9ussie.
ExchangeWebService.updateRevisionSuccessful=Mise \u00E0 jour de la r\u00E9vision r\u00E9ussie.
ExchangeWebService.insertionRevisionSuccessful=Insertion de la r\u00E9vision r\u00E9ussie.
ImportExchangeDialog.dialogTitle=S\u00E9lectionnez un \u00E9l\u00E9ment de Talend Exchange
ImportExchangeDialog.WARNING=Avertissement
ImportExchangeDialog.WARNING=AVERTISSEMENT
ImportExchangeDialog.NOTSELECTWARNING=S\u00E9lectionnez un \u00E9l\u00E9ment dans la table.
ImportExchangeDialog.downloadProgressBar=T\u00E9l\u00E9chargement d'\u00E9l\u00E9ment(s), veuillez patienter.
ImportExchangeDialog.EXTENSION_NAME=Nom de l'extension
ImportExchangeDialog.AUTHOR_NAME=Nom de l'auteur
ImportExchangeDialog.LATEST_REVISION=Derni\u00E8re r\u00E9vision
ImportExchangeDialog.EXTENSION_DESCRIPTION=Description de l'extension
ImportExchangeDialog.REFRESH_BUTTON=Rafra\u00EEchir
ImportExchangeDialog.REFRESHING_PROGRESSBAR=Rafra\u00EEchissement, veuillez patienter..
ImportExchangeDialog.download.extensions=T\u00E9l\u00E9chargement des extensions ! Patientez.
ImportExchangeDialog.REFRESH_BUTTON=Actualiser
ImportExchangeDialog.REFRESHING_PROGRESSBAR=Actualisation, veuillez patienter...
ImportExchangeDialog.OPERATION_CANCELLED=L'op\u00E9ration a \u00E9t\u00E9 annul\u00E9e
Exchange.logon.error=L'utilisateur de l'Exchange n'est pas enregistr\u00E9. Enregistrez-vous via les Pr\u00E9f\u00E9rences.
DownloadComponenentsAction_restartMessage=Installation du nouveau composant r\u00E9ussie, mais un red\u00E9marrage est requis pour le charger. Red\u00E9marrer ?
DownloadComponenentsAction_restartTitle=Red\u00E9marrage requis
DownloadComponenentsAction_failureTitle=\u00C9chec
DownloadComponenentsAction_failureMessage=\u00C9chec de l'installation du composant {0}, v\u00E9rifiez s'il est valide.
DownloadComponenentsAction.installComponentsTitle=Installer les composants

View File

@@ -13,7 +13,7 @@ DownloadedExtensionsComposite.DownloadedVersion=\u30C0\u30A6\u30F3\u30ED\u30FC\u
DownloadedExtensionsComposite.DownloadDate=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u65E5\u4ED8
DownloadedExtensionsComposite.OperateStatus=\u30B9\u30C6\u30FC\u30BF\u30B9\u64CD\u4F5C
DownloadedExtensionsComposite.installOperateStatus=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB
DownloadedExtensionsComposite.installedOperateStatus=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08
DownloadedExtensionsComposite.installedOperateStatus=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F
DownloadedExtensionsComposite.updateOperateStatus=\u66F4\u65B0
MyExtensionsComposite.ExtensionName=Extension\u540D
MyExtensionsComposite.Version=\u30D0\u30FC\u30B8\u30E7\u30F3
@@ -26,12 +26,12 @@ MyExtensionsComposite.DeleteOperateStatus=\u524A\u9664
MyExtensionsComposite.Form.Return=\u623B\u308A\u5024
MyExtensionsComposite.Form.ExtensionTitle=Extension\u30BF\u30A4\u30C8\u30EB
MyExtensionsComposite.Form.InitialVersion=\u521D\u671F\u30D0\u30FC\u30B8\u30E7\u30F3
MyExtensionsComposite.Form.Compatibility=\u9069\u5408\u6027
MyExtensionsComposite.Form.Compatibility.AllVersions=\u5168\u3066\u306E\u30D0\u30FC\u30B8\u30E7\u30F3
MyExtensionsComposite.Form.Compatibility=\u4E92\u63DB\u6027
MyExtensionsComposite.Form.Compatibility.AllVersions=\u3059\u3079\u3066\u306E\u30D0\u30FC\u30B8\u30E7\u30F3
MyExtensionsComposite.Form.Compatibility.Version=\u30D0\u30FC\u30B8\u30E7\u30F3
MyExtensionsComposite.Form.Compatibility.AndOlder=\u3088\u308A\u53E4\u3044
MyExtensionsComposite.Form.Compatibility.AndNewer=\u3088\u308A\u65B0\u3057\u3044
MyExtensionsComposite.Form.Compatibility.AllVersionsExcept=\u5168\u3066\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u4EE5\u5916
MyExtensionsComposite.Form.Compatibility.AllVersionsExcept=\u3059\u3079\u3066\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u4EE5\u5916
MyExtensionsComposite.Form.Compatibility.OnlyTheseVersions=\u3053\u308C\u3089\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3060\u3051:
MyExtensionsComposite.Form.Description=\u8AAC\u660E
MyExtensionsComposite.Form.Visibility=\u53EF\u8996\u6027
@@ -43,10 +43,11 @@ MyExtensionsComposite.Form.Upload.File=\u30D5\u30A1\u30A4\u30EB:
MyExtensionsComposite.Form.Upload.Browse=\u53C2\u7167...
MyExtensionsComposite.Form.Upload.Browse.SelectFile=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308Bextension\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E
MyExtensionsComposite.Form.DeleteExtensionTile=Extension\u524A\u9664
MyExtensionsComposite.Form.DeleteExtensionMessage=\u3053\u306EExtension\u3092\u524A\u9664\u3057\u3066\u3082\u3044\u3044\u3067\u3059\u304B\uFF1F
MyExtensionsComposite.Form.DeleteExtensionMessage=\u3053\u306E\u62E1\u5F35\u5B50\u3092\u524A\u9664\u3057\u307E\u3059\u304B?
MyExtensionsComposite.Form.UploadExtension=Extension\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9
MyExtensionsComposite.Form.UpdateExtension=Extension\u66F4\u65B0
MyExtensionsComposite.Form.ModifyExtension=Extension\u4FEE\u6B63
Exchange.logon.error=Exchange\u30E6\u30FC\u30B6\u30FC\u304C\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u521D\u671F\u8A2D\u5B9A\u3092\u4F7F\u7528\u3057\u3066\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\u3002
RefreshJob.FindExtensions.Title=\u53D6\u5F97\u53EF\u80FD\u306Aextensions
RefreshJob.FindExtensions.Message=Exchange\u304B\u3089\u62E1\u5F35\u6A5F\u80FD\u3092\u691C\u7D22...
ShowContributedExtensionsJob.ShowContributedExtensions.Title=extensions\u3092\u53D6\u5F97
@@ -69,12 +70,17 @@ UploadRevisionJob.Title=\u30EA\u30D3\u30B8\u30E7\u30F3\u3092\u30A2\u30C3\u30D7\u
UploadRevisionJob.Message=\u30EA\u30D3\u30B8\u30E7\u30F3\u3092\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9
UploadRevisionAction.InstalledFailure=\u30EA\u30D3\u30B8\u30E7\u30F3\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306B\u5931\u6557\u3002
UploadRevisionAction.InstalledFailureTip=\u30C1\u30A7\u30C3\u30AF\u3092\u3057\u3066\u304F\u3060\u3055\u3044\u3002
DownloadComponenentsAction_restartMessage=\u65B0\u898F\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u304C\u6210\u529F\u3057\u307E\u3057\u305F\u3002Studio\u306E\u518D\u8D77\u52D5\u304C\u5FC5\u8981\u3067\u3059\u3002\u518D\u8D77\u52D5\u3057\u307E\u3059\u304B?
DownloadComponenentsAction_restartTitle=\u518D\u8D77\u52D5\u8981
DownloadComponenentsAction_failureTitle=\u5931\u6557
DownloadComponenentsAction_failureMessage=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8{0}\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u304C\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u304C\u59A5\u5F53\u304B\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044\u3002
DownloadComponenentsAction.installExchange=Exchange\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB
DownloadComponenentsAction.DownloadTaskTitle=Exchange\u304B\u3089\u30D5\u30A1\u30A4\u30EB\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9
DownloadComponenentsAction.DownloadTaskName=URL\u304B\u3089\u30D5\u30A1\u30A4\u30EB\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9:
DownloadComponenentsAction.DownloadTaskName=\u30D5\u30A1\u30A4\u30EB\u306E\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u4E2D URL \\:
DownloadComponenentsAction.ReloadPalette=\u30D1\u30EC\u30C3\u30C8\u306E\u66F4\u65B0...
DownloadComponenentsAction.DownloadFailure=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u5931\u6557\u3002
DownloadComponenentsAction.DownloadFailureTip=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u8A2D\u5B9A\u3092\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002
DownloadComponenentsAction.installComponentsTitle=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB
ExchangeWebService.insertionExtensionSuccessful=Extension\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u304C\u6210\u529F\u3057\u307E\u3057\u305F
ExchangeWebService.downloadingExtensionSuccessful=Extension\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u6210\u529F\u3002
ExchangeWebService.deleteExtensionSuccessful=Extension\u524A\u9664\u6210\u529F\u3002
@@ -83,19 +89,13 @@ ExchangeWebService.updateRevisionSuccessful=\u30EA\u30D3\u30B8\u30E7\u30F3\u66F4
ExchangeWebService.insertionRevisionSuccessful=\u30EA\u30D3\u30B8\u30E7\u30F3\u633F\u5165\u6210\u529F\u3002
ImportExchangeDialog.dialogTitle=Talend Exchange \u304B\u3089\u9805\u76EE\u306E\u9078\u629E
ImportExchangeDialog.WARNING=\u8B66\u544A
ImportExchangeDialog.NOTSELECTWARNING=\u30C6\u30FC\u30D6\u30EB\u304B\u3089\u30A2\u30A4\u30C6\u30E0\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044\u3002
ImportExchangeDialog.downloadProgressBar=\u30A2\u30A4\u30C6\u30E0\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u4E2D\u3067\u3059...
ImportExchangeDialog.NOTSELECTWARNING=\u30C6\u30FC\u30D6\u30EB\u304B\u3089\u30A2\u30A4\u30C6\u30E0\u3092\uFF11\u3064\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044...
ImportExchangeDialog.downloadProgressBar=\u30A2\u30A4\u30C6\u30E0\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u4E2D\u3067\u3059\u3002\u66AB\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044!
ImportExchangeDialog.EXTENSION_NAME=Extension\u540D
ImportExchangeDialog.AUTHOR_NAME=\u4F5C\u6210\u8005\u540D
ImportExchangeDialog.LATEST_REVISION=\u6700\u65B0\u30EA\u30D3\u30B8\u30E7\u30F3
ImportExchangeDialog.EXTENSION_DESCRIPTION=\u62E1\u5F35\u306E\u8AAC\u660E
ImportExchangeDialog.download.extensions=\u62E1\u5F35\u6A5F\u80FD\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u4E2D\u3067\u3059\u3002\u66AB\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\u3002
ImportExchangeDialog.REFRESH_BUTTON=\u66F4\u65B0
ImportExchangeDialog.REFRESHING_PROGRESSBAR=\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5\u4E2D\u3067\u3059...
ImportExchangeDialog.OPERATION_CANCELLED=\u64CD\u4F5C\u3092\u30AD\u30E3\u30F3\u30BB\u30EB
Exchange.logon.error=Exchange\u30E6\u30FC\u30B6\u304C\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u521D\u671F\u8A2D\u5B9A\u3092\u4F7F\u7528\u3057\u3066\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\u3002
ImportExchangeDialog.download.extensions=\u62E1\u5F35\u6A5F\u80FD\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u4E2D\u3067\u3059\u3001\u66AB\u304F\u304A\u5F85\u3061\u4E0B\u3055\u3044\u3002
DownloadComponenentsAction_restartMessage=\u65B0\u898F\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u304C\u6210\u529F\u3057\u307E\u3057\u305F\u3002Studio\u306E\u518D\u8D77\u52D5\u304C\u5FC5\u8981\u3067\u3059\u3002\u518D\u8D77\u52D5\u3057\u307E\u3059\u304B?
DownloadComponenentsAction_restartTitle=\u518D\u8D77\u52D5\u8981
DownloadComponenentsAction_failureTitle=\u5931\u6557
DownloadComponenentsAction_failureMessage=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8{0}\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u304C\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u304C\u59A5\u5F53\u304B\u78BA\u8A8D\u3057\u3066\u4E0B\u3055\u3044\u3002
DownloadComponenentsAction.installComponentsTitle=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB
ImportExchangeDialog.REFRESHING_PROGRESSBAR=\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5\u4E2D\u3067\u3059\u3002\u66AB\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\u3002
ImportExchangeDialog.OPERATION_CANCELLED=\u64CD\u4F5C\u306F\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F

View File

@@ -47,6 +47,7 @@ MyExtensionsComposite.Form.DeleteExtensionMessage=\u786E\u5B9E\u8981\u5220\u9664
MyExtensionsComposite.Form.UploadExtension=\u4E0A\u4F20\u6269\u5C55
MyExtensionsComposite.Form.UpdateExtension=\u66F4\u65B0\u6269\u5C55
MyExtensionsComposite.Form.ModifyExtension=\u4FEE\u6539\u6269\u5C55
Exchange.logon.error=\u4EA4\u6362\u7528\u6237\u5C1A\u672A\u6CE8\u518C\uFF0C\u8BF7\u4F7F\u7528\u9996\u9009\u9879\u6CE8\u518C\u3002
RefreshJob.FindExtensions.Title=\u6B63\u5728\u67E5\u627E\u53EF\u7528\u6269\u5C55
RefreshJob.FindExtensions.Message=\u6B63\u5728\u4ECEExchange\u67E5\u627E\u6269\u5C55...
ShowContributedExtensionsJob.ShowContributedExtensions.Title=\u5BFB\u627E\u5DF2\u5206\u914D\u63D2\u4EF6
@@ -69,12 +70,17 @@ UploadRevisionJob.Title=\u4E0A\u4F20\u4FEE\u8BA2...
UploadRevisionJob.Message=\u4E0A\u4F20\u4FEE\u8BA2...
UploadRevisionAction.InstalledFailure=\u4E0A\u4F20\u4FEE\u6539\u5931\u8D25\u3002
UploadRevisionAction.InstalledFailureTip=\u60A8\u5E94\u8BE5\u68C0\u67E5\u5B83\u3002
DownloadComponenentsAction_restartMessage=\u6210\u529F\u5B89\u88C5\u65B0\u7EC4\u4EF6\uFF0C\u9700\u8981\u91CD\u542Fstudio\u6765\u52A0\u8F7D\uFF0C\u73B0\u5728\u91CD\u542F\u5417\uFF1F
DownloadComponenentsAction_restartTitle=\u9700\u7528\u91CD\u542F
DownloadComponenentsAction_failureTitle=\u5931\u8D25
DownloadComponenentsAction_failureMessage=\u5B89\u88C5\u7EC4\u4EF6{0}\u5931\u8D25\uFF0C\u9700\u8981\u68C0\u67E5\u7EC4\u4EF6\u662F\u5426\u6709\u6548\u3002
DownloadComponenentsAction.installExchange=\u5B89\u88C5\u6765\u81EA Exchange \u4EA4\u6D41\u4E2D\u5FC3\u7684\u7EC4\u4EF6
DownloadComponenentsAction.DownloadTaskTitle=\u4ECEExchange\u4E0B\u8F7D\u6587\u4EF6
DownloadComponenentsAction.DownloadTaskName=\u4ECE\u4EE5\u4E0B url \u4E0B\u8F7D\u6587\u4EF6:
DownloadComponenentsAction.ReloadPalette=\u91CD\u65B0\u8F7D\u5165\u8C03\u8272\u677F...
DownloadComponenentsAction.DownloadFailure=\u4E0B\u8F7D\u5931\u8D25\u3002
DownloadComponenentsAction.DownloadFailureTip=\u5FC5\u987B\u4FEE\u6539\u4E0B\u8F7D\u8BBE\u7F6E\u3002
DownloadComponenentsAction.installComponentsTitle=\u5B89\u88C5\u7EC4\u4EF6
ExchangeWebService.insertionExtensionSuccessful=\u6269\u5C55\u63D2\u4EF6\u5DF2\u63D2\u5165\u6210\u529F
ExchangeWebService.downloadingExtensionSuccessful=\u6269\u5C55\u63D2\u4EF6\u5DF2\u4E0B\u8F7D\u6210\u529F
ExchangeWebService.deleteExtensionSuccessful=\u6269\u5C55\u63D2\u4EF6\u5DF2\u5220\u9664\u6210\u529F\u3002
@@ -89,13 +95,7 @@ ImportExchangeDialog.EXTENSION_NAME=\u6269\u5C55\u540D
ImportExchangeDialog.AUTHOR_NAME=\u4F5C\u8005\u540D\u79F0
ImportExchangeDialog.LATEST_REVISION=\u6700\u65B0\u7248\u672C
ImportExchangeDialog.EXTENSION_DESCRIPTION=\u6269\u5C55\u63CF\u8FF0
ImportExchangeDialog.download.extensions=\u4E0B\u8F7D\u6269\u5C55\uFF01\u8BF7\u7A0D\u5019\uFF01
ImportExchangeDialog.REFRESH_BUTTON=\u5237\u65B0
ImportExchangeDialog.REFRESHING_PROGRESSBAR=\u6B63\u5728\u5237\u65B0\uFF0C\u8BF7\u7A0D\u5019......
ImportExchangeDialog.OPERATION_CANCELLED=\u64CD\u4F5C\u5DF2\u53D6\u6D88
Exchange.logon.error=\u4EA4\u6362\u7528\u6237\u5C1A\u672A\u6CE8\u518C\uFF0C\u8BF7\u4F7F\u7528\u9996\u9009\u9879\u6CE8\u518C\u3002
ImportExchangeDialog.download.extensions=\u4E0B\u8F7D\u6269\u5C55\uFF01\u8BF7\u7A0D\u5019\uFF01
DownloadComponenentsAction_restartMessage=\u6210\u529F\u5B89\u88C5\u65B0\u7EC4\u4EF6\uFF0C\u9700\u8981\u91CD\u542Fstudio\u6765\u52A0\u8F7D\uFF0C\u73B0\u5728\u91CD\u542F\u5417\uFF1F
DownloadComponenentsAction_restartTitle=\u9700\u7528\u91CD\u542F
DownloadComponenentsAction_failureTitle=\u5931\u8D25
DownloadComponenentsAction_failureMessage=\u5B89\u88C5\u7EC4\u4EF6{0}\u5931\u8D25\uFF0C\u9700\u8981\u68C0\u67E5\u7EC4\u4EF6\u662F\u5426\u6709\u6548\u3002
DownloadComponenentsAction.installComponentsTitle=\u5B89\u88C5\u7EC4\u4EF6

View File

@@ -1,203 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -6,7 +6,16 @@
<groupId>org.talend.components.lib</groupId>
<artifactId>azure-utils</artifactId>
<version>1.0.2</version>
<version>1.0.3</version>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://github.com/Talend/tdi-studio-se/blob/master/main/plugins/org.talend.designer.components.libs/libs_src/azure-utils/LICENSE</url>
<distribution>may be downloaded from the Maven repository</distribution>
</license>
</licenses>
<build>
<plugins>
<plugin>

View File

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

View File

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

View File

@@ -69,13 +69,13 @@
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.12.1</version>
<version>2.13.2</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.12.1</version>
<version>2.13.2</version>
<optional>true</optional>
</dependency>
</dependencies>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -5,7 +5,7 @@
<groupId>org.talend.components</groupId>
<artifactId>talend-parquet</artifactId>
<version>1.2</version>
<version>1.3</version>
<properties>
<parquet.version>1.10.1</parquet.version>

View File

@@ -3,6 +3,7 @@ package org.talend.parquet.utils;
import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;
import java.util.concurrent.TimeUnit;
@@ -11,7 +12,7 @@ import org.talend.parquet.data.simple.NanoTime;
import jodd.time.JulianDate;
public class NanoTimeUtils {
/**
* Number of days between Julian day epoch (January 1, 4713 BC) and Unix day
* epoch (January 1, 1970). The value of this constant is {@value}.
@@ -50,6 +51,31 @@ public class NanoTimeUtils {
return calendar;
}
/**
* Converts a timestamp to NanoTime.
*/
public static NanoTime getNanoTime(Timestamp ts, boolean skipConversion) {
Calendar calendar = getCalendar(skipConversion);
calendar.setTimeInMillis(ts.getTime());
int year = calendar.get(Calendar.YEAR);
if (calendar.get(Calendar.ERA) == GregorianCalendar.BC) {
year = 1 - year;
}
JulianDate jDateTime;
jDateTime = JulianDate.of(year, calendar.get(Calendar.MONTH) + 1, // java calendar index starting at 1.
calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0, 0);
int days = jDateTime.getJulianDayNumber();
long hour = calendar.get(Calendar.HOUR_OF_DAY);
long minute = calendar.get(Calendar.MINUTE);
long second = calendar.get(Calendar.SECOND);
long nanos = ts.getNanos();
long nanosOfDay = nanos + NANOS_PER_SECOND * second + NANOS_PER_MINUTE * minute + NANOS_PER_HOUR * hour;
return new NanoTime(days, nanosOfDay);
}
public static Timestamp getTimestamp(NanoTime nt, boolean skipConversion) {
int julianDay = nt.getJulianDay();
long nanosOfDay = nt.getTimeOfDayNanos();
@@ -83,7 +109,7 @@ public class NanoTimeUtils {
ts.setNanos((int) nanos);
return ts;
}
/**
* Returns timestamp millis from NanoTime type value.
*
@@ -96,4 +122,10 @@ public class NanoTimeUtils {
return (julianDay - JULIAN_EPOCH_OFFSET_DAYS) * MILLIS_IN_DAY + (timeOfDayNanos / NANOS_PER_MILLISECOND);
}
public static Timestamp getTimestamp(NanoTime nt) {
Timestamp ts = new Timestamp(getTimestampMillis(nt));
ts.setNanos((int) (nt.getTimeOfDayNanos() % 1000000000));
return ts;
}
}

View File

@@ -1,6 +1,8 @@
org.talend.ws.exception.IllegalPropertyAccessException=Impossible d'acc\u00e9der \u00e0 la propri\u00e9t\u00e9 {0} qui est inaccessible pour le type {1}
org.talend.ws.exception.NoSuchPropertyException=La propri\u00e9t\u00e9 {0} n'existe pas pour le type {1}
org.talend.ws.exception.Instantiation=Impossible d'instancier la classe de type {0}
org.talend.ws.exception.illegalAccessValueOf=Impossible d'appeler une m\u00e9thode valueOf pour le type enum {0}
org.talend.ws.exception.Unknown=Une exception inconnue a \u00e9t\u00e9 rencontr\u00e9e
org.talend.ws.exception.IllegalPropertyAccessException=Impossible d'acc\u00E9der \u00E0 la propri\u00E9t\u00E9 {0} qui est inaccessible pour le type {1}
org.talend.ws.exception.NoSuchPropertyException=La propri\u00E9t\u00E9 {0} n'existe pas pour le type {1}
org.talend.ws.exception.Instantiation=Impossible d'instancier le type de classe {0}
org.talend.ws.exception.InvocationTargetPropertyAccessor=Un accesseur de propri\u00E9t\u00E9 a retourner une exception : propri\u00E9t\u00E9 {0} de classe {1}
org.talend.ws.exception.illegalAccessValueOf=Impossible d'appeler une m\u00E9thode valueOf pour le type enum {0}
org.talend.ws.exception.Unknown=Une exception inconnue a \u00E9t\u00E9 d\u00E9clench\u00E9e
org.talend.ws.exception.InvalidEnumValueException=La valeur {0} n'est pas valide pour enum {1}
org.talend.ws.exception.InvalidParameterAnyType=Vous devez sp\u00E9cifier une Map comme celle-ci pour anyTypes : {anyType: value, anyType_type: qname} pour les anyType

View File

@@ -1,8 +1,8 @@
org.talend.ws.exception.IllegalPropertyAccessException=\u30BF\u30A4\u30D7{1}\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u306A\u3044\u30D7\u30ED\u30D1\u30C6\u30A3{0}\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
org.talend.ws.exception.IllegalPropertyAccessException={0} \u30D7\u30ED\u30D1\u30C6\u30A3\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093\u3002\u3053\u308C\u306F {1} \u578B\u306E\u305F\u3081\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093\u3002
org.talend.ws.exception.NoSuchPropertyException=\u30BF\u30A4\u30D7{1}\u306E\u30D7\u30ED\u30D1\u30C6\u30A3{0}\u306F\u5B58\u5728\u3057\u307E\u305B\u3093
org.talend.ws.exception.Instantiation=\u30BF\u30A4\u30D7{0}\u306E\u30AF\u30E9\u30B9\u3092\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u5316\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
org.talend.ws.exception.InvocationTargetPropertyAccessor=\u30D7\u30ED\u30D1\u30C6\u30A3\u30A2\u30AF\u30BB\u30C3\u30B5\u306F\u4F8B\u5916\u3092\u767A\u751F\u3055\u305B\u307E\u3057\u305F: \u30AF\u30E9\u30B9{1}\u306E\u30D7\u30ED\u30D1\u30C6\u30A3{0}
org.talend.ws.exception.illegalAccessValueOf=enum\u578B{0}\u306E\u30E1\u30BD\u30C3\u30C9valueOf\u3092\u547C\u3073\u51FA\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093
org.talend.ws.exception.Unknown=\u4E0D\u660E\u306A\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F
org.talend.ws.exception.InvalidEnumValueException=\u5024{0}\u306F\u5217\u6319\u578B{1}\u3068\u3057\u3066\u6709\u52B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093
org.talend.ws.exception.InvalidParameterAnyType=\u3053\u306E\u3088\u3046\u306AanyTypes\u306E\u30DE\u30C3\u30D7\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059: {anyType: value, anyType_type: qname}
org.talend.ws.exception.Instantiation={0} \u578B\u306E\u30AF\u30E9\u30B9\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3002
org.talend.ws.exception.InvocationTargetPropertyAccessor=\u30D7\u30ED\u30D1\u30C6\u30A3\u30A2\u30AF\u30BB\u30B9\u306B\u3088\u308A\u3001\u4F8B\u5916\u304C\u30B9\u30ED\u30FC\u3055\u308C\u307E\u3057\u305F\uFF1A\u30AF\u30E9\u30B9 {1} \u306E\u30D7\u30ED\u30D1\u30C6\u30A3 {0}
org.talend.ws.exception.illegalAccessValueOf=\u5217\u6319\u578B {0} \u306EvalueOf\u30E1\u30BD\u30C3\u30C9\u3092\u547C\u3073\u51FA\u3059\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
org.talend.ws.exception.Unknown=\u4E0D\u660E\u306A\u4F8B\u5916\u304C\u30B9\u30ED\u30FC\u3055\u308C\u307E\u3057\u305F
org.talend.ws.exception.InvalidEnumValueException=\u5024 {0} \u306Fenum\u578B {1} \u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
org.talend.ws.exception.InvalidParameterAnyType=\u30DE\u30C3\u30D7\u306F\u3069\u306E\u30BF\u30A4\u30D7\u306B\u3064\u3044\u3066\u3082\u4EE5\u4E0B\u306E\u3088\u3046\u306B\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059: {anyType: value, anyType_type: qname}

View File

@@ -3,6 +3,6 @@ org.talend.ws.exception.NoSuchPropertyException=\u5C5E\u6027 {0} \u5BF9\u4E8E\u7
org.talend.ws.exception.Instantiation=\u65E0\u6CD5\u5B9E\u4F8B\u5316\u7C7B\u578B {0} \u7684\u7C7B
org.talend.ws.exception.InvocationTargetPropertyAccessor=\u5C5E\u6027\u8BBF\u95EE\u5668\u629B\u51FA\u4E86\u4E00\u4E2A\u5F02\u5E38\uFF1A\u7C7B {1} \u7684\u5C5E\u6027 {0}
org.talend.ws.exception.illegalAccessValueOf=\u65E0\u6CD5\u4E3A\u679A\u4E3E\u7C7B\u578B {0} \u8C03\u7528\u65B9\u6CD5 valueOf
org.talend.ws.exception.Unknown=\u629B\u51FA\u4E86\u4E00\u4E2A\u672A\u77E5\u7684\u5F02\u5E38
org.talend.ws.exception.Unknown=\u53D1\u751F\u4E00\u4E2A\u672A\u77E5\u5F02\u5E38
org.talend.ws.exception.InvalidEnumValueException=\u503C {0} \u5BF9\u4E8E\u679A\u4E3E {1} \u65E0\u6548
org.talend.ws.exception.InvalidParameterAnyType=\u60A8\u5FC5\u987B\u6309\u5982\u4E0B\u6240\u793A\u4E3A anyType \u6307\u5B9A\u6620\u5C04\uFF1A{anyType: value, anyType_type: qname}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,2 +1,3 @@
LONG_NAME=Ferme une connexion AS400 s\u00E9lectionn\u00E9e.
HELP=org.talend.help.tAS400Close
LONG_NAME=Ferme une connexion AS400 s\u00E9lectionn\u00E9e
CONNECTION.NAME=Liste des composants

View File

@@ -1,3 +1,4 @@
CLOSE.NAME=Fermer la connexion
HELP=org.talend.help.tAS400Commit
LONG_NAME=Commite toutes les transactions qui n'ont pas encore \u00E9t\u00E9 commit\u00E9es dans la connexion AS400 s\u00E9lectionn\u00E9e
CONNECTION.NAME=Liste des composants

View File

@@ -1,4 +1,4 @@
CLOSE.NAME=\u63A5\u7D9A\u3092\u9589\u3058\u308B
CLOSE.NAME=\u63A5\u7D9A\u306E\u7D42\u4E86
HELP=org.talend.help.tAS400Commit
LONG_NAME=\u9078\u629E\u3055\u308C\u305FAS400\u63A5\u7D9A\u3067\u307E\u3060\u30B3\u30DF\u30C3\u30C8\u3055\u308C\u3066\u3044\u306A\u3044\u3059\u3079\u3066\u306E\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u3092\u30B3\u30DF\u30C3\u30C8
CONNECTION.NAME=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30EA\u30B9\u30C8

View File

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

View File

@@ -10,8 +10,6 @@ PORT.NAME=Port
PROPERTIES.NAME=Additional JDBC Parameters
USER.NAME=Username
DB_VERSION.NAME=DB Version
DB_VERSION.ITEM.V5R2_V5R4=V5R2 to V5R4 (Deprecated)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 to V6R1 (Deprecated)
DB_VERSION.ITEM.V6R1_V7R2=V6R1 to V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1 to V7R3
USE_SHARED_CONNECTION.NAME=Use or register a shared DB Connection

View File

@@ -1,19 +1,21 @@
DBNAME.NAME=Base de donn\u00E9es
ENCODING.NAME=Encodage
HELP=org.talend.help.tAS400Connection
HOST.NAME=H\u00F4te
LONG_NAME=Cr\u00E9e une connexion \u00E0 une base de donn\u00E9es AS400
NB_LINE.NAME=Nombre de lignes
NULL_CHAR.NAME=Caract\u00E8re Null
PASS.NAME=Mot de passe
PORT.NAME=Port
PROPERTIES.NAME=Param\u00E8tres JDBC suppl\u00E9mentaires
PROPERTIES.NAME=Param\u00E8tres suppl\u00E9mentaires JDBC
USER.NAME=Utilisateur
DB_VERSION.NAME=Version de la base de donn\u00E9es
DB_VERSION.ITEM.V5R2_V5R4=V5R2 \u00E0 V5R4 (D\u00E9pr\u00E9ci\u00E9)
DB_VERSION.ITEM.V5R2_V5R4=V5R2 \u00E0 V5R4 (d\u00E9pr\u00E9ci\u00E9e)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 \u00E0 V6R1 (D\u00E9pr\u00E9ci\u00E9)
USE_SHARED_CONNECTION.NAME=Utiliser ou enregistrer une connexion partag\u00E9e \u00E0 une base de donn\u00E9es
SHARED_CONNECTION_NAME.NAME=Nom de connexion partag\u00E9e \u00E0 une base de donn\u00E9es
AUTO_COMMIT.NAME=Commit automatique
TYPE.NAME=Pilote de base de donn\u00E9es
PROPERTY.NAME=Type de propri\u00E9t\u00E9
DB_VERSION.ITEM.V6R1_V7R2=V6R1 \u00E0 V7R2
DBNAME.NAME=Base de donn\u00E9es
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u00E0 V7R3
USE_SHARED_CONNECTION.NAME=Utiliser ou enregistrer une connexion partag\u00E9e \u00E0 une base de donn\u00E9es
SHARED_CONNECTION_NAME.NAME=Nom de la connexion partag\u00E9e \u00E0 la base de donn\u00E9es
AUTO_COMMIT.NAME=Commit auto
TYPE.NAME=Pilote de la base de donn\u00E9es
PROPERTY.NAME=Type de propri\u00E9t\u00E9

View File

@@ -1,21 +1,21 @@
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
ENCODING.NAME=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0
HELP=org.talend.help.tAS400Connection
HOST.NAME=\u30DB\u30B9\u30C8
LONG_NAME=AS400\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3078\u306E\u63A5\u7D9A\u3092\u4F5C\u6210
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
USER.NAME=\u30E6\u30FC\u30B6\u30FC\u540D
DB_VERSION.NAME=DB\u30D0\u30FC\u30B8\u30E7\u30F3
DB_VERSION.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D0\u30FC\u30B8\u30E7\u30F3
DB_VERSION.ITEM.V5R2_V5R4=V5R2\u304B\u3089V5R4 (\u975E\u63A8\u5968)
DB_VERSION.ITEM.V5R3_V6R1=V5R3\u304B\u3089V6R1 (\u975E\u63A8\u5968)
DB_VERSION.ITEM.V6R1_V7R2=V6R1\u304B\u3089V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1\u304B\u3089V7R3
USE_SHARED_CONNECTION.NAME=\u5171\u6709DB\u63A5\u7D9A\u306E\u4F7F\u7528\u307E\u305F\u306F\u767B\u9332
SHARED_CONNECTION_NAME.NAME=\u5171\u6709DB\u63A5\u7D9A\u540D
AUTO_COMMIT.NAME=\u81EA\u52D5\u30B3\u30DF\u30C3\u30C8
TYPE.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C9\u30E9\u30A4\u30D0\u30FC
PROPERTY.NAME=\u30D7\u30ED\u30D1\u30C6\u30A3\u30BF\u30A4\u30D7
DB_VERSION.ITEM.V6R1_V7R2=V6R1\u304B\u3089V7R2
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
NB_LINE.NAME=\u884C\u6570
DB_VERSION.ITEM.V7R1_V7R3=V7R1\u304B\u3089V7R3

View File

@@ -1,7 +1,9 @@
DBNAME.NAME=\u6570\u636E\u5E93
ENCODING.NAME=\u7F16\u7801
HELP=org.talend.help.tAS400Connection
HOST.NAME=\u4E3B\u673A
LONG_NAME=\u521B\u5EFA\u5230 AS400 \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
@@ -10,12 +12,10 @@ USER.NAME=\u7528\u6237\u540D
DB_VERSION.NAME=\u6570\u636E\u5E93\u7248\u672C
DB_VERSION.ITEM.V5R2_V5R4=V5R2 \u5230 V5R4 (\u5DF2\u5F03\u7528)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 \u5230 V6R1 (\u5DF2\u5F03\u7528)
DB_VERSION.ITEM.V6R1_V7R2=V6R1 \u81F3 V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u5230 V7R3
USE_SHARED_CONNECTION.NAME=\u4F7F\u7528\u6216\u6CE8\u518C\u5171\u4EAB\u6570\u636E\u5E93\u8FDE\u63A5
SHARED_CONNECTION_NAME.NAME=\u5171\u4EAB\u6570\u636E\u5E93\u8FDE\u63A5\u540D\u79F0
AUTO_COMMIT.NAME=\u81EA\u52A8\u63D0\u4EA4
TYPE.NAME=\u6570\u636E\u5E93\u9A71\u52A8
PROPERTY.NAME=\u5C5E\u6027\u7C7B\u578B
DB_VERSION.ITEM.V6R1_V7R2=V6R1 \u81F3 V7R2
DBNAME.NAME=\u6570\u636E\u5E93
NB_LINE.NAME=\u884C\u6570
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u5230 V7R3

View File

@@ -64,8 +64,6 @@
<PARAMETER NAME="DB_VERSION" FIELD="CLOSED_LIST" NUM_ROW="3"
REPOSITORY_VALUE="DB_VERSION" SHOW_IF="(USE_EXISTING_CONNECTION == 'false')">
<ITEMS DEFAULT="V7R1_V7R3">
<ITEM NAME="V5R2_V5R4" VALUE="jt400_V5R2.jar"/>
<ITEM NAME="V5R3_V6R1" VALUE="jt400_V5R3.jar" />
<ITEM NAME="V6R1_V7R2" VALUE="jt400_V6R1.jar" />
<ITEM NAME="V7R1_V7R3" VALUE="jt400-9.8.jar" />
</ITEMS>
@@ -203,8 +201,6 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Driver-V5R2_V5R4" MODULE="jt400_V5R2.jar" MVN="mvn:org.talend.libraries/jt400_V5R2/6.0.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DB_VERSION == 'jt400_V5R2.jar')" />
<IMPORT NAME="Driver-V5R3_V6R1" MODULE="jt400_V5R3.jar" MVN="mvn:org.talend.libraries/jt400_V5R3/6.0.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DB_VERSION == 'jt400_V5R3.jar')" />
<IMPORT NAME="Driver-V6R1_V7R2" MODULE="jt400_V6R1.jar" MVN="mvn:org.talend.libraries/jt400_V6R1/6.0.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DB_VERSION == 'jt400_V6R1.jar')" />
<IMPORT NAME="Driver-V7R1_V7R3" MODULE="jt400-9.8.jar" MVN="mvn:net.sf.jt400/jt400/9.8" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DB_VERSION == 'jt400-9.8.jar')" />
</IMPORTS>

View File

@@ -14,8 +14,6 @@ TRIM_COLUMN.NAME=Trim column
TRIM_COLUMN.ITEM.TRIM=Trim
TABLE.NAME=Table Name
DB_VERSION.NAME=DB Version
DB_VERSION.ITEM.V5R2_V5R4=V5R2 to V5R4 (Deprecated)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 to V6R1 (Deprecated)
DB_VERSION.ITEM.V6R1_V7R2=V6R1 to V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1 to V7R3
MAPPING.NAME=Mapping

View File

@@ -1,26 +1,28 @@
DBNAME.NAME=Base de donn\u00E9es
HELP=org.talend.help.tAS400Input
HOST.NAME=Nom d'h\u00F4te
LONG_NAME=Lit une table et extrait les champs \u00E0 partir d'une requ\u00EAte SQL
PASS.NAME=Mot de passe
PROPERTIES.NAME=Param\u00E8tres JDBC suppl\u00E9mentaires
PROPERTIES.NAME=Param\u00E8tres suppl\u00E9mentaires JDBC
QUERY.NAME=Requ\u00EAte
QUERYSTORE.NAME=Type de requ\u00EAte
SCHEMA_DB.NAME=Sch\u00E9ma
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=Supprimer les espaces en d\u00E9but et en fin de champ dans les colonnes s\u00E9lectionn\u00E9es
TRIM_COLUMN.ITEM.TRIM=Supprimer les espaces en d\u00E9but et fin de champ
TRIM_COLUMN.NAME=Colonnes \u00E0 rogner
TRIM_COLUMN.ITEM.TRIM=Supprimer les espaces en d\u00E9but et en fin de champ
TABLE.NAME=Nom de la table
DB_VERSION.NAME=Version de la base de donn\u00E9es
DB_VERSION.ITEM.V5R2_V5R4=V5R2 \u00E0 V5R4 (D\u00E9pr\u00E9ci\u00E9)
DB_VERSION.ITEM.V5R2_V5R4=V5R2 \u00E0 V5R4 (d\u00E9pr\u00E9ci\u00E9e)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 \u00E0 V6R1 (D\u00E9pr\u00E9ci\u00E9)
DB_VERSION.ITEM.V6R1_V7R2=V6R1 \u00E0 V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u00E0 V7R3
MAPPING.NAME=Mapping
NB_LINE.NAME=Nombre de lignes
GUESS_SCHEMA.NAME=D\u00E9tecter le sch\u00E9ma
CONNECTION.NAME=Liste des composants
PROPERTY.NAME=Type de propri\u00E9t\u00E9
TYPE.NAME=Pilote de base de donn\u00E9es
TYPE.NAME=Pilote de la base de donn\u00E9es
SCHEMA.NAME=Sch\u00E9ma
ENCODING.NAME=Encodage
MAPPING.NAME=Mapping
DB_VERSION.ITEM.V6R1_V7R2=De V6R1 \u00E0 V7R2
DBNAME.NAME=Base de donn\u00E9es
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u00E0 V7R3

View File

@@ -1,28 +1,28 @@
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
HELP=org.talend.help.tAS400Input
HOST.NAME=\u30DB\u30B9\u30C8\u540D
LONG_NAME=AS400\u30C6\u30FC\u30D6\u30EB\u3092\u8AAD\u8FBC\u307F\u3001SQL\u30AF\u30A8\u30EA\u306B\u57FA\u3065\u3044\u3066\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u62BD\u51FA
LONG_NAME=\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
PASS.NAME=\u30D1\u30B9\u30EF\u30FC\u30C9
PROPERTIES.NAME=\u8FFD\u52A0\u306EJDBC\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC
QUERY.NAME=\u30AF\u30A8\u30EA
QUERYSTORE.NAME=\u30AF\u30A8\u30EA\u30BF\u30A4\u30D7
QUERY.NAME=\u30AF\u30A8\u30EA\u30FC
QUERYSTORE.NAME=\u30AF\u30A8\u30EA\u30FC\u30BF\u30A4\u30D7
SCHEMA_DB.NAME=\u30B9\u30AD\u30FC\u30DE
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\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
DB_VERSION.NAME=DB\u30D0\u30FC\u30B8\u30E7\u30F3
DB_VERSION.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D0\u30FC\u30B8\u30E7\u30F3
DB_VERSION.ITEM.V5R2_V5R4=V5R2\u304B\u3089V5R4 (\u975E\u63A8\u5968)
DB_VERSION.ITEM.V5R3_V6R1=V5R3\u304B\u3089V6R1 (\u975E\u63A8\u5968)
DB_VERSION.ITEM.V6R1_V7R2=V6R1\u304B\u3089V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1\u304B\u3089V7R3
MAPPING.NAME=\u30DE\u30C3\u30D4\u30F3\u30B0
NB_LINE.NAME=\u884C\u6570
GUESS_SCHEMA.NAME=\u30B9\u30AD\u30FC\u30DE\u306E\u63A8\u6E2C
CONNECTION.NAME=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30EA\u30B9\u30C8
PROPERTY.NAME=\u30D7\u30ED\u30D1\u30C6\u30A3\u30BF\u30A4\u30D7
TYPE.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C9\u30E9\u30A4\u30D0\u30FC
SCHEMA.NAME=\u30B9\u30AD\u30FC\u30DE
ENCODING.NAME=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0
MAPPING.NAME=Mapping
DB_VERSION.ITEM.V6R1_V7R2=V6R1\u304B\u3089V7R2
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
NB_LINE.NAME=\u884C\u6570
DB_VERSION.ITEM.V7R1_V7R3=V7R1\u304B\u3089V7R3

View File

@@ -1,3 +1,4 @@
DBNAME.NAME=\u6570\u636E\u5E93
HELP=org.talend.help.tAS400Input
HOST.NAME=\u4E3B\u673A\u540D
LONG_NAME=\u8BFB\u53D6\u8868\u5E76\u57FA\u4E8E SQL \u67E5\u8BE2\u63D0\u53D6\u5B57\u6BB5
@@ -15,14 +16,13 @@ TABLE.NAME=\u8868\u540D\u79F0
DB_VERSION.NAME=\u6570\u636E\u5E93\u7248\u672C
DB_VERSION.ITEM.V5R2_V5R4=V5R2 \u5230 V5R4 (\u5DF2\u5F03\u7528)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 \u5230 V6R1 (\u5DF2\u5F03\u7528)
DB_VERSION.ITEM.V6R1_V7R2=V6R1 \u81F3 V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u5230 V7R3
MAPPING.NAME=\u6620\u5C04
NB_LINE.NAME=\u884C\u6570
GUESS_SCHEMA.NAME=\u63A8\u6D4B Schema
CONNECTION.NAME=\u7EC4\u4EF6\u5217\u8868
PROPERTY.NAME=\u5C5E\u6027\u7C7B\u578B
TYPE.NAME=\u6570\u636E\u5E93\u9A71\u52A8
SCHEMA.NAME=Schema
ENCODING.NAME=\u7F16\u7801
MAPPING.NAME=\u6620\u5C04
DB_VERSION.ITEM.V6R1_V7R2=V6R1 \u81F3 V7R2
DBNAME.NAME=\u6570\u636E\u5E93
NB_LINE.NAME=\u884C\u6570
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u5230 V7R3

View File

@@ -1,3 +1,5 @@
HELP=org.talend.help.tAS400LastInsertId
LONG_NAME=Retrouve le dernier ID ins\u00E9r\u00E9 dans une connexion AS400
NB_LINE.NAME=Nombre de lignes
SCHEMA.NAME=Sch\u00E9ma
CONNECTION.NAME=Liste des composants

View File

@@ -1,5 +1,5 @@
HELP=org.talend.help.tAS400LastInsertId
LONG_NAME=\u9078\u629E\u3055\u308C\u305FAS400\u63A5\u7D9A\u304B\u3089\u6700\u7D42\u633F\u5165ID\u3092\u53D6\u5F97\u3059\u308B
NB_LINE.NAME=\u884C\u6570
SCHEMA.NAME=\u30B9\u30AD\u30FC\u30DE
CONNECTION.NAME=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30EA\u30B9\u30C8
NB_LINE.NAME=\u884C\u6570

View File

@@ -1,5 +1,5 @@
HELP=org.talend.help.tAS400LastInsertId
LONG_NAME=\u4ECE\u9009\u5B9A\u7684 AS400 \u8FDE\u63A5\u6293\u53D6\u6700\u540E\u4E00\u4E2A\u63D2\u5165 id
NB_LINE.NAME=\u884C\u6570
SCHEMA.NAME=Schema
CONNECTION.NAME=\u7EC4\u4EF6\u5217\u8868
NB_LINE.NAME=\u884C\u6570

View File

@@ -51,8 +51,6 @@
<PARAMETER NAME="DB_VERSION" FIELD="CLOSED_LIST" NUM_ROW="2"
REPOSITORY_VALUE="DB_VERSION" SHOW_IF="(USE_EXISTING_CONNECTION == 'false')">
<ITEMS DEFAULT="V7R1_V7R3">
<ITEM NAME="V5R2_V5R4" VALUE="jt400_V5R2.jar"/>
<ITEM NAME="V5R3_V6R1" VALUE="jt400_V5R3.jar" />
<ITEM NAME="V6R1_V7R2" VALUE="jt400_V6R1.jar" />
<ITEM NAME="V7R1_V7R3" VALUE="jt400-9.8.jar" />
</ITEMS>
@@ -327,8 +325,6 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Driver-V5R2_V5R4" MODULE="jt400_V5R2.jar" MVN="mvn:org.talend.libraries/jt400_V5R2/6.0.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DB_VERSION == 'jt400_V5R2.jar')" />
<IMPORT NAME="Driver-V5R3_V6R1" MODULE="jt400_V5R3.jar" MVN="mvn:org.talend.libraries/jt400_V5R3/6.0.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DB_VERSION == 'jt400_V5R3.jar')" />
<IMPORT NAME="Driver-V6R1_V7R2" MODULE="jt400_V6R1.jar" MVN="mvn:org.talend.libraries/jt400_V6R1/6.0.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DB_VERSION == 'jt400_V6R1.jar')" />
<IMPORT NAME="Driver-V7R1_V7R3" MODULE="jt400-9.8.jar" MVN="mvn:net.sf.jt400/jt400/9.8" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DB_VERSION == 'jt400-9.8.jar')" />
</IMPORTS>

View File

@@ -58,8 +58,6 @@ USE_EXISTING_CONNECTION.NAME=Using an existing connection
USE_FIELD_OPTIONS.NAME=Use field options
ENABLE_DEBUG_MODE.NAME=Debug query mode
DB_VERSION.NAME=DB Version
DB_VERSION.ITEM.V5R2_V5R4=V5R2 to V5R4 (Deprecated)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 to V6R1 (Deprecated)
DB_VERSION.ITEM.V6R1_V7R2=V6R1 to V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1 to V7R3
NB_LINE_UPDATED.NAME=NB Line Updated

View File

@@ -9,65 +9,67 @@ ADD_COLS.ITEM.OPERATOR.ITEM.IS_NOT=IS NOT
ADD_COLS.ITEM.OPERATOR.ITEM.LESS_EQUAL_THAN=<
ADD_COLS.ITEM.OPERATOR.ITEM.LESS_THAN=Inf\u00E9rieur \u00E0
ADD_COLS.ITEM.OPERATOR.ITEM.NOT_EQUAL=<>
ADD_COLS.ITEM.POS=POSITION
ADD_COLS.ITEM.POS.ITEM.AFTER=AFTER
ADD_COLS.ITEM.POS.ITEM.BEFORE=Before
ADD_COLS.ITEM.POS=Position
ADD_COLS.ITEM.POS.ITEM.AFTER=Apr\u00E8s
ADD_COLS.ITEM.POS.ITEM.BEFORE=Avant
ADD_COLS.ITEM.POS.ITEM.REPLACE=Remplacer
ADD_COLS.ITEM.REFCOL=Colonne de r\u00E9f\u00E9rence
ADD_COLS.ITEM.SQL=Expression SQL
ADD_COLS.NAME=Colonnes suppl\u00E9mentaires
CLEAR_TABLE.NAME=Effacer les donn\u00E9es dans la table
COMMIT_EVERY.NAME=Commiter toutes les
DATA_ACTION.ITEM.DELETE=DELETE
COMMIT_EVERY.NAME=Commiter tous les
DATA_ACTION.ITEM.DELETE=Supprimer
DATA_ACTION.ITEM.INSERT=Insert
DATA_ACTION.ITEM.INSERT_OR_UPDATE=Insert ou update
DATA_ACTION.ITEM.UPDATE=UPDATE
DATA_ACTION.ITEM.INSERT_OR_UPDATE=Ins\u00E9rer ou mettre \u00E0 jour
DATA_ACTION.ITEM.UPDATE=Update
DATA_ACTION.ITEM.UPDATE_OR_INSERT=Update ou insert
DATA_ACTION.NAME=Action sur les donn\u00E9es
DBNAME.NAME=Base de donn\u00E9es
DIE_ON_ERROR.NAME=Arr\u00EAter en cas d'erreur
ENCODING.NAME=Encodage
FIELD_OPTIONS.ITEM.DELETE_KEY=Cl\u00E9 pour suppression
FIELD_OPTIONS.ITEM.DELETE_KEY=Cl\u00E9 de suppression
FIELD_OPTIONS.ITEM.INSERTABLE=Ins\u00E9rable
FIELD_OPTIONS.ITEM.UPDATABLE=Peut \u00EAtre mis \u00E0 jour
FIELD_OPTIONS.ITEM.UPDATE_KEY=Cl\u00E9 pour mise \u00E0 jour
FIELD_OPTIONS.ITEM.UPDATE_KEY=Cl\u00E9 de mise \u00E0 jour
FIELD_OPTIONS.NAME=Options de champ
HELP=org.talend.help.tInformixOutput
HOST.NAME=H\u00F4te
LONG_NAME=Ins\u00E8re ou met \u00E0 jour des lignes dans une table.
NB_LINE.NAME=Nombre de lignes
PASS.NAME=Mot de passe
PROPERTIES.NAME=Param\u00E8tres JDBC suppl\u00E9mentaires
PROPERTIES.NAME=Param\u00E8tres suppl\u00E9mentaires JDBC
QUERY.NAME=Requ\u00EAte
REJECT.LINK=Rejects
REJECT.MENU=Rejects
SCHEMA_FLOW.NAME=Sch\u00E9ma
SCHEMA_REJECT.NAME=Rejet du sch\u00E9ma
SCHEMA_REJECT.NAME=Rejeter le sch\u00E9ma
STANDARD_SYNTAX.NAME=G\u00E9n\u00E9ration de syntaxe standard sql
TABLE.NAME=Table
TABLE_ACTION.ITEM.CLEAR=Vider la table
TABLE_ACTION.ITEM.CREATE=Cr\u00E9er la table
TABLE_ACTION.ITEM.CREATE_IF_NOT_EXISTS=Cr\u00E9er la table si elle n'existe pas
TABLE_ACTION.ITEM.DROP_CREATE=Supprimer la table et la cr\u00E9er
TABLE_ACTION.ITEM.DROP_CREATE=Supprimer et cr\u00E9er la table
TABLE_ACTION.ITEM.DROP_IF_EXISTS_AND_CREATE=Supprimer la table si elle existe et la cr\u00E9er
TABLE_ACTION.ITEM.NONE=D\u00E9faut
TABLE_ACTION.ITEM.NONE=Par d\u00E9faut
TABLE_ACTION.NAME=Action sur la table
USER.NAME=Utilisateur
USE_COMMIT_CONTROL.NAME=Utiliser le contr\u00F4le de commit
USE_EXISTING_CONNECTION.NAME=Utiliser une connexion existante
USE_FIELD_OPTIONS.NAME=Utiliser les options des champs
ENABLE_DEBUG_MODE.NAME=Activer le mode d\u00E9bogage
USE_FIELD_OPTIONS.NAME=Utiliser les options de champ
ENABLE_DEBUG_MODE.NAME=Mode de d\u00E9bogage de requ\u00EAte
DB_VERSION.NAME=Version de la base de donn\u00E9es
DB_VERSION.ITEM.V5R2_V5R4=V5R2 \u00E0 V5R4 (D\u00E9pr\u00E9ci\u00E9)
DB_VERSION.ITEM.V5R2_V5R4=V5R2 \u00E0 V5R4 (d\u00E9pr\u00E9ci\u00E9e)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 \u00E0 V6R1 (D\u00E9pr\u00E9ci\u00E9)
NB_LINE_UPDATED.NAME=NB de lignes mises \u00E0 jour
NB_LINE_INSERTED.NAME=NB de lignes ins\u00E9r\u00E9es
NB_LINE_DELETED.NAME=NB de lignes supprim\u00E9es
DB_VERSION.ITEM.V6R1_V7R2=V6R1 \u00E0 V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u00E0 V7R3
NB_LINE_UPDATED.NAME=Nombre de lignes mises \u00E0 jour
NB_LINE_INSERTED.NAME=Nombre de lignes ins\u00E9r\u00E9es
NB_LINE_DELETED.NAME=Nombre de lignes supprim\u00E9es
PROPERTY.NAME=Type de propri\u00E9t\u00E9
TYPE.NAME=Pilote de base de donn\u00E9es
TYPE.NAME=Pilote de la base de donn\u00E9es
MAPPING.NAME=Mapping
SUPPORT_NULL_WHERE.NAME=Supporter des valeurs null dans la clause "WHERE SQL"
SUPPORT_NULL_WHERE.NAME=Supporter les null dans l'instruction ""SQL WHERE""
CONNECTION.NAME=Liste des composants
USE_BATCH_SIZE.NAME=Utiliser la taille des lots
BATCH_SIZE.NAME=Taille des lots
NB_LINE_REJECTED.NAME=Nombre de lignes rejet\u00E9es
DB_VERSION.ITEM.V6R1_V7R2=V6R1 \u00E0 V7R2
DBNAME.NAME=Base de donn\u00E9es
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u00E0 V7R3

View File

@@ -1,75 +1,75 @@
ADD_COLS.ITEM.DATATYPE=\u30C7\u30FC\u30BF\u578B
ADD_COLS.ITEM.NAME=\u540D\u524D
ADD_COLS.ITEM.OPERATOR=\u6F14\u7B97\u5B50
ADD_COLS.ITEM.OPERATOR.ITEM.EQUAL=>=
ADD_COLS.ITEM.OPERATOR.ITEM.GREAT_EQUAL_THAN=>=
ADD_COLS.ITEM.OPERATOR.ITEM.GREAT_THAN=>=
ADD_COLS.ITEM.OPERATOR.ITEM.EQUAL=\u4EE5\u4E0A
ADD_COLS.ITEM.OPERATOR.ITEM.GREAT_EQUAL_THAN=\u4EE5\u4E0A
ADD_COLS.ITEM.OPERATOR.ITEM.GREAT_THAN=\u4EE5\u4E0A
ADD_COLS.ITEM.OPERATOR.ITEM.IS=IS
ADD_COLS.ITEM.OPERATOR.ITEM.IS_NOT=IS NOT
ADD_COLS.ITEM.OPERATOR.ITEM.LESS_EQUAL_THAN=<
ADD_COLS.ITEM.OPERATOR.ITEM.LESS_THAN=<
ADD_COLS.ITEM.OPERATOR.ITEM.LESS_THAN=\u672A\u6E80
ADD_COLS.ITEM.OPERATOR.ITEM.NOT_EQUAL=<>
ADD_COLS.ITEM.POS=\u4F4D\u7F6E
ADD_COLS.ITEM.POS.ITEM.AFTER=\u5B9F\u884C\u5F8C
ADD_COLS.ITEM.POS.ITEM.AFTER=After
ADD_COLS.ITEM.POS.ITEM.BEFORE=Before
ADD_COLS.ITEM.POS.ITEM.REPLACE=\u7F6E\u63DB
ADD_COLS.ITEM.REFCOL=\u53C2\u7167\u30AB\u30E9\u30E0
ADD_COLS.ITEM.SQL=SQL\u5F0F
ADD_COLS.NAME=\u8FFD\u52A0\u30AB\u30E9\u30E0
CLEAR_TABLE.NAME=\u30C6\u30FC\u30D6\u30EB\u306E\u30C7\u30FC\u30BF\u3092\u6D88\u53BB
COMMIT_EVERY.NAME=\u3059\u3079\u3066\u30B3\u30DF\u30C3\u30C8
CLEAR_TABLE.NAME=\u30C6\u30FC\u30D6\u30EB\u30C7\u30FC\u30BF\u306E\u30AF\u30EA\u30A2
COMMIT_EVERY.NAME=\u30B3\u30DF\u30C3\u30C8\u3059\u308B\u9593\u9694
DATA_ACTION.ITEM.DELETE=\u524A\u9664
DATA_ACTION.ITEM.INSERT=\u633F\u5165
DATA_ACTION.ITEM.INSERT_OR_UPDATE=\u633F\u5165\u307E\u305F\u306F\u66F4\u65B0
DATA_ACTION.ITEM.UPDATE=\u66F4\u65B0
DATA_ACTION.ITEM.UPDATE_OR_INSERT=\u66F4\u65B0\u307E\u305F\u306F\u633F\u5165
DATA_ACTION.NAME=\u30C7\u30FC\u30BF\u3078\u306E\u30A2\u30AF\u30B7\u30E7\u30F3
DIE_ON_ERROR.NAME=\u30A8\u30E9\u30FC\u5F37\u5236\u7D42\u4E86
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
DIE_ON_ERROR.NAME=\u30A8\u30E9\u30FC\u767A\u751F\u6642\u306B\u5F37\u5236\u7D42\u4E86
ENCODING.NAME=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0
FIELD_OPTIONS.ITEM.DELETE_KEY=\u524A\u9664\u30AD\u30FC
FIELD_OPTIONS.ITEM.INSERTABLE=\u633F\u5165\u53EF\u80FD
FIELD_OPTIONS.ITEM.UPDATABLE=\u66F4\u65B0\u53EF\u80FD
FIELD_OPTIONS.ITEM.UPDATE_KEY=\u66F4\u65B0\u7528\u30AD\u30FC
FIELD_OPTIONS.ITEM.UPDATE_KEY=\u66F4\u65B0\u30AD\u30FC
FIELD_OPTIONS.NAME=\u30D5\u30A3\u30FC\u30EB\u30C9\u30AA\u30D7\u30B7\u30E7\u30F3
HELP=org.talend.help.tInformixOutput
HOST.NAME=\u30DB\u30B9\u30C8
LONG_NAME=AS400\u30C6\u30FC\u30D6\u30EB\u306B\u884C\u3092\u633F\u5165\u307E\u305F\u306F\u66F4\u65B0
LONG_NAME=\u30C6\u30FC\u30D6\u30EB\u306B\u884C\u3092\u633F\u5165\u307E\u305F\u306F\u66F4\u65B0\u3057\u307E\u3059
NB_LINE.NAME=\u884C\u6570
PASS.NAME=\u30D1\u30B9\u30EF\u30FC\u30C9
PROPERTIES.NAME=\u8FFD\u52A0\u306EJDBC\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC
QUERY.NAME=\u30AF\u30A8\u30EA
QUERY.NAME=\u30AF\u30A8\u30EA\u30FC
REJECT.LINK=\u30EA\u30B8\u30A7\u30AF\u30C8
REJECT.MENU=\u30EA\u30B8\u30A7\u30AF\u30C8
SCHEMA_FLOW.NAME=\u30B9\u30AD\u30FC\u30DE
SCHEMA_REJECT.NAME=\u30B9\u30AD\u30FC\u30DE\u306E\u62D2\u5426
SCHEMA_REJECT.NAME=\u30B9\u30AD\u30FC\u30DE\u306E\u30EA\u30B8\u30A7\u30AF\u30C8
STANDARD_SYNTAX.NAME=\u6A19\u6E96SQL\u69CB\u6587\u3092\u751F\u6210
TABLE.NAME=\u30C6\u30FC\u30D6\u30EB
TABLE_ACTION.ITEM.CLEAR=\u30C6\u30FC\u30D6\u30EB\u306E\u30AF\u30EA\u30A2
TABLE_ACTION.ITEM.CREATE=\u30C6\u30FC\u30D6\u30EB\u306E\u4F5C\u6210
TABLE_ACTION.ITEM.CREATE_IF_NOT_EXISTS=\u30C6\u30FC\u30D6\u30EB\u304C\u306A\u3044\u5834\u5408\u306F\u30C6\u30FC\u30D6\u30EB\u3092\u4F5C\u6210\u3057\u307E\u3059
TABLE_ACTION.ITEM.CREATE_IF_NOT_EXISTS=\u5B58\u5728\u3057\u306A\u3044\u5834\u5408\u306F\u30C6\u30FC\u30D6\u30EB\u3092\u4F5C\u6210
TABLE_ACTION.ITEM.DROP_CREATE=\u30C9\u30ED\u30C3\u30D7\u3057\u3066\u30C6\u30FC\u30D6\u30EB\u3092\u4F5C\u6210
TABLE_ACTION.ITEM.DROP_IF_EXISTS_AND_CREATE=\u30C6\u30FC\u30D6\u30EB\u304C\u3042\u308B\u5834\u5408\u306F\u30C6\u30FC\u30D6\u30EB\u3092\u30C9\u30ED\u30C3\u30D7\u3057\u3066\u4F5C\u6210\u3057\u307E\u3059
TABLE_ACTION.ITEM.DROP_IF_EXISTS_AND_CREATE=\u5B58\u5728\u3059\u308B\u5834\u5408\u306F\u30C6\u30FC\u30D6\u30EB\u3092\u524A\u9664\u3057\u3066\u4F5C\u6210
TABLE_ACTION.ITEM.NONE=\u30C7\u30D5\u30A9\u30EB\u30C8
TABLE_ACTION.NAME=\u30C6\u30FC\u30D6\u30EB\u3078\u306E\u30A2\u30AF\u30B7\u30E7\u30F3
TABLE_ACTION.NAME=\u30C6\u30FC\u30D6\u30EB\u306E\u64CD\u4F5C
USER.NAME=\u30E6\u30FC\u30B6\u30FC\u540D
USE_COMMIT_CONTROL.NAME=\u30B3\u30DF\u30C3\u30C8\u5236\u5FA1\u3092\u4F7F\u7528
USE_COMMIT_CONTROL.NAME=\u30B3\u30DF\u30C3\u30C8\u5236\u5FA1\u3092\u4F7F\u3046
USE_EXISTING_CONNECTION.NAME=\u65E2\u5B58\u306E\u63A5\u7D9A\u3092\u4F7F\u7528
USE_FIELD_OPTIONS.NAME=\u30D5\u30A3\u30FC\u30EB\u30C9\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528
ENABLE_DEBUG_MODE.NAME=\u30C7\u30D0\u30C3\u30B0\u30E2\u30FC\u30C9\u3092\u6709\u52B9\u306B\u3059\u308B
DB_VERSION.NAME=DB\u30D0\u30FC\u30B8\u30E7\u30F3
USE_FIELD_OPTIONS.NAME=\u30D5\u30A3\u30FC\u30EB\u30C9\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u4F7F\u7528
ENABLE_DEBUG_MODE.NAME=\u30C7\u30D0\u30C3\u30B0\u30AF\u30A8\u30EA\u30FC\u30E2\u30FC\u30C9
DB_VERSION.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D0\u30FC\u30B8\u30E7\u30F3
DB_VERSION.ITEM.V5R2_V5R4=V5R2\u304B\u3089V5R4 (\u975E\u63A8\u5968)
DB_VERSION.ITEM.V5R3_V6R1=V5R3\u304B\u3089V6R1 (\u975E\u63A8\u5968)
NB_LINE_UPDATED.NAME=\u66F4\u65B0\u884C\u6570
NB_LINE_INSERTED.NAME=\u633F\u5165\u884C\u6570
NB_LINE_DELETED.NAME=\u524A\u9664\u884C\u6570
DB_VERSION.ITEM.V6R1_V7R2=V6R1\u304B\u3089V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1\u304B\u3089V7R3
NB_LINE_UPDATED.NAME=NB\u884C\u66F4\u65B0\u6E08\u307F
NB_LINE_INSERTED.NAME=NB\u884C\u633F\u5165\u6E08\u307F
NB_LINE_DELETED.NAME=NB\u884C\u524A\u9664\u6E08\u307F
PROPERTY.NAME=\u30D7\u30ED\u30D1\u30C6\u30A3\u30BF\u30A4\u30D7
TYPE.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C9\u30E9\u30A4\u30D0\u30FC
MAPPING.NAME=Mapping
SUPPORT_NULL_WHERE.NAME="SQL WHERE"\u53E5\u3067null\u3092\u30B5\u30DD\u30FC\u30C8
MAPPING.NAME=\u30DE\u30C3\u30D4\u30F3\u30B0
SUPPORT_NULL_WHERE.NAME="SQL WHERE"\u30B9\u30C6\u30FC\u30C8\u30E1\u30F3\u30C8\u3067Null\u3092\u30B5\u30DD\u30FC\u30C8
CONNECTION.NAME=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30EA\u30B9\u30C8
USE_BATCH_SIZE.NAME=\u30D0\u30C3\u30C1\u30B5\u30A4\u30BA\u3092\u4F7F\u7528
BATCH_SIZE.NAME=\u30D0\u30C3\u30C1\u30B5\u30A4\u30BA
NB_LINE_REJECTED.NAME=NB\u884C\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F
DB_VERSION.ITEM.V6R1_V7R2=V6R1\u304B\u3089V7R2
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
NB_LINE.NAME=\u884C\u6570
DB_VERSION.ITEM.V7R1_V7R3=V7R1\u304B\u3089V7R3
NB_LINE_REJECTED.NAME=\u30EA\u30B8\u30A7\u30AF\u30C8\u884C\u6570

View File

@@ -24,6 +24,7 @@ DATA_ACTION.ITEM.INSERT_OR_UPDATE=\u63D2\u5165\u6216\u66F4\u65B0
DATA_ACTION.ITEM.UPDATE=\u66F4\u65B0
DATA_ACTION.ITEM.UPDATE_OR_INSERT=\u66F4\u65B0\u6216\u63D2\u5165
DATA_ACTION.NAME=\u6570\u636E\u64CD\u4F5C
DBNAME.NAME=\u6570\u636E\u5E93
DIE_ON_ERROR.NAME=\u9519\u8BEF\u65F6\u7EC8\u6B62
ENCODING.NAME=\u7F16\u7801
FIELD_OPTIONS.ITEM.DELETE_KEY=\u5220\u9664\u952E
@@ -34,6 +35,7 @@ FIELD_OPTIONS.NAME=\u5B57\u6BB5\u9009\u9879
HELP=org.talend.help.tInformixOutput
HOST.NAME=\u4E3B\u673A
LONG_NAME=\u5C06\u884C\u63D2\u5165\u6216\u66F4\u65B0\u5230\u8868
NB_LINE.NAME=\u884C\u6570
PASS.NAME=\u5BC6\u7801
PROPERTIES.NAME=\u9644\u52A0 JDBC \u53C2\u6570
QUERY.NAME=\u67E5\u8BE2
@@ -54,22 +56,20 @@ USER.NAME=\u7528\u6237\u540D
USE_COMMIT_CONTROL.NAME=\u4F7F\u7528\u63D0\u4EA4\u63A7\u5236
USE_EXISTING_CONNECTION.NAME=\u4F7F\u7528\u73B0\u6709\u8FDE\u63A5
USE_FIELD_OPTIONS.NAME=\u4F7F\u7528\u5B57\u6BB5\u9009\u9879
ENABLE_DEBUG_MODE.NAME=\u542F\u7528\u8C03\u8BD5\u6A21\u5F0F
ENABLE_DEBUG_MODE.NAME=\u8C03\u8BD5\u67E5\u8BE2\u6A21\u5F0F
DB_VERSION.NAME=\u6570\u636E\u5E93\u7248\u672C
DB_VERSION.ITEM.V5R2_V5R4=V5R2 \u5230 V5R4 (\u5DF2\u5F03\u7528)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 \u5230 V6R1 (\u5DF2\u5F03\u7528)
DB_VERSION.ITEM.V6R1_V7R2=V6R1 \u81F3 V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u5230 V7R3
NB_LINE_UPDATED.NAME=\u66F4\u65B0\u7684\u884C\u6570
NB_LINE_INSERTED.NAME=\u63D2\u5165\u7684\u884C\u6570
NB_LINE_DELETED.NAME=\u5220\u9664\u7684\u884C\u6570
PROPERTY.NAME=\u5C5E\u6027\u7C7B\u578B
TYPE.NAME=\u6570\u636E\u5E93\u9A71\u52A8
MAPPING.NAME=\u6620\u5C04
SUPPORT_NULL_WHERE.NAME=\u5728 \"SQL WHERE\" \u8BED\u53E5\u4E2D\u652F\u6301 null
SUPPORT_NULL_WHERE.NAME=\u5728 "SQL WHERE" \u8BED\u53E5\u4E2D\u652F\u6301 null
CONNECTION.NAME=\u7EC4\u4EF6\u5217\u8868
USE_BATCH_SIZE.NAME=\u4F7F\u7528\u6279\u5904\u7406\u5927\u5C0F
BATCH_SIZE.NAME=\u6279\u5904\u7406\u5927\u5C0F
NB_LINE_REJECTED.NAME=\u62D2\u7EDD\u7684\u884C\u6570
DB_VERSION.ITEM.V6R1_V7R2=V6R1 \u81F3 V7R2
DBNAME.NAME=\u6570\u636E\u5E93
NB_LINE.NAME=\u884C\u6570
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u5230 V7R3

View File

@@ -1,3 +1,4 @@
CLOSE.NAME=Fermer la connexion
HELP=org.talend.help.tAS400Rollback
LONG_NAME=Annule toutes les transactions qui n'ont pas encore \u00E9t\u00E9 commit\u00E9es dans la connexion AS400 s\u00E9lectionn\u00E9e
CONNECTION.NAME=Liste des composants

View File

@@ -1,4 +1,4 @@
CLOSE.NAME=\u63A5\u7D9A\u3092\u9589\u3058\u308B
CLOSE.NAME=\u63A5\u7D9A\u306E\u7D42\u4E86
HELP=org.talend.help.tAS400Rollback
LONG_NAME=AS400\u63A5\u7D9A\u3067\u307E\u3060\u30B3\u30DF\u30C3\u30C8\u3055\u308C\u3066\u3044\u306A\u3044\u3059\u3079\u3066\u306E\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u3092\u30ED\u30FC\u30EB\u30D0\u30C3\u30AF
CONNECTION.NAME=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30EA\u30B9\u30C8

View File

@@ -67,8 +67,6 @@
<PARAMETER NAME="DB_VERSION" FIELD="CLOSED_LIST" NUM_ROW="3"
REPOSITORY_VALUE="DB_VERSION" SHOW_IF="(USE_EXISTING_CONNECTION == 'false')">
<ITEMS DEFAULT="V7R1_V7R3">
<ITEM NAME="V5R2_V5R4" VALUE="jt400_V5R2.jar"/>
<ITEM NAME="V5R3_V6R1" VALUE="jt400_V5R3.jar"/>
<ITEM NAME="V6R1_V7R2" VALUE="jt400_V6R1.jar"/>
<ITEM NAME="V7R1_V7R3" VALUE="jt400-9.8.jar" />
</ITEMS>
@@ -255,8 +253,6 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Driver-V5R2_V5R4" MODULE="jt400_V5R2.jar" MVN="mvn:org.talend.libraries/jt400_V5R2/6.0.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DB_VERSION == 'jt400_V5R2.jar')" />
<IMPORT NAME="Driver-V5R3_V6R1" MODULE="jt400_V5R3.jar" MVN="mvn:org.talend.libraries/jt400_V5R3/6.0.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DB_VERSION == 'jt400_V5R3.jar')" />
<IMPORT NAME="Driver-V6R1_V7R2" MODULE="jt400_V6R1.jar" MVN="mvn:org.talend.libraries/jt400_V6R1/6.0.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DB_VERSION == 'jt400_V6R1.jar')" />
<IMPORT NAME="Driver-V7R1_V7R3" MODULE="jt400-9.8.jar" MVN="mvn:net.sf.jt400/jt400/9.8" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND (DB_VERSION == 'jt400-9.8.jar')" />
</IMPORTS>

View File

@@ -19,8 +19,6 @@ PROPAGATE_RECORD_SET.NAME=Propagate QUERY's recordset
RECORD_SET_COLUMN.NAME=use column
TABLE.NAME=Table Name
DB_VERSION.NAME=DB Version
DB_VERSION.ITEM.V5R2_V5R4=V5R2 to V5R4 (Deprecated)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 to V6R1 (Deprecated)
DB_VERSION.ITEM.V6R1_V7R2=V6R1 to V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1 to V7R3
TYPE.NAME=Database Driver

View File

@@ -1,11 +1,14 @@
COMMIT_EVERY.NAME=Commiter toutes les
COMMIT_EVERY.NAME=Commiter tous les
DBD-DB2.INFO=Requis
DBNAME.NAME=Base de donn\u00E9es
DIE_ON_ERROR.NAME=Arr\u00EAter en cas d'erreur
ENCODING.NAME=Encodage
HELP=org.talend.help.tAS400Row
HOST.NAME=H\u00F4te
LONG_NAME=Ex\u00E9cute une requ\u00EAte SQL \u00E0 chaque it\u00E9ration de flux Talend
NB_LINE.NAME=Nombre de lignes
PASS.NAME=Mot de passe
PROPERTIES.NAME=Param\u00E8tres JDBC suppl\u00E9mentaires
PROPERTIES.NAME=Param\u00E8tres suppl\u00E9mentaires JDBC
QUERY.NAME=Requ\u00EAte
REJECT.LINK=Rejects
REJECT.MENU=Rejects
@@ -13,25 +16,27 @@ SCHEMA_DB.NAME=Sch\u00E9ma
USER.NAME=Utilisateur
USE_EXISTING_CONNECTION.NAME=Utiliser une connexion existante
PROPAGATE_RECORD_SET.NAME=Ins\u00E9rer les r\u00E9sultats de la requ\u00EAte dans une colonne du flux en cours
RECORD_SET_COLUMN.NAME=utiliser la colonne
RECORD_SET_COLUMN.NAME=Utiliser colonne
TABLE.NAME=Nom de la table
DB_VERSION.NAME=Version de la base de donn\u00E9es
DB_VERSION.ITEM.V5R2_V5R4=V5R2 \u00E0 V5R4 (D\u00E9pr\u00E9ci\u00E9)
DB_VERSION.ITEM.V5R2_V5R4=V5R2 \u00E0 V5R4 (d\u00E9pr\u00E9ci\u00E9e)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 \u00E0 V6R1 (D\u00E9pr\u00E9ci\u00E9)
TYPE.NAME=Pilote de base de donn\u00E9es
DB_VERSION.ITEM.V6R1_V7R2=V6R1 \u00E0 V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u00E0 V7R3
TYPE.NAME=Pilote de la base de donn\u00E9es
PROPERTY.NAME=Type de propri\u00E9t\u00E9
CONNECTION.NAME=Liste des composants
SCHEMA_FLOW.NAME=Sch\u00E9ma
SCHEMA_REJECT.NAME=Rejet du sch\u00E9ma
SCHEMA_REJECT.NAME=Rejeter le sch\u00E9ma
QUERYSTORE.NAME=Type de requ\u00EAte
USE_PREPAREDSTATEMENT.NAME=Utiliser l'instruction pr\u00E9par\u00E9e
USE_PREPAREDSTATEMENT.NAME=Utiliser instruction pr\u00E9par\u00E9e
SET_PREPAREDSTATEMENT_PARAMETERS.NAME=D\u00E9finir les param\u00E8tres de l'instruction pr\u00E9par\u00E9e
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_INDEX=Index des param\u00E8tres
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE=Type de param\u00E8tre
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.BigDecimal=BigDecimal
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Blob=Blob
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Boolean=Boolean
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Byte=Byte
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Boolean=Bool\u00E9en
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Byte=Octet
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Bytes=Bytes
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Clob=Clob
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Date=Date
@@ -41,10 +46,7 @@ SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Int=Int
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Long=Long
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Object=Object
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Short=Short
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.String=String
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.String=Cha\u00EEne de caract\u00E8res
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Time=Heure
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Null=Null
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_VALUE=Valeur du param\u00E8tre
DB_VERSION.ITEM.V6R1_V7R2=V6R1 \u00E0 V7R2
DBNAME.NAME=Base de donn\u00E9es
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u00E0 V7R3

View File

@@ -1,52 +1,52 @@
COMMIT_EVERY.NAME=\u3059\u3079\u3066\u30B3\u30DF\u30C3\u30C8
COMMIT_EVERY.NAME=\u30B3\u30DF\u30C3\u30C8\u3059\u308B\u9593\u9694
DBD-DB2.INFO=\u5FC5\u9808
DIE_ON_ERROR.NAME=\u30A8\u30E9\u30FC\u5F37\u5236\u7D42\u4E86
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
DIE_ON_ERROR.NAME=\u30A8\u30E9\u30FC\u767A\u751F\u6642\u306B\u5F37\u5236\u7D42\u4E86
ENCODING.NAME=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0
HELP=org.talend.help.tAS400Row
HOST.NAME=\u30DB\u30B9\u30C8
LONG_NAME=\u5404Talend\u30D5\u30ED\u30FC\u306E\u53CD\u5FA9\u3067SQL\u30AF\u30A8\u30EA\u3092\u5B9F\u884C\u3057\u307E\u3059
LONG_NAME=\u5404Talend\u30D5\u30ED\u30FC\u306E\u53CD\u5FA9\u3067SQL\u30AF\u30A8\u30EA\u30FC\u3092\u5B9F\u884C\u3057\u307E\u3059
NB_LINE.NAME=\u884C\u6570
PASS.NAME=\u30D1\u30B9\u30EF\u30FC\u30C9
PROPERTIES.NAME=\u8FFD\u52A0\u306EJDBC\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC
QUERY.NAME=\u30AF\u30A8\u30EA
QUERY.NAME=\u30AF\u30A8\u30EA\u30FC
REJECT.LINK=\u30EA\u30B8\u30A7\u30AF\u30C8
REJECT.MENU=\u30EA\u30B8\u30A7\u30AF\u30C8
SCHEMA_DB.NAME=\u30B9\u30AD\u30FC\u30DE
USER.NAME=\u30E6\u30FC\u30B6\u30FC\u540D
USE_EXISTING_CONNECTION.NAME=\u65E2\u5B58\u306E\u63A5\u7D9A\u3092\u4F7F\u7528
PROPAGATE_RECORD_SET.NAME=QUERY\u306E\u30EC\u30B3\u30FC\u30C9\u30BB\u30C3\u30C8\u306E\u4F1D\u64AD
PROPAGATE_RECORD_SET.NAME=QUERY\u306E\u30EC\u30B3\u30FC\u30C9\u30BB\u30C3\u30C8\u3092\u4F1D\u64AD
RECORD_SET_COLUMN.NAME=\u30AB\u30E9\u30E0\u306E\u4F7F\u7528
TABLE.NAME=\u30C6\u30FC\u30D6\u30EB\u540D
DB_VERSION.NAME=DB\u30D0\u30FC\u30B8\u30E7\u30F3
DB_VERSION.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D0\u30FC\u30B8\u30E7\u30F3
DB_VERSION.ITEM.V5R2_V5R4=V5R2\u304B\u3089V5R4 (\u975E\u63A8\u5968)
DB_VERSION.ITEM.V5R3_V6R1=V5R3\u304B\u3089V6R1 (\u975E\u63A8\u5968)
DB_VERSION.ITEM.V6R1_V7R2=V6R1\u304B\u3089V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1\u304B\u3089V7R3
TYPE.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C9\u30E9\u30A4\u30D0\u30FC
PROPERTY.NAME=\u30D7\u30ED\u30D1\u30C6\u30A3\u30BF\u30A4\u30D7
CONNECTION.NAME=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30EA\u30B9\u30C8
SCHEMA_FLOW.NAME=\u30B9\u30AD\u30FC\u30DE
SCHEMA_REJECT.NAME=\u30B9\u30AD\u30FC\u30DE\u306E\u62D2\u5426
QUERYSTORE.NAME=\u30AF\u30A8\u30EA\u30BF\u30A4\u30D7
USE_PREPAREDSTATEMENT.NAME=PreparedStatement\u306E\u4F7F\u7528
SET_PREPAREDSTATEMENT_PARAMETERS.NAME=PreparedStatement\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u8A2D\u5B9A
SCHEMA_REJECT.NAME=\u30B9\u30AD\u30FC\u30DE\u306E\u30EA\u30B8\u30A7\u30AF\u30C8
QUERYSTORE.NAME=\u30AF\u30A8\u30EA\u30FC\u30BF\u30A4\u30D7
USE_PREPAREDSTATEMENT.NAME=PreparedStatement\u3092\u4F7F\u3046
SET_PREPAREDSTATEMENT_PARAMETERS.NAME=PreparedStatement\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306E\u8A2D\u5B9A
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_INDEX=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306E\u7A2E\u985E
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u30BF\u30A4\u30D7
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.BigDecimal=BigDecimal
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Blob=Blob
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Boolean=\u30D6\u30FC\u30EB\u5024
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Byte=\u30D0\u30A4\u30C8
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Bytes=\u30D0\u30A4\u30C8
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Clob=Clob
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Date=\u65E5\u6642
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Date=\u65E5\u4ED8
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Double=\u500D\u6570
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Float=Float
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Int=\u6574\u6570
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Long=Long
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Object=\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Short=\u77ED\u3044
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Short=Short
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.String=\u6587\u5B57\u5217
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Time=\u6642\u9593
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Null=Null
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_VALUE=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306E\u5024
DB_VERSION.ITEM.V6R1_V7R2=V6R1\u304B\u3089V7R2
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
NB_LINE.NAME=\u884C\u6570
DB_VERSION.ITEM.V7R1_V7R3=V7R1\u304B\u3089V7R3
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_VALUE=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u5024

View File

@@ -1,10 +1,12 @@
COMMIT_EVERY.NAME=\u63D0\u4EA4\u95F4\u9694
DBD-DB2.INFO=\u5FC5\u9700
DBNAME.NAME=\u6570\u636E\u5E93
DIE_ON_ERROR.NAME=\u9519\u8BEF\u65F6\u7EC8\u6B62
ENCODING.NAME=\u7F16\u7801
HELP=org.talend.help.tAS400Row
HOST.NAME=\u4E3B\u673A
LONG_NAME=\u5728\u6BCF\u4E2A Talend \u6D41\u8FED\u4EE3\u65F6\u6267\u884C SQL \u67E5\u8BE2
NB_LINE.NAME=\u884C\u6570
PASS.NAME=\u5BC6\u7801
PROPERTIES.NAME=\u9644\u52A0 JDBC \u53C2\u6570
QUERY.NAME=\u67E5\u8BE2
@@ -19,6 +21,8 @@ TABLE.NAME=\u8868\u540D\u79F0
DB_VERSION.NAME=\u6570\u636E\u5E93\u7248\u672C
DB_VERSION.ITEM.V5R2_V5R4=V5R2 \u5230 V5R4 (\u5DF2\u5F03\u7528)
DB_VERSION.ITEM.V5R3_V6R1=V5R3 \u5230 V6R1 (\u5DF2\u5F03\u7528)
DB_VERSION.ITEM.V6R1_V7R2=V6R1 \u81F3 V7R2
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u5230 V7R3
TYPE.NAME=\u6570\u636E\u5E93\u9A71\u52A8
PROPERTY.NAME=\u5C5E\u6027\u7C7B\u578B
CONNECTION.NAME=\u7EC4\u4EF6\u5217\u8868
@@ -46,7 +50,3 @@ SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.String=String
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Time=\u65F6\u95F4
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_TYPE.ITEM.Null=Null
SET_PREPAREDSTATEMENT_PARAMETERS.ITEM.PARAMETER_VALUE=\u53C2\u6570\u503C
DB_VERSION.ITEM.V6R1_V7R2=V6R1 \u81F3 V7R2
DBNAME.NAME=\u6570\u636E\u5E93
NB_LINE.NAME=\u884C\u6570
DB_VERSION.ITEM.V7R1_V7R3=V7R1 \u5230 V7R3

View File

@@ -1,6 +1,9 @@
DBNAME.NAME=Base de donn\u00E9es
ENCODING.NAME=Encodage
FILENAME.NAME=Fichier local
FILENAME.NAME=Nom du fichier local
HELP=org.talend.help.tAccessBulkExec
LONG_NAME=Demande \u00E0 une base de donn\u00E9es Access de charger un fichier de chargement de masse dans une base de donn\u00E9es d\u00E9finie
NB_LINE.NAME=Nombre de lignes
NULL_CHAR.NAME=Caract\u00E8re Null
PASS.NAME=Mot de passe
TABLE.NAME=Table
@@ -10,7 +13,8 @@ TABLE_ACTION.ITEM.CLEAR=Vider la table
TABLE_ACTION.ITEM.TRUNCATE=Tronquer la table
TABLE_ACTION.ITEM.CREATE=Cr\u00E9er la table
TABLE_ACTION.ITEM.CREATE_IF_NOT_EXISTS=Cr\u00E9er la table si elle n'existe pas
TABLE_ACTION.ITEM.DROP_CREATE=Supprimer la table et la cr\u00E9er
TABLE_ACTION.ITEM.DROP_IF_EXISTS_AND_CREATE=Supprimer la table si elle existe et la cr\u00E9er
TABLE_ACTION.ITEM.DROP_CREATE=Supprimer et cr\u00E9er la table
TABLE_ACTION.ITEM.NONE=Aucune
DATA_ACTION.NAME=Action sur les donn\u00E9es
DATA_ACTION.ITEM.INSERT=Insert
@@ -23,7 +27,5 @@ DB_VERSION.NAME=Version de la base de donn\u00E9es
DB_VERSION.ITEM.Access_2003=Access 2003
DB_VERSION.ITEM.Access_2007=Access 2007
INCLUDEHEADER.NAME=Inclure l'en-t\u00EAte
PROPERTIES.NAME=Param\u00E8tres JDBC suppl\u00E9mentaires
PROPERTIES.NAME=Param\u00E8tres suppl\u00E9mentaires JDBC
USE_EXISTING_CONNECTION.NAME=Utiliser une connexion existante
TABLE_ACTION.ITEM.DROP_IF_EXISTS_AND_CREATE=Supprimer la table si elle existe et la cr\u00E9er
DBNAME.NAME=Base de donn\u00E9es

View File

@@ -1,31 +1,31 @@
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
ENCODING.NAME=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0
FILENAME.NAME=\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u540D
HELP=org.talend.help.tAccessBulkExec
LONG_NAME=\u5B9A\u7FA9\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3078\u306E\u4E00\u62EC\u30D5\u30A1\u30A4\u30EB\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3092Access\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B\u8981\u6C42\u3057\u307E\u3059\u3002
NB_LINE.NAME=\u884C\u6570
NULL_CHAR.NAME=Null\u6587\u5B57
PASS.NAME=\u30D1\u30B9\u30EF\u30FC\u30C9
TABLE.NAME=\u30C6\u30FC\u30D6\u30EB
USER.NAME=\u30E6\u30FC\u30B6\u30FC\u540D
TABLE_ACTION.NAME=\u30C6\u30FC\u30D6\u30EB\u3078\u306E\u30A2\u30AF\u30B7\u30E7\u30F3
TABLE_ACTION.NAME=\u30C6\u30FC\u30D6\u30EB\u306E\u64CD\u4F5C
TABLE_ACTION.ITEM.CLEAR=\u30C6\u30FC\u30D6\u30EB\u306E\u30AF\u30EA\u30A2
TABLE_ACTION.ITEM.TRUNCATE=\u30C6\u30FC\u30D6\u30EB\u3092\u5207\u308A\u8A70\u3081\u308B
TABLE_ACTION.ITEM.TRUNCATE=\u30C6\u30FC\u30D6\u30EB\u306E\u5207\u308A\u6368\u3066
TABLE_ACTION.ITEM.CREATE=\u30C6\u30FC\u30D6\u30EB\u306E\u4F5C\u6210
TABLE_ACTION.ITEM.CREATE_IF_NOT_EXISTS=\u30C6\u30FC\u30D6\u30EB\u304C\u306A\u3044\u5834\u5408\u306F\u30C6\u30FC\u30D6\u30EB\u3092\u4F5C\u6210\u3057\u307E\u3059
TABLE_ACTION.ITEM.CREATE_IF_NOT_EXISTS=\u5B58\u5728\u3057\u306A\u3044\u5834\u5408\u306F\u30C6\u30FC\u30D6\u30EB\u3092\u4F5C\u6210
TABLE_ACTION.ITEM.DROP_IF_EXISTS_AND_CREATE=\u5B58\u5728\u3059\u308B\u5834\u5408\u306F\u30C6\u30FC\u30D6\u30EB\u3092\u524A\u9664\u3057\u3066\u4F5C\u6210
TABLE_ACTION.ITEM.DROP_CREATE=\u30C9\u30ED\u30C3\u30D7\u3057\u3066\u30C6\u30FC\u30D6\u30EB\u3092\u4F5C\u6210
TABLE_ACTION.ITEM.NONE=\u306A\u3057
DATA_ACTION.NAME=\u30C7\u30FC\u30BF\u3078\u306E\u30A2\u30AF\u30B7\u30E7\u30F3
DATA_ACTION.ITEM.INSERT=\u633F\u5165
PROPERTY.NAME=\u30D7\u30ED\u30D1\u30C6\u30A3\u30BF\u30A4\u30D7
MAPPING.NAME=Mapping
MAPPING.NAME=\u30DE\u30C3\u30D4\u30F3\u30B0
SCHEMA.NAME=\u30B9\u30AD\u30FC\u30DE
NOTE.NAME=\u30CE\u30FC\u30C8
NOTE.NAME=\u6CE8
CONNECTION.NAME=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30EA\u30B9\u30C8
DB_VERSION.NAME=DB\u30D0\u30FC\u30B8\u30E7\u30F3
DB_VERSION.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D0\u30FC\u30B8\u30E7\u30F3
DB_VERSION.ITEM.Access_2003=Access 2003
DB_VERSION.ITEM.Access_2007=Access 2007
INCLUDEHEADER.NAME=\u30D8\u30C3\u30C0\u30FC\u3092\u542B\u3080
INCLUDEHEADER.NAME=\u30D8\u30C3\u30C0\u30FC\u3092\u542B\u3081\u308B
PROPERTIES.NAME=\u8FFD\u52A0\u306EJDBC\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC
USE_EXISTING_CONNECTION.NAME=\u65E2\u5B58\u306E\u63A5\u7D9A\u3092\u4F7F\u7528
TABLE_ACTION.ITEM.DROP_IF_EXISTS_AND_CREATE=\u30C6\u30FC\u30D6\u30EB\u304C\u3042\u308B\u5834\u5408\u306F\u30C6\u30FC\u30D6\u30EB\u3092\u30C9\u30ED\u30C3\u30D7\u3057\u3066\u4F5C\u6210\u3057\u307E\u3059
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
NB_LINE.NAME=\u884C\u6570

View File

@@ -1,7 +1,9 @@
DBNAME.NAME=\u6570\u636E\u5E93
ENCODING.NAME=\u7F16\u7801
FILENAME.NAME=\u672C\u5730\u6587\u4EF6\u540D
HELP=org.talend.help.tAccessBulkExec
LONG_NAME=\u8BF7\u6C42 Access \u6570\u636E\u5E93\u4E0A\u4F20\u6279\u91CF\u6587\u4EF6\u5230\u5B9A\u4E49\u6570\u636E\u5E93\u4E2D
NB_LINE.NAME=\u884C\u6570
NULL_CHAR.NAME=Null \u5B57\u7B26
PASS.NAME=\u5BC6\u7801
TABLE.NAME=\u8868
@@ -11,6 +13,7 @@ TABLE_ACTION.ITEM.CLEAR=\u6E05\u9664\u8868
TABLE_ACTION.ITEM.TRUNCATE=\u622A\u65AD\u8868
TABLE_ACTION.ITEM.CREATE=\u521B\u5EFA\u8868
TABLE_ACTION.ITEM.CREATE_IF_NOT_EXISTS=\u5982\u679C\u8868\u4E0D\u5B58\u5728\uFF0C\u5219\u521B\u5EFA\u8868
TABLE_ACTION.ITEM.DROP_IF_EXISTS_AND_CREATE=\u5982\u679C\u8868\u5B58\u5728\uFF0C\u5219\u5148\u5220\u9664\u518D\u521B\u5EFA
TABLE_ACTION.ITEM.DROP_CREATE=\u5220\u9664\u5E76\u521B\u5EFA\u8868
TABLE_ACTION.ITEM.NONE=\u65E0
DATA_ACTION.NAME=\u6570\u636E\u64CD\u4F5C
@@ -26,6 +29,3 @@ DB_VERSION.ITEM.Access_2007=Access 2007
INCLUDEHEADER.NAME=\u5305\u542B\u6587\u4EF6\u5934
PROPERTIES.NAME=\u9644\u52A0 JDBC \u53C2\u6570
USE_EXISTING_CONNECTION.NAME=\u4F7F\u7528\u4E00\u4E2A\u73B0\u6709\u8FDE\u63A5
TABLE_ACTION.ITEM.DROP_IF_EXISTS_AND_CREATE=\u5982\u679C\u8868\u5B58\u5728\uFF0C\u5219\u5148\u5220\u9664\u518D\u521B\u5EFA
DBNAME.NAME=\u6570\u636E\u5E93
NB_LINE.NAME=\u884C\u6570

View File

@@ -1,2 +1,3 @@
LONG_NAME=Ferme la connexion Access s\u00E9lectionn\u00E9e
HELP=org.talend.help.tAccessClose
LONG_NAME=Ferme la connexion \u00E0 Access s\u00E9lectionn\u00E9e
CONNECTION.NAME=Liste des composants

View File

@@ -1,3 +1,3 @@
HELP=org.talend.help.tAccessClose
LONG_NAME=\u9078\u629E\u3055\u308C\u305FAccess\u63A5\u7D9A\u3092\u9589\u3058\u307E\u3059\u3002
CONNECTION.NAME=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30EA\u30B9\u30C8
HELP=org.talend.help.tAccessClose

View File

@@ -1,3 +1,3 @@
HELP=org.talend.help.tAccessClose
LONG_NAME=\u5173\u95ED\u9009\u5B9A\u7684 Access \u8FDE\u63A5\u3002
CONNECTION.NAME=\u7EC4\u4EF6\u5217\u8868
HELP=org.talend.help.tAccessClose

View File

@@ -1,3 +1,4 @@
CLOSE.NAME=Fermer la connexion
HELP=org.talend.help.tAccessCommit
LONG_NAME=Commite toutes les transactions qui n'ont pas encore \u00E9t\u00E9 commit\u00E9es dans une connexion Access
CONNECTION.NAME=Liste des composants

View File

@@ -1,4 +1,4 @@
CLOSE.NAME=\u63A5\u7D9A\u3092\u9589\u3058\u308B
CLOSE.NAME=\u63A5\u7D9A\u306E\u7D42\u4E86
HELP=org.talend.help.tAccessCommit
LONG_NAME=\u9078\u629E\u3055\u308C\u305FAccess\u63A5\u7D9A\u3067\u307E\u3060\u30B3\u30DF\u30C3\u30C8\u3055\u308C\u3066\u3044\u306A\u3044\u3059\u3079\u3066\u306E\u30C8\u30E9\u30F3\u30B6\u30AF\u30B7\u30E7\u30F3\u3092\u30B3\u30DF\u30C3\u30C8\u3057\u307E\u3059\u3002
CONNECTION.NAME=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30EA\u30B9\u30C8

View File

@@ -118,14 +118,14 @@
<IMPORT NAME="Driver-JACKCESS" MODULE="jackcess-2.1.12.jar" MVN="mvn:com.healthmarketscience.jackcess/jackcess/2.1.12" REQUIRED="true"/>
<IMPORT NAME="jackcess-encrypt-2.1.4" MODULE="jackcess-encrypt-2.1.4.jar" MVN="mvn:com.healthmarketscience.jackcess/jackcess-encrypt/2.1.4" REQUIRED="true"/>
<IMPORT NAME="bcprov-jdk15on-1.68" MODULE="bcprov-jdk15on-1.68.jar" MVN="mvn:org.bouncycastle/bcprov-jdk15on/1.68" REQUIRED="true"/>
<IMPORT NAME="bcprov-jdk15on-1.69" MODULE="bcprov-jdk15on-1.69.jar" MVN="mvn:org.bouncycastle/bcprov-jdk15on/1.69" REQUIRED="true"/>
<IMPORT NAME="talend-ucanaccess-utils-1.0.0" MODULE="talend-ucanaccess-utils-1.0.0.jar" MVN="mvn:org.talend.libraries/talend-ucanaccess-utils-1.0.0/6.4.0" REQUIRED="true"/>
<IMPORT NAME="common2.6" MODULE="commons-lang-2.6.jar" MVN="mvn:commons-lang/commons-lang/2.6" UrlPath="platform:/plugin/org.talend.libraries.apache.common/lib/commons-lang-2.6.jar" REQUIRED="true"/>
<IMPORT NAME="common-logging1.1.3" MODULE="commons-logging-1.1.3.jar" MVN="mvn:commons-logging/commons-logging/1.1.3" UrlPath="platform:/plugin/org.talend.libraries.apache.common/lib/commons-logging-1.1.3.jar" REQUIRED="true"/>
<IMPORT NAME="slf4j-api-1.7.25.jar" MODULE="slf4j-api-1.7.25.jar" MVN="mvn:org.slf4j/slf4j-api/1.7.25" REQUIRED_IF="USE_SHARED_CONNECTION =='true'" />
<IMPORT NAME="slf4j-log4j12-1.7.25.jar" MODULE="slf4j-log4j12-1.7.25.jar" MVN="mvn:org.slf4j/slf4j-log4j12/1.7.25" REQUIRED_IF="USE_SHARED_CONNECTION =='true'" />
<IMPORT NAME="slf4j-api-1.7.29.jar" MODULE="slf4j-api-1.7.29.jar" MVN="mvn:org.slf4j/slf4j-api/1.7.29" REQUIRED_IF="USE_SHARED_CONNECTION =='true'" />
<IMPORT NAME="slf4j-log4j12-1.7.29.jar" MODULE="slf4j-log4j12-1.7.29.jar" MVN="mvn:org.slf4j/slf4j-log4j12/1.7.29" REQUIRED_IF="USE_SHARED_CONNECTION =='true'" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -1,18 +1,20 @@
DBNAME.NAME=Base de donn\u00E9es
ENCODING.NAME=Encodage
HELP=org.talend.help.tAccessConnection
HOST.NAME=H\u00F4te
LONG_NAME=Cr\u00E9e une connexion \u00E0 une base de donn\u00E9es Access
PASS.NAME=Mot de passe
PORT.NAME=Port
PROPERTIES.NAME=Param\u00E8tres JDBC suppl\u00E9mentaires
PROPERTIES.NAME=Param\u00E8tres suppl\u00E9mentaires JDBC
USER.NAME=Utilisateur
USE_SHARED_CONNECTION.NAME=Utiliser ou enregistrer une connexion partag\u00E9e \u00E0 une base de donn\u00E9es
SHARED_CONNECTION_NAME.NAME=Nom de connexion partag\u00E9e \u00E0 une base de donn\u00E9es
AUTO_COMMIT.NAME=Commit automatique
TYPE.NAME=Pilote de base de donn\u00E9es
SHARED_CONNECTION_NAME.NAME=Nom de la connexion partag\u00E9e \u00E0 la base de donn\u00E9es
AUTO_COMMIT.NAME=Commit auto
TYPE.NAME=Pilote de la base de donn\u00E9es
PROPERTY.NAME=Type de propri\u00E9t\u00E9
DB_VERSION.NAME=Version de la base de donn\u00E9es
DB_VERSION.ITEM.Access_2003=Access 2003
DB_VERSION.ITEM.Access_2007=Access 2007
JDBC_ODBC.NAME=Mode de connexion
JDBC_ODBC.ITEM.ODBC=ODBC
JDBC_ODBC.ITEM.JDBC=JDBC
DBNAME.NAME=Base de donn\u00E9es

View File

@@ -1,3 +1,4 @@
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9
ENCODING.NAME=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0
HELP=org.talend.help.tAccessConnection
HOST.NAME=\u30DB\u30B9\u30C8
@@ -11,10 +12,9 @@ SHARED_CONNECTION_NAME.NAME=\u5171\u6709DB\u63A5\u7D9A\u540D
AUTO_COMMIT.NAME=\u81EA\u52D5\u30B3\u30DF\u30C3\u30C8
TYPE.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C9\u30E9\u30A4\u30D0\u30FC
PROPERTY.NAME=\u30D7\u30ED\u30D1\u30C6\u30A3\u30BF\u30A4\u30D7
DB_VERSION.NAME=DB\u30D0\u30FC\u30B8\u30E7\u30F3
DB_VERSION.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30D0\u30FC\u30B8\u30E7\u30F3
DB_VERSION.ITEM.Access_2003=Access 2003
DB_VERSION.ITEM.Access_2007=Access 2007
JDBC_ODBC.NAME=\u63A5\u7D9A\u30E2\u30FC\u30C9
JDBC_ODBC.ITEM.ODBC=ODBC
JDBC_ODBC.ITEM.JDBC=JDBC
DBNAME.NAME=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9

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