Compare commits

...

70 Commits

Author SHA1 Message Date
Chao MENG
1ab7eaeca6 feat(TUP-29801): Improve logon dialog loading time (#5731)
* feat(TUP-29801): Improve logon dialog loading time
https://jira.talendforge.org/browse/TUP-29801

* feat(TUP-29801): Improve logon dialog loading time
https://jira.talendforge.org/browse/TUP-29801

* feat(TUP-29801): Improve logon dialog loading time
https://jira.talendforge.org/browse/TUP-29801
2021-02-24 10:35:43 +08:00
jiezhang-tlnd
069a7b26c3 fix(TUP-30273)tDBOutput component compilation error (#5797)
https://jira.talendforge.org/browse/TUP-30273
2021-02-23 16:33:16 +08:00
pyzhou
6a3651d3b6 fix(TDI-45436):upgrade xstream 2021-02-20 17:59:43 +08:00
Laurent BOURGEOIS
029c0ccb5c fix(TBD-11971):Spark joblets keeps defaulting to HDFS (#5824) 2021-02-12 11:24:12 +01:00
Emmanuel GALLOIS
1382b4efb4 feat(TDI-45225): bump component-runtime to 1.29.1 (#5801)
* feat(TDI-45225): bump component-runtime to 1.28.2 for bouncycastle CVE
2021-02-12 09:55:20 +01:00
hzhao-talendbj
b0d3a70cf3 fix(TUP-30373): Implicit Context with field separator tab "\t" doesn't work (#5825)
* fix(TUP-30373): Implicit Context with field separator tab "\t" doesn't
work anymore

* TUP-30373  code change + add junit
2021-02-09 17:33:32 +08:00
Dmytro Sylaiev
1f20471fbe fix(TDI-45476): Remove adding second list (#5838) 2021-02-09 11:08:34 +02:00
vdrokov
d28ffc5736 TESB-32126: Null pointer exception when accessing job properties (#5837) 2021-02-08 18:01:19 +02:00
vdrokov
146cf1dc0e TESB-31783: Failed to get nested archive for entry BOOT-INF/lib/aws-j… (#5745)
* TESB-31783: Failed to get nested archive for entry BOOT-INF/lib/aws-java-sdk-1.11.848.jar Caused by: java.lang.IllegalStateException: Zip64 archives are not support

* TESB-31783: Failed to get nested archive for entry BOOT-INF/lib/aws-java-sdk-1.11.848.jar Caused by: java.lang.IllegalStateException: Zip64 archives are not supported
2021-02-08 09:26:41 +01:00
hcyi
6c03ca588a fix(TUP-30067):Dataproc Hive metadata not in sync with Hive component. (#5815) 2021-02-08 15:39:19 +08:00
pyzhou
b528ca9a0d fix(TDI-45529):CVE bouncy castle tcloudXXX (#5805) 2021-02-07 16:05:50 +08:00
vyu-talend
888765461c Vyu/tdi 43232 improve where clause for eltoutput m3 (#5774)
* feat(TDI-43232):improve where clause for eltoutput

* feat(TDI-43232):fix some mistakes.

* feat(TDI-43232):fix some issues found by QA.

* feat(TDI-43232):optimize code

* feat(TDI-43232):fix some errors.
2021-02-07 15:17:20 +08:00
ovladyka
ae2f00f1a8 Revert "fix(TDI-45503):Comma missing for tELTMap with multiple inputs, when aliases are used (#5821)" (#5826)
This reverts commit a92fedb9b4.
2021-02-05 11:44:58 +02:00
sbliu
704b63d59c fix(TUP-30186) fix unit test failure. (#5819) 2021-02-05 10:37:00 +08:00
ovladyka
a92fedb9b4 fix(TDI-45503):Comma missing for tELTMap with multiple inputs, when aliases are used (#5821)
Co-authored-by: Oleksandr Vladyka <oleksandr.vladyka@synapse.com>
2021-02-04 16:31:25 +02:00
Hanna Liashchuk
f1a7d2f235 fix(TBD-11964): migration task for use local timezone (#5802)
* fix(TBD-11964): migration task for use local timezone

* fix(TBD-11964): correct date
2021-02-04 13:15:13 +02:00
Dmytro Sylaiev
1702b27493 fix(TDI-45476): Increate tFileOutputMSXML performance (#5741)
* fix(TDI-45476): Increate tFileOutputMSXML performance

* fix(TDI-45476): Change generic type for list to avoid compile error

* fix(TDI-45476): Store sublist into the resourceMap

* fix(TDI-45476): Fix code compile error
2021-02-04 13:02:17 +02:00
bhe-talendbj
cf55315820 fix(TUP-29764): encrypt all PASSWORD fields of job in new format (#5760)
* fix(TUP-29764): migrate all PASSWORD fields of job

* fix(TUP-29764): Resolve comments
2021-02-03 18:02:38 +08:00
vdrokov
d25b125c08 TESB-31044: Data service's endpoint can't be updated if passed as a context variable (#5772) 2021-02-03 09:58:30 +02:00
clesaec
290d9566ed TDI-40364 - change encoding buffer (#5764)
* TDI-40364 : adapt buffer size
2021-02-03 08:23:19 +01:00
pyzhou
0c85bdc4be Pyzhou/tdi 45463 t elt components support delta lake (#5758)
* feat(TDI-45463):tELT components support Delta Lake

* Add delta lake to xml

* add property name

* change logic to hive

* disable Delta Lake for tSQLTemplateMerge

* Revert "disable Delta Lake for tSQLTemplateMerge"

This reverts commit febd9b7e55.

* remove useless code

* correct partition

* correct partition

* add space

* correct mapping and create table

* revert change for tCreateTable_java.xml

* deactive update mode for Delta Lake tELTOutput

* format

* set not-required for partition

* remove test code
2021-02-02 17:36:45 +08:00
jiezhang-tlnd
a4cb0d13d2 fix(TUP-28519):Update org.talend.libraries.apache.google jars (#5199) (#5800)
remove org.talend.libraries.apache.google plugin
https://jira.talendforge.org/browse/TUP-28519

Co-authored-by: Jane Ding <jding@talend.com>
2021-02-02 16:16:20 +08:00
sbliu
502742bad2 fix(TUP-30186) On studio ,java.lang.RuntimeException: Illegal hexadecimal character m at index 0.
fix encode problem when saving job,fix load job problem caused by wrong hex value decode.
handle the wrong migration of hex value, add new migration task to handle wrong jar mvn GAV when import data during last migration, append unit test.
2021-02-02 14:04:52 +08:00
Laurent BOURGEOIS
83a64d3d2c feat(TBD-10921):Add Spark local 3.0.x (#5658) 2021-01-29 18:17:51 +01:00
kjwang
30bbb27e87 Fix TUP-29885 ERROR: Some patches are not compatible with current product (#5714)
* Fix TUP-29885 ERROR: Some patches are not compatible with current
product
https://jira.talendforge.org/browse/TUP-29885
2021-01-29 17:29:56 +08:00
pyzhou
b554d94736 Pyzhou/tdi 45542 t redshift bulk exec support parquet 7.3 (#5795)
* feat(TDI-45542):tRedshiftBulkExec support parquet

* Add STATUPDATE checkbox

* fix show if
2021-01-29 16:07:21 +08:00
Jane Ding
13bbfcca1d fix(TUP-23738):The couchbase icon is not correct when import (#5713)
https://jira.talendforge.org/browse/TUP-23738

Signed-off-by: jding-tlnd <jding@talend.com>
2021-01-29 10:05:04 +08:00
zyuan-talend
6bebbba8ee fix(TUP-23477):fix TreeToTable connection line issue on Mac with BigSur. (#5786) 2021-01-29 09:54:14 +08:00
hcyi
37dc7ca816 fix(TUP-30108):tELTMSSqlInput & tELTMSSqlMap context not recognized after migrating to 7.3.1. (#5751)
* fix(TUP-30108):tELTMSSqlInput & tELTMSSqlMap context not recognized
after migrating to 7.3.1.

* fix(TUP-30108):add more junits .

* fix(TUP-30108):tELTMSSqlInput & tELTMSSqlMap context not recognized
after migrating to 7.3.1
2021-01-28 15:31:23 +08:00
jzhao
242fa6c729 fix(TDI-45400):Dynamic Schema has default length of 100 even after setting to different amount (#5770)
* fix(TDI-45400):Dynamic Schema has default length of 100 even after
setting to different amount.

* fix(TDI-45400):add migration task
2021-01-28 10:57:34 +08:00
wang wei
d1d4dcd7f6 fix(TDI-45432): tBigQueryOutput fails when the checkbox "Create the table if it doesn't exist" is ticked (#5691) 2021-01-26 11:02:06 +08:00
pyzhou
885d14671a fix(TDI-45447): Upgrade bouncycastle to 1.68 2021-01-25 16:17:10 +08:00
clesaec
8fa189bd31 TDI-29308 - Json (#5726) 2021-01-22 07:50:49 +01:00
vdrokov
fe86a1ef43 TESB-31657: AWS SQS not able to deploy to Runtime (#5742) 2021-01-21 18:17:52 +01:00
vdrokov
8751efe56e TESB-31563: Microservice: ClassNotFoundException: org.eclipse.jetty.client.HttpClientTransport (#5670) 2021-01-21 16:55:52 +02:00
mbasiuk-talend
236fb7fc65 fix(TDI-45455): excel output exceeding characters (#5730)
* fix(TDI-45455): truncate exceeding characters, use property

* fix(TDI-45455): add one missing place

* fix(TDI-45455): improve property wording
2021-01-20 20:43:19 +02:00
Chao MENG
c55409088f fix(TUP-30170): [7.3.1] tHbaseInput error with R2020-11 or higher (#5749)
java.lang.String cannot be cast to java.util.List
https://jira.talendforge.org/browse/TUP-30170

Conflicts:
	main/plugins/org.talend.designer.core/src/main/java/org/talend/designer/core/ui/editor/cmd/ChangeValuesFromRepository.java
2021-01-19 17:18:42 +08:00
jzhao
7ead0130ac fix(TDI-45513):tGreenplumGPLoad global variable "RUNTIME" should be Long type(#5746) 2021-01-19 14:28:04 +08:00
clesaec
562d3700b1 TDI-32744 : sub process (#5724) 2021-01-18 11:16:52 +01:00
Emmanuel GALLOIS
3d5fb83763 feat(TDI-45225): upgrade component-runtime to 1.1.29 (#5600)
* feat(TDI-45225): fix test import errors due by bump xbean to 4.18
* feat(TDI-45225): fix deps svc
* feat(TDI-45225): bump component-runtime to 1.28.1
* feat(TDI-45225): fix microservices classloading issues with SPI
2021-01-14 10:24:26 +01:00
zyuan-talend
41f1df71d7 fix(TUP-29784): fix WebService display issues on Mac with BigSur. (#5720) 2021-01-13 17:22:43 +08:00
jzhao
0f7596dcb8 feat(TDI-45144): Support For GreenPlum 6.x (#5716)
* correct and update greenplum driver version
* deprecate postgresql driver
2021-01-12 10:13:46 +08:00
jzhao
520e379e48 feat(TDI-45007 & TDI-31602): Enhance component tGreenplumGPLoad (#5709)
* feat(TDI-45007 & TDI-31602): Enhance component tGreenplumGPLoad

## tGreenplumGPLoad/tGreenplumGPLoad_begin.javajet /
tGreenplumGPLoad/tGgreenplumGPLoad_java.xml

Added guessColumnList so the yaml will contain the columns of the talend
schema, this is extremely useful if the target table has extra columns
(for example to load only the primary keys to a staging table) This will
generate the "  COLUMNS:" section of the YAML file.

Added parameters to the advanced settings, more information for these
can be found at:
https://gpdb.docs.pivotal.io/6-12/utility_guide/ref/gpload.html#topic1__section7
Parameters include:
  LOG_ERRORS:
  MAX_LINE_LENGTH:
  EXTERNAL:
    -SCHEMA:
  PRELOAD:
    -TRUNCATE:
    -REUSE_TABLES:
    -STAGING_TABLE:
    -FAST_MATCH:
  SQL:
    -BEFORE:
    -AFTER:

Changed the way command is built, so the Log4j now displays a command
that can be copy-pasted to the console for testing.
The yaml file was missing from it.
The PythonPath was also not printed to the log4j logs.

Sometimes a database connection was opened and closed without executing
any actions.

Password was never passed to gpload utility so it had to be managed
separately, it is now passed via context variable, which means when
executed by talend it won't prompt for a password and when executing
from console it will prompt for a password.

GPLoad will terminate if there was an error (for example target table
does not exists)

Extra after variables, for the gpload details:
		NB_LINE_INSERTED	Integer
		NB_LINE_UPDATED		Integer
		NB_DATA_ERRORS		Integer
		STATUS				String
		RUNTIME				String

Option to GZip compress the datafile, this will increase CPU usage, but
decreases DISK usage. (50-90% smaller files)
Remove data file after successful execution. If there were *any* errors
the data file is not removed.

## tGreenplumGPLoad/tGreenplumGPLoad_main.javajet
Added byte[] type support. Byte[] is converted to escaped OCTET
characters, which is compatible with all PostgreSQL versions from 8 to
13.

Fixed when newline / escape characters appeared in the data.

Postgresql uses null terminated bytes so those have to be removed from
the data to avoid errors.

## tGreenplumGPLoad/tGreenplumGPLoad_end.javajet
BugFix don't overwrite the actual inserted record number with 0

* feat(TDI-45007 & TDI-31602):Refactor, removed unused code.

* feat(TDI-45007 & TDI-31602):Enhanced log4j logs, so errors / warnings
are easier to spot.
Removed the duplicate log entries for the errors.

* gpload logs can be distinguished propery: gpload says:

* feat(TDI-45007 & TDI-31602):Reworked the PRELOAD and other sections

* feat(TDI-45007 & TDI-31602):Exit loop when external schema is found

* feat(TDI-45007 & TDI-31602):use schema column based the schema dbtype
setting and remove system.out code

* feat(TDI-45007 & TDI-31602): Only rename file when we have an input row
and the filename doesn't end with .gz

* feat(TDI-45007 & TDI-31602): Added proper escape for delimiters such as
vertical tab "\013"

Co-authored-by: Balázs Gunics <bgunics@talend.com>
2021-01-11 15:32:46 +08:00
Dmytro Grygorenko
28ae35dec6 fix(TDI-45440): fix CVE for Hibernate-Core-3.6.10 (#5707) 2021-01-08 10:35:32 +02:00
AlixMetivier
21245a297a fix(TBD-10689): deprecate old BD distrib (#5694)
* fix(TBD-10689): deprecate old BD distrib

* fix UI for tHiveConnection
2021-01-05 09:33:40 +01:00
bhe-talendbj
5131d00675 feat(TUP-29700): initial implement (#5660) 2021-01-05 10:00:22 +08:00
clesaec
f256fc6f38 TDI-45383 : replace without regexp (#5641) 2021-01-04 07:54:31 +01:00
zyuan-talend
30fa41dd46 fix(TUP-29782): fixed ELTDBMap display issues on Mac with BigSur. (#5688)
* fix(TUP-29775): use CTabFolder instead of TabFolder to reslove the display issue in BigSur.

* fix(TUP-29782): fixed ELTDBMap display issues on Mac with BigSur.
2020-12-31 15:32:41 +08:00
zyuan-talend
8a3a1a0289 fix(TUP-29775): use CTabFolder instead of TabFolder to reslove the display issue in BigSur. (#5684) 2020-12-31 15:28:00 +08:00
zyuan-talend
b3468eba73 fix(TUP-29350): fixed the tMap display issues with Big Sur (#5616)
* fix(TUP-29350): fixed the tMap display issues with Big Sur

* fix(TUP-29350): fixed the tMap display issues with Big Sur

* fix(TUP-29641): fixed tAdvancedFileOutputXML display issues with MacOS BigSur (#5647)

* fix(TUP-29774): fixed scroll display issue with many columns.

* fix(TUP-29767): fixed Expression Builder can't show value and can't edit

* fix(TUP-29766): fixed blank expression issue with Tab key.
2020-12-30 16:01:46 +08:00
sbliu
9d9d6b135b fix(TUP-29550) fix problem that "rename" Job in property sheet page duplicates item in Pom file (#5663) 2020-12-29 11:00:15 +08:00
Dmytro Grygorenko
7cbcd2967b fix(TDI-45385): fix CVE for tBonita* components. (#5649)
* fix(TDI-45385): fix CVE for tBonita* components.

* fix(TDI-45385): added missing double quotes
2020-12-28 08:53:33 +02:00
wang wei
918ca363fa fix(TDI-45404): tFileOutputExcel component gives The maximum number of cell styles was exceeded error (#5662) 2020-12-28 10:24:06 +08:00
sbliu
a473b624b7 fix(TUP-29590) fix httpcore sometimes not included when parent job has tRunjob, child job has tHiveConnection , and routine has dependency to httpcore. (#5648) 2020-12-28 10:13:49 +08:00
zshen-talend
1f6128dfd7 feat(TDQ-18757): Support SAP Hana on DQ profiling in Studio (#5596) 2020-12-25 17:22:04 +08:00
SunChaoqun
6fa4c42df1 TESB-31188:[7.3] LinkageError when resolving method (#5611)
"javax.xml.soap.SOAPPart.setContent(Ljavax/xml/transform/Source;)V"
2020-12-23 15:56:15 +01:00
Dmytro Grygorenko
1e61474fc0 fix(TDI-45366): fix for CVE issue with Apache Axis library. (#5642) 2020-12-23 11:33:25 +02:00
pyzhou
d6242e11cd fix(TDI-45377):tGPGDecrypt fail with gpg2 (#5634)
* fix(TDI-45377):tGPGDecrypt fail with gpg2

* fix(TDI-45377):add option

* add migration task
2020-12-23 15:10:10 +08:00
Jane Ding
d007d3740a fix(TUP-28657):Wrong behavior while Job Setting project config to choose (#5632)
From Database
https://jira.talendforge.org/browse/TUP-28657

Signed-off-by: jding-tlnd <jding@talend.com>
2020-12-21 09:20:24 +08:00
mbasiuk-talend
765accb8a3 fix(TDI-45124): enable transfer mode for ftps type (#5520) 2020-12-16 21:46:35 +02:00
mbasiuk-talend
b51c1282f7 fix(TDI-45260): update components with new library version (#5602) 2020-12-16 16:55:54 +02:00
hcyi
c98e18a58c fix(TUP-29072):improve for When renaming link (table) between teltinput and teltmap , the generated SQL query is not updated. (#5628)
* fix(TUP-29072):improve for When renaming link (table) between teltinput
and teltmap , the generated SQL query is not updated.

* fix(TUP-29072):improve for When renaming link (table) between teltinput
and teltmap , the generated SQL query is not updated.

* fix(TUP-29072):improve for When renaming link (table) between teltinput
and teltmap , the generated SQL query is not updated.
2020-12-16 15:49:59 +08:00
bhe-talendbj
e576293e58 fix(TUP-29693): Do not replace maven uri for context inside jarname (#5625)
* fix(TUP-29693): Do not replace maven uri for context inside jarname

* fix(TUP-29693): fix context inside jar name

* fix(TUP-29693): fix context inside jar name

* fix(TUP-2969): fix migrate maven uri for javajet components

* fix(TUP-2969): fix migrate maven uri for javajet components

* fix(TUP-2969): add check for project settings as well

* fix(TUP-29693): Kepp main logic unchanged
2020-12-15 09:50:17 +08:00
pyzhou
55812da6b6 fix(TDI-45346):tFileFetch does not accept 202 (#5612) 2020-12-11 16:25:56 +08:00
Jane Ding
074c13dd4e fix(TUP-28657):Wrong behavior while Job Setting project config to choose (#5597)
* fix(TUP-28657):Wrong behavior while Job Setting project config to choose
From Database
https://jira.talendforge.org/browse/TUP-28657

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

* fix(TUP-28657):Wrong behavior while Job Setting project config to choose
From Database
https://jira.talendforge.org/browse/TUP-28657

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

* fix(TUP-28657):Wrong behavior while Job Setting project config to choose
From Database
https://jira.talendforge.org/browse/TUP-28657

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

* fix(TUP-28657):Wrong behavior while Job Setting project config to choose
From Database
https://jira.talendforge.org/browse/TUP-28657
Signed-off-by: jding-tlnd <jding@talend.com>

* fix(TUP-28657):Wrong behavior while Job Setting project config to choose
From Database
https://jira.talendforge.org/browse/TUP-28657

Signed-off-by: jding-tlnd <jding@talend.com>
2020-12-11 11:37:28 +08:00
AlixMetivier
6088e2c2ca fix(TBD-11616): set dataset parameter to true for job already importe… (#5620)
* fix(TBD-11616): set dataset parameter to true for job already imported to 7.3 studios

* refacto

* fix
2020-12-10 17:31:47 +01:00
zshen-talend
1637e6220c Zshen/bugfix/tdq 18791 fix conflict2 (#5619)
* fix(TDQ-18817): support context in Confidence Weight on 7.3 and 7.4

* fix(TDQ-18791): change migration version
2020-12-10 18:09:50 +08:00
AlixMetivier
e96d2af073 fix(TBD-11616): parameterize dataset API utilization (#5562)
* fix(TBD-11616): parameterize dataset API utilization

* apply migration to only 7.3 and 7.4 studios

* fix for future studio versions

* fix bad merge
2020-12-10 09:57:35 +01:00
hcyi
a1e453e79a feat(TUP-25346):tELTTeradataOutput - aliases are mandatory for calculated columns (#5572)
* feat(TUP-25346):tELTTeradataOutput - aliases are mandatory for
calculated columns

* feat(TUP-25346):add junits for calculated columns.

* feat(TUP-25346):NEW RULE for if output column name is different than
output db column.

* fix(TUP-29598):[BUG] The "property setting" setting is missing after
migrating data(TUP-25346)

* feat(TUP-25346):NEW RULE if checked the alias option。

* fix(TUP-29636):[BUG] Studio does not support SQL scripts with alias when
execute update database(TUP-25346)

* feat(TUP-25346):change the junits since NEW RULE if checked the alias
option.

* feat(TUP-25346):remove some junits since no need.

* feat(TUP-25346):format the code

* feat(TUP-25346):format the code
2020-12-10 15:17:08 +08:00
wchen-talend
c8c4a586d0 fix(TESB-31294):move velocity.log to configuration folder (#5586) 2020-12-10 15:00:15 +08:00
232 changed files with 6638 additions and 2713 deletions

View File

@@ -20,7 +20,6 @@
<plugin id="org.talend.libraries.apache.chemistry" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.libraries.apache.common" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.libraries.apache.cxf" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.libraries.apache.google" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.libraries.apache.http" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.libraries.apache.lucene" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.libraries.apache.xml" download-size="0" install-size="0" version="0.0.0"/>

View File

@@ -642,6 +642,16 @@
}
%>
boolean inOSGi = routines.system.BundleUtils.inOSGi();
if (inOSGi) {
java.util.Dictionary<String, Object> jobProperties = routines.system.BundleUtils.getJobProperties(jobName);
if (jobProperties != null) {
contextStr = (String)jobProperties.get("context");
}
}
try {
//call job/subjob with an existing context, like: --context=production. if without this parameter, there will use the default context instead.
java.io.InputStream inContext = <%=className%>.class.getClassLoader().getResourceAsStream("<%=jobClassPackageFolder%>/contexts/" + contextStr + ".properties");

View File

@@ -44,7 +44,7 @@
INode startNode = subTree.getRootNode();
String startNodeId = startNode.getUniqueName();
if(startNodeId!=null && startNodeId.startsWith("tCollector")) {
if ("tCollector".equals( startNode.getComponent().getOriginalName() )) {
List<? extends INode> departitioners = startNode.getProcess().getNodesOfType("tDepartitioner");
if(departitioners!=null) {
for(INode departitioner : departitioners) {

View File

@@ -4,7 +4,7 @@
<groupId>org.talend.components</groupId>
<artifactId>talendExcel</artifactId>
<version>1.8-20201113</version>
<version>1.9-20201223</version>
<packaging>jar</packaging>
<name>talendExcel</name>

View File

@@ -80,6 +80,8 @@ public class ExcelTool {
private boolean isTrackAllColumns = false;
private String password = null;
private Map<CellStyle, CellStyle> existedOriginToClone;
public ExcelTool() {
cellStylesMapping = new HashMap<>();
@@ -264,6 +266,9 @@ public class ExcelTool {
private CellStyle getPreCellStyle() {
if (preSheet != null && isAbsY && keepCellFormat) {
if(existedOriginToClone==null) {
existedOriginToClone = new HashMap<>();
}
CellStyle preCellStyle;
if (preCell == null) {
preCellStyle = preSheet.getColumnStyle(curCell.getColumnIndex());
@@ -271,8 +276,12 @@ public class ExcelTool {
preCellStyle = preCell.getCellStyle();
}
CellStyle targetCellStyle = wb.createCellStyle();
targetCellStyle.cloneStyleFrom(preCellStyle);
CellStyle targetCellStyle = existedOriginToClone.get(preCellStyle);
if(targetCellStyle==null) {
targetCellStyle = wb.createCellStyle();
targetCellStyle.cloneStyleFrom(preCellStyle);
existedOriginToClone.put(preCellStyle, targetCellStyle);
}
return targetCellStyle;
@@ -335,6 +344,9 @@ public class ExcelTool {
preWb.close();
}
} finally {
if(existedOriginToClone!=null) {
existedOriginToClone = null;
}
if (outputStream != null) {
outputStream.close();
}
@@ -365,6 +377,9 @@ public class ExcelTool {
fs.writeFilesystem(fileOutput);
}
} finally {
if(existedOriginToClone!=null) {
existedOriginToClone = null;
}
wb.close();
if(preWb != null){
preWb.close();

View File

@@ -118,7 +118,7 @@
<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.60" MODULE="bcprov-jdk15on-1.60.jar" MVN="mvn:org.bouncycastle/bcprov-jdk15on/1.60" 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="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" UrlPath="platform:/plugin/org.talend.libraries.jdbc.access/lib/talend-ucanaccess-utils-1.0.0.jar" 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"/>

View File

@@ -121,7 +121,7 @@
<IMPORT NAME="Driver-JACKCESS" MODULE="jackcess-2.1.12.jar" MVN="mvn:com.healthmarketscience.jackcess/jackcess/2.1.12" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false')"/>
<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_IF="(USE_EXISTING_CONNECTION == 'false')"/>
<IMPORT NAME="bcprov-jdk15on-1.60" MODULE="bcprov-jdk15on-1.60.jar" MVN="mvn:org.bouncycastle/bcprov-jdk15on/1.60" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false')"/>
<IMPORT NAME="bcprov-jdk15on-1.68" MODULE="bcprov-jdk15on-1.68.jar" MVN="mvn:org.bouncycastle/bcprov-jdk15on/1.68" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false')"/>
<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" UrlPath="platform:/plugin/org.talend.libraries.jdbc.access/lib/talend-ucanaccess-utils-1.0.0.jar" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false')"/>
<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_IF="(USE_EXISTING_CONNECTION == 'false')"/>

View File

@@ -207,7 +207,7 @@
<IMPORT NAME="Driver-JACKCESS" MODULE="jackcess-2.1.12.jar" MVN="mvn:com.healthmarketscience.jackcess/jackcess/2.1.12" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false')"/>
<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_IF="(USE_EXISTING_CONNECTION == 'false')"/>
<IMPORT NAME="bcprov-jdk15on-1.60" MODULE="bcprov-jdk15on-1.60.jar" MVN="mvn:org.bouncycastle/bcprov-jdk15on/1.60" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false')"/>
<IMPORT NAME="bcprov-jdk15on-1.68" MODULE="bcprov-jdk15on-1.68.jar" MVN="mvn:org.bouncycastle/bcprov-jdk15on/1.68" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false')"/>
<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" UrlPath="platform:/plugin/org.talend.libraries.jdbc.access/lib/talend-ucanaccess-utils-1.0.0.jar" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false')"/>
<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_IF="(USE_EXISTING_CONNECTION == 'false')"/>

View File

@@ -181,7 +181,7 @@
<IMPORT NAME="Driver-JACKCESS" MODULE="jackcess-2.1.12.jar" MVN="mvn:com.healthmarketscience.jackcess/jackcess/2.1.12" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false')"/>
<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_IF="(USE_EXISTING_CONNECTION == 'false')"/>
<IMPORT NAME="bcprov-jdk15on-1.60" MODULE="bcprov-jdk15on-1.60.jar" MVN="mvn:org.bouncycastle/bcprov-jdk15on/1.60" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false')"/>
<IMPORT NAME="bcprov-jdk15on-1.68" MODULE="bcprov-jdk15on-1.68.jar" MVN="mvn:org.bouncycastle/bcprov-jdk15on/1.68" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false')"/>
<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" UrlPath="platform:/plugin/org.talend.libraries.jdbc.access/lib/talend-ucanaccess-utils-1.0.0.jar" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false')"/>
<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_IF="(USE_EXISTING_CONNECTION == 'false')"/>

View File

@@ -149,7 +149,7 @@
<IMPORTS>
<IMPORT
NAME="Talen File Enhanced"
MODULE="talend_file_enhanced-1.0.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.0" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.0.jar"
MODULE="talend_file_enhanced-1.1.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.1" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.1.jar"
REQUIRED="true"
/>
</IMPORTS>

View File

@@ -279,12 +279,12 @@
</ADVANCED_PARAMETERS>
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="google-api-client-1.25.0.jar" MODULE="google-api-client-1.25.0.jar" MVN="mvn:com.google.api-client/google-api-client/1.25.0" REQUIRED="true" />
<IMPORT NAME="google-api-services-oauth2-v2-rev151-1.25.0.jar" MODULE="google-api-services-oauth2-v2-rev151-1.25.0.jar" MVN="mvn:com.google.apis/google-api-services-oauth2/v2-rev151-1.25.0" REQUIRED="true" />
<IMPORT NAME="google-api-services-bigquery-v2-rev454-1.25.0.jar" MODULE="google-api-services-bigquery-v2-rev454-1.25.0.jar" MVN="mvn:com.google.apis/google-api-services-bigquery/v2-rev454-1.25.0" REQUIRED="true" />
<IMPORT NAME="google-http-client-1.25.0.jar" MODULE="google-http-client-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.25.0" REQUIRED="true" />
<IMPORT NAME="google-api-client-1.31.1.jar" MODULE="google-api-client-1.31.1.jar" MVN="mvn:com.google.api-client/google-api-client/1.31.1" REQUIRED="true" />
<IMPORT NAME="google-api-services-oauth2-v2-rev20200213-1.31.0.jar" MODULE="google-api-services-oauth2-v2-rev20200213-1.31.0.jar" MVN="mvn:com.google.apis/google-api-services-oauth2/v2-rev20200213-1.31.0" REQUIRED="true" />
<IMPORT NAME="google-api-services-bigquery-v2-rev20201030-1.31.0.jar" MODULE="google-api-services-bigquery-v2-rev20201030-1.31.0.jar" MVN="mvn:com.google.apis/google-api-services-bigquery/v2-rev20201030-1.31.0" REQUIRED="true" />
<IMPORT NAME="google-http-client-1.38.0.jar" MODULE="google-http-client-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.38.0" REQUIRED="true" />
<IMPORT NAME="google-oauth-client-1.31.0.jar" MODULE="google-oauth-client-1.31.0.jar" MVN="mvn:com.google.oauth-client/google-oauth-client/1.31.0" REQUIRED="true" />
<IMPORT NAME="google-http-client-jackson2-1.25.0.jar" MODULE="google-http-client-jackson2-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.25.0" REQUIRED="true" />
<IMPORT NAME="google-http-client-jackson2-1.38.0.jar" MODULE="google-http-client-jackson2-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.38.0" REQUIRED="true" />
<IMPORT NAME="guava-20.0.jar" MODULE="guava-20.0.jar" MVN="mvn:com.google.guava/guava/20.0" REQUIRED="true" />
<IMPORT NAME="jackson-core-2.10.1.jar" MODULE="jackson-core-2.10.1.jar" MVN="mvn:com.fasterxml.jackson.core/jackson-core/2.10.1" REQUIRED="true" />
<!-- REQUIRED FOR GOOGLE STORAGE -->
@@ -293,8 +293,11 @@
<IMPORT NAME="httpclient-4.5.12" MODULE="httpclient-4.5.12.jar" MVN="mvn:org.apache.httpcomponents/httpclient/4.5.12" REQUIRED="true" />
<IMPORT NAME="httpcore-4.4.13" MODULE="httpcore-4.4.13.jar" MVN="mvn:org.apache.httpcomponents/httpcore/4.4.13" REQUIRED="true" />
<IMPORT NAME="commons-codec-1.14" MODULE="commons-codec-1.14.jar" MVN="mvn:commons-codec/commons-codec/1.14" REQUIRED="true" />
<IMPORT NAME="google-cloud-bigquery-1.60.0.jar" MODULE="google-cloud-bigquery-1.60.0.jar" MVN="mvn:com.google.cloud/google-cloud-bigquery/1.60.0" REQUIRED_IF="(AUTH_MODE == 'SERVICEACCOUNT') OR (AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-cloud-bigquery-1.126.3.jar" MODULE="google-cloud-bigquery-1.126.3.jar" MVN="mvn:com.google.cloud/google-cloud-bigquery/1.126.3" REQUIRED_IF="(AUTH_MODE == 'SERVICEACCOUNT') OR (AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<!-- TODO remove it -->
<IMPORT NAME="google-http-client-jackson-1.25.0.jar" MODULE="google-http-client-jackson-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson/1.25.0" REQUIRED_IF="(AUTH_MODE == 'SERVICEACCOUNT') OR (AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="threetenbp-1.3.3.jar" MODULE="threetenbp-1.3.3.jar" MVN="mvn:org.threeten/threetenbp/1.3.3" REQUIRED_IF="(AUTH_MODE == 'SERVICEACCOUNT') OR (AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-auth-library-credentials-0.20.0.jar" MODULE="google-auth-library-credentials-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-credentials/0.20.0" REQUIRED_IF="(AUTH_MODE == 'SERVICEACCOUNT') OR (AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="gax-httpjson-0.44.0.jar" MODULE="gax-httpjson-0.44.0.jar" MVN="mvn:com.google.api/gax-httpjson/0.44.0" REQUIRED_IF="(AUTH_MODE == 'SERVICEACCOUNT') OR (AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
@@ -303,19 +306,19 @@
<IMPORT NAME="google-cloud-core-1.93.4.jar" MODULE="google-cloud-core-1.93.4.jar" MVN="mvn:com.google.cloud/google-cloud-core/1.93.4" REQUIRED_IF="(AUTH_MODE == 'SERVICEACCOUNT') OR (AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-cloud-core-http-1.32.0.jar" MODULE="google-cloud-core-http-1.32.0.jar" MVN="mvn:com.google.cloud/google-cloud-core-http/1.32.0" REQUIRED_IF="(AUTH_MODE == 'SERVICEACCOUNT') OR (AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="gax-1.27.0.jar" MODULE="gax-1.27.0.jar" MVN="mvn:com.google.api/gax/1.27.0" REQUIRED_IF="(AUTH_MODE == 'SERVICEACCOUNT') OR (AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-http-client-appengine-1.25.0.jar" MODULE="google-http-client-appengine-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.25.0" REQUIRED_IF="(AUTH_MODE == 'SERVICEACCOUNT') OR (AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-http-client-appengine-1.38.0.jar" MODULE="google-http-client-appengine-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.38.0" REQUIRED_IF="(AUTH_MODE == 'SERVICEACCOUNT') OR (AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="api-common-1.6.0.jar" MODULE="api-common-1.6.0.jar" MVN="mvn:com.google.api/api-common/1.6.0" REQUIRED_IF="(AUTH_MODE == 'SERVICEACCOUNT') OR (AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-cloud-storage-1.104.0" MODULE="google-cloud-storage-1.104.0.jar" MVN="mvn:com.google.cloud/google-cloud-storage/1.104.0" REQUIRED_IF="(AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<!-- Transitive dependencies of google-cloud-storage -->
<IMPORT NAME="google-api-services-storage-v1-rev20191011-1.30.3" MODULE="google-api-services-storage-v1-rev20191011-1.30.3.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20191011-1.30.3" REQUIRED_IF="(AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-api-services-storage-v1-rev20201112-1.31.0" MODULE="google-api-services-storage-v1-rev20201112-1.31.0.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20201112-1.31.0" REQUIRED_IF="(AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="gson-2.8.6" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="javax.annotation-api" MODULE="javax.annotation-api-1.3.jar" MVN="mvn:javax.annotation/javax.annotation-api/1.3" REQUIRED_IF="(AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="protobuf-java-2.5.0" MODULE="protobuf-java-2.5.0.jar" MVN="mvn:com.google.protobuf/protobuf-java/2.5.0" REQUIRED_IF="(AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="error_prone_annotation-2.1.3" MODULE="error_prone_annotation-2.1.3.jar" MVN="mvn:com.google.errorprone/error_prone_annotations/2.1.3" REQUIRED_IF="(AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="opencensus-api-0.21.0" MODULE="opencensus-api-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.21.0" REQUIRED_IF="(AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="opencensus-contrib-http-util-0.21.0" MODULE="opencensus-contrib-http-util-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.21.0" REQUIRED_IF="(AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="grpc-context-1.19.0" MODULE="grpc-context-1.19.0.jar" MVN="mvn:io.grpc/grpc-context/1.19.0" REQUIRED_IF="(AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="opencensus-api-0.24.0" MODULE="opencensus-api-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.24.0" REQUIRED="true" />
<IMPORT NAME="opencensus-contrib-http-util-0.24.0" MODULE="opencensus-contrib-http-util-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.24.0" REQUIRED="true" />
<IMPORT NAME="grpc-context-1.22.1" MODULE="grpc-context-1.22.1.jar" MVN="mvn:io.grpc/grpc-context/1.22.1" REQUIRED="true" />
<IMPORT NAME="proto-google-common-protos-1.17.0" MODULE="proto-google-common-protos-1.17.0.jar" MVN="mvn:com.google.api.grpc/proto-google-common-protos/1.17.0" REQUIRED_IF="(AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="proto-google-iam-v1-0.13.0" MODULE="proto-google-iam-v1-0.13.0.jar" MVN="mvn:com.google.api.grpc/proto-google-iam-v1/0.13.0" REQUIRED_IF="(AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="protobuf-java-util-3.11.4" MODULE="protobuf-java-util-3.11.4.jar" MVN="mvn:com.google.protobuf/protobuf-java-util/3.11.4" REQUIRED_IF="(AUTH_TYPE == 'GS_SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />

View File

@@ -201,16 +201,19 @@
</ADVANCED_PARAMETERS>
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="google-api-client-1.25.0.jar" MODULE="google-api-client-1.25.0.jar" MVN="mvn:com.google.api-client/google-api-client/1.25.0" REQUIRED="true" />
<IMPORT NAME="google-api-services-oauth2-v2-rev151-1.25.0.jar" MODULE="google-api-services-oauth2-v2-rev151-1.25.0.jar" MVN="mvn:com.google.apis/google-api-services-oauth2/v2-rev151-1.25.0" REQUIRED="true" />
<IMPORT NAME="google-api-services-bigquery-v2-rev454-1.25.0.jar" MODULE="google-api-services-bigquery-v2-rev454-1.25.0.jar" MVN="mvn:com.google.apis/google-api-services-bigquery/v2-rev454-1.25.0" REQUIRED="true" />
<IMPORT NAME="google-http-client-1.25.0.jar" MODULE="google-http-client-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.25.0" REQUIRED="true" />
<IMPORT NAME="google-api-client-1.31.1.jar" MODULE="google-api-client-1.31.1.jar" MVN="mvn:com.google.api-client/google-api-client/1.31.1" REQUIRED="true" />
<IMPORT NAME="google-api-services-oauth2-v2-rev20200213-1.31.0.jar" MODULE="google-api-services-oauth2-v2-rev20200213-1.31.0.jar" MVN="mvn:com.google.apis/google-api-services-oauth2/v2-rev20200213-1.31.0" REQUIRED="true" />
<IMPORT NAME="google-api-services-bigquery-v2-rev20201030-1.31.0.jar" MODULE="google-api-services-bigquery-v2-rev20201030-1.31.0.jar" MVN="mvn:com.google.apis/google-api-services-bigquery/v2-rev20201030-1.31.0" REQUIRED="true" />
<IMPORT NAME="google-http-client-1.38.0.jar" MODULE="google-http-client-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.38.0" REQUIRED="true" />
<IMPORT NAME="google-oauth-client-1.31.0.jar" MODULE="google-oauth-client-1.31.0.jar" MVN="mvn:com.google.oauth-client/google-oauth-client/1.31.0" REQUIRED="true" />
<IMPORT NAME="google-http-client-jackson2-1.25.0.jar" MODULE="google-http-client-jackson2-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.25.0" REQUIRED="true" />
<IMPORT NAME="google-http-client-jackson2-1.38.0.jar" MODULE="google-http-client-jackson2-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.38.0" REQUIRED="true" />
<IMPORT NAME="guava-20.0.jar" MODULE="guava-20.0.jar" MVN="mvn:com.google.guava/guava/20.0" REQUIRED="true" />
<IMPORT NAME="jackson-core-2.10.1.jar" MODULE="jackson-core-2.10.1.jar" MVN="mvn:com.fasterxml.jackson.core/jackson-core/2.10.1" REQUIRED="true" />
<IMPORT NAME="google-cloud-bigquery-1.60.0.jar" MODULE="google-cloud-bigquery-1.60.0.jar" MVN="mvn:com.google.cloud/google-cloud-bigquery/1.60.0" REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'" />
<IMPORT NAME="google-cloud-bigquery-1.126.3.jar" MODULE="google-cloud-bigquery-1.126.3.jar" MVN="mvn:com.google.cloud/google-cloud-bigquery/1.126.3" REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'" />
<!-- TODO remove it -->
<IMPORT NAME="google-http-client-jackson-1.25.0.jar" MODULE="google-http-client-jackson-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson/1.25.0" REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'" />
<IMPORT NAME="threetenbp-1.3.3.jar" MODULE="threetenbp-1.3.3.jar" MVN="mvn:org.threeten/threetenbp/1.3.3" REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'" />
<IMPORT NAME="google-auth-library-credentials-0.20.0.jar" MODULE="google-auth-library-credentials-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-credentials/0.20.0" REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'" />
<IMPORT NAME="gax-httpjson-0.44.0.jar" MODULE="gax-httpjson-0.44.0.jar" MVN="mvn:com.google.api/gax-httpjson/0.44.0" REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'" />
@@ -219,8 +222,11 @@
<IMPORT NAME="google-cloud-core-1.93.4.jar" MODULE="google-cloud-core-1.93.4.jar" MVN="mvn:com.google.cloud/google-cloud-core/1.93.4" REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'" />
<IMPORT NAME="google-cloud-core-http-1.32.0.jar" MODULE="google-cloud-core-http-1.32.0.jar" MVN="mvn:com.google.cloud/google-cloud-core-http/1.32.0" REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'" />
<IMPORT NAME="gax-1.27.0.jar" MODULE="gax-1.27.0.jar" MVN="mvn:com.google.api/gax/1.27.0" REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'" />
<IMPORT NAME="google-http-client-appengine-1.25.0.jar" MODULE="google-http-client-appengine-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.25.0" REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'" />
<IMPORT NAME="google-http-client-appengine-1.38.0.jar" MODULE="google-http-client-appengine-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.38.0" REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'" />
<IMPORT NAME="api-common-1.6.0.jar" MODULE="api-common-1.6.0.jar" MVN="mvn:com.google.api/api-common/1.6.0" REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'" />
<IMPORT NAME="opencensus-api-0.24.0" MODULE="opencensus-api-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.24.0" REQUIRED="true" />
<IMPORT NAME="opencensus-contrib-http-util-0.24.0" MODULE="opencensus-contrib-http-util-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.24.0" REQUIRED="true" />
<IMPORT NAME="grpc-context-1.22.1" MODULE="grpc-context-1.22.1.jar" MVN="mvn:io.grpc/grpc-context/1.22.1" REQUIRED="true" />
</IMPORTS>
</CODEGENERATION>
<RETURNS>

View File

@@ -188,21 +188,24 @@
</ADVANCED_PARAMETERS>
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="google-api-client-1.25.0.jar" MODULE="google-api-client-1.25.0.jar" MVN="mvn:com.google.api-client/google-api-client/1.25.0" REQUIRED="true" />
<IMPORT NAME="google-api-services-oauth2-v2-rev151-1.25.0.jar" MODULE="google-api-services-oauth2-v2-rev151-1.25.0.jar" MVN="mvn:com.google.apis/google-api-services-oauth2/v2-rev151-1.25.0" REQUIRED="true" />
<IMPORT NAME="google-api-services-bigquery-v2-rev454-1.25.0.jar" MODULE="google-api-services-bigquery-v2-rev454-1.25.0.jar" MVN="mvn:com.google.apis/google-api-services-bigquery/v2-rev454-1.25.0" REQUIRED="true" />
<IMPORT NAME="google-http-client-1.25.0.jar" MODULE="google-http-client-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.25.0" REQUIRED="true" />
<IMPORT NAME="google-api-client-1.31.1.jar" MODULE="google-api-client-1.31.1.jar" MVN="mvn:com.google.api-client/google-api-client/1.31.1" REQUIRED="true" />
<IMPORT NAME="google-api-services-oauth2-v2-rev20200213-1.31.0.jar" MODULE="google-api-services-oauth2-v2-rev20200213-1.31.0.jar" MVN="mvn:com.google.apis/google-api-services-oauth2/v2-rev20200213-1.31.0" REQUIRED="true" />
<IMPORT NAME="google-api-services-bigquery-v2-rev20201030-1.31.0.jar" MODULE="google-api-services-bigquery-v2-rev20201030-1.31.0.jar" MVN="mvn:com.google.apis/google-api-services-bigquery/v2-rev20201030-1.31.0" REQUIRED="true" />
<IMPORT NAME="google-http-client-1.38.0.jar" MODULE="google-http-client-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.38.0" REQUIRED="true" />
<IMPORT NAME="google-oauth-client-1.31.0.jar" MODULE="google-oauth-client-1.31.0.jar" MVN="mvn:com.google.oauth-client/google-oauth-client/1.31.0" REQUIRED="true" />
<IMPORT NAME="google-http-client-jackson2-1.25.0.jar" MODULE="google-http-client-jackson2-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.25.0" REQUIRED="true" />
<IMPORT NAME="google-http-client-jackson2-1.38.0.jar" MODULE="google-http-client-jackson2-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.38.0" REQUIRED="true" />
<IMPORT NAME="guava-20.0.jar" MODULE="guava-20.0.jar" MVN="mvn:com.google.guava/guava/20.0" REQUIRED="true"/>
<IMPORT NAME="jackson-core-2.10.1.jar" MODULE="jackson-core-2.10.1.jar"
MVN="mvn:com.fasterxml.jackson.core/jackson-core/2.10.1" REQUIRED="true"/>
<IMPORT NAME="google-cloud-bigquery-1.60.0.jar" MODULE="google-cloud-bigquery-1.60.0.jar"
MVN="mvn:com.google.cloud/google-cloud-bigquery/1.60.0"
<IMPORT NAME="google-cloud-bigquery-1.126.3.jar" MODULE="google-cloud-bigquery-1.126.3.jar"
MVN="mvn:com.google.cloud/google-cloud-bigquery/1.126.3"
REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'"/>
<!-- TODO remove it -->
<IMPORT NAME="google-http-client-jackson-1.25.0.jar" MODULE="google-http-client-jackson-1.25.0.jar"
MVN="mvn:com.google.http-client/google-http-client-jackson/1.25.0"
REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'"/>
<IMPORT NAME="threetenbp-1.3.3.jar" MODULE="threetenbp-1.3.3.jar" MVN="mvn:org.threeten/threetenbp/1.3.3"
REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'"/>
<IMPORT NAME="google-auth-library-credentials-0.20.0.jar" MODULE="google-auth-library-credentials-0.20.0.jar"
@@ -222,11 +225,14 @@
REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'"/>
<IMPORT NAME="gax-1.27.0.jar" MODULE="gax-1.27.0.jar" MVN="mvn:com.google.api/gax/1.27.0"
REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'"/>
<IMPORT NAME="google-http-client-appengine-1.25.0.jar" MODULE="google-http-client-appengine-1.25.0.jar"
MVN="mvn:com.google.http-client/google-http-client-appengine/1.25.0"
<IMPORT NAME="google-http-client-appengine-1.38.0.jar" MODULE="google-http-client-appengine-1.38.0.jar"
MVN="mvn:com.google.http-client/google-http-client-appengine/1.38.0"
REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'"/>
<IMPORT NAME="api-common-1.6.0.jar" MODULE="api-common-1.6.0.jar" MVN="mvn:com.google.api/api-common/1.6.0"
REQUIRED_IF="AUTH_MODE == 'SERVICEACCOUNT'"/>
<IMPORT NAME="opencensus-api-0.24.0" MODULE="opencensus-api-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.24.0" REQUIRED="true" />
<IMPORT NAME="opencensus-contrib-http-util-0.24.0" MODULE="opencensus-contrib-http-util-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.24.0" REQUIRED="true" />
<IMPORT NAME="grpc-context-1.22.1" MODULE="grpc-context-1.22.1.jar" MVN="mvn:io.grpc/grpc-context/1.22.1" REQUIRED="true" />
</IMPORTS>
</CODEGENERATION>
<RETURNS>

View File

@@ -165,7 +165,7 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="xstream-1.4.11.1.jar" MODULE="xstream-1.4.11.1.jar" MVN="mvn:com.thoughtworks.xstream/xstream/1.4.11.1" REQUIRED_IF="(DB_VERSION=='BONITA_523') OR (((DB_VERSION=='BONITA_652')OR(DB_VERSION=='BONITA_724')) AND (CLIENT_MODE=='JAVA_CLIENT'))" />
<IMPORT NAME="xstream-1.4.15.jar" MODULE="xstream-1.4.15.jar" MVN="mvn:com.thoughtworks.xstream/xstream/1.4.15" REQUIRED_IF="(DB_VERSION=='BONITA_523') OR (((DB_VERSION=='BONITA_652')OR(DB_VERSION=='BONITA_724')) AND (CLIENT_MODE=='JAVA_CLIENT'))" />
<!-- Bonita 5.2.3 -->
<IMPORT NAME="bonita_client_523" MODULE="bonita-client-5.2.3.jar" MVN="mvn:org.talend.libraries/bonita-client-5.2.3/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.bonita/lib/bonita-client-5.2.3.jar" REQUIRED_IF="DB_VERSION=='BONITA_523'" />
<IMPORT NAME="bonita_server_523" MODULE="bonita-server-5.2.3.jar" MVN="mvn:org.talend.libraries/bonita-server-5.2.3/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.bonita/lib/bonita-server-5.2.3.jar" REQUIRED_IF="DB_VERSION=='BONITA_523'" />
@@ -181,7 +181,7 @@
<IMPORT NAME="ehcache_123" MODULE="ehcache-1.2.3.jar" MVN="mvn:org.talend.libraries/ehcache-1.2.3/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.ehcache/lib/ehcache-1.2.3.jar" REQUIRED="false" />
<IMPORT NAME="groovy_all_170" MODULE="groovy-all-1.7.0.jar" MVN="mvn:org.talend.libraries/groovy-all-1.7.0/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.groovy/lib/groovy-all-1.7.0.jar" REQUIRED="false" />
<IMPORT NAME="h2_12132" MODULE="h2-1.2.132.jar" MVN="mvn:org.talend.libraries/h2-1.2.132/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.jdbc.h2/lib/h2-1.2.132.jar" REQUIRED="false" />
<IMPORT NAME="h2_12132" MODULE="h2-1.2.132.jar" MVN="mvn:com.h2database/h2/1.2.132" REQUIRED="false" />
<IMPORT NAME="hibernate_326_ga" MODULE="hibernate-3.2.6.ga.jar" MVN="mvn:org.talend.libraries/hibernate-3.2.6.ga/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.hibernate/lib/hibernate-3.2.6.ga.jar" REQUIRED="false" />
<IMPORT NAME="jline_0994" MODULE="jline-0.9.94.jar" MVN="mvn:org.talend.libraries/jline-0.9.94/6.0.0" REQUIRED="false" />
<IMPORT NAME="jta_11" MODULE="jta-1.1.jar" MVN="mvn:javax.transaction/jta/1.1" REQUIRED_IF="DB_VERSION=='BONITA_561' OR DB_VERSION=='BONITA_5101'" />
@@ -208,14 +208,14 @@
<IMPORT NAME="bonita_server_561" MODULE="bonita-server-5.6.1.jar" MVN="mvn:org.talend.libraries/bonita-server-5.6.1/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.bonita/lib/bonita-server-5.6.1.jar" REQUIRED_IF="DB_VERSION=='BONITA_561'" />
<IMPORT NAME="chemistry_opencmis_client_api_020_incubating" MODULE="chemistry-opencmis-client-api-0.2.0-incubating.jar" MVN="mvn:org.talend.libraries/chemistry-opencmis-client-api-0.2.0-incubating/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.apache.chemistry/lib/chemistry-opencmis-client-api-0.2.0-incubating.jar" REQUIRED_IF="DB_VERSION=='BONITA_561'" />
<IMPORT NAME="chemistry_opencmis_commons_api_020_incubating" MODULE="chemistry-opencmis-commons-api-0.2.0-incubating.jar" MVN="mvn:org.talend.libraries/chemistry-opencmis-commons-api-0.2.0-incubating/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.apache.chemistry/lib/chemistry-opencmis-commons-api-0.2.0-incubating.jar" REQUIRED_IF="DB_VERSION=='BONITA_561'" />
<IMPORT NAME="h2_12139" MODULE="h2-1.2.139.jar" MVN="mvn:org.talend.libraries/h2-1.2.139/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.jdbc.h2/lib/h2-1.2.139.jar" REQUIRED_IF="DB_VERSION=='BONITA_561' OR DB_VERSION=='BONITA_5101'" />
<IMPORT NAME="h2_12139" MODULE="h2-1.2.139.jar" MVN="mvn:com.h2database/h2/1.2.139" REQUIRED_IF="DB_VERSION=='BONITA_561' OR DB_VERSION=='BONITA_5101'" />
<IMPORT NAME="slf4j_api_161" MODULE="slf4j-api-1.6.1.jar" MVN="mvn:org.talend.libraries/slf4j-api-1.6.1/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.slf4j/lib/slf4j-api-1.6.1.jar" REQUIRED_IF="DB_VERSION=='BONITA_561' OR DB_VERSION=='BONITA_5101'" />
<IMPORT NAME="slf4j_jdk14_161" MODULE="slf4j-jdk14-1.6.1.jar" MVN="mvn:org.talend.libraries/slf4j-jdk14-1.6.1/6.0.0" REQUIRED_IF="DB_VERSION=='BONITA_561' OR DB_VERSION=='BONITA_5101'" />
<!-- Bonita 5.10.1 -->
<IMPORT NAME="bonita_server_5101" MODULE="bonita-server-5.10.1.jar" MVN="mvn:org.talend.libraries/bonita-server-5.10.1/6.0.0" REQUIRED_IF="DB_VERSION=='BONITA_5101'" />
<IMPORT NAME="hibernate_search_330_Final" MODULE="hibernate-search-3.3.0.Final.jar" MVN="mvn:org.talend.libraries/hibernate-search-3.3.0.Final/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.hibernate/lib/hibernate-search-3.3.0.Final.jar" REQUIRED_IF="DB_VERSION=='BONITA_5101'" />
<IMPORT NAME="hibernate_core_3_6_10_Final" MODULE="hibernate-core-3.6.10.Final.jar" MVN="mvn:org.talend.libraries/hibernate-core-3.6.10.Final/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.hibernate/lib/hibernate-core-3.6.10.Final.jar" REQUIRED_IF="DB_VERSION=='BONITA_5101'" />
<IMPORT NAME="hibernate_core_3_6_10_Final" MODULE="hibernate-core-3.6.10.Final.jar" MVN="mvn:org.hibernate/hibernate-core/3.6.10.Final" REQUIRED_IF="DB_VERSION=='BONITA_5101'" />
<IMPORT NAME="hibernate_jpa_2_0_api-1_0_1_Final" MODULE="hibernate-jpa-2.0-api-1.0.1.Final.jar" MVN="mvn:org.talend.libraries/hibernate-jpa-2.0-api-1.0.1.Final/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.hibernate/lib/hibernate-jpa-2.0-api-1.0.1.Final.jar" REQUIRED_IF="DB_VERSION=='BONITA_5101'" />
<IMPORT NAME="lucene_core_303" MODULE="lucene-core-3.0.3.jar" MVN="mvn:org.talend.libraries/lucene-core-3.0.3/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.apache.lucene/lib/lucene-core-3.0.3.jar" REQUIRED_IF="DB_VERSION=='BONITA_5101'" />
<IMPORT NAME="javassist_3120_GA" MODULE="javassist-3.12.0.GA.jar" MVN="mvn:org.talend.libraries/javassist-3.12.0.GA/6.0.0" REQUIRED_IF="DB_VERSION=='BONITA_5101'" />

View File

@@ -214,7 +214,7 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="xstream-1.4.11.1.jar" MODULE="xstream-1.4.11.1.jar" MVN="mvn:com.thoughtworks.xstream/xstream/1.4.11.1" REQUIRED_IF="((DB_VERSION!='BONITA_652') AND (DB_VERSION!='BONITA_724')) OR (((DB_VERSION=='BONITA_652')OR(DB_VERSION=='BONITA_724')) AND (CLIENT_MODE=='JAVA_CLIENT'))" />
<IMPORT NAME="xstream-1.4.15.jar" MODULE="xstream-1.4.15.jar" MVN="mvn:com.thoughtworks.xstream/xstream/1.4.15" REQUIRED_IF="((DB_VERSION!='BONITA_652') AND (DB_VERSION!='BONITA_724')) OR (((DB_VERSION=='BONITA_652')OR(DB_VERSION=='BONITA_724')) AND (CLIENT_MODE=='JAVA_CLIENT'))" />
<!-- Bonita 5.2.3 -->
<IMPORT NAME="bonita_client_523" MODULE="bonita-client-5.2.3.jar" MVN="mvn:org.talend.libraries/bonita-client-5.2.3/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.bonita/lib/bonita-client-5.2.3.jar" REQUIRED_IF="DB_VERSION=='BONITA_523'" />
<IMPORT NAME="bonita_server_523" MODULE="bonita-server-5.2.3.jar" MVN="mvn:org.talend.libraries/bonita-server-5.2.3/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.bonita/lib/bonita-server-5.2.3.jar" REQUIRED_IF="DB_VERSION=='BONITA_523'" />
@@ -230,7 +230,7 @@
<IMPORT NAME="ehcache_123" MODULE="ehcache-1.2.3.jar" MVN="mvn:org.talend.libraries/ehcache-1.2.3/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.ehcache/lib/ehcache-1.2.3.jar" REQUIRED="false" />
<IMPORT NAME="groovy_all_170" MODULE="groovy-all-1.7.0.jar" MVN="mvn:org.talend.libraries/groovy-all-1.7.0/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.groovy/lib/groovy-all-1.7.0.jar" REQUIRED="false" />
<IMPORT NAME="h2_12132" MODULE="h2-1.2.132.jar" MVN="mvn:org.talend.libraries/h2-1.2.132/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.jdbc.h2/lib/h2-1.2.132.jar" REQUIRED="false" />
<IMPORT NAME="h2_12132" MODULE="h2-1.2.132.jar" MVN="mvn:com.h2database/h2/1.2.132" REQUIRED="false" />
<IMPORT NAME="hibernate_326_ga" MODULE="hibernate-3.2.6.ga.jar" MVN="mvn:org.talend.libraries/hibernate-3.2.6.ga/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.hibernate/lib/hibernate-3.2.6.ga.jar" REQUIRED="false" />
<IMPORT NAME="jline_0994" MODULE="jline-0.9.94.jar" MVN="mvn:org.talend.libraries/jline-0.9.94/6.0.0" REQUIRED="false" />
<IMPORT NAME="jta_11" MODULE="jta-1.1.jar" MVN="mvn:javax.transaction/jta/1.1" REQUIRED_IF="(CLIENT_MODE=='JAVA_CLIENT') AND (DB_VERSION=='BONITA_561' OR DB_VERSION=='BONITA_5101')" />
@@ -257,13 +257,13 @@
<IMPORT NAME="bonita_server_561" MODULE="bonita-server-5.6.1.jar" MVN="mvn:org.talend.libraries/bonita-server-5.6.1/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.bonita/lib/bonita-server-5.6.1.jar" REQUIRED_IF="(CLIENT_MODE=='JAVA_CLIENT') AND (DB_VERSION=='BONITA_561')" />
<IMPORT NAME="chemistry_opencmis_client_api_020_incubating" MODULE="chemistry-opencmis-client-api-0.2.0-incubating.jar" MVN="mvn:org.talend.libraries/chemistry-opencmis-client-api-0.2.0-incubating/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.apache.chemistry/lib/chemistry-opencmis-client-api-0.2.0-incubating.jar" REQUIRED_IF="(CLIENT_MODE=='JAVA_CLIENT') AND (DB_VERSION=='BONITA_561')" />
<IMPORT NAME="chemistry_opencmis_commons_api_020_incubating" MODULE="chemistry-opencmis-commons-api-0.2.0-incubating.jar" MVN="mvn:org.talend.libraries/chemistry-opencmis-commons-api-0.2.0-incubating/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.apache.chemistry/lib/chemistry-opencmis-commons-api-0.2.0-incubating.jar" REQUIRED_IF="(CLIENT_MODE=='JAVA_CLIENT') AND (DB_VERSION=='BONITA_561')" />
<IMPORT NAME="h2_12139" MODULE="h2-1.2.139.jar" MVN="mvn:org.talend.libraries/h2-1.2.139/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.jdbc.h2/lib/h2-1.2.139.jar" REQUIRED_IF="(CLIENT_MODE=='JAVA_CLIENT') AND (DB_VERSION=='BONITA_561' OR DB_VERSION=='BONITA_5101')" />
<IMPORT NAME="h2_12139" MODULE="h2-1.2.139.jar" MVN="mvn:com.h2database/h2/1.2.139" REQUIRED_IF="(CLIENT_MODE=='JAVA_CLIENT') AND (DB_VERSION=='BONITA_561' OR DB_VERSION=='BONITA_5101')" />
<IMPORT NAME="slf4j_api_161" MODULE="slf4j-api-1.6.1.jar" MVN="mvn:org.talend.libraries/slf4j-api-1.6.1/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.slf4j/lib/slf4j-api-1.6.1.jar" REQUIRED_IF="(CLIENT_MODE=='JAVA_CLIENT') AND (DB_VERSION=='BONITA_561' OR DB_VERSION=='BONITA_5101')" />
<IMPORT NAME="slf4j_jdk14_161" MODULE="slf4j-jdk14-1.6.1.jar" MVN="mvn:org.talend.libraries/slf4j-jdk14-1.6.1/6.0.0" REQUIRED_IF="(CLIENT_MODE=='JAVA_CLIENT') AND (DB_VERSION=='BONITA_561' OR DB_VERSION=='BONITA_5101')" />
<!-- Bonita 5.10.1 -->
<IMPORT NAME="bonita_server_510" MODULE="bonita-server-5.10.1.jar" MVN="mvn:org.talend.libraries/bonita-server-5.10.1/6.0.0" REQUIRED_IF="(CLIENT_MODE=='JAVA_CLIENT') AND (DB_VERSION=='BONITA_5101')" />
<IMPORT NAME="hibernate_search_330_Final" MODULE="hibernate-search-3.3.0.Final.jar" MVN="mvn:org.talend.libraries/hibernate-search-3.3.0.Final/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.hibernate/lib/hibernate-search-3.3.0.Final.jar" REQUIRED_IF="(CLIENT_MODE=='JAVA_CLIENT') AND (DB_VERSION=='BONITA_5101')" />
<IMPORT NAME="hibernate_core_3_6_10_Final" MODULE="hibernate-core-3.6.10.Final.jar" MVN="mvn:org.talend.libraries/hibernate-core-3.6.10.Final/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.hibernate/lib/hibernate-core-3.6.10.Final.jar" REQUIRED_IF="(CLIENT_MODE=='JAVA_CLIENT') AND (DB_VERSION=='BONITA_5101')" />
<IMPORT NAME="hibernate_core_3_6_10_Final" MODULE="hibernate-core-3.6.10.Final.jar" MVN="mvn:org.hibernate/hibernate-core/3.6.10.Final" REQUIRED_IF="(CLIENT_MODE=='JAVA_CLIENT') AND (DB_VERSION=='BONITA_5101')" />
<IMPORT NAME="hibernate_jpa_2_0_api-1_0_1_Final" MODULE="hibernate-jpa-2.0-api-1.0.1.Final.jar" MVN="mvn:org.talend.libraries/hibernate-jpa-2.0-api-1.0.1.Final/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.hibernate/lib/hibernate-jpa-2.0-api-1.0.1.Final.jar" REQUIRED_IF="(CLIENT_MODE=='JAVA_CLIENT') AND (DB_VERSION=='BONITA_5101')" />
<IMPORT NAME="lucene_core_303" MODULE="lucene-core-3.0.3.jar" MVN="mvn:org.talend.libraries/lucene-core-3.0.3/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.apache.lucene/lib/lucene-core-3.0.3.jar" REQUIRED_IF="(CLIENT_MODE=='JAVA_CLIENT') AND (DB_VERSION=='BONITA_5101')" />
<IMPORT NAME="javassist_3120_GA" MODULE="javassist-3.12.0.GA.jar" MVN="mvn:org.talend.libraries/javassist-3.12.0.GA/6.0.0" REQUIRED_IF="(CLIENT_MODE=='JAVA_CLIENT') AND (DB_VERSION=='BONITA_5101')" />

View File

@@ -56,7 +56,10 @@ COMPATIBILITY="ALL"
REQUIRED="true">
<DEFAULT>"ISO-8859-15"</DEFAULT>
</PARAMETER>
<PARAMETER NAME="BUFFERSIZE" FIELD="TEXT" REQUIRED="true"
NUM_ROW="50">
<DEFAULT>8192</DEFAULT>
</PARAMETER>
</PARAMETERS>
<ADVANCED_PARAMETERS>

View File

@@ -19,6 +19,7 @@ String sOutEncoding = ElementParameterParser.getValue(node, "__ENCODING__");
boolean bNeedEncode = "true".equals(ElementParameterParser.getValue(node, "__USE_INENCODING__"));
boolean bCreateDir = "true".equals(ElementParameterParser.getValue(node, "__CREATE__"));
String sTmpOutFileName = outFileName;
final String bufferSizeExpression = ElementParameterParser.getValue(node, "__BUFFERSIZE__");
log4jFileUtil.componentStartInfo(node);
if (outFileName.equals(inFileName)){
@@ -37,15 +38,23 @@ java.io.File outFile_<%=cid%> = new java.io.File(sOutFileN_<%=cid%>);
parentFile_<%=cid%>.mkdirs();
}
<%}%>
Integer bufferSize_<%=cid%> = <%= bufferSizeExpression %>;
if (bufferSize_<%=cid%> == null) {
bufferSize_<%=cid%> = 8192;
}
final java.io.BufferedWriter out<%=cid %> = new java.io.BufferedWriter(
new java.io.OutputStreamWriter(
new java.io.FileOutputStream(sOutFileN_<%=cid%>, false), <%=sOutEncoding%>
));
),
bufferSize_<%=cid%>);
java.io.BufferedReader in_<%=cid %> = new java.io.BufferedReader(
new java.io.InputStreamReader(
new java.io.FileInputStream(sOriFileN_<%=cid%>), <%=bNeedEncode ? sInEncoding : "System.getProperty(\"file.encoding\")"%>
));
),
bufferSize_<%=cid%>);
//8192: the default buffer size of BufferedReader
char[] cbuf_<%=cid %> = new char[8192];

View File

@@ -10,3 +10,4 @@ INENCODING.NAME=Input Encoding
INFILE_NAME.NAME=Input File Name
OUTFILE_NAME.NAME=Output File Name
CREATE.NAME=Create directory if not exists
BUFFERSIZE.NAME=Buffer Size

View File

@@ -165,7 +165,6 @@ COMPATIBILITY="ALL"
<IMPORTS>
<IMPORT NAME="aopalliance-1_0" MODULE="aopalliance-1.0.jar" MVN="mvn:aopalliance/aopalliance/1.0" UrlPath="platform:/plugin/org.talend.libraries.esb/lib/aopalliance-1.0.jar" REQUIRED_IF="PROVIDER=='AWS_EC2'"/>
<IMPORT NAME="aws-ec2-2_0_2" MODULE="aws-ec2-2.0.2.jar" MVN="mvn:org.talend.libraries/aws-ec2-2.0.2/6.0.0" REQUIRED_IF="PROVIDER=='AWS_EC2'"/>
<IMPORT NAME="bcprov-jdk16-1_46" MODULE="bcprov-jdk16-1.46.jar" MVN="mvn:org.talend.libraries/bcprov-jdk16-1.46/6.0.0" REQUIRED_IF="PROVIDER=='AWS_EC2'"/>
<IMPORT NAME="commons-io-2_4" MODULE="commons-io-2.4.jar" MVN="mvn:commons-io/commons-io/2.4" UrlPath="platform:/plugin/org.talend.libraries.apache.common/lib/commons-io-2.4.jar" REQUIRED_IF="PROVIDER=='AWS_EC2'"/>
<IMPORT NAME="ec2-2_0_2" MODULE="ec2-2.0.2.jar" MVN="mvn:org.talend.libraries/ec2-2.0.2/6.0.0" REQUIRED_IF="PROVIDER=='AWS_EC2'"/>
<IMPORT NAME="gson-2_2" MODULE="gson-2.2.jar" MVN="mvn:org.talend.libraries/gson-2.2/6.0.0" REQUIRED_IF="PROVIDER=='AWS_EC2'"/>

View File

@@ -74,7 +74,6 @@ COMPATIBILITY="ALL"
<IMPORTS>
<IMPORT NAME="aopalliance-1_0" MODULE="aopalliance-1.0.jar" MVN="mvn:aopalliance/aopalliance/1.0" UrlPath="platform:/plugin/org.talend.libraries.esb/lib/aopalliance-1.0.jar" REQUIRED_IF="PROVIDER=='AWS_EC2'"/>
<IMPORT NAME="aws-ec2-2_0_2" MODULE="aws-ec2-2.0.2.jar" MVN="mvn:org.talend.libraries/aws-ec2-2.0.2/6.0.0" REQUIRED_IF="PROVIDER=='AWS_EC2'"/>
<IMPORT NAME="bcprov-jdk16-1_46" MODULE="bcprov-jdk16-1.46.jar" MVN="mvn:org.talend.libraries/bcprov-jdk16-1.46/6.0.0" REQUIRED_IF="PROVIDER=='AWS_EC2'"/>
<IMPORT NAME="commons-io-2_4" MODULE="commons-io-2.4.jar" MVN="mvn:commons-io/commons-io/2.4" UrlPath="platform:/plugin/org.talend.libraries.apache.common/lib/commons-io-2.4.jar" REQUIRED_IF="PROVIDER=='AWS_EC2'"/>
<IMPORT NAME="ec2-2_0_2" MODULE="ec2-2.0.2.jar" MVN="mvn:org.talend.libraries/ec2-2.0.2/6.0.0" REQUIRED_IF="PROVIDER=='AWS_EC2'"/>
<IMPORT NAME="gson-2_2" MODULE="gson-2.2.jar" MVN="mvn:org.talend.libraries/gson-2.2/6.0.0" REQUIRED_IF="PROVIDER=='AWS_EC2'"/>

View File

@@ -170,7 +170,7 @@
NUM_ROW="10"
SHOW_IF="USE_EXISTING_CONNECTION == 'false'"
>
<ITEMS DEFAULT="POSTGRESQL">
<ITEMS DEFAULT="GREENPLUM">
<ITEM NAME="POSTGRESQL" VALUE="POSTGRESQL" />
<ITEM NAME="GREENPLUM" VALUE="GREENPLUM"/>
</ITEMS>
@@ -182,7 +182,7 @@
<IMPORT NAME="Postgres-Driver"
MODULE="postgresql-8.4-703.jdbc4.jar" MVN="mvn:postgresql/postgresql/8.4-703.jdbc4" REQUIRED_IF="(DB_DRIVER =='POSTGRESQL') AND (USE_EXISTING_CONNECTION == 'false')"/>
<IMPORT NAME="Greenplum-Driver"
MODULE="greenplum.jar" MVN="mvn:com.pivotal/greenplum/5.8.1" REQUIRED_IF="(DB_DRIVER =='GREENPLUM') AND (USE_EXISTING_CONNECTION == 'false')"/>
MODULE="greenplum-5.1.4.000275.jar" MVN="mvn:com.pivotal/greenplum/5.1.4.000275" REQUIRED_IF="(DB_DRIVER =='GREENPLUM') AND (USE_EXISTING_CONNECTION == 'false')"/>
</IMPORTS>
</CODEGENERATION>

View File

@@ -15,5 +15,5 @@ LINK_STYLE.ITEM.BEZIER_CURVE=Bezier curve
LINK_STYLE.ITEM.LINE=Line (fastest)
CONNECTION.NAME=Component List
DB_DRIVER.NAME=DB driver
DB_DRIVER.ITEM.POSTGRESQL=PostgreSQL
DB_DRIVER.ITEM.POSTGRESQL=PostgreSQL (Deprecated)
DB_DRIVER.ITEM.GREENPLUM=Greenplum

View File

@@ -55,10 +55,41 @@
>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="8" SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')"
>
<PARAMETER NAME="USE_WHERE_CONDITIONS_TABLE" FIELD="CHECK" NUM_ROW="8"
SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="10"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'false')">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="NOTE" FIELD="LABEL" NUM_ROW="11"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<DEFAULT>WHERE conditions table&#x000A;(for UPDATE and DELETE only)</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CONDITIONS_TABLE" FIELD="TABLE" NUM_ROW="12"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<ITEMS>
<ITEM NAME="COLUMN" VALUE='""'/>
<ITEM NAME="FUNCTION" FIELD="CLOSED_LIST">
<ITEMS DEFAULT="EQUAL">
<ITEM NAME="EQUAL" VALUE="&quot;=&quot;"/>
<ITEM NAME="GREATER" VALUE="&quot;&gt;&quot;"/>
<ITEM NAME="LESS" VALUE="&quot;&lt;&quot;"/>
<ITEM NAME="GREATER_OR_EQUAL" VALUE="&quot;&gt;=&quot;"/>
<ITEM NAME="LESS_OR_EQUAL" VALUE="&quot;&lt;=&quot;"/>
<ITEM NAME="NOT_EQUAL" VALUE="&quot;&lt;&gt;&quot;"/>
<ITEM NAME="BETWEEN" VALUE="&quot;BETWEEN&quot;"/>
<ITEM NAME="LIKE" VALUE="&quot;LIKE&quot;"/>
<ITEM NAME="IN" VALUE="&quot;IN&quot;"/>
</ITEMS>
</ITEM>
<ITEM NAME="VALUE_SQL" VALUE='""'/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="ELT_TABLE_NAME"

View File

@@ -86,6 +86,8 @@ imports="
}
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
boolean useWhereTable = ("true").equals(ElementParameterParser.getValue(node, "__USE_WHERE_CONDITIONS_TABLE__"));
List<Map<String, String>> whereConditions = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__WHERE_CONDITIONS_TABLE__");
%>
@@ -284,39 +286,66 @@ for(Column colStmt:stmtStructure){
<%
}else if (("UPDATE").equals(dataAction)){
%>
String updateQuery_<%=cid %> = "UPDATE "+tableName_<%=cid%>+" SET <%=updateSetStmt.toString()%> " +select_query_<%=cid %>.substring(select_query_<%=cid %>.indexOf("FROM"));
StringBuffer updateQuery_<%=cid %> = new StringBuffer("UPDATE "+tableName_<%=cid%>+" SET <%=updateSetStmt.toString()%> " +select_query_<%=cid %>.substring(select_query_<%=cid %>.indexOf("FROM")));
<%
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
if((CodeGenerationUtils.hasAlphaNumericCharacter(whereClause) && (!useWhereTable)) || (useWhereTable && whereConditions.size() > 0)) {
%>
if(select_query_<%=cid %>.indexOf("WHERE")==-1){
updateQuery_<%=cid %> +=" WHERE ";
}else{
updateQuery_<%=cid %> +=" AND ";
}
updateQuery_<%=cid %>+= <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>;
if(select_query_<%=cid %>.indexOf("WHERE")==-1){
updateQuery_<%=cid %>.append(" WHERE ");
}else{
updateQuery_<%=cid %>.append(" AND ");
}
<%
if(!useWhereTable) {
%>
updateQuery_<%=cid %>.append(<%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
} else {
String operator = "\"\"";
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
updateQuery_<%=cid %>.append(<%=operator %> + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
operator = "\" AND \"";
}
}
}
%>
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>);
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>.toString());
<%
}else if (("DELETE").equals(dataAction)){
%>
String deleteQuery_<%=cid %> = "DELETE FROM "+ tableName_<%=cid%>+" WHERE EXISTS ("+select_query_<%=cid %>+") "
<%
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
+" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>
<%
}
%>
;
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>);
StringBuffer deleteQuery_<%=cid %> = new StringBuffer("DELETE FROM "+ tableName_<%=cid%>+" WHERE EXISTS ("+select_query_<%=cid %>+") ");
<%
if(!useWhereTable) {
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
deleteQuery_<%=cid %>.append(" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
}
} else {
if(whereConditions.size() > 0) {
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
deleteQuery_<%=cid %>.append(" AND " + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
}
}
}
%>
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>.toString());
<%
<%
}
%>
%>
int nb_line_<%=cid%> = 0;
int nb_line_updated_<%=cid%> = 0;
int nb_line_inserted_<%=cid%> = 0;
@@ -339,7 +368,7 @@ System.out.println("--> " + nb_line_inserted_<%=cid%> + " rows inserted. \n");
}else if(("UPDATE").equals(dataAction)){
%>
System.out.println("Updating with : \n" + updateQuery_<%=cid %> +"\n");
System.out.println("Updating with : \n" + updateQuery_<%=cid %>.toString() +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+updateQuery_"+ cid +"+\"");%>
nb_line_updated_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
@@ -347,7 +376,7 @@ nb_line_updated_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%
}else if (("DELETE").equals(dataAction)){
%>
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %> +"\n");
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %>.toString() +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+deleteQuery_"+ cid +"+\"");%>
nb_line_deleted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>

View File

@@ -15,3 +15,19 @@ NB_LINE_DELETED.NAME=Number Of Deleted Lines
USE_DIFFERENT_TABLE.NAME=Use different table name
DIFFERENT_TABLE_NAME.NAME=Table name
IS_TABLE_NAME_VARIABLE.NAME=Table name from connection name is variable
USE_WHERE_CONDITIONS_TABLE.NAME=Use WHERE conditions table
WHERE_CONDITIONS_TABLE.NAME=
WHERE_CONDITIONS_TABLE.ITEM.COLUMN=Column
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION=Function
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.EQUAL==
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER=>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS=<
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER_OR_EQUAL=>=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS_OR_EQUAL=<=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.NOT_EQUAL=<>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.BETWEEN=BETWEEN
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LIKE=LIKE
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.IN=IN
WHERE_CONDITIONS_TABLE.ITEM.VALUE_SQL=Value

View File

@@ -54,10 +54,41 @@
>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="8" SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')"
>
<PARAMETER NAME="USE_WHERE_CONDITIONS_TABLE" FIELD="CHECK" NUM_ROW="8"
SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="10"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'false')">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="NOTE" FIELD="LABEL" NUM_ROW="11"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<DEFAULT>WHERE conditions table&#x000A;(for UPDATE and DELETE only)</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CONDITIONS_TABLE" FIELD="TABLE" NUM_ROW="12"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<ITEMS>
<ITEM NAME="COLUMN" VALUE='""'/>
<ITEM NAME="FUNCTION" FIELD="CLOSED_LIST">
<ITEMS DEFAULT="EQUAL">
<ITEM NAME="EQUAL" VALUE="&quot;=&quot;"/>
<ITEM NAME="GREATER" VALUE="&quot;&gt;&quot;"/>
<ITEM NAME="LESS" VALUE="&quot;&lt;&quot;"/>
<ITEM NAME="GREATER_OR_EQUAL" VALUE="&quot;&gt;=&quot;"/>
<ITEM NAME="LESS_OR_EQUAL" VALUE="&quot;&lt;=&quot;"/>
<ITEM NAME="NOT_EQUAL" VALUE="&quot;&lt;&gt;&quot;"/>
<ITEM NAME="BETWEEN" VALUE="&quot;BETWEEN&quot;"/>
<ITEM NAME="LIKE" VALUE="&quot;LIKE&quot;"/>
<ITEM NAME="IN" VALUE="&quot;IN&quot;"/>
</ITEMS>
</ITEM>
<ITEM NAME="VALUE_SQL" VALUE='""'/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="ELT_TABLE_NAME"

View File

@@ -1,146 +1,147 @@
<%@ jet
imports="
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
org.talend.core.model.process.IConnection
org.talend.commons.utils.generation.CodeGenerationUtils
java.util.List
java.util.ArrayList
java.util.LinkedList
java.util.Map
"
%>
<%@ include file="../templates/Log4j/Log4jDBConnUtil.javajet"%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
String cid = node.getUniqueName();
String dbtable = null;
String dbschema = ElementParameterParser.getValue(node,"__ELT_SCHEMA_NAME__");
String uniqueNameConnection = null;
INode previousNode = null;
String differenttable = ElementParameterParser.getValue(node, "__DIFFERENT_TABLE_NAME__");
boolean useDifferentTable = "true".equals(ElementParameterParser.getValue(node, "__USE_DIFFERENT_TABLE__"));
boolean isTableNameVariable="true".equals(ElementParameterParser.getValue(node, "__IS_TABLE_NAME_VARIABLE__"));
boolean useUpdateStatement="true".equals(ElementParameterParser.getValue(node, "__USE_UPDATE_STATEMENT__"));
%>
String select_query_<%=cid %> = null;
String tableName_<%=cid%> = null;
String selectQueryColumnsName_<%=cid %> = null;
<%
List<IConnection> connections = (List<IConnection>) node.getIncomingConnections();
if(connections != null && connections.size() > 0 && connections.get(0) != null) {
IConnection connection = connections.get(0);
previousNode = connection.getSource();
String previousComponentName = previousNode.getUniqueName();
dbtable = connection.getName();
uniqueNameConnection = connection.getUniqueName();
%>
select_query_<%=cid %> = (String) globalMap.get("<%=previousComponentName%>"+"QUERY"+"<%=uniqueNameConnection%>");
selectQueryColumnsName_<%=cid %> = (String) globalMap.get("<%=previousComponentName%>"+"QUERY_COLUMNS_NAME"+"<%=uniqueNameConnection%>");
<%
}
String tableName=null;
if(useDifferentTable){
tableName=differenttable;
}else{
if(isTableNameVariable){
tableName=dbtable;
}else{
tableName="\""+dbtable +"\"";
}
}
%>
String dbschema_<%=cid%> = <%=dbschema%>;
if(dbschema_<%=cid%> != null && dbschema_<%=cid%>.trim().length() > 0) {
tableName_<%=cid%> = <%=dbschema%> + "." + <%=tableName%>;
}else {
tableName_<%=cid%> = <%=tableName%>;
}
<%
String dataAction = ElementParameterParser.getValue(node,"__DATA_ACTION__");
String dbhost = null;
String dbport = null;
String dbname = null;
String dbuser = null;
boolean useExistingConn = false;
String dbproperties = null;
String driver = "JTDS";
boolean useActiveDirectoryAuth = false;
if(previousNode != null) {
dbhost = ElementParameterParser.getValue(previousNode, "__HOST__");
dbport = ElementParameterParser.getValue(previousNode, "__PORT__");
dbname = ElementParameterParser.getValue(previousNode, "__DBNAME__");
dbuser = ElementParameterParser.getValue(previousNode, "__USER__");
useExistingConn = ("true").equals(ElementParameterParser.getValue(previousNode, "__USE_EXISTING_CONNECTION__"));
dbproperties = ElementParameterParser.getValue(previousNode, "__PROPERTIES__");
driver = ElementParameterParser.getValue(previousNode, "__DRIVER__");
useActiveDirectoryAuth = "true".equals(ElementParameterParser.getValue(previousNode, "__ACTIVE_DIR_AUTH__"));
}
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
%>
<%
if(useExistingConn) {
String connection = ElementParameterParser.getValue(previousNode, "__CONNECTION__");
String conn = "conn_" + connection;
%>
java.sql.Connection conn_<%=cid%> = (java.sql.Connection)globalMap.get("<%=conn%>");
<%
log4jCodeGenerateUtil.useExistConnection(node);
} else {
if("JTDS".equals(driver)) {
%>
String driverClass_<%=cid%> = "net.sourceforge.jtds.jdbc.Driver";
<%} else {%>
String driverClass_<%=cid%> = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
<%}%>
java.lang.Class.forName(driverClass_<%=cid%>);
String port_<%=cid%> = <%=dbport%>;
String dbname_<%=cid%> = <%=dbname%> ;
<%
if("JTDS".equals(driver)) {
%>
String url_<%=cid %> = "jdbc:jtds:sqlserver://" + <%=dbhost%> ;
<%} else {%>
String url_<%=cid %> = "jdbc:sqlserver://" + <%=dbhost%> ;
<%}%>
if (!"".equals(port_<%=cid%>)) {
url_<%=cid %> += ":" + <%=dbport%>;
}
if (!"".equals(dbname_<%=cid%>)) {
<%
if("JTDS".equals(driver)) {
%>
url_<%=cid%> += "//" + <%=dbname%>;
<%} else {%>
url_<%=cid%> += ";databaseName=" + <%=dbname%>;
<%}%>
}
<%
if (driver.equals("MSSQL_PROP") && useActiveDirectoryAuth) {
%>
url_<%=cid%> += ";encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;Authentication=ActiveDirectoryPassword";
url_<%=cid%> += ";database=" + <%=dbname%>;
<%
}
%>
url_<%=cid%> += ";appName=" + projectName + ";" + <%=dbproperties%>;
String dbUser_<%=cid %> = <%=dbuser%>;
<%@ jet
imports="
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
org.talend.core.model.process.IConnection
org.talend.commons.utils.generation.CodeGenerationUtils
java.util.List
java.util.ArrayList
java.util.LinkedList
java.util.Map
"
%>
<%@ include file="../templates/Log4j/Log4jDBConnUtil.javajet"%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
String cid = node.getUniqueName();
String dbtable = null;
String dbschema = ElementParameterParser.getValue(node,"__ELT_SCHEMA_NAME__");
String uniqueNameConnection = null;
INode previousNode = null;
String differenttable = ElementParameterParser.getValue(node, "__DIFFERENT_TABLE_NAME__");
boolean useDifferentTable = "true".equals(ElementParameterParser.getValue(node, "__USE_DIFFERENT_TABLE__"));
boolean isTableNameVariable="true".equals(ElementParameterParser.getValue(node, "__IS_TABLE_NAME_VARIABLE__"));
boolean useUpdateStatement="true".equals(ElementParameterParser.getValue(node, "__USE_UPDATE_STATEMENT__"));
%>
String select_query_<%=cid %> = null;
String tableName_<%=cid%> = null;
String selectQueryColumnsName_<%=cid %> = null;
<%
List<IConnection> connections = (List<IConnection>) node.getIncomingConnections();
if(connections != null && connections.size() > 0 && connections.get(0) != null) {
IConnection connection = connections.get(0);
previousNode = connection.getSource();
String previousComponentName = previousNode.getUniqueName();
dbtable = connection.getName();
uniqueNameConnection = connection.getUniqueName();
%>
select_query_<%=cid %> = (String) globalMap.get("<%=previousComponentName%>"+"QUERY"+"<%=uniqueNameConnection%>");
selectQueryColumnsName_<%=cid %> = (String) globalMap.get("<%=previousComponentName%>"+"QUERY_COLUMNS_NAME"+"<%=uniqueNameConnection%>");
<%
}
String tableName=null;
if(useDifferentTable){
tableName=differenttable;
}else{
if(isTableNameVariable){
tableName=dbtable;
}else{
tableName="\""+dbtable +"\"";
}
}
%>
String dbschema_<%=cid%> = <%=dbschema%>;
if(dbschema_<%=cid%> != null && dbschema_<%=cid%>.trim().length() > 0) {
tableName_<%=cid%> = <%=dbschema%> + "." + <%=tableName%>;
}else {
tableName_<%=cid%> = <%=tableName%>;
}
<%
String dataAction = ElementParameterParser.getValue(node,"__DATA_ACTION__");
String dbhost = null;
String dbport = null;
String dbname = null;
String dbuser = null;
boolean useExistingConn = false;
String dbproperties = null;
String driver = "JTDS";
boolean useActiveDirectoryAuth = false;
if(previousNode != null) {
dbhost = ElementParameterParser.getValue(previousNode, "__HOST__");
dbport = ElementParameterParser.getValue(previousNode, "__PORT__");
dbname = ElementParameterParser.getValue(previousNode, "__DBNAME__");
dbuser = ElementParameterParser.getValue(previousNode, "__USER__");
useExistingConn = ("true").equals(ElementParameterParser.getValue(previousNode, "__USE_EXISTING_CONNECTION__"));
dbproperties = ElementParameterParser.getValue(previousNode, "__PROPERTIES__");
driver = ElementParameterParser.getValue(previousNode, "__DRIVER__");
useActiveDirectoryAuth = "true".equals(ElementParameterParser.getValue(previousNode, "__ACTIVE_DIR_AUTH__"));
}
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
boolean useWhereTable = ("true").equals(ElementParameterParser.getValue(node, "__USE_WHERE_CONDITIONS_TABLE__"));
List<Map<String, String>> whereConditions = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__WHERE_CONDITIONS_TABLE__");
%>
<%
if(useExistingConn) {
String connection = ElementParameterParser.getValue(previousNode, "__CONNECTION__");
String conn = "conn_" + connection;
%>
java.sql.Connection conn_<%=cid%> = (java.sql.Connection)globalMap.get("<%=conn%>");
<%
log4jCodeGenerateUtil.useExistConnection(node);
} else {
if("JTDS".equals(driver)) {
%>
String driverClass_<%=cid%> = "net.sourceforge.jtds.jdbc.Driver";
<%} else {%>
String driverClass_<%=cid%> = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
<%}%>
java.lang.Class.forName(driverClass_<%=cid%>);
String port_<%=cid%> = <%=dbport%>;
String dbname_<%=cid%> = <%=dbname%> ;
<%
if("JTDS".equals(driver)) {
%>
String url_<%=cid %> = "jdbc:jtds:sqlserver://" + <%=dbhost%> ;
<%} else {%>
String url_<%=cid %> = "jdbc:sqlserver://" + <%=dbhost%> ;
<%}%>
if (!"".equals(port_<%=cid%>)) {
url_<%=cid %> += ":" + <%=dbport%>;
}
if (!"".equals(dbname_<%=cid%>)) {
<%
if("JTDS".equals(driver)) {
%>
url_<%=cid%> += "//" + <%=dbname%>;
<%} else {%>
url_<%=cid%> += ";databaseName=" + <%=dbname%>;
<%}%>
}
<%
if (driver.equals("MSSQL_PROP") && useActiveDirectoryAuth) {
%>
url_<%=cid%> += ";encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;Authentication=ActiveDirectoryPassword";
url_<%=cid%> += ";database=" + <%=dbname%>;
<%
}
%>
url_<%=cid%> += ";appName=" + projectName + ";" + <%=dbproperties%>;
String dbUser_<%=cid %> = <%=dbuser%>;
<%
String passwordFieldName = "__PASS__";
@@ -149,288 +150,315 @@ if(useExistingConn) {
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/eltpassword.javajet"%>
String dbPwd_<%=cid %> = decryptedPassword_<%=cid%>;
java.sql.Connection conn_<%=cid%> = null;
<%
log4jCodeGenerateUtil.debugConnectionParams(node);
log4jCodeGenerateUtil.connect(node);
}
%>
<%
List<IMetadataColumn> columnList = null;
List<IMetadataTable> metadatas = node.getMetadataList();
if(metadatas !=null && metadatas.size()>0){
IMetadataTable metadata = metadatas.get(0);
if(metadata != null){
columnList = metadata.getListColumns();
}
}
%>
java.sql.PreparedStatement pstmt_<%=cid %> =null;
<%
if(columnList != null && columnList.size()>0){
class Column{
IMetadataColumn column;
String name;
String sqlStmt;
String value;
boolean addCol;
List<Column> replacement = new ArrayList<Column>();
public Column(IMetadataColumn column){
this.column = column;
String columname = column.getOriginalDbColumnName();
if(columname!=null && columname.trim().length()>0){
this.name = columname;
}else{
this.name = column.getLabel();
}
this.sqlStmt = "=?";
this.value = "?";
this.addCol =false;
}
public boolean isReplaced(){
return replacement.size()>0;
}
public List<Column> getReplacement(){
return this.replacement;
}
public IMetadataColumn getColumn(){
return this.column;
}
public String getName(){
return this.name;
}
public boolean isAddCol(){
return this.addCol;
}
public String getSqlStmt(){
return this.sqlStmt;
}
public String getValue(){
return this.value;
}
}
StringBuilder insertColName = new StringBuilder();
StringBuilder insertValueStmt = new StringBuilder();
StringBuilder updateSetStmt = new StringBuilder();
StringBuilder updateWhereStmt = new StringBuilder();
StringBuilder mergeCondition = new StringBuilder ();
List<Column> stmtStructure = new LinkedList<Column>();
for(IMetadataColumn column:columnList){
stmtStructure.add(new Column(column));
}
int counterOuter =0;
boolean firstKey = true;
boolean firstNoneKey = true;
boolean isfirstKey = true;
for(Column colStmt:stmtStructure){
String suffix = ",";
if (colStmt.getColumn().isKey()){
if (isfirstKey) {
isfirstKey = false;
}else {
mergeCondition.append(" AND ");
}
mergeCondition.append("target." + colStmt.getColumn().getLabel() + "=source." + colStmt.getColumn().getLabel());
}
if(colStmt.isReplaced()){
List<Column> replacedColumns = colStmt.getReplacement();
int counterReplace = 0;
if(counterOuter==(stmtStructure.size()-1) && counterReplace==(replacedColumns.size()-1) ){
suffix = "";
}
for(Column replacement:replacedColumns){
insertColName.append(replacement.getName()+suffix);
insertValueStmt.append(replacement.getSqlStmt()+suffix);
if(!colStmt.getColumn().isKey()){
if(!firstNoneKey){
updateSetStmt.append(",");
}else{
firstNoneKey = false;
}
updateSetStmt.append(replacement.getName());
updateSetStmt.append(replacement.getSqlStmt());
}else{
if(!firstKey){
updateWhereStmt.append(" AND ");
}else{
firstKey = false;
}
updateWhereStmt.append(replacement.getName());
updateWhereStmt.append(replacement.getSqlStmt());
}
counterReplace++;
}
}else{
if(counterOuter==(stmtStructure.size()-1)){
suffix = "";
}
if(colStmt.isAddCol()){
insertColName.append(colStmt.getName()+suffix);
insertValueStmt.append(colStmt.getSqlStmt()+suffix);
updateSetStmt.append(colStmt.getName());
updateSetStmt.append(colStmt.getSqlStmt()+suffix);
}else{
insertColName.append(colStmt.getName()+suffix);
insertValueStmt.append(colStmt.getValue()+suffix);
updateSetStmt.append(colStmt.getName()+"=(\"+select_query_"+ cid +".replaceFirst(java.util.regex.Pattern.quote(selectQueryColumnsName_"+ cid +"),routines.system.StringUtils.splitSQLColumns(selectQueryColumnsName_"+ cid +")[ "+ counterOuter + "])+\")" +suffix);
}
}
counterOuter ++;
}
if(("INSERT").equals(dataAction)){
%>
String insertQuery_<%=cid %> = "INSERT INTO "+tableName_<%=cid%>+"(<%=insertColName.toString()%>) ("+select_query_<%=cid %>+")";
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insertQuery_<%=cid %>);
<%
}else if (("UPDATE").equals(dataAction)){
if(useUpdateStatement){
%>
String updateQuery_<%=cid %> = select_query_<%=cid %>;
<%
}else{
%>
String updateQuery_<%=cid %> = "UPDATE "+tableName_<%=cid%>+" SET <%=updateSetStmt.toString()%> ";
<%
}
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
if(useUpdateStatement){
%>
if(select_query_<%=cid %>.indexOf("WHERE")==-1){
updateQuery_<%=cid %> +=" WHERE ";
}else{
updateQuery_<%=cid %> +=" AND ";
}
updateQuery_<%=cid %>+= <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>;
<%
}else{
%>
updateQuery_<%=cid %> += " WHERE " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>;
<%
}
}
%>
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>);
<%
}else if (("DELETE").equals(dataAction)){
%>
String deleteQuery_<%=cid %> = "DELETE FROM "+ tableName_<%=cid%>+" WHERE EXISTS ("+select_query_<%=cid %>+") "
<%
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
+" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>
<%
}
%>
;
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>);
<%
}
%>
int nb_line_<%=cid%> = 0;
int nb_line_updated_<%=cid%> = 0;
int nb_line_inserted_<%=cid%> = 0;
int nb_line_deleted_<%=cid%> = 0;
<%
}
if(dbtable != null && columnList != null){
if(("INSERT").equals(dataAction)){
%>
System.out.println("Inserting with : \n" + insertQuery_<%=cid %> + "\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+insertQuery_"+ cid +"+\"");%>
nb_line_inserted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_inserted_<%=cid%> + " rows inserted. \n");
<%
}else if(("UPDATE").equals(dataAction)){
%>
System.out.println("Updating with : \n" + updateQuery_<%=cid %> +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+updateQuery_"+ cid +"+\"");%>
nb_line_updated_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_updated_<%=cid%> + " rows updated. \n");
<%
}else if (("DELETE").equals(dataAction)){
%>
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %> +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+deleteQuery_"+ cid +"+\"");%>
nb_line_deleted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_deleted_<%=cid%> + " rows deleted. \n");
<%
}
}
// END
%>
pstmt_<%=cid %>.close();
<%
if(!useExistingConn) {
%>
if(conn_<%=cid%> != null && !conn_<%=cid%>.isClosed()) {
<%log4jCodeGenerateUtil.close(node);%>
}
<%
}
%>
nb_line_<%=cid%> = nb_line_updated_<%=cid%> + nb_line_inserted_<%=cid%> + nb_line_deleted_<%=cid%>;
globalMap.put("<%=cid %>_NB_LINE",nb_line_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_UPDATED",nb_line_updated_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_INSERTED",nb_line_inserted_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_DELETED",nb_line_deleted_<%=cid%>);
<%
if(isLog4jEnabled){
Map<String,String> actionMap=new java.util.HashMap<String,String>();
actionMap.put("INSERT","inserted");
actionMap.put("UPDATE","updated");
actionMap.put("DELETE","deleted");
%>
log.info("<%=cid%> - Has <%=actionMap.get(dataAction)%> records count: " + nb_line_<%=actionMap.get(dataAction)%>_<%=cid%> + ".");
<%
}
%>
java.sql.Connection conn_<%=cid%> = null;
<%
log4jCodeGenerateUtil.debugConnectionParams(node);
log4jCodeGenerateUtil.connect(node);
}
%>
<%
List<IMetadataColumn> columnList = null;
List<IMetadataTable> metadatas = node.getMetadataList();
if(metadatas !=null && metadatas.size()>0){
IMetadataTable metadata = metadatas.get(0);
if(metadata != null){
columnList = metadata.getListColumns();
}
}
%>
java.sql.PreparedStatement pstmt_<%=cid %> =null;
<%
if(columnList != null && columnList.size()>0){
class Column{
IMetadataColumn column;
String name;
String sqlStmt;
String value;
boolean addCol;
List<Column> replacement = new ArrayList<Column>();
public Column(IMetadataColumn column){
this.column = column;
String columname = column.getOriginalDbColumnName();
if(columname!=null && columname.trim().length()>0){
this.name = columname;
}else{
this.name = column.getLabel();
}
this.sqlStmt = "=?";
this.value = "?";
this.addCol =false;
}
public boolean isReplaced(){
return replacement.size()>0;
}
public List<Column> getReplacement(){
return this.replacement;
}
public IMetadataColumn getColumn(){
return this.column;
}
public String getName(){
return this.name;
}
public boolean isAddCol(){
return this.addCol;
}
public String getSqlStmt(){
return this.sqlStmt;
}
public String getValue(){
return this.value;
}
}
StringBuilder insertColName = new StringBuilder();
StringBuilder insertValueStmt = new StringBuilder();
StringBuilder updateSetStmt = new StringBuilder();
StringBuilder updateWhereStmt = new StringBuilder();
StringBuilder mergeCondition = new StringBuilder ();
List<Column> stmtStructure = new LinkedList<Column>();
for(IMetadataColumn column:columnList){
stmtStructure.add(new Column(column));
}
int counterOuter =0;
boolean firstKey = true;
boolean firstNoneKey = true;
boolean isfirstKey = true;
for(Column colStmt:stmtStructure){
String suffix = ",";
if (colStmt.getColumn().isKey()){
if (isfirstKey) {
isfirstKey = false;
}else {
mergeCondition.append(" AND ");
}
mergeCondition.append("target." + colStmt.getColumn().getLabel() + "=source." + colStmt.getColumn().getLabel());
}
if(colStmt.isReplaced()){
List<Column> replacedColumns = colStmt.getReplacement();
int counterReplace = 0;
if(counterOuter==(stmtStructure.size()-1) && counterReplace==(replacedColumns.size()-1) ){
suffix = "";
}
for(Column replacement:replacedColumns){
insertColName.append(replacement.getName()+suffix);
insertValueStmt.append(replacement.getSqlStmt()+suffix);
if(!colStmt.getColumn().isKey()){
if(!firstNoneKey){
updateSetStmt.append(",");
}else{
firstNoneKey = false;
}
updateSetStmt.append(replacement.getName());
updateSetStmt.append(replacement.getSqlStmt());
}else{
if(!firstKey){
updateWhereStmt.append(" AND ");
}else{
firstKey = false;
}
updateWhereStmt.append(replacement.getName());
updateWhereStmt.append(replacement.getSqlStmt());
}
counterReplace++;
}
}else{
if(counterOuter==(stmtStructure.size()-1)){
suffix = "";
}
if(colStmt.isAddCol()){
insertColName.append(colStmt.getName()+suffix);
insertValueStmt.append(colStmt.getSqlStmt()+suffix);
updateSetStmt.append(colStmt.getName());
updateSetStmt.append(colStmt.getSqlStmt()+suffix);
}else{
insertColName.append(colStmt.getName()+suffix);
insertValueStmt.append(colStmt.getValue()+suffix);
updateSetStmt.append(colStmt.getName()+"=(\"+select_query_"+ cid +".replaceFirst(java.util.regex.Pattern.quote(selectQueryColumnsName_"+ cid +"),routines.system.StringUtils.splitSQLColumns(selectQueryColumnsName_"+ cid +")[ "+ counterOuter + "])+\")" +suffix);
}
}
counterOuter ++;
}
if(("INSERT").equals(dataAction)){
%>
String insertQuery_<%=cid %> = "INSERT INTO "+tableName_<%=cid%>+"(<%=insertColName.toString()%>) ("+select_query_<%=cid %>+")";
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insertQuery_<%=cid %>);
<%
}else if (("UPDATE").equals(dataAction)){
if(useUpdateStatement){
%>
StringBuffer updateQuery_<%=cid %> = new StringBuffer(select_query_<%=cid %>);
<%
}else{
%>
StringBuffer updateQuery_<%=cid %> = new StringBuffer("UPDATE "+tableName_<%=cid%>+" SET <%=updateSetStmt.toString()%> ");
<%
}
if((CodeGenerationUtils.hasAlphaNumericCharacter(whereClause) && (!useWhereTable)) || (useWhereTable && whereConditions.size() > 0)) {
if(useUpdateStatement){
%>
if(select_query_<%=cid %>.indexOf("WHERE")==-1){
updateQuery_<%=cid %>.append(" WHERE ");
}else{
updateQuery_<%=cid %>.append(" AND ");
}
<%
}else{
%>
updateQuery_<%=cid %>.append(" WHERE ");
<%
}
if(!useWhereTable) {
%>
updateQuery_<%=cid %>.append(<%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
} else {
String operator = "\"\"";
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
updateQuery_<%=cid %>.append(<%=operator %> + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
operator = "\" AND \"";
}
}
}
%>
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>.toString());
<%
}else if (("DELETE").equals(dataAction)){
%>
StringBuffer deleteQuery_<%=cid %> = new StringBuffer("DELETE FROM "+ tableName_<%=cid%>+" WHERE EXISTS ("+select_query_<%=cid %>+") ");
<%
if(!useWhereTable) {
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
deleteQuery_<%=cid %>.append(" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
}
} else {
if(whereConditions.size() > 0) {
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
deleteQuery_<%=cid %>.append(" AND " + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
}
}
}
%>
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>.toString());
<%
}
%>
int nb_line_<%=cid%> = 0;
int nb_line_updated_<%=cid%> = 0;
int nb_line_inserted_<%=cid%> = 0;
int nb_line_deleted_<%=cid%> = 0;
<%
}
if(dbtable != null && columnList != null){
if(("INSERT").equals(dataAction)){
%>
System.out.println("Inserting with : \n" + insertQuery_<%=cid %> + "\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+insertQuery_"+ cid +"+\"");%>
nb_line_inserted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_inserted_<%=cid%> + " rows inserted. \n");
<%
}else if(("UPDATE").equals(dataAction)){
%>
System.out.println("Updating with : \n" + updateQuery_<%=cid %>.toString() +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+updateQuery_"+ cid +"+\"");%>
nb_line_updated_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_updated_<%=cid%> + " rows updated. \n");
<%
}else if (("DELETE").equals(dataAction)){
%>
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %>.toString() +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+deleteQuery_"+ cid +"+\"");%>
nb_line_deleted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_deleted_<%=cid%> + " rows deleted. \n");
<%
}
}
// END
%>
pstmt_<%=cid %>.close();
<%
if(!useExistingConn) {
%>
if(conn_<%=cid%> != null && !conn_<%=cid%>.isClosed()) {
<%log4jCodeGenerateUtil.close(node);%>
}
<%
}
%>
nb_line_<%=cid%> = nb_line_updated_<%=cid%> + nb_line_inserted_<%=cid%> + nb_line_deleted_<%=cid%>;
globalMap.put("<%=cid %>_NB_LINE",nb_line_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_UPDATED",nb_line_updated_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_INSERTED",nb_line_inserted_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_DELETED",nb_line_deleted_<%=cid%>);
<%
if(isLog4jEnabled){
Map<String,String> actionMap=new java.util.HashMap<String,String>();
actionMap.put("INSERT","inserted");
actionMap.put("UPDATE","updated");
actionMap.put("DELETE","deleted");
%>
log.info("<%=cid%> - Has <%=actionMap.get(dataAction)%> records count: " + nb_line_<%=actionMap.get(dataAction)%>_<%=cid%> + ".");
<%
}
%>

View File

@@ -23,6 +23,22 @@ USER.NAME=Username
COMMIT_EVERY.NAME=Commit every
WHERE_CLAUSE.NAME=Where clauses \n(for UPDATE and DELETE only)
USE_WHERE_CONDITIONS_TABLE.NAME=Use WHERE conditions table
WHERE_CONDITIONS_TABLE.NAME=
WHERE_CONDITIONS_TABLE.ITEM.COLUMN=Column
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION=Function
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.EQUAL==
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER=>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS=<
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER_OR_EQUAL=>=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS_OR_EQUAL=<=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.NOT_EQUAL=<>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.BETWEEN=BETWEEN
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LIKE=LIKE
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.IN=IN
WHERE_CONDITIONS_TABLE.ITEM.VALUE_SQL=Value
ELT_TABLE_NAME.NAME=Default Table Name
ELT_SCHEMA_NAME.NAME=Default Schema Name
NB_LINE_UPDATED.NAME=Number Of Updated Lines

View File

@@ -56,7 +56,7 @@
<PARAMETER
NAME="CONNECTION"
FIELD="COMPONENT_LIST"
REQUIRED="true" FILTER="REGEXP:^tJDBCConnection|tSnowflakeConnection|tSAPHanaConnection$"
REQUIRED="true" FILTER="REGEXP:^tJDBCConnection|tSnowflakeConnection|tSAPHanaConnection|tDeltaLakeConnection$"
NUM_ROW="2"
SHOW_IF="(#LINK@CONNECTOR.OUT.TABLE_REF == '0') AND (USE_EXISTING_CONNECTION == 'true')"
DYNAMIC_SETTINGS="true"/>

View File

@@ -58,17 +58,44 @@
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="USE_WHERE_CONDITIONS_TABLE" FIELD="CHECK" NUM_ROW="8"
SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="8"
SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')">
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="10"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'false')">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="NOTE" FIELD="LABEL" NUM_ROW="11"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<DEFAULT>WHERE conditions table&#x000A;(for UPDATE and DELETE only)</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CONDITIONS_TABLE" FIELD="TABLE" NUM_ROW="12"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<ITEMS>
<ITEM NAME="COLUMN" VALUE='""'/>
<ITEM NAME="FUNCTION" FIELD="CLOSED_LIST">
<ITEMS DEFAULT="EQUAL">
<ITEM NAME="EQUAL" VALUE="&quot;=&quot;"/>
<ITEM NAME="GREATER" VALUE="&quot;&gt;&quot;"/>
<ITEM NAME="LESS" VALUE="&quot;&lt;&quot;"/>
<ITEM NAME="GREATER_OR_EQUAL" VALUE="&quot;&gt;=&quot;"/>
<ITEM NAME="LESS_OR_EQUAL" VALUE="&quot;&lt;=&quot;"/>
<ITEM NAME="NOT_EQUAL" VALUE="&quot;&lt;&gt;&quot;"/>
<ITEM NAME="BETWEEN" VALUE="&quot;BETWEEN&quot;"/>
<ITEM NAME="LIKE" VALUE="&quot;LIKE&quot;"/>
<ITEM NAME="IN" VALUE="&quot;IN&quot;"/>
</ITEMS>
</ITEM>
<ITEM NAME="VALUE_SQL" VALUE='""'/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="ELT_TABLE_NAME"
FIELD="TEXT"
NUM_ROW="10"
NUM_ROW="13"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>

View File

@@ -65,7 +65,9 @@ imports="
String differenttable = ElementParameterParser.getValue(node, "__DIFFERENT_TABLE_NAME__");
boolean useDifferentTable = "true".equals(ElementParameterParser.getValue(node, "__USE_DIFFERENT_TABLE__"));
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
boolean useWhereTable = ("true").equals(ElementParameterParser.getValue(node, "__USE_WHERE_CONDITIONS_TABLE__"));
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
List<Map<String, String>> whereConditions = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__WHERE_CONDITIONS_TABLE__");
String tableName=null;
if(useDifferentTable){
tableName=differenttable;
@@ -265,32 +267,59 @@ imports="
<%
} else if (("UPDATE").equals(dataAction)) {
%>
String updateQuery_<%=cid %> = "UPDATE "+<%=tableName%>;
updateQuery_<%=cid %> +=" SET <%=updateSetStmt.toString()%> "
StringBuffer updateQuery_<%=cid %> = new StringBuffer("UPDATE "+<%=tableName%>+" SET <%=updateSetStmt.toString()%> ");
<%
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
if(!useWhereTable) {
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
+" WHERE " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>
updateQuery_<%=cid %>.append(" WHERE " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
}
} else {
if(whereConditions.size() > 0) {
%>
updateQuery_<%=cid %>.append(" WHERE ");
<%
String operator = "\"\"";
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
updateQuery_<%=cid %>.append(<%=operator %> + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
operator = "\" AND \"";
}
}
}
%>
;
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>);
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>.toString());
<%
}else if (("DELETE").equals(dataAction)){
%>
String deleteQuery_<%=cid %> = "DELETE FROM "+<%=tableName%>;
deleteQuery_<%=cid %> += " WHERE EXISTS ("+select_query_<%=cid %>+")"
StringBuffer deleteQuery_<%=cid %> = new StringBuffer("DELETE FROM "+<%=tableName%>+" WHERE EXISTS ("+select_query_<%=cid %>+")");
<%
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
if(!useWhereTable) {
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
+" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>
deleteQuery_<%=cid %>.append(" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
}
} else {
if(whereConditions.size() > 0) {
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
deleteQuery_<%=cid %>.append(" AND " + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
}
}
}
%>
;
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>);
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>.toString());
<%
}
%>
@@ -312,7 +341,7 @@ imports="
<%
}else if(("UPDATE").equals(dataAction)){
%>
System.out.println("Updating with : \n" + updateQuery_<%=cid %> +"\n");
System.out.println("Updating with : \n" + updateQuery_<%=cid %>.toString() +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+updateQuery_"+ cid +"+\"");%>
nb_line_<%=cid%> += nb_line_updated_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
@@ -320,7 +349,7 @@ imports="
<%
}else if (("DELETE").equals(dataAction)){
%>
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %> +"\n");
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %>.toString() +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+deleteQuery_"+ cid +"+\"");%>
nb_line_<%=cid%> += nb_line_deleted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>

View File

@@ -40,6 +40,22 @@ USER.NAME=Username
WHERE_CLAUSE.NAME=Where clauses \n(for UPDATE and DELETE only)
ELT_TABLE_NAME.NAME=Default Table Name
USE_WHERE_CONDITIONS_TABLE.NAME=Use WHERE conditions table
WHERE_CONDITIONS_TABLE.NAME=
WHERE_CONDITIONS_TABLE.ITEM.COLUMN=Column
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION=Function
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.EQUAL==
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER=>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS=<
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER_OR_EQUAL=>=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS_OR_EQUAL=<=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.NOT_EQUAL=<>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.BETWEEN=BETWEEN
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LIKE=LIKE
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.IN=IN
WHERE_CONDITIONS_TABLE.ITEM.VALUE_SQL=Value
USE_DIFFERENT_TABLE.NAME=Use different table name
DIFFERENT_TABLE_NAME.NAME=Table name
IS_TABLE_NAME_VARIABLE.NAME=Table name from connection name is variable

View File

@@ -60,16 +60,47 @@
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="8"
SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')">
<PARAMETER NAME="USE_WHERE_CONDITIONS_TABLE" FIELD="CHECK" NUM_ROW="8"
SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="10"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'false')">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="NOTE" FIELD="LABEL" NUM_ROW="11"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<DEFAULT>WHERE conditions table&#x000A;(for UPDATE and DELETE only)</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CONDITIONS_TABLE" FIELD="TABLE" NUM_ROW="12"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<ITEMS>
<ITEM NAME="COLUMN" VALUE='""'/>
<ITEM NAME="FUNCTION" FIELD="CLOSED_LIST">
<ITEMS DEFAULT="EQUAL">
<ITEM NAME="EQUAL" VALUE="&quot;=&quot;"/>
<ITEM NAME="GREATER" VALUE="&quot;&gt;&quot;"/>
<ITEM NAME="LESS" VALUE="&quot;&lt;&quot;"/>
<ITEM NAME="GREATER_OR_EQUAL" VALUE="&quot;&gt;=&quot;"/>
<ITEM NAME="LESS_OR_EQUAL" VALUE="&quot;&lt;=&quot;"/>
<ITEM NAME="NOT_EQUAL" VALUE="&quot;&lt;&gt;&quot;"/>
<ITEM NAME="BETWEEN" VALUE="&quot;BETWEEN&quot;"/>
<ITEM NAME="LIKE" VALUE="&quot;LIKE&quot;"/>
<ITEM NAME="IN" VALUE="&quot;IN&quot;"/>
</ITEMS>
</ITEM>
<ITEM NAME="VALUE_SQL" VALUE='""'/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="ELT_TABLE_NAME"
FIELD="TEXT"
NUM_ROW="10"
NUM_ROW="13"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>

View File

@@ -1,101 +1,103 @@
<%@ jet
imports="
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
org.talend.core.model.process.IConnection
org.talend.commons.utils.generation.CodeGenerationUtils
java.util.List
java.util.ArrayList
java.util.LinkedList
java.util.Map
"
%>
<%@ include file="../templates/Log4j/Log4jDBConnUtil.javajet"%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
String cid = node.getUniqueName();
String dbtable = null;
String uniqueNameConnection = null;
INode previousNode = null;
boolean isTableNameVariable="true".equals(ElementParameterParser.getValue(node, "__IS_TABLE_NAME_VARIABLE__"));
%>
String select_query_<%=cid %> = null;
String selectQueryColumnsName_<%=cid %> = null;
<%
List<IConnection> connections = (List<IConnection>) node.getIncomingConnections();
if(connections != null && connections.size() > 0 && connections.get(0) != null) {
IConnection connection = connections.get(0);
previousNode = connection.getSource();
String previousComponentName = previousNode.getUniqueName();
dbtable = connection.getName();
uniqueNameConnection = connection.getUniqueName();
%>
select_query_<%=cid %> = (String) globalMap.get("<%=previousComponentName%>"+"QUERY"+"<%=uniqueNameConnection%>");
selectQueryColumnsName_<%=cid %> = (String) globalMap.get("<%=previousComponentName%>"+"QUERY_COLUMNS_NAME"+"<%=uniqueNameConnection%>");
<%
}
String dataAction = ElementParameterParser.getValue(node,"__DATA_ACTION__");
String dbproperties = ElementParameterParser.getValue(node, "__PROPERTIES__");
String dbhost = null;
String dbport = null;
String dbname = null;
String dbuser = null;
boolean useExistingConn = false;
if(previousNode != null) {
dbhost = ElementParameterParser.getValue(previousNode, "__HOST__");
dbport = ElementParameterParser.getValue(previousNode, "__PORT__");
dbname = ElementParameterParser.getValue(previousNode, "__DBNAME__");
dbuser = ElementParameterParser.getValue(previousNode, "__USER__");
useExistingConn = ("true").equals(ElementParameterParser.getValue(previousNode, "__USE_EXISTING_CONNECTION__"));
}
String differenttable = ElementParameterParser.getValue(node, "__DIFFERENT_TABLE_NAME__");
boolean useDifferentTable = "true".equals(ElementParameterParser.getValue(node, "__USE_DIFFERENT_TABLE__"));
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
String tableName=null;
if(useDifferentTable){
tableName=differenttable;
}else{
if(isTableNameVariable){
tableName=dbtable;
}else{
tableName="\""+dbtable +"\"";
}
}
%>
java.sql.Connection conn_<%=cid%> = null;
<%
if(useExistingConn) {
String connection = ElementParameterParser.getValue(previousNode, "__CONNECTION__");
String conn = "conn_" + connection;
%>
conn_<%=cid%> = (java.sql.Connection)globalMap.get("<%=conn%>");
<%
log4jCodeGenerateUtil.useExistConnection(node);
} else {
%>
String driverClass_<%=cid%> = "org.netezza.Driver";
java.lang.Class.forName(driverClass_<%=cid%>);
<%
if(dbproperties == null || ("\"\"").equals(dbproperties) || ("").equals(dbproperties)) {
%>
String url_<%=cid%> = "jdbc:netezza://" + <%=dbhost%> + ":" + <%=dbport%> + "/" + <%=dbname%>;
<%
} else {
%>
String url_<%=cid%> = "jdbc:netezza://" + <%=dbhost%> + ":" + <%=dbport%> + "/" + <%=dbname%> + "?" + <%=dbproperties%>;
<%
}
%>
String dbUser_<%=cid %> = <%=dbuser%>;
<%@ jet
imports="
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
org.talend.core.model.process.IConnection
org.talend.commons.utils.generation.CodeGenerationUtils
java.util.List
java.util.ArrayList
java.util.LinkedList
java.util.Map
"
%>
<%@ include file="../templates/Log4j/Log4jDBConnUtil.javajet"%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
String cid = node.getUniqueName();
String dbtable = null;
String uniqueNameConnection = null;
INode previousNode = null;
boolean isTableNameVariable="true".equals(ElementParameterParser.getValue(node, "__IS_TABLE_NAME_VARIABLE__"));
%>
String select_query_<%=cid %> = null;
String selectQueryColumnsName_<%=cid %> = null;
<%
List<IConnection> connections = (List<IConnection>) node.getIncomingConnections();
if(connections != null && connections.size() > 0 && connections.get(0) != null) {
IConnection connection = connections.get(0);
previousNode = connection.getSource();
String previousComponentName = previousNode.getUniqueName();
dbtable = connection.getName();
uniqueNameConnection = connection.getUniqueName();
%>
select_query_<%=cid %> = (String) globalMap.get("<%=previousComponentName%>"+"QUERY"+"<%=uniqueNameConnection%>");
selectQueryColumnsName_<%=cid %> = (String) globalMap.get("<%=previousComponentName%>"+"QUERY_COLUMNS_NAME"+"<%=uniqueNameConnection%>");
<%
}
String dataAction = ElementParameterParser.getValue(node,"__DATA_ACTION__");
String dbproperties = ElementParameterParser.getValue(node, "__PROPERTIES__");
String dbhost = null;
String dbport = null;
String dbname = null;
String dbuser = null;
boolean useExistingConn = false;
if(previousNode != null) {
dbhost = ElementParameterParser.getValue(previousNode, "__HOST__");
dbport = ElementParameterParser.getValue(previousNode, "__PORT__");
dbname = ElementParameterParser.getValue(previousNode, "__DBNAME__");
dbuser = ElementParameterParser.getValue(previousNode, "__USER__");
useExistingConn = ("true").equals(ElementParameterParser.getValue(previousNode, "__USE_EXISTING_CONNECTION__"));
}
String differenttable = ElementParameterParser.getValue(node, "__DIFFERENT_TABLE_NAME__");
boolean useDifferentTable = "true".equals(ElementParameterParser.getValue(node, "__USE_DIFFERENT_TABLE__"));
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
boolean useWhereTable = ("true").equals(ElementParameterParser.getValue(node, "__USE_WHERE_CONDITIONS_TABLE__"));
List<Map<String, String>> whereConditions = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__WHERE_CONDITIONS_TABLE__");
String tableName=null;
if(useDifferentTable){
tableName=differenttable;
}else{
if(isTableNameVariable){
tableName=dbtable;
}else{
tableName="\""+dbtable +"\"";
}
}
%>
java.sql.Connection conn_<%=cid%> = null;
<%
if(useExistingConn) {
String connection = ElementParameterParser.getValue(previousNode, "__CONNECTION__");
String conn = "conn_" + connection;
%>
conn_<%=cid%> = (java.sql.Connection)globalMap.get("<%=conn%>");
<%
log4jCodeGenerateUtil.useExistConnection(node);
} else {
%>
String driverClass_<%=cid%> = "org.netezza.Driver";
java.lang.Class.forName(driverClass_<%=cid%>);
<%
if(dbproperties == null || ("\"\"").equals(dbproperties) || ("").equals(dbproperties)) {
%>
String url_<%=cid%> = "jdbc:netezza://" + <%=dbhost%> + ":" + <%=dbport%> + "/" + <%=dbname%>;
<%
} else {
%>
String url_<%=cid%> = "jdbc:netezza://" + <%=dbhost%> + ":" + <%=dbport%> + "/" + <%=dbname%> + "?" + <%=dbproperties%>;
<%
}
%>
String dbUser_<%=cid %> = <%=dbuser%>;
<%
String passwordFieldName = "__PASS__";
@@ -104,247 +106,273 @@ java.sql.Connection conn_<%=cid%> = null;
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/eltpassword.javajet"%>
String dbPwd_<%=cid %> = decryptedPassword_<%=cid%>;
<%
log4jCodeGenerateUtil.debugConnectionParams(node);
log4jCodeGenerateUtil.connect(node);
}
%>
<%
List<IMetadataColumn> columnList = null;
List<IMetadataTable> metadatas = node.getMetadataList();
if(metadatas !=null && metadatas.size()>0){
IMetadataTable metadata = metadatas.get(0);
if(metadata != null){
columnList = metadata.getListColumns();
}
}
%>
java.sql.PreparedStatement pstmt_<%=cid %> =null;
<%
if(columnList != null && columnList.size()>0){
class Column{
IMetadataColumn column;
String name;
String sqlStmt;
String value;
boolean addCol;
List<Column> replacement = new ArrayList<Column>();
public Column(IMetadataColumn column){
this.column = column;
String columname = column.getOriginalDbColumnName();
if(columname!=null && columname.trim().length()>0){
this.name = columname;
}else{
this.name = column.getLabel();
}
this.sqlStmt = "=?";
this.value = "?";
this.addCol =false;
}
public boolean isReplaced(){
return replacement.size()>0;
}
public List<Column> getReplacement(){
return this.replacement;
}
public IMetadataColumn getColumn(){
return this.column;
}
public String getName(){
return this.name;
}
public boolean isAddCol(){
return this.addCol;
}
public String getSqlStmt(){
return this.sqlStmt;
}
public String getValue(){
return this.value;
}
}
StringBuilder insertColName = new StringBuilder();
StringBuilder insertValueStmt = new StringBuilder();
StringBuilder updateSetStmt = new StringBuilder();
StringBuilder updateWhereStmt = new StringBuilder();
List<Column> stmtStructure = new LinkedList<Column>();
for(IMetadataColumn column:columnList){
stmtStructure.add(new Column(column));
}
int counterOuter =0;
boolean firstKey = true;
boolean firstNoneKey = true;
for(Column colStmt:stmtStructure){
String suffix = ",";
if(colStmt.isReplaced()){
List<Column> replacedColumns = colStmt.getReplacement();
int counterReplace = 0;
if(counterOuter==(stmtStructure.size()-1) && counterReplace==(replacedColumns.size()-1) ){
suffix = "";
}
for(Column replacement:replacedColumns){
insertColName.append(replacement.getName()+suffix);
insertValueStmt.append(replacement.getSqlStmt()+suffix);
if(!colStmt.getColumn().isKey()){
if(!firstNoneKey){
updateSetStmt.append(",");
}else{
firstNoneKey = false;
}
updateSetStmt.append(replacement.getName());
updateSetStmt.append(replacement.getSqlStmt());
}else{
if(!firstKey){
updateWhereStmt.append(" AND ");
}else{
firstKey = false;
}
updateWhereStmt.append(replacement.getName());
updateWhereStmt.append(replacement.getSqlStmt());
}
counterReplace++;
}
}else{
if(counterOuter==(stmtStructure.size()-1)){
suffix = "";
}
if(colStmt.isAddCol()){
insertColName.append(colStmt.getName()+suffix);
insertValueStmt.append(colStmt.getSqlStmt()+suffix);
updateSetStmt.append(colStmt.getName());
updateSetStmt.append(colStmt.getSqlStmt()+suffix);
}else{
insertColName.append(colStmt.getName()+suffix);
insertValueStmt.append(colStmt.getValue()+suffix);
updateSetStmt.append(colStmt.getName()+"=\"+routines.system.StringUtils.splitSQLColumns(selectQueryColumnsName_"+ cid +")[ "+ counterOuter + "]+\"" +suffix);
}
}
counterOuter ++;
}
if(("INSERT").equals(dataAction)){
%>
String insertQuery_<%=cid %> = "INSERT INTO "+<%=tableName%>+"(<%=insertColName.toString()%>) ("+select_query_<%=cid %>+")";
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insertQuery_<%=cid %>);
<%
} else if (("UPDATE").equals(dataAction)) {
%>
String updateQuery_<%=cid %> = "UPDATE "+<%=tableName%>;
updateQuery_<%=cid %> +=" SET <%=updateSetStmt.toString()%> " +select_query_<%=cid %>.substring(select_query_<%=cid %>.indexOf("FROM"));
<%
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
if(select_query_<%=cid %>.indexOf("WHERE")==-1){
updateQuery_<%=cid %> +=" WHERE ";
}else{
updateQuery_<%=cid %> +=" AND ";
}
updateQuery_<%=cid %>+= <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>;
<%
}
%>
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>);
<%
}else if (("DELETE").equals(dataAction)){
%>
String deleteQuery_<%=cid %> = "DELETE FROM "+<%=tableName%>;
deleteQuery_<%=cid %> += " WHERE EXISTS ("+select_query_<%=cid %>+")"
<%
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
+" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>
<%
}
%>
;
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>);
<%
}
%>
int nb_line_<%=cid%> = 0;
int nb_line_updated_<%=cid%> = 0;
int nb_line_inserted_<%=cid%> = 0;
int nb_line_deleted_<%=cid%> = 0;
<%
}
if(dbtable != null && columnList != null){
if(("INSERT").equals(dataAction)){
%>
System.out.println("Inserting with : \n" + insertQuery_<%=cid %> + "\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+insertQuery_"+ cid +"+\"");%>
nb_line_<%=cid%> += nb_line_inserted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_inserted_<%=cid%> + " rows inserted. \n");
<%
}else if(("UPDATE").equals(dataAction)){
%>
System.out.println("Updating with : \n" + updateQuery_<%=cid %> +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+updateQuery_"+ cid +"+\"");%>
nb_line_<%=cid%> += nb_line_updated_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_updated_<%=cid%> + " rows updated. \n");
<%
}else if (("DELETE").equals(dataAction)){
%>
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %> +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+deleteQuery_"+ cid +"+\"");%>
nb_line_<%=cid%> += nb_line_deleted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_deleted_<%=cid%> + " rows deleted. \n");
<%
}
}
%>
pstmt_<%=cid %>.close();
<%
if(!useExistingConn) {
%>
if(conn_<%=cid%> != null && !conn_<%=cid%>.isClosed()) {
<%log4jCodeGenerateUtil.close(node);%>
}
<%
}
%>
globalMap.put("<%=cid %>_NB_LINE",nb_line_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_UPDATED",nb_line_updated_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_INSERTED",nb_line_inserted_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_DELETED",nb_line_deleted_<%=cid%>);
<%
if(isLog4jEnabled){
Map<String,String> actionMap=new java.util.HashMap<String,String>();
actionMap.put("INSERT","inserted");
actionMap.put("UPDATE","updated");
actionMap.put("DELETE","deleted");
%>
log.info("<%=cid%> - Has <%=actionMap.get(dataAction)%> records count: " + nb_line_<%=actionMap.get(dataAction)%>_<%=cid%> + ".");
<%
}
%>
<%
log4jCodeGenerateUtil.debugConnectionParams(node);
log4jCodeGenerateUtil.connect(node);
}
%>
<%
List<IMetadataColumn> columnList = null;
List<IMetadataTable> metadatas = node.getMetadataList();
if(metadatas !=null && metadatas.size()>0){
IMetadataTable metadata = metadatas.get(0);
if(metadata != null){
columnList = metadata.getListColumns();
}
}
%>
java.sql.PreparedStatement pstmt_<%=cid %> =null;
<%
if(columnList != null && columnList.size()>0){
class Column{
IMetadataColumn column;
String name;
String sqlStmt;
String value;
boolean addCol;
List<Column> replacement = new ArrayList<Column>();
public Column(IMetadataColumn column){
this.column = column;
String columname = column.getOriginalDbColumnName();
if(columname!=null && columname.trim().length()>0){
this.name = columname;
}else{
this.name = column.getLabel();
}
this.sqlStmt = "=?";
this.value = "?";
this.addCol =false;
}
public boolean isReplaced(){
return replacement.size()>0;
}
public List<Column> getReplacement(){
return this.replacement;
}
public IMetadataColumn getColumn(){
return this.column;
}
public String getName(){
return this.name;
}
public boolean isAddCol(){
return this.addCol;
}
public String getSqlStmt(){
return this.sqlStmt;
}
public String getValue(){
return this.value;
}
}
StringBuilder insertColName = new StringBuilder();
StringBuilder insertValueStmt = new StringBuilder();
StringBuilder updateSetStmt = new StringBuilder();
StringBuilder updateWhereStmt = new StringBuilder();
List<Column> stmtStructure = new LinkedList<Column>();
for(IMetadataColumn column:columnList){
stmtStructure.add(new Column(column));
}
int counterOuter =0;
boolean firstKey = true;
boolean firstNoneKey = true;
for(Column colStmt:stmtStructure){
String suffix = ",";
if(colStmt.isReplaced()){
List<Column> replacedColumns = colStmt.getReplacement();
int counterReplace = 0;
if(counterOuter==(stmtStructure.size()-1) && counterReplace==(replacedColumns.size()-1) ){
suffix = "";
}
for(Column replacement:replacedColumns){
insertColName.append(replacement.getName()+suffix);
insertValueStmt.append(replacement.getSqlStmt()+suffix);
if(!colStmt.getColumn().isKey()){
if(!firstNoneKey){
updateSetStmt.append(",");
}else{
firstNoneKey = false;
}
updateSetStmt.append(replacement.getName());
updateSetStmt.append(replacement.getSqlStmt());
}else{
if(!firstKey){
updateWhereStmt.append(" AND ");
}else{
firstKey = false;
}
updateWhereStmt.append(replacement.getName());
updateWhereStmt.append(replacement.getSqlStmt());
}
counterReplace++;
}
}else{
if(counterOuter==(stmtStructure.size()-1)){
suffix = "";
}
if(colStmt.isAddCol()){
insertColName.append(colStmt.getName()+suffix);
insertValueStmt.append(colStmt.getSqlStmt()+suffix);
updateSetStmt.append(colStmt.getName());
updateSetStmt.append(colStmt.getSqlStmt()+suffix);
}else{
insertColName.append(colStmt.getName()+suffix);
insertValueStmt.append(colStmt.getValue()+suffix);
updateSetStmt.append(colStmt.getName()+"=\"+routines.system.StringUtils.splitSQLColumns(selectQueryColumnsName_"+ cid +")[ "+ counterOuter + "]+\"" +suffix);
}
}
counterOuter ++;
}
if(("INSERT").equals(dataAction)){
%>
String insertQuery_<%=cid %> = "INSERT INTO "+<%=tableName%>+"(<%=insertColName.toString()%>) ("+select_query_<%=cid %>+")";
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insertQuery_<%=cid %>);
<%
} else if (("UPDATE").equals(dataAction)) {
%>
StringBuffer updateQuery_<%=cid %> = new StringBuffer("UPDATE "+<%=tableName%>);
updateQuery_<%=cid %>.append(" SET <%=updateSetStmt.toString()%> " +select_query_<%=cid %>.substring(select_query_<%=cid %>.indexOf("FROM")));
<%
if((CodeGenerationUtils.hasAlphaNumericCharacter(whereClause) && (!useWhereTable)) || (useWhereTable && whereConditions.size() > 0)) {
%>
if(select_query_<%=cid %>.indexOf("WHERE")==-1){
updateQuery_<%=cid %>.append(" WHERE ");
}else{
updateQuery_<%=cid %>.append(" AND ");
}
<%
if(!useWhereTable) {
%>
updateQuery_<%=cid %>.append(<%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
} else {
String operator = "\"\"";
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
updateQuery_<%=cid %>.append(<%=operator %> + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
operator = "\" AND \"";
}
}
}
%>
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>.toString());
<%
}else if (("DELETE").equals(dataAction)){
%>
StringBuffer deleteQuery_<%=cid %> = new StringBuffer("DELETE FROM "+<%=tableName%>);
deleteQuery_<%=cid %>.append(" WHERE EXISTS ("+select_query_<%=cid %>+")");
<%
if(!useWhereTable) {
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
deleteQuery_<%=cid %>.append(" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
}
} else {
if(whereConditions.size() > 0) {
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
deleteQuery_<%=cid %>.append(" AND " + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
}
}
}
%>
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>.toString());
<%
}
%>
int nb_line_<%=cid%> = 0;
int nb_line_updated_<%=cid%> = 0;
int nb_line_inserted_<%=cid%> = 0;
int nb_line_deleted_<%=cid%> = 0;
<%
}
if(dbtable != null && columnList != null){
if(("INSERT").equals(dataAction)){
%>
System.out.println("Inserting with : \n" + insertQuery_<%=cid %> + "\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+insertQuery_"+ cid +"+\"");%>
nb_line_<%=cid%> += nb_line_inserted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_inserted_<%=cid%> + " rows inserted. \n");
<%
}else if(("UPDATE").equals(dataAction)){
%>
System.out.println("Updating with : \n" + updateQuery_<%=cid %>.toString() +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+updateQuery_"+ cid +"+\"");%>
nb_line_<%=cid%> += nb_line_updated_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_updated_<%=cid%> + " rows updated. \n");
<%
}else if (("DELETE").equals(dataAction)){
%>
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %>.toString() +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+deleteQuery_"+ cid +"+\"");%>
nb_line_<%=cid%> += nb_line_deleted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_deleted_<%=cid%> + " rows deleted. \n");
<%
}
}
%>
pstmt_<%=cid %>.close();
<%
if(!useExistingConn) {
%>
if(conn_<%=cid%> != null && !conn_<%=cid%>.isClosed()) {
<%log4jCodeGenerateUtil.close(node);%>
}
<%
}
%>
globalMap.put("<%=cid %>_NB_LINE",nb_line_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_UPDATED",nb_line_updated_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_INSERTED",nb_line_inserted_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_DELETED",nb_line_deleted_<%=cid%>);
<%
if(isLog4jEnabled){
Map<String,String> actionMap=new java.util.HashMap<String,String>();
actionMap.put("INSERT","inserted");
actionMap.put("UPDATE","updated");
actionMap.put("DELETE","deleted");
%>
log.info("<%=cid%> - Has <%=actionMap.get(dataAction)%> records count: " + nb_line_<%=actionMap.get(dataAction)%>_<%=cid%> + ".");
<%
}
%>

View File

@@ -14,3 +14,19 @@ NB_LINE.NAME=Number of line
NB_LINE_UPDATED.NAME=Number Of Updated Lines
NB_LINE_INSERTED.NAME=Number Of Inserted Lines
NB_LINE_DELETED.NAME=Number Of Deleted Lines
USE_WHERE_CONDITIONS_TABLE.NAME=Use WHERE conditions table
WHERE_CONDITIONS_TABLE.NAME=
WHERE_CONDITIONS_TABLE.ITEM.COLUMN=Column
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION=Function
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.EQUAL==
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER=>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS=<
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER_OR_EQUAL=>=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS_OR_EQUAL=<=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.NOT_EQUAL=<>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.BETWEEN=BETWEEN
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LIKE=LIKE
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.IN=IN
WHERE_CONDITIONS_TABLE.ITEM.VALUE_SQL=Value

View File

@@ -38,7 +38,7 @@
<PARAMETER
NAME="DATA_ACTION"
FIELD="CLOSED_LIST"
NUM_ROW="6"
NUM_ROW="2"
>
<ITEMS DEFAULT="INSERT">
<ITEM NAME="INSERT" VALUE="INSERT" />
@@ -51,15 +51,45 @@
<PARAMETER
NAME="SCHEMA"
FIELD="SCHEMA_TYPE"
NUM_ROW="7"
NUM_ROW="3"
>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="8"
NOT_SHOW_IF="(DATA_ACTION == 'MERGE') OR (DATA_ACTION == 'INSERT')"
>
<PARAMETER NAME="USE_WHERE_CONDITIONS_TABLE" FIELD="CHECK" NUM_ROW="4"
SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="5"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'false')">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="NOTE" FIELD="LABEL" NUM_ROW="6"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<DEFAULT>WHERE conditions table&#x000A;(for UPDATE and DELETE only)</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CONDITIONS_TABLE" FIELD="TABLE" NUM_ROW="7"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<ITEMS>
<ITEM NAME="COLUMN" VALUE='""'/>
<ITEM NAME="FUNCTION" FIELD="CLOSED_LIST">
<ITEMS DEFAULT="EQUAL">
<ITEM NAME="EQUAL" VALUE="&quot;=&quot;"/>
<ITEM NAME="GREATER" VALUE="&quot;&gt;&quot;"/>
<ITEM NAME="LESS" VALUE="&quot;&lt;&quot;"/>
<ITEM NAME="GREATER_OR_EQUAL" VALUE="&quot;&gt;=&quot;"/>
<ITEM NAME="LESS_OR_EQUAL" VALUE="&quot;&lt;=&quot;"/>
<ITEM NAME="NOT_EQUAL" VALUE="&quot;&lt;&gt;&quot;"/>
<ITEM NAME="BETWEEN" VALUE="&quot;BETWEEN&quot;"/>
<ITEM NAME="LIKE" VALUE="&quot;LIKE&quot;"/>
<ITEM NAME="IN" VALUE="&quot;IN&quot;"/>
</ITEMS>
</ITEM>
<ITEM NAME="VALUE_SQL" VALUE='""'/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="USE_MERGE_UPDATE"

View File

@@ -87,8 +87,9 @@ imports="
dbproperties = ElementParameterParser.getValue(previousNode, "__PROPERTIES__");
}
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
boolean useWhereTable = ("true").equals(ElementParameterParser.getValue(node, "__USE_WHERE_CONDITIONS_TABLE__"));
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
List<Map<String, String>> whereConditions = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__WHERE_CONDITIONS_TABLE__");
%>
@@ -412,43 +413,70 @@ if (useHintOptions) {
<%
}else if (("UPDATE").equals(dataAction)){
%>
String updateQuery_<%=cid %> = "UPDATE "+tableName_<%=cid%>+" SET (<%=insertColName.toString()%>) = ("+select_query_<%=cid %>+") "
StringBuffer updateQuery_<%=cid %> = new StringBuffer("UPDATE "+tableName_<%=cid%>+" SET (<%=insertColName.toString()%>) = ("+select_query_<%=cid %>+") ");
<%
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
if(!useWhereTable) {
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
+" WHERE " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>
updateQuery_<%=cid %>.append(" WHERE " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
}
} else {
if(whereConditions.size() > 0) {
%>
updateQuery_<%=cid %>.append(" WHERE ");
<%
String operator = "\"\"";
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
updateQuery_<%=cid %>.append(<%=operator %> + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
operator = "\" AND \"";
}
}
}
if (useHintOptions && hintsValues.get("UPDATE") != null){
%>
updateQuery_<%=cid %>.insert(updateQuery_<%=cid %>.toString().indexOf("UPDATE")+ "UPDATE".length() +1 , <%=hintsValues.get("UPDATE")%> + " ");
<%
}
%>
;
<% if (useHintOptions && hintsValues.get("UPDATE") != null){
%>
StringBuffer updateStringBuffer_<%=cid%> = new StringBuffer(updateQuery_<%=cid %>);
updateStringBuffer_<%=cid%>.insert(updateQuery_<%=cid %>.indexOf("UPDATE")+ "UPDATE".length() +1 , <%=hintsValues.get("UPDATE")%> + " ");
updateQuery_<%=cid %> =updateStringBuffer_<%=cid%>.toString();
<%
}
%>
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>);
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>.toString());
<%
}else if (("DELETE").equals(dataAction)){
%>
String deleteQuery_<%=cid %> = "DELETE FROM "+ tableName_<%=cid%>+" WHERE EXISTS ("+select_query_<%=cid %>+") "
<%if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {%>
+" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>
<%}%>
;
<%
if(useHintOptions && hintsValues.get("DELETE") != null) {
StringBuffer deleteQuery_<%=cid %> = new StringBuffer("DELETE FROM "+ tableName_<%=cid%>+" WHERE EXISTS ("+select_query_<%=cid %>+") ");
<%
if(!useWhereTable) {
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
StringBuffer deleteStringBuffer_<%=cid%> = new StringBuffer(deleteQuery_<%=cid %>);
deleteStringBuffer_<%=cid%>.insert(deleteQuery_<%=cid %>.indexOf("DELETE")+ "DELETE".length()+1 , <%=hintsValues.get("DELETE")%> + " " );
deleteQuery_<%=cid %> =deleteStringBuffer_<%=cid%>.toString();
<%
}%>
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>);
deleteQuery_<%=cid %>.append(" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
}
} else {
if(whereConditions.size() > 0) {
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
deleteQuery_<%=cid %>.append(" AND " + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
}
}
}
if(useHintOptions && hintsValues.get("DELETE") != null) {
%>
deleteQuery_<%=cid %>.insert(deleteQuery_<%=cid %>.toString().indexOf("DELETE")+ "DELETE".length()+1 , <%=hintsValues.get("DELETE")%> + " " );
<%
}
%>
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>.toString());
<%
}else if ("MERGE".equals(dataAction)) {
@@ -590,7 +618,7 @@ nb_line_inserted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
}else if(("UPDATE").equals(dataAction)){
%>
<%if(!isLog4jEnabled){%>System.out.println("Updating with : \n" + updateQuery_<%=cid %> +"\n");<%}%>
<%if(!isLog4jEnabled){%>System.out.println("Updating with : \n" + updateQuery_<%=cid %>.toString() +"\n");<%}%>
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+updateQuery_"+ cid +"+\"");%>
nb_line_updated_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
@@ -598,7 +626,7 @@ nb_line_updated_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%
}else if (("DELETE").equals(dataAction)){
%>
<%if(!isLog4jEnabled){%>System.out.println("Deleting with : \n" + deleteQuery_<%=cid %> +"\n");<%}%>
<%if(!isLog4jEnabled){%>System.out.println("Deleting with : \n" + deleteQuery_<%=cid %>.toString() +"\n");<%}%>
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+deleteQuery_"+ cid +"+\"");%>
nb_line_deleted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>

View File

@@ -35,6 +35,22 @@ USER.NAME=Username
COMMIT_EVERY.NAME=Commit every
WHERE_CLAUSE.NAME=Where clauses \n(for UPDATE and DELETE only)
USE_WHERE_CONDITIONS_TABLE.NAME=Use WHERE conditions table
WHERE_CONDITIONS_TABLE.NAME=
WHERE_CONDITIONS_TABLE.ITEM.COLUMN=Column
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION=Function
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.EQUAL==
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER=>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS=<
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER_OR_EQUAL=>=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS_OR_EQUAL=<=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.NOT_EQUAL=<>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.BETWEEN=BETWEEN
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LIKE=LIKE
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.IN=IN
WHERE_CONDITIONS_TABLE.ITEM.VALUE_SQL=Value
ELT_TABLE_NAME.NAME=Default Table Name
ELT_SCHEMA_NAME.NAME=Default Schema Name
NB_LINE_UPDATED.NAME=Number Of Updated Lines

View File

@@ -71,7 +71,7 @@
>
<ITEMS DEFAULT="INSERT">
<ITEM NAME="INSERT" VALUE="INSERT" />
<ITEM NAME="UPDATE" VALUE="UPDATE"/>
<ITEM NAME="UPDATE" VALUE="UPDATE" NOT_SHOW_IF="(MAPPING == 'databricks_delta_lake_id')"/>
<ITEM NAME="DELETE" VALUE="DELETE"/>
</ITEMS>
</PARAMETER>
@@ -83,10 +83,41 @@
>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="8" SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')"
>
<PARAMETER NAME="USE_WHERE_CONDITIONS_TABLE" FIELD="CHECK" NUM_ROW="8"
SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="10"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'false')">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="NOTE" FIELD="LABEL" NUM_ROW="11"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<DEFAULT>WHERE conditions table&#x000A;(for UPDATE and DELETE only)</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CONDITIONS_TABLE" FIELD="TABLE" NUM_ROW="12"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<ITEMS>
<ITEM NAME="COLUMN" VALUE='""'/>
<ITEM NAME="FUNCTION" FIELD="CLOSED_LIST">
<ITEMS DEFAULT="EQUAL">
<ITEM NAME="EQUAL" VALUE="&quot;=&quot;"/>
<ITEM NAME="GREATER" VALUE="&quot;&gt;&quot;"/>
<ITEM NAME="LESS" VALUE="&quot;&lt;&quot;"/>
<ITEM NAME="GREATER_OR_EQUAL" VALUE="&quot;&gt;=&quot;"/>
<ITEM NAME="LESS_OR_EQUAL" VALUE="&quot;&lt;=&quot;"/>
<ITEM NAME="NOT_EQUAL" VALUE="&quot;&lt;&gt;&quot;"/>
<ITEM NAME="BETWEEN" VALUE="&quot;BETWEEN&quot;"/>
<ITEM NAME="LIKE" VALUE="&quot;LIKE&quot;"/>
<ITEM NAME="IN" VALUE="&quot;IN&quot;"/>
</ITEMS>
</ITEM>
<ITEM NAME="VALUE_SQL" VALUE='""'/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="ELT_TABLE_NAME"
@@ -129,6 +160,16 @@
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="PARTITION"
FIELD="TEXT"
NUM_ROW="35"
SHOW_IF="(MAPPING == 'databricks_delta_lake_id') AND (DATA_ACTION == 'INSERT')"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="MAPPING"

View File

@@ -1,90 +1,95 @@
<%@ jet
imports="
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
org.talend.core.model.process.IConnection
org.talend.core.model.metadata.MappingTypeRetriever
org.talend.core.model.metadata.MetadataTalendType
org.talend.commons.utils.generation.CodeGenerationUtils
org.talend.core.model.utils.NodeUtil
java.util.List
java.util.ArrayList
java.util.LinkedList
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
org.talend.core.model.process.IConnection
org.talend.core.model.metadata.MappingTypeRetriever
org.talend.core.model.metadata.MetadataTalendType
org.talend.commons.utils.generation.CodeGenerationUtils
org.talend.core.model.utils.NodeUtil
java.util.List
java.util.ArrayList
java.util.LinkedList
java.util.StringJoiner
java.util.Map
java.util.HashMap
java.util.Map
java.util.HashMap
"
skeleton="../templates/db_output_bulk.skeleton"
%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Log4j/Log4jDBConnUtil.javajet"%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Log4j/DBLogUtil.javajet"%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Log4j/Log4jDBConnUtil.javajet"%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Log4j/DBLogUtil.javajet"%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
String cid = node.getUniqueName();
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
String cid = node.getUniqueName();
String dbtable = null;
String dbschema = ElementParameterParser.getValue(node,"__ELT_SCHEMA_NAME__");
String uniqueNameConnection = null;
INode previousNode = null;
String dbtable = null;
String dbschema = ElementParameterParser.getValue(node,"__ELT_SCHEMA_NAME__");
String uniqueNameConnection = null;
INode previousNode = null;
String differenttable = ElementParameterParser.getValue(node, "__DIFFERENT_TABLE_NAME__");
boolean useDifferentTable = "true".equals(ElementParameterParser.getValue(node, "__USE_DIFFERENT_TABLE__"));
boolean isTableNameVariable="true".equals(ElementParameterParser.getValue(node, "__IS_TABLE_NAME_VARIABLE__"));
boolean useUpdateStatement="true".equals(ElementParameterParser.getValue(node, "__USE_UPDATE_STATEMENT__"));
%>
String select_query_<%=cid %> = null;
String tableName_<%=cid%> = null;
String selectQueryColumnsName_<%=cid %> = null;
<%
List<IConnection> connections = (List<IConnection>) node.getIncomingConnections();
if(connections != null && connections.size() > 0 && connections.get(0) != null) {
IConnection connection = connections.get(0);
previousNode = connection.getSource();
String previousComponentName = previousNode.getUniqueName();
dbtable = connection.getName();
uniqueNameConnection = connection.getUniqueName();
String differenttable = ElementParameterParser.getValue(node, "__DIFFERENT_TABLE_NAME__");
boolean useDifferentTable = "true".equals(ElementParameterParser.getValue(node, "__USE_DIFFERENT_TABLE__"));
boolean isTableNameVariable="true".equals(ElementParameterParser.getValue(node, "__IS_TABLE_NAME_VARIABLE__"));
boolean useUpdateStatement="true".equals(ElementParameterParser.getValue(node, "__USE_UPDATE_STATEMENT__"));
String dbmsId = ElementParameterParser.getValue(node,"__MAPPING__");
boolean isDeltaLake = "databricks_delta_lake_id".equals(dbmsId);
String partition = ElementParameterParser.getValue(node, "__PARTITION__");
%>
String select_query_<%=cid %> = null;
String tableName_<%=cid%> = null;
String selectQueryColumnsName_<%=cid %> = null;
<%
List<IConnection> connections = (List<IConnection>) node.getIncomingConnections();
if(connections != null && connections.size() > 0 && connections.get(0) != null) {
IConnection connection = connections.get(0);
previousNode = connection.getSource();
String previousComponentName = previousNode.getUniqueName();
dbtable = connection.getName();
uniqueNameConnection = connection.getUniqueName();
%>
select_query_<%=cid %> = (String) globalMap.get("<%=previousComponentName%>"+"QUERY"+"<%=uniqueNameConnection%>");
selectQueryColumnsName_<%=cid %> = (String) globalMap.get("<%=previousComponentName%>"+"QUERY_COLUMNS_NAME"+"<%=uniqueNameConnection%>");
<%
}
String tableName=null;
if(useDifferentTable){
tableName=differenttable;
}else{
if(isTableNameVariable){
tableName=dbtable;
}else{
tableName="\""+dbtable +"\"";
}
}
%>
String dbschema_<%=cid%> = <%=dbschema%>;
if(dbschema_<%=cid%> != null && dbschema_<%=cid%>.trim().length() > 0) {
tableName_<%=cid%> = <%=dbschema%> + "." + <%=tableName%>;
}else {
tableName_<%=cid%> = <%=tableName%>;
}
<%
String dataAction = ElementParameterParser.getValue(node,"__DATA_ACTION__");
%>
select_query_<%=cid %> = (String) globalMap.get("<%=previousComponentName%>"+"QUERY"+"<%=uniqueNameConnection%>");
selectQueryColumnsName_<%=cid %> = (String) globalMap.get("<%=previousComponentName%>"+"QUERY_COLUMNS_NAME"+"<%=uniqueNameConnection%>");
<%
}
String tableName=null;
if(useDifferentTable){
tableName=differenttable;
}else{
if(isTableNameVariable){
tableName=dbtable;
}else{
tableName="\""+dbtable +"\"";
}
}
%>
String dbschema_<%=cid%> = <%=dbschema%>;
if(dbschema_<%=cid%> != null && dbschema_<%=cid%>.trim().length() > 0) {
tableName_<%=cid%> = <%=dbschema%> + "." + <%=tableName%>;
}else {
tableName_<%=cid%> = <%=tableName%>;
}
<%
String dataAction = ElementParameterParser.getValue(node,"__DATA_ACTION__");
String driverClass = null;
String jdbcUrl = null;
String dbuser = null;
boolean useExistingConn = false;
if(previousNode != null) {
driverClass = ElementParameterParser.getValue(previousNode, "__DRIVER_CLASS__");
jdbcUrl = ElementParameterParser.getValue(previousNode, "__URL__");
dbuser = ElementParameterParser.getValue(previousNode, "__USER__");
useExistingConn = ("true").equals(ElementParameterParser.getValue(previousNode, "__USE_EXISTING_CONNECTION__"));
driverClass = ElementParameterParser.getValue(previousNode, "__DRIVER_CLASS__");
jdbcUrl = ElementParameterParser.getValue(previousNode, "__URL__");
dbuser = ElementParameterParser.getValue(previousNode, "__USER__");
useExistingConn = ("true").equals(ElementParameterParser.getValue(previousNode, "__USE_EXISTING_CONNECTION__"));
}
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
boolean useWhereTable = ("true").equals(ElementParameterParser.getValue(node, "__USE_WHERE_CONDITIONS_TABLE__"));
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
List<Map<String, String>> whereConditions = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__WHERE_CONDITIONS_TABLE__");
%>
String dbUser_<%=cid %> = null;
<%
@@ -97,7 +102,7 @@ skeleton="../templates/db_output_bulk.skeleton"
if("tSnowflakeConnection".equals(connNode.getComponent().getName())){
connectionKey=connection+"_connection";
}else{
connectionKey=conn;
connectionKey=conn;
}
%>
java.sql.Connection conn_<%=cid%> = (java.sql.Connection)globalMap.get("<%=connectionKey%>");
@@ -110,26 +115,27 @@ skeleton="../templates/db_output_bulk.skeleton"
java.lang.Class.forName(driverClass_<%=cid%>);
String url_<%=cid %> = <%=jdbcUrl %>;
dbUser_<%=cid %> = <%=dbuser%>;
<%
String passwordFieldName = "__PASS__";
%>
<%
String passwordFieldName = "__PASS__";
%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/eltpassword.javajet"%>
String dbPwd_<%=cid %> = decryptedPassword_<%=cid%>;
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/eltpassword.javajet"%>
String dbPwd_<%=cid %> = decryptedPassword_<%=cid%>;
java.sql.Connection conn_<%=cid%> = null;
<%
log4jCodeGenerateUtil.debugConnectionParams(node);
log4jCodeGenerateUtil.connect(node);
log4jCodeGenerateUtil.debugConnectionParams(node);
log4jCodeGenerateUtil.connect(node);
}
List<IMetadataColumn> columnList = null;
List<IMetadataTable> metadatas = node.getMetadataList();
if(metadatas !=null && metadatas.size()>0){
IMetadataTable metadata = metadatas.get(0);
if(metadata != null){
columnList = metadata.getListColumns();
}
IMetadataTable metadata = metadatas.get(0);
if(metadata != null){
columnList = metadata.getListColumns();
}
}
if(columnList != null && columnList.size()>0){
@@ -140,16 +146,16 @@ skeleton="../templates/db_output_bulk.skeleton"
List<Map<String, String>> setColumns = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__SET_COLUMN__");
int counterOuter = 0;
for(IMetadataColumn column : columnList){
String suffix = ",";
String suffix = ",";
if(counterOuter==(columnList.size()-1)){
suffix = "";
}
if(counterOuter==(columnList.size()-1)){
suffix = "";
}
String columnName = column.getOriginalDbColumnName();
if(columnName==null || columnName.trim().isEmpty()){
columnName = column.getLabel();
}
String columnName = column.getOriginalDbColumnName();
if(columnName==null || columnName.trim().isEmpty()){
columnName = column.getLabel();
}
boolean isUpdateColumn = "true".equals(setColumns.get(counterOuter).get("UPDATE_COLUMN"));
insertColName.append(columnName).append(suffix);
if (isUpdate && isUpdateColumn) {
@@ -159,50 +165,100 @@ skeleton="../templates/db_output_bulk.skeleton"
}
if(("INSERT").equals(dataAction)){
if(isDeltaLake){
%>
String insertQuery_<%=cid %> = "INSERT INTO "+tableName_<%=cid%> +
<%
if(partition != null && !"\"\"".equals(partition)){%> " PARTITION (" + <%=partition%> + ")" +<%}
%>
"("+select_query_<%=cid %>+")";
<%}else{%>
String insertQuery_<%=cid %> = "INSERT INTO "+tableName_<%=cid%>+"(<%=insertColName.toString()%>) ("+select_query_<%=cid %>+")";
<%
}
} else if (("UPDATE").equals(dataAction)){
if(useUpdateStatement){
boolean useAnd = false;
if(isDeltaLake){
%>
String updateQuery_<%=cid %> = null;
if (true)
throw new RuntimeException("UPDATE action is not supported by tELTOutput. Please use tDeltaLakeRow.");
<%
}else if(useUpdateStatement){
%>
String updateQuery_<%=cid %> = select_query_<%=cid %>;
StringBuffer updateQuery_<%=cid %> = new StringBuffer(select_query_<%=cid %>);
<%
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
if((CodeGenerationUtils.hasAlphaNumericCharacter(whereClause) && (!useWhereTable)) || (useWhereTable && whereConditions.size() > 0)) {
%>
if (updateQuery_<%=cid %>.toUpperCase().contains(" WHERE ")) {
updateQuery_<%=cid %> += " AND (" + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%> + ")";
if (updateQuery_<%=cid %>.toString().toUpperCase().contains(" WHERE ")) {
<%
useAnd = true;
%>
updateQuery_<%=cid %>.append(" AND (");
} else {
updateQuery_<%=cid %> += " WHERE " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>;
updateQuery_<%=cid %>.append(" WHERE ");
}
<%
}
} else {
%>
String updateQuery_<%=cid %> = "UPDATE "+tableName_<%=cid%>+" SET <%=updateSetStmt.toString()%> "
StringBuffer updateQuery_<%=cid %> = new StringBuffer("UPDATE "+tableName_<%=cid%>+" SET <%=updateSetStmt.toString()%> ");
<%
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
if((CodeGenerationUtils.hasAlphaNumericCharacter(whereClause) && (!useWhereTable)) || (useWhereTable && whereConditions.size() > 0)) {
%>
+" WHERE " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>
updateQuery_<%=cid %>.append(" WHERE ");
<%
}
%>
;
<%
}
if(!useWhereTable) {
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
updateQuery_<%=cid %>.append(<%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
}
} else {
if(whereConditions.size() > 0) {
String operator = "\"\"";
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
updateQuery_<%=cid %>.append(<%=operator %> + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
operator = "\" AND \"";
}
}
}
if(useAnd) {
%>
updateQuery_<%=cid %>.append(")");
<%
}
} else if (("DELETE").equals(dataAction)){
%>
String deleteQuery_<%=cid %> = "DELETE FROM "+ tableName_<%=cid%>+" WHERE EXISTS ("+select_query_<%=cid %>+") "
<%
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
+" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>
<%
}
%>
;
<%
%>
StringBuffer deleteQuery_<%=cid %> = new StringBuffer("DELETE FROM "+ tableName_<%=cid%>+" WHERE EXISTS ("+select_query_<%=cid %>+") ");
<%
if(!useWhereTable) {
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
deleteQuery_<%=cid %>.append(" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
}
} else {
if(whereConditions.size() > 0) {
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
deleteQuery_<%=cid %>.append(" AND " + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
}
}
}
}
%>
%>
int nb_line_<%=cid%> = 0;
int nb_line_updated_<%=cid%> = 0;
@@ -211,24 +267,25 @@ skeleton="../templates/db_output_bulk.skeleton"
<%
}
if(dbtable != null && columnList != null){
{//use the block to limit the code scope for table action
Manager manager = null;
String dbmsId = ElementParameterParser.getValue(node,"__MAPPING__");
String tableAction = ElementParameterParser.getValue(node,"__TABLE_ACTION__");
if(dbtable != null && columnList != null){
{//use the block to limit the code scope for table action
Manager manager = null;
String tableAction = ElementParameterParser.getValue(node,"__TABLE_ACTION__");
List<Column> stmtStructure = getELTManager(dbmsId, cid, node).createColumnList(columnList, false, null, null);
List<Column> stmtStructure = getELTManager(dbmsId, cid, node).createColumnList(columnList, false, null, null);
String table = useDifferentTable ? differenttable : ("\""+dbtable +"\"");
String table = useDifferentTable ? differenttable : ("\""+dbtable +"\"");
dbLog = new DBLogUtil(node);
%>
<%@ include file="../templates/_tableActionForELT.javajet"%>
<%
}
dbLog = new DBLogUtil(node);
%>
<%@ include file="../templates/_tableActionForELT.javajet"%>
<%
}
if(("INSERT").equals(dataAction)){
%>
if(("INSERT").equals(dataAction)){
%>
System.out.println("Inserting with : \n" + insertQuery_<%=cid %> + "\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+insertQuery_"+ cid +"+\"");%>
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insertQuery_<%=cid %>);
@@ -239,9 +296,9 @@ skeleton="../templates/db_output_bulk.skeleton"
<%
} else if(("UPDATE").equals(dataAction)){
%>
System.out.println("Updating with : \n" + updateQuery_<%=cid %> +"\n");
System.out.println("Updating with : \n" + updateQuery_<%=cid %>.toString() +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+updateQuery_"+ cid +"+\"");%>
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>);
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>.toString());
nb_line_updated_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_updated_<%=cid%> + " rows updated. \n");
@@ -249,9 +306,9 @@ skeleton="../templates/db_output_bulk.skeleton"
<%
} else if (("DELETE").equals(dataAction)){
%>
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %> +"\n");
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %>.toString() +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+deleteQuery_"+ cid +"+\"");%>
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>);
java.sql.PreparedStatement pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>.toString());
nb_line_deleted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_deleted_<%=cid%> + " rows deleted. \n");
@@ -266,7 +323,7 @@ skeleton="../templates/db_output_bulk.skeleton"
if(!useExistingConn) {
%>
if(conn_<%=cid%> != null && !conn_<%=cid%>.isClosed()) {
<%log4jCodeGenerateUtil.close(node);%>
<%log4jCodeGenerateUtil.close(node);%>
}
<%
}
@@ -278,12 +335,12 @@ skeleton="../templates/db_output_bulk.skeleton"
globalMap.put("<%=cid %>_NB_LINE_DELETED",nb_line_deleted_<%=cid%>);
<%
if(isLog4jEnabled){
Map<String,String> actionMap=new java.util.HashMap<String,String>();
actionMap.put("INSERT","inserted");
actionMap.put("UPDATE","updated");
actionMap.put("DELETE","deleted");
%>
log.info("<%=cid%> - Has <%=actionMap.get(dataAction)%> records count: " + nb_line_<%=actionMap.get(dataAction)%>_<%=cid%> + ".");
Map<String,String> actionMap=new java.util.HashMap<String,String>();
actionMap.put("INSERT","inserted");
actionMap.put("UPDATE","updated");
actionMap.put("DELETE","deleted");
%>
log.info("<%=cid%> - Has <%=actionMap.get(dataAction)%> records count: " + nb_line_<%=actionMap.get(dataAction)%>_<%=cid%> + ".");
<%
}
%>

View File

@@ -23,6 +23,22 @@ USER.NAME=Username
COMMIT_EVERY.NAME=Commit every
WHERE_CLAUSE.NAME=Where clauses \n(for UPDATE and DELETE only)
USE_WHERE_CONDITIONS_TABLE.NAME=Use WHERE conditions table
WHERE_CONDITIONS_TABLE.NAME=
WHERE_CONDITIONS_TABLE.ITEM.COLUMN=Column
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION=Function
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.EQUAL==
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER=>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS=<
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER_OR_EQUAL=>=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS_OR_EQUAL=<=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.NOT_EQUAL=<>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.BETWEEN=BETWEEN
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LIKE=LIKE
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.IN=IN
WHERE_CONDITIONS_TABLE.ITEM.VALUE_SQL=Value
ELT_TABLE_NAME.NAME=Default Table Name
ELT_SCHEMA_NAME.NAME=Default Schema Name
NB_LINE_UPDATED.NAME=Number Of Updated Lines
@@ -44,4 +60,6 @@ TABLE_ACTION.NAME=Action on table
USE_UPDATE_STATEMENT.NAME=Use update statement without subqueries
SET_COLUMN.ITEM.UPDATE_COLUMN=Update column
SET_COLUMN.NAME=Clause SET
SET_COLUMN.NAME=Clause SET
PARTITION.NAME=Partition

View File

@@ -54,10 +54,41 @@
>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="8" SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')"
>
<PARAMETER NAME="USE_WHERE_CONDITIONS_TABLE" FIELD="CHECK" NUM_ROW="8"
SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="10"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'false')">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="NOTE" FIELD="LABEL" NUM_ROW="11"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<DEFAULT>WHERE conditions table&#x000A;(for UPDATE and DELETE only)</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CONDITIONS_TABLE" FIELD="TABLE" NUM_ROW="12"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<ITEMS>
<ITEM NAME="COLUMN" VALUE='""'/>
<ITEM NAME="FUNCTION" FIELD="CLOSED_LIST">
<ITEMS DEFAULT="EQUAL">
<ITEM NAME="EQUAL" VALUE="&quot;=&quot;"/>
<ITEM NAME="GREATER" VALUE="&quot;&gt;&quot;"/>
<ITEM NAME="LESS" VALUE="&quot;&lt;&quot;"/>
<ITEM NAME="GREATER_OR_EQUAL" VALUE="&quot;&gt;=&quot;"/>
<ITEM NAME="LESS_OR_EQUAL" VALUE="&quot;&lt;=&quot;"/>
<ITEM NAME="NOT_EQUAL" VALUE="&quot;&lt;&gt;&quot;"/>
<ITEM NAME="BETWEEN" VALUE="&quot;BETWEEN&quot;"/>
<ITEM NAME="LIKE" VALUE="&quot;LIKE&quot;"/>
<ITEM NAME="IN" VALUE="&quot;IN&quot;"/>
</ITEMS>
</ITEM>
<ITEM NAME="VALUE_SQL" VALUE='""'/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="ELT_TABLE_NAME"

View File

@@ -84,6 +84,8 @@ imports="
}
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
boolean useWhereTable = ("true").equals(ElementParameterParser.getValue(node, "__USE_WHERE_CONDITIONS_TABLE__"));
List<Map<String, String>> whereConditions = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__WHERE_CONDITIONS_TABLE__");
%>
@@ -287,50 +289,76 @@ for(Column colStmt:stmtStructure){
<%
if(useUpdateStatement){
%>
String updateQuery_<%=cid %> = select_query_<%=cid %>;
StringBuffer updateQuery_<%=cid %> = new StringBuffer(select_query_<%=cid %>);
<%
}else{
%>
String updateQuery_<%=cid %> = "UPDATE "+tableName_<%=cid%>+" SET <%=updateSetStmt.toString()%> ";
StringBuffer updateQuery_<%=cid %> = new StringBuffer("UPDATE "+tableName_<%=cid%>+" SET <%=updateSetStmt.toString()%> ");
<%
}
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
if((CodeGenerationUtils.hasAlphaNumericCharacter(whereClause) && (!useWhereTable)) || (useWhereTable && whereConditions.size() > 0)) {
if(useUpdateStatement){
%>
if(select_query_<%=cid %>.indexOf("WHERE")==-1){
updateQuery_<%=cid %> +=" WHERE ";
updateQuery_<%=cid %>.append(" WHERE ");
}else{
updateQuery_<%=cid %> +=" AND ";
updateQuery_<%=cid %>.append(" AND ");
}
updateQuery_<%=cid %>+= <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>;
<%
}else{
%>
updateQuery_<%=cid %> += " WHERE " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>;
updateQuery_<%=cid %>.append(" WHERE ");
<%
}
if(!useWhereTable) {
%>
updateQuery_<%=cid %>.append(<%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
} else {
String operator = "\"\"";
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
updateQuery_<%=cid %>.append(<%=operator %> + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
operator = "\" AND \"";
}
}
}
%>
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>);
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>.toString());
<%
}else if (("DELETE").equals(dataAction)){
%>
String deleteQuery_<%=cid %> = "DELETE FROM "+ tableName_<%=cid%>+" WHERE EXISTS ("+select_query_<%=cid %>+") "
<%
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
+" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>
<%
StringBuffer deleteQuery_<%=cid %> = new StringBuffer("DELETE FROM "+ tableName_<%=cid%>+" WHERE EXISTS ("+select_query_<%=cid %>+") ");
<%
if(!useWhereTable) {
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
deleteQuery_<%=cid %>.append(" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
}
} else {
if(whereConditions.size() > 0) {
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
deleteQuery_<%=cid %>.append(" AND " + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
}
}
}
%>
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>.toString());
<%
}
%>
;
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>);
<%
}
%>
%>
int nb_line_<%=cid%> = 0;
int nb_line_updated_<%=cid%> = 0;
int nb_line_inserted_<%=cid%> = 0;
@@ -353,7 +381,7 @@ System.out.println("--> " + nb_line_inserted_<%=cid%> + " rows inserted. \n");
}else if(("UPDATE").equals(dataAction)){
%>
System.out.println("Updating with : \n" + updateQuery_<%=cid %> +"\n");
System.out.println("Updating with : \n" + updateQuery_<%=cid %>.toString() +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+updateQuery_"+ cid +"+\"");%>
nb_line_updated_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
@@ -361,7 +389,7 @@ nb_line_updated_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%
}else if (("DELETE").equals(dataAction)){
%>
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %> +"\n");
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %>.toString() +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+deleteQuery_"+ cid +"+\"");%>
nb_line_deleted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>

View File

@@ -23,6 +23,22 @@ USER.NAME=Username
COMMIT_EVERY.NAME=Commit every
WHERE_CLAUSE.NAME=Where clauses \n(for UPDATE and DELETE only)
USE_WHERE_CONDITIONS_TABLE.NAME=Use WHERE conditions table
WHERE_CONDITIONS_TABLE.NAME=
WHERE_CONDITIONS_TABLE.ITEM.COLUMN=Column
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION=Function
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.EQUAL==
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER=>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS=<
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER_OR_EQUAL=>=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS_OR_EQUAL=<=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.NOT_EQUAL=<>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.BETWEEN=BETWEEN
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LIKE=LIKE
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.IN=IN
WHERE_CONDITIONS_TABLE.ITEM.VALUE_SQL=Value
ELT_TABLE_NAME.NAME=Default Table Name
ELT_SCHEMA_NAME.NAME=Default Schema Name
NB_LINE_UPDATED.NAME=Number Of Updated Lines

View File

@@ -40,7 +40,7 @@
<PARAMETER
NAME="DATA_ACTION"
FIELD="CLOSED_LIST"
NUM_ROW="6"
NUM_ROW="2"
>
<ITEMS DEFAULT="INSERT">
<ITEM NAME="INSERT" VALUE="INSERT" />
@@ -52,16 +52,47 @@
<PARAMETER
NAME="SCHEMA"
FIELD="SCHEMA_TYPE"
NUM_ROW="7"
NUM_ROW="3"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="8"
SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')">
<PARAMETER NAME="USE_WHERE_CONDITIONS_TABLE" FIELD="CHECK" NUM_ROW="4"
SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="5"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'false')">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="NOTE" FIELD="LABEL" NUM_ROW="6"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<DEFAULT>WHERE conditions table&#x000A;(for UPDATE and DELETE only)</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CONDITIONS_TABLE" FIELD="TABLE" NUM_ROW="7"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<ITEMS>
<ITEM NAME="COLUMN" VALUE='""'/>
<ITEM NAME="FUNCTION" FIELD="CLOSED_LIST">
<ITEMS DEFAULT="EQUAL">
<ITEM NAME="EQUAL" VALUE="&quot;=&quot;"/>
<ITEM NAME="GREATER" VALUE="&quot;&gt;&quot;"/>
<ITEM NAME="LESS" VALUE="&quot;&lt;&quot;"/>
<ITEM NAME="GREATER_OR_EQUAL" VALUE="&quot;&gt;=&quot;"/>
<ITEM NAME="LESS_OR_EQUAL" VALUE="&quot;&lt;=&quot;"/>
<ITEM NAME="NOT_EQUAL" VALUE="&quot;&lt;&gt;&quot;"/>
<ITEM NAME="BETWEEN" VALUE="&quot;BETWEEN&quot;"/>
<ITEM NAME="LIKE" VALUE="&quot;LIKE&quot;"/>
<ITEM NAME="IN" VALUE="&quot;IN&quot;"/>
</ITEMS>
</ITEM>
<ITEM NAME="VALUE_SQL" VALUE='""'/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="ELT_TABLE_NAME"
FIELD="TEXT"

View File

@@ -1,138 +1,140 @@
<%@ jet
imports="
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
org.talend.core.model.process.IConnection
org.talend.commons.utils.generation.CodeGenerationUtils
java.util.List
java.util.ArrayList
java.util.LinkedList
java.util.Map
"
%>
<%@ include file="../templates/Log4j/Log4jDBConnUtil.javajet"%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
String cid = node.getUniqueName();
String dbtable = null;
String dbschema = ElementParameterParser.getValue(node,"__ELT_SCHEMA_NAME__");
String uniqueNameConnection = null;
INode previousNode = null;
String differenttable = ElementParameterParser.getValue(node, "__DIFFERENT_TABLE_NAME__");
boolean useDifferentTable = "true".equals(ElementParameterParser.getValue(node, "__USE_DIFFERENT_TABLE__"));
String dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
boolean isTableNameVariable="true".equals(ElementParameterParser.getValue(node, "__IS_TABLE_NAME_VARIABLE__"));
%>
String select_query_<%=cid %> = null;
String tableName_<%=cid%> = null;
String selectQueryColumnsName_<%=cid %> = null;
<%
List<IConnection> connections = (List<IConnection>) node.getIncomingConnections();
if(connections != null && connections.size() > 0 && connections.get(0) != null) {
IConnection connection = connections.get(0);
previousNode = connection.getSource();
String previousComponentName = previousNode.getUniqueName();
dbtable = connection.getName();
uniqueNameConnection = connection.getUniqueName();
%>
select_query_<%=cid %> = (String) globalMap.get("<%=previousComponentName%>"+"QUERY"+"<%=uniqueNameConnection%>");
selectQueryColumnsName_<%=cid %> = (String) globalMap.get("<%=previousComponentName%>"+"QUERY_COLUMNS_NAME"+"<%=uniqueNameConnection%>");
<%
}
String tableName=null;
if(useDifferentTable){
tableName=differenttable;
}else{
if(isTableNameVariable){
tableName=dbtable;
}else{
tableName="\""+dbtable +"\"";
}
}
%>
String dbschema_<%=cid%> = <%=dbschema%>;
if(dbschema_<%=cid%> != null && dbschema_<%=cid%>.trim().length() > 0) {
tableName_<%=cid%> = <%=dbschema%> + "." + <%=tableName%>;
} else {
tableName_<%=cid%> = <%=tableName%>;
}
<%
String dataAction = ElementParameterParser.getValue(node,"__DATA_ACTION__");
String dbhost = null;
String dbport = null;
String dbname = null;
String dbuser = null;
boolean useExistingConn = false;
String dbproperties = null;
if(previousNode != null) {
dbhost = ElementParameterParser.getValue(previousNode, "__HOST__");
dbport = ElementParameterParser.getValue(previousNode, "__PORT__");
dbname = ElementParameterParser.getValue(previousNode, "__DBNAME__");
dbuser = ElementParameterParser.getValue(previousNode, "__USER__");
useExistingConn = ("true").equals(ElementParameterParser.getValue(previousNode, "__USE_EXISTING_CONNECTION__"));
dbproperties = ElementParameterParser.getValue(previousNode, "__PROPERTIES__");
}
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
%>
<%
if(useExistingConn) {
String connection = ElementParameterParser.getValue(previousNode, "__CONNECTION__");
String conn = "conn_" + connection;
%>
java.sql.Connection conn_<%=cid%> = (java.sql.Connection)globalMap.get("<%=conn%>");
<%
log4jCodeGenerateUtil.useExistConnection(node);
} else {
if("SYBSEIQ_16_SA".equals(dbVersion)){
%>
String driverClass_<%=cid%> = "sap.jdbc4.sqlanywhere.IDriver";
<%
if(dbproperties == null || ("\"\"").equals(dbproperties) || ("").equals(dbproperties)) {
%>
String url_<%=cid%> = "jdbc:sqlanywhere:Host=" + <%=dbhost %> + ":" + <%=dbport %> + ";DatabaseName=" + <%=dbname %>;
<%
}
else{
%>
String url_<%=cid%> = "jdbc:sqlanywhere:Host=" + <%=dbhost %> + ":" + <%=dbport %> + ";DatabaseName=" + <%=dbname %> + ";" + <%=dbproperties%>;
<%
}
}
else if("SYBSEIQ_16".equals(dbVersion)){%>
String driverClass_<%=cid%> = "com.sybase.jdbc4.jdbc.SybDriver";
<%}else{%>
String driverClass_<%=cid%> = "com.sybase.jdbc3.jdbc.SybDriver";
<%}%>
java.lang.Class jdbcclazz_<%=cid%> = java.lang.Class.forName(driverClass_<%=cid%>);
<%if("SYBSEIQ_16".equals(dbVersion)){%>
jdbcclazz_<%=cid%>.newInstance();
<%}%>
<%
if(dbproperties == null || ("\"\"").equals(dbproperties) || ("").equals(dbproperties)) {
%>
String url_<%=cid %> = "jdbc:sybase:Tds:" + <%=dbhost %> + ":" + <%=dbport %> + "/" + <%=dbname %>;
<%
} else {
%>
String url_<%=cid %> = "jdbc:sybase:Tds:" + <%=dbhost %> + ":" + <%=dbport %> + "/" + <%=dbname %> + "?" + <%=dbproperties%>;
<%
}
%>
String dbUser_<%=cid %> = <%=dbuser%>;
<%@ jet
imports="
org.talend.designer.codegen.config.CodeGeneratorArgument
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
org.talend.core.model.process.IConnection
org.talend.commons.utils.generation.CodeGenerationUtils
java.util.List
java.util.ArrayList
java.util.LinkedList
java.util.Map
"
%>
<%@ include file="../templates/Log4j/Log4jDBConnUtil.javajet"%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
String cid = node.getUniqueName();
String dbtable = null;
String dbschema = ElementParameterParser.getValue(node,"__ELT_SCHEMA_NAME__");
String uniqueNameConnection = null;
INode previousNode = null;
String differenttable = ElementParameterParser.getValue(node, "__DIFFERENT_TABLE_NAME__");
boolean useDifferentTable = "true".equals(ElementParameterParser.getValue(node, "__USE_DIFFERENT_TABLE__"));
String dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
boolean isTableNameVariable="true".equals(ElementParameterParser.getValue(node, "__IS_TABLE_NAME_VARIABLE__"));
%>
String select_query_<%=cid %> = null;
String tableName_<%=cid%> = null;
String selectQueryColumnsName_<%=cid %> = null;
<%
List<IConnection> connections = (List<IConnection>) node.getIncomingConnections();
if(connections != null && connections.size() > 0 && connections.get(0) != null) {
IConnection connection = connections.get(0);
previousNode = connection.getSource();
String previousComponentName = previousNode.getUniqueName();
dbtable = connection.getName();
uniqueNameConnection = connection.getUniqueName();
%>
select_query_<%=cid %> = (String) globalMap.get("<%=previousComponentName%>"+"QUERY"+"<%=uniqueNameConnection%>");
selectQueryColumnsName_<%=cid %> = (String) globalMap.get("<%=previousComponentName%>"+"QUERY_COLUMNS_NAME"+"<%=uniqueNameConnection%>");
<%
}
String tableName=null;
if(useDifferentTable){
tableName=differenttable;
}else{
if(isTableNameVariable){
tableName=dbtable;
}else{
tableName="\""+dbtable +"\"";
}
}
%>
String dbschema_<%=cid%> = <%=dbschema%>;
if(dbschema_<%=cid%> != null && dbschema_<%=cid%>.trim().length() > 0) {
tableName_<%=cid%> = <%=dbschema%> + "." + <%=tableName%>;
} else {
tableName_<%=cid%> = <%=tableName%>;
}
<%
String dataAction = ElementParameterParser.getValue(node,"__DATA_ACTION__");
String dbhost = null;
String dbport = null;
String dbname = null;
String dbuser = null;
boolean useExistingConn = false;
String dbproperties = null;
if(previousNode != null) {
dbhost = ElementParameterParser.getValue(previousNode, "__HOST__");
dbport = ElementParameterParser.getValue(previousNode, "__PORT__");
dbname = ElementParameterParser.getValue(previousNode, "__DBNAME__");
dbuser = ElementParameterParser.getValue(previousNode, "__USER__");
useExistingConn = ("true").equals(ElementParameterParser.getValue(previousNode, "__USE_EXISTING_CONNECTION__"));
dbproperties = ElementParameterParser.getValue(previousNode, "__PROPERTIES__");
}
boolean useWhereTable = ("true").equals(ElementParameterParser.getValue(node, "__USE_WHERE_CONDITIONS_TABLE__"));
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
List<Map<String, String>> whereConditions = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__WHERE_CONDITIONS_TABLE__");
%>
<%
if(useExistingConn) {
String connection = ElementParameterParser.getValue(previousNode, "__CONNECTION__");
String conn = "conn_" + connection;
%>
java.sql.Connection conn_<%=cid%> = (java.sql.Connection)globalMap.get("<%=conn%>");
<%
log4jCodeGenerateUtil.useExistConnection(node);
} else {
if("SYBSEIQ_16_SA".equals(dbVersion)){
%>
String driverClass_<%=cid%> = "sap.jdbc4.sqlanywhere.IDriver";
<%
if(dbproperties == null || ("\"\"").equals(dbproperties) || ("").equals(dbproperties)) {
%>
String url_<%=cid%> = "jdbc:sqlanywhere:Host=" + <%=dbhost %> + ":" + <%=dbport %> + ";DatabaseName=" + <%=dbname %>;
<%
}
else{
%>
String url_<%=cid%> = "jdbc:sqlanywhere:Host=" + <%=dbhost %> + ":" + <%=dbport %> + ";DatabaseName=" + <%=dbname %> + ";" + <%=dbproperties%>;
<%
}
}
else if("SYBSEIQ_16".equals(dbVersion)){%>
String driverClass_<%=cid%> = "com.sybase.jdbc4.jdbc.SybDriver";
<%}else{%>
String driverClass_<%=cid%> = "com.sybase.jdbc3.jdbc.SybDriver";
<%}%>
java.lang.Class jdbcclazz_<%=cid%> = java.lang.Class.forName(driverClass_<%=cid%>);
<%if("SYBSEIQ_16".equals(dbVersion)){%>
jdbcclazz_<%=cid%>.newInstance();
<%}%>
<%
if(dbproperties == null || ("\"\"").equals(dbproperties) || ("").equals(dbproperties)) {
%>
String url_<%=cid %> = "jdbc:sybase:Tds:" + <%=dbhost %> + ":" + <%=dbport %> + "/" + <%=dbname %>;
<%
} else {
%>
String url_<%=cid %> = "jdbc:sybase:Tds:" + <%=dbhost %> + ":" + <%=dbport %> + "/" + <%=dbname %> + "?" + <%=dbproperties%>;
<%
}
%>
String dbUser_<%=cid %> = <%=dbuser%>;
<%
String passwordFieldName = "__PASS__";
@@ -141,249 +143,278 @@ imports="
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/eltpassword.javajet"%>
String dbPwd_<%=cid %> = decryptedPassword_<%=cid%>;
java.sql.Connection conn_<%=cid%> = null;
<%
log4jCodeGenerateUtil.debugConnectionParams(node);
log4jCodeGenerateUtil.connect(node);
}
%>
<%
List<IMetadataColumn> columnList = null;
List<IMetadataTable> metadatas = node.getMetadataList();
if(metadatas !=null && metadatas.size()>0){
IMetadataTable metadata = metadatas.get(0);
if(metadata != null){
columnList = metadata.getListColumns();
}
}
%>
java.sql.PreparedStatement pstmt_<%=cid %> =null;
<%
if(columnList != null && columnList.size()>0){
class Column{
IMetadataColumn column;
String name;
String sqlStmt;
String value;
boolean addCol;
List<Column> replacement = new ArrayList<Column>();
public Column(IMetadataColumn column){
this.column = column;
String columname = column.getOriginalDbColumnName();
if(columname!=null && columname.trim().length()>0){
this.name = columname;
}else{
this.name = column.getLabel();
}
this.sqlStmt = "=?";
this.value = "?";
this.addCol =false;
}
public boolean isReplaced(){
return replacement.size()>0;
}
public List<Column> getReplacement(){
return this.replacement;
}
public IMetadataColumn getColumn(){
return this.column;
}
public String getName(){
return this.name;
}
public boolean isAddCol(){
return this.addCol;
}
public String getSqlStmt(){
return this.sqlStmt;
}
public String getValue(){
return this.value;
}
}
StringBuilder insertColName = new StringBuilder();
StringBuilder insertValueStmt = new StringBuilder();
StringBuilder updateSetStmt = new StringBuilder();
StringBuilder updateWhereStmt = new StringBuilder();
List<Column> stmtStructure = new LinkedList<Column>();
for(IMetadataColumn column:columnList){
stmtStructure.add(new Column(column));
}
int counterOuter =0;
boolean firstKey = true;
boolean firstNoneKey = true;
for(Column colStmt:stmtStructure){
String suffix = ",";
if(colStmt.isReplaced()){
List<Column> replacedColumns = colStmt.getReplacement();
int counterReplace = 0;
if(counterOuter==(stmtStructure.size()-1) && counterReplace==(replacedColumns.size()-1) ){
suffix = "";
}
for(Column replacement:replacedColumns){
insertColName.append(replacement.getName()+suffix);
insertValueStmt.append(replacement.getSqlStmt()+suffix);
if(!colStmt.getColumn().isKey()){
if(!firstNoneKey){
updateSetStmt.append(",");
}else{
firstNoneKey = false;
}
updateSetStmt.append(replacement.getName());
updateSetStmt.append(replacement.getSqlStmt());
}else{
if(!firstKey){
updateWhereStmt.append(" AND ");
}else{
firstKey = false;
}
updateWhereStmt.append(replacement.getName());
updateWhereStmt.append(replacement.getSqlStmt());
}
counterReplace++;
}
}else{
if(counterOuter==(stmtStructure.size()-1)){
suffix = "";
}
if(colStmt.isAddCol()){
insertColName.append(colStmt.getName()+suffix);
insertValueStmt.append(colStmt.getSqlStmt()+suffix);
updateSetStmt.append(colStmt.getName());
updateSetStmt.append(colStmt.getSqlStmt()+suffix);
}else{
insertColName.append(colStmt.getName()+suffix);
insertValueStmt.append(colStmt.getValue()+suffix);
updateSetStmt.append(colStmt.getName()+"=(\"+select_query_"+ cid +".replaceFirst(java.util.regex.Pattern.quote(selectQueryColumnsName_"+ cid +"),routines.system.StringUtils.splitSQLColumns(selectQueryColumnsName_"+ cid +")[ "+ counterOuter + "])+\")" +suffix);
}
}
counterOuter ++;
}
if(("INSERT").equals(dataAction)){
%>
String insertQuery_<%=cid %> = "INSERT INTO "+tableName_<%=cid%>+" (<%=insertColName.toString()%>) ("+select_query_<%=cid %>+")";
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insertQuery_<%=cid %>);
<%
} else if (("UPDATE").equals(dataAction)) {
%>
String updateQuery_<%=cid %> = "UPDATE "+tableName_<%=cid%>+" SET <%=updateSetStmt.toString()%> "
<%
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
+" WHERE " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>
<%
}
%>
;
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>);
<%
}else if (("DELETE").equals(dataAction)){
%>
String deleteQuery_<%=cid %> = "DELETE FROM "+ tableName_<%=cid%>+" WHERE EXISTS ("+ select_query_<%=cid %>.replaceAll(selectQueryColumnsName_<%=cid %>, "*")+") "
<%
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
+" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>
<%
}
%>
;
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>);
<%
}
%>
int nb_line_<%=cid%> = 0;
int nb_line_updated_<%=cid%> = 0;
int nb_line_inserted_<%=cid%> = 0;
int nb_line_deleted_<%=cid%> = 0;
<%
}
if(dbtable != null && columnList != null){
if(("INSERT").equals(dataAction)){
%>
System.out.println("Inserting with : \n" + insertQuery_<%=cid %> + "\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+insertQuery_"+ cid +"+\"");%>
nb_line_<%=cid%> += nb_line_inserted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_inserted_<%=cid%> + " rows inserted. \n");
<%
}else if(("UPDATE").equals(dataAction)){
%>
System.out.println("Updating with : \n" + updateQuery_<%=cid %> +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+updateQuery_"+ cid +"+\"");%>
nb_line_<%=cid%> += nb_line_updated_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_updated_<%=cid%> + " rows updated. \n");
<%
}else if (("DELETE").equals(dataAction)){
%>
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %> +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+deleteQuery_"+ cid +"+\"");%>
nb_line_<%=cid%> += nb_line_deleted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_deleted_<%=cid%> + " rows deleted. \n");
<%
}
}
// END
%>
pstmt_<%=cid %>.close();
<%
if(!useExistingConn) {
%>
if(conn_<%=cid%> != null && !conn_<%=cid%>.isClosed()) {
<%log4jCodeGenerateUtil.close(node);%>
}
<%
}
%>
globalMap.put("<%=cid %>_NB_LINE",nb_line_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_UPDATED",nb_line_updated_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_INSERTED",nb_line_inserted_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_DELETED",nb_line_deleted_<%=cid%>);
<%
if(isLog4jEnabled){
Map<String,String> actionMap=new java.util.HashMap<String,String>();
actionMap.put("INSERT","inserted");
actionMap.put("UPDATE","updated");
actionMap.put("DELETE","deleted");
%>
log.info("<%=cid%> - Has <%=actionMap.get(dataAction)%> records count: " + nb_line_<%=actionMap.get(dataAction)%>_<%=cid%> + ".");
<%
}
%>
java.sql.Connection conn_<%=cid%> = null;
<%
log4jCodeGenerateUtil.debugConnectionParams(node);
log4jCodeGenerateUtil.connect(node);
}
%>
<%
List<IMetadataColumn> columnList = null;
List<IMetadataTable> metadatas = node.getMetadataList();
if(metadatas !=null && metadatas.size()>0){
IMetadataTable metadata = metadatas.get(0);
if(metadata != null){
columnList = metadata.getListColumns();
}
}
%>
java.sql.PreparedStatement pstmt_<%=cid %> =null;
<%
if(columnList != null && columnList.size()>0){
class Column{
IMetadataColumn column;
String name;
String sqlStmt;
String value;
boolean addCol;
List<Column> replacement = new ArrayList<Column>();
public Column(IMetadataColumn column){
this.column = column;
String columname = column.getOriginalDbColumnName();
if(columname!=null && columname.trim().length()>0){
this.name = columname;
}else{
this.name = column.getLabel();
}
this.sqlStmt = "=?";
this.value = "?";
this.addCol =false;
}
public boolean isReplaced(){
return replacement.size()>0;
}
public List<Column> getReplacement(){
return this.replacement;
}
public IMetadataColumn getColumn(){
return this.column;
}
public String getName(){
return this.name;
}
public boolean isAddCol(){
return this.addCol;
}
public String getSqlStmt(){
return this.sqlStmt;
}
public String getValue(){
return this.value;
}
}
StringBuilder insertColName = new StringBuilder();
StringBuilder insertValueStmt = new StringBuilder();
StringBuilder updateSetStmt = new StringBuilder();
StringBuilder updateWhereStmt = new StringBuilder();
List<Column> stmtStructure = new LinkedList<Column>();
for(IMetadataColumn column:columnList){
stmtStructure.add(new Column(column));
}
int counterOuter =0;
boolean firstKey = true;
boolean firstNoneKey = true;
for(Column colStmt:stmtStructure){
String suffix = ",";
if(colStmt.isReplaced()){
List<Column> replacedColumns = colStmt.getReplacement();
int counterReplace = 0;
if(counterOuter==(stmtStructure.size()-1) && counterReplace==(replacedColumns.size()-1) ){
suffix = "";
}
for(Column replacement:replacedColumns){
insertColName.append(replacement.getName()+suffix);
insertValueStmt.append(replacement.getSqlStmt()+suffix);
if(!colStmt.getColumn().isKey()){
if(!firstNoneKey){
updateSetStmt.append(",");
}else{
firstNoneKey = false;
}
updateSetStmt.append(replacement.getName());
updateSetStmt.append(replacement.getSqlStmt());
}else{
if(!firstKey){
updateWhereStmt.append(" AND ");
}else{
firstKey = false;
}
updateWhereStmt.append(replacement.getName());
updateWhereStmt.append(replacement.getSqlStmt());
}
counterReplace++;
}
}else{
if(counterOuter==(stmtStructure.size()-1)){
suffix = "";
}
if(colStmt.isAddCol()){
insertColName.append(colStmt.getName()+suffix);
insertValueStmt.append(colStmt.getSqlStmt()+suffix);
updateSetStmt.append(colStmt.getName());
updateSetStmt.append(colStmt.getSqlStmt()+suffix);
}else{
insertColName.append(colStmt.getName()+suffix);
insertValueStmt.append(colStmt.getValue()+suffix);
updateSetStmt.append(colStmt.getName()+"=(\"+select_query_"+ cid +".replaceFirst(java.util.regex.Pattern.quote(selectQueryColumnsName_"+ cid +"),routines.system.StringUtils.splitSQLColumns(selectQueryColumnsName_"+ cid +")[ "+ counterOuter + "])+\")" +suffix);
}
}
counterOuter ++;
}
if(("INSERT").equals(dataAction)){
%>
String insertQuery_<%=cid %> = "INSERT INTO "+tableName_<%=cid%>+" (<%=insertColName.toString()%>) ("+select_query_<%=cid %>+")";
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(insertQuery_<%=cid %>);
<%
} else if (("UPDATE").equals(dataAction)) {
%>
StringBuffer updateQuery_<%=cid %> = new StringBuffer("UPDATE "+tableName_<%=cid%>+" SET <%=updateSetStmt.toString()%> ");
<%
if(!useWhereTable) {
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
updateQuery_<%=cid %>.append(" WHERE " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
}
} else {
if(whereConditions.size() > 0) {
%>
updateQuery_<%=cid %>.append(" WHERE ");
<%
String operator = "\"\"";
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
updateQuery_<%=cid %>.append(<%=operator %> + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
operator = "\" AND \"";
}
}
}
%>
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>.toString());
<%
}else if (("DELETE").equals(dataAction)){
%>
StringBuffer deleteQuery_<%=cid %> = new StringBuffer("DELETE FROM "+ tableName_<%=cid%>+" WHERE EXISTS ("+ select_query_<%=cid %>.replaceAll(selectQueryColumnsName_<%=cid %>, "*")+") ");
<%
if(!useWhereTable) {
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
deleteQuery_<%=cid %>.append(" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
}
} else {
if(whereConditions.size() > 0) {
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
deleteQuery_<%=cid %>.append(" AND " + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
}
}
}
%>
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>.toString());
<%
}
%>
int nb_line_<%=cid%> = 0;
int nb_line_updated_<%=cid%> = 0;
int nb_line_inserted_<%=cid%> = 0;
int nb_line_deleted_<%=cid%> = 0;
<%
}
if(dbtable != null && columnList != null){
if(("INSERT").equals(dataAction)){
%>
System.out.println("Inserting with : \n" + insertQuery_<%=cid %> + "\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+insertQuery_"+ cid +"+\"");%>
nb_line_<%=cid%> += nb_line_inserted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_inserted_<%=cid%> + " rows inserted. \n");
<%
}else if(("UPDATE").equals(dataAction)){
%>
System.out.println("Updating with : \n" + updateQuery_<%=cid %>.toString() +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+updateQuery_"+ cid +"+\"");%>
nb_line_<%=cid%> += nb_line_updated_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_updated_<%=cid%> + " rows updated. \n");
<%
}else if (("DELETE").equals(dataAction)){
%>
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %>.toString() +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+deleteQuery_"+ cid +"+\"");%>
nb_line_<%=cid%> += nb_line_deleted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
System.out.println("--> " + nb_line_deleted_<%=cid%> + " rows deleted. \n");
<%
}
}
// END
%>
pstmt_<%=cid %>.close();
<%
if(!useExistingConn) {
%>
if(conn_<%=cid%> != null && !conn_<%=cid%>.isClosed()) {
<%log4jCodeGenerateUtil.close(node);%>
}
<%
}
%>
globalMap.put("<%=cid %>_NB_LINE",nb_line_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_UPDATED",nb_line_updated_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_INSERTED",nb_line_inserted_<%=cid%>);
globalMap.put("<%=cid %>_NB_LINE_DELETED",nb_line_deleted_<%=cid%>);
<%
if(isLog4jEnabled){
Map<String,String> actionMap=new java.util.HashMap<String,String>();
actionMap.put("INSERT","inserted");
actionMap.put("UPDATE","updated");
actionMap.put("DELETE","deleted");
%>
log.info("<%=cid%> - Has <%=actionMap.get(dataAction)%> records count: " + nb_line_<%=actionMap.get(dataAction)%>_<%=cid%> + ".");
<%
}
%>

View File

@@ -41,6 +41,22 @@ WHERE_CLAUSE.NAME=Where clauses \n(for UPDATE and DELETE only)
ELT_TABLE_NAME.NAME=Default Table Name
ELT_SCHEMA_NAME.NAME=Default Schema Name
USE_WHERE_CONDITIONS_TABLE.NAME=Use WHERE conditions table
WHERE_CONDITIONS_TABLE.NAME=
WHERE_CONDITIONS_TABLE.ITEM.COLUMN=Column
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION=Function
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.EQUAL==
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER=>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS=<
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER_OR_EQUAL=>=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS_OR_EQUAL=<=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.NOT_EQUAL=<>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.BETWEEN=BETWEEN
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LIKE=LIKE
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.IN=IN
WHERE_CONDITIONS_TABLE.ITEM.VALUE_SQL=Value
NB_LINE_UPDATED.NAME=Number Of Updated Lines
NB_LINE_INSERTED.NAME=Number Of Inserted Lines
NB_LINE_DELETED.NAME=Number Of Deleted Lines

View File

@@ -55,15 +55,46 @@
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="8"
SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')">
<PARAMETER NAME="USE_WHERE_CONDITIONS_TABLE" FIELD="CHECK" NUM_ROW="8"
SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="10"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'false')">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="NOTE" FIELD="LABEL" NUM_ROW="11"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<DEFAULT>WHERE conditions table&#x000A;(for UPDATE and DELETE only)</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CONDITIONS_TABLE" FIELD="TABLE" NUM_ROW="12"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<ITEMS>
<ITEM NAME="COLUMN" VALUE='""'/>
<ITEM NAME="FUNCTION" FIELD="CLOSED_LIST">
<ITEMS DEFAULT="EQUAL">
<ITEM NAME="EQUAL" VALUE="&quot;=&quot;"/>
<ITEM NAME="GREATER" VALUE="&quot;&gt;&quot;"/>
<ITEM NAME="LESS" VALUE="&quot;&lt;&quot;"/>
<ITEM NAME="GREATER_OR_EQUAL" VALUE="&quot;&gt;=&quot;"/>
<ITEM NAME="LESS_OR_EQUAL" VALUE="&quot;&lt;=&quot;"/>
<ITEM NAME="NOT_EQUAL" VALUE="&quot;&lt;&gt;&quot;"/>
<ITEM NAME="BETWEEN" VALUE="&quot;BETWEEN&quot;"/>
<ITEM NAME="LIKE" VALUE="&quot;LIKE&quot;"/>
<ITEM NAME="IN" VALUE="&quot;IN&quot;"/>
</ITEMS>
</ITEM>
<ITEM NAME="VALUE_SQL" VALUE='""'/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="ELT_TABLE_NAME"
FIELD="TEXT"
NUM_ROW="10"
NUM_ROW="13"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>

View File

@@ -10,7 +10,7 @@ imports="
org.talend.commons.utils.generation.CodeGenerationUtils
java.util.List
java.util.LinkedList
java.util.StringJoiner
java.util.StringJoiner
java.util.Map;
"
%>
@@ -19,6 +19,16 @@ imports="
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
boolean useAlias = false;
List<IConnection> inConnections = (List<IConnection>) node.getIncomingConnections();
if(inConnections != null && inConnections.size() > 0 && inConnections.get(0) != null) {
IConnection inConnection = inConnections.get(0);
INode sourceNode = inConnection.getSource();
if(sourceNode!=null){
useAlias = "true".equals(ElementParameterParser.getValue(sourceNode, "__USE_ALIAS_IN_OUTPUT_TABLE__"));
}
}
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
String cid = node.getUniqueName();
@@ -27,19 +37,23 @@ imports="
public String transform(String content){
String result = null;
content = content.trim();
String[] splitArr = content.split("\\s");
int lgth = splitArr.length;
if(lgth > 1){// has expr alias
result = "src." + splitArr[lgth - 1];
}else{
int index = content.indexOf(".");
if(index != -1){
result = "src" + content.substring(index);
}else{
result = content;
}
}
return result;
<%if(!useAlias){%>
String[] splitArr = content.split("\\s");
int lgth = splitArr.length;
if(lgth > 1){// has expr alias
result = "src." + splitArr[lgth - 1];
}else{
int index = content.indexOf(".");
if(index != -1){
result = "src" + content.substring(index);
}else{
result = content;
}
}
return result;
<%}else{%>
return "src." + content;
<%}%>
}
}
StrUtils_<%= cid %> strUtil_<%= cid %> = new StrUtils_<%= cid %>();
@@ -97,8 +111,9 @@ imports="
queryBandList = (List<Map<String,String>>)ElementParameterParser.getObjectValue(previousNode, "__QUERY_BAND_PARAMETERS__");
}
boolean useWhereTable = ("true").equals(ElementParameterParser.getValue(previousNode, "__USE_WHERE_CONDITIONS_TABLE__"));
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
List<Map<String, String>> whereConditions = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__WHERE_CONDITIONS_TABLE__");
%>
<%
@@ -233,31 +248,31 @@ for(IMetadataColumn column:columnList){
}
int counterOuter =0;
List<Map<String, String>> setColumns = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__SET_COLUMN__");
boolean isUpdate = "UPDATE".equals(dataAction);
String suffix = ",";
StringJoiner updateSetStmt = new StringJoiner(suffix);
List<Map<String, String>> setColumns = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__SET_COLUMN__");
boolean isUpdate = "UPDATE".equals(dataAction);
String suffix = ",";
StringJoiner updateSetStmt = new StringJoiner(suffix);
for(Column colStmt:stmtStructure){
if(counterOuter==(stmtStructure.size()-1)){
suffix = "";
}
boolean isUpdateColumn = "true".equals(setColumns.get(counterOuter).get("UPDATE_COLUMN"));
boolean isUpdateColumn = "true".equals(setColumns.get(counterOuter).get("UPDATE_COLUMN"));
if(colStmt.isAddCol()){
insertColName.append(colStmt.getName()+suffix);
insertValueStmt.append(colStmt.getSqlStmt()+suffix);
if (isUpdate && isUpdateColumn) {
updateSetStmt.add(colStmt.getName() + colStmt.getSqlStmt());
}
if (isUpdate && isUpdateColumn) {
updateSetStmt.add(colStmt.getName() + colStmt.getSqlStmt());
}
}else{
insertColName.append(colStmt.getName()+suffix);
insertValueStmt.append(colStmt.getValue()+suffix);
if (isUpdate && isUpdateColumn) {
updateSetStmt.add(
if (isUpdate && isUpdateColumn) {
updateSetStmt.add(
colStmt.getName()
+ "= \"+ strUtil_"
+ cid
+ ".transform(routines.system.StringUtils.splitSQLColumns(selectQueryColumnsName_"+ cid +")[" + counterOuter + "]) +\"");
}
+ ".transform(routines.system.StringUtils.splitSQLColumns(selectQueryColumnsName_"+ cid +")[" + counterOuter + "]) +\"");
}
}
counterOuter ++;
}
@@ -276,38 +291,72 @@ try{
<%log4jCodeGenerateUtil.logInfo(node,"error",cid+" - Fail to create PreparedStatement with SQL: \"+insertQuery_"+ cid +"+\"");%>
throw e;
}
<%
<%
}else if (("UPDATE").equals(dataAction)){
%>
%>
StringBuffer updateQuery_<%=cid %> = new StringBuffer("UPDATE "+tableName_<%=cid%>+" FROM (" + select_query_<%=cid %> + ") src SET <%=updateSetStmt.toString()%>");
<%
if(!useWhereTable) {
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
updateQuery_<%=cid %>.append(" WHERE " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
}
} else {
if(whereConditions.size() > 0) {
%>
updateQuery_<%=cid %>.append(" WHERE ");
<%
String operator = "\"\"";
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
updateQuery_<%=cid %>.append(<%=operator %> + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
operator = "\" AND \"";
}
}
}
%>
try{
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>.toString());
} catch (Exception e){
<%log4jCodeGenerateUtil.logInfo(node,"error",cid+" - Fail to create PreparedStatement with SQL: \"+updateQuery_"+ cid +"+\"");%>
throw e;
}
String updateQuery_<%=cid %> = "UPDATE "+tableName_<%=cid%>+" FROM (" + select_query_<%=cid %> + ") src SET <%=updateSetStmt.toString()%>"
<%if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {%>
+" WHERE " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>
<%}%>
;
try{
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>);
} catch (Exception e){
<%log4jCodeGenerateUtil.logInfo(node,"error",cid+" - Fail to create PreparedStatement with SQL: \"+updateQuery_"+ cid +"+\"");%>
throw e;
}
<%
<%
}else if (("DELETE").equals(dataAction)){
%>
String deleteQuery_<%=cid %> = "DELETE FROM "+ tableName_<%=cid%>+" WHERE EXISTS ("+select_query_<%=cid %>+") "
<%if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {%>
+" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>
<%}%>
;
try {
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>);
} catch (Exception e){
<%log4jCodeGenerateUtil.logInfo(node,"error",cid+" - Fail to create PreparedStatement with SQL: \"+deleteQuery_"+ cid +"+\"");%>
throw e;
}
%>
StringBuffer deleteQuery_<%=cid %> = new StringBuffer("DELETE FROM "+ tableName_<%=cid%>+" WHERE EXISTS ("+select_query_<%=cid %>+") ");
<%
if(!useWhereTable) {
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
deleteQuery_<%=cid %>.append(" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
}
} else {
if(whereConditions.size() > 0) {
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
deleteQuery_<%=cid %>.append(" AND " + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
}
}
}
%>
try {
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>.toString());
} catch (Exception e){
<%log4jCodeGenerateUtil.logInfo(node,"error",cid+" - Fail to create PreparedStatement with SQL: \"+deleteQuery_"+ cid +"+\"");%>
throw e;
}
<%
@@ -339,7 +388,7 @@ if(dbtable != null && columnList != null){
}else if(("UPDATE").equals(dataAction)){
%>
System.out.println("Updating with : \n" + updateQuery_<%=cid %> +"\n");
System.out.println("Updating with : \n" + updateQuery_<%=cid %>.toString() +"\n");
try{
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL: \"+updateQuery_"+ cid +"+\"");%>
nb_line_updated_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
@@ -353,7 +402,7 @@ if(dbtable != null && columnList != null){
<%
}else if (("DELETE").equals(dataAction)){
%>
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %> +"\n");
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %>.toString() +"\n");
try{
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL: \"+deleteQuery_"+ cid +"+\"");%>
nb_line_deleted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();

View File

@@ -41,6 +41,22 @@ USER.NAME=Username
WHERE_CLAUSE.NAME=Where clauses \n(for UPDATE and DELETE only)
ELT_TABLE_NAME.NAME=Default Table Name
USE_WHERE_CONDITIONS_TABLE.NAME=Use WHERE conditions table
WHERE_CONDITIONS_TABLE.NAME=
WHERE_CONDITIONS_TABLE.ITEM.COLUMN=Column
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION=Function
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.EQUAL==
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER=>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS=<
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER_OR_EQUAL=>=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS_OR_EQUAL=<=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.NOT_EQUAL=<>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.BETWEEN=BETWEEN
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LIKE=LIKE
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.IN=IN
WHERE_CONDITIONS_TABLE.ITEM.VALUE_SQL=Value
SET_COLUMN.ITEM.UPDATE_COLUMN=Update column
SET_COLUMN.NAME=Clause SET

View File

@@ -40,7 +40,7 @@
<PARAMETER
NAME="DATA_ACTION"
FIELD="CLOSED_LIST"
NUM_ROW="6"
NUM_ROW="2"
>
<ITEMS DEFAULT="INSERT">
<ITEM NAME="INSERT" VALUE="INSERT" />
@@ -52,15 +52,46 @@
<PARAMETER
NAME="SCHEMA"
FIELD="SCHEMA_TYPE"
NUM_ROW="7"
NUM_ROW="3"
>
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="8"
SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')">
<PARAMETER NAME="USE_WHERE_CONDITIONS_TABLE" FIELD="CHECK" NUM_ROW="4"
SHOW_IF="(DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CLAUSE" FIELD="MEMO" NUM_ROW="5"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'false')">
<DEFAULT>""</DEFAULT>
</PARAMETER>
<PARAMETER NAME="NOTE" FIELD="LABEL" NUM_ROW="6"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<DEFAULT>WHERE conditions table&#x000A;(for UPDATE and DELETE only)</DEFAULT>
</PARAMETER>
<PARAMETER NAME="WHERE_CONDITIONS_TABLE" FIELD="TABLE" NUM_ROW="8"
SHOW_IF="((DATA_ACTION == 'UPDATE') OR (DATA_ACTION == 'DELETE')) AND (USE_WHERE_CONDITIONS_TABLE == 'true')">
<ITEMS>
<ITEM NAME="COLUMN" VALUE='""'/>
<ITEM NAME="FUNCTION" FIELD="CLOSED_LIST">
<ITEMS DEFAULT="EQUAL">
<ITEM NAME="EQUAL" VALUE="&quot;=&quot;"/>
<ITEM NAME="GREATER" VALUE="&quot;&gt;&quot;"/>
<ITEM NAME="LESS" VALUE="&quot;&lt;&quot;"/>
<ITEM NAME="GREATER_OR_EQUAL" VALUE="&quot;&gt;=&quot;"/>
<ITEM NAME="LESS_OR_EQUAL" VALUE="&quot;&lt;=&quot;"/>
<ITEM NAME="NOT_EQUAL" VALUE="&quot;&lt;&gt;&quot;"/>
<ITEM NAME="BETWEEN" VALUE="&quot;BETWEEN&quot;"/>
<ITEM NAME="LIKE" VALUE="&quot;LIKE&quot;"/>
<ITEM NAME="IN" VALUE="&quot;IN&quot;"/>
</ITEMS>
</ITEM>
<ITEM NAME="VALUE_SQL" VALUE='""'/>
</ITEMS>
</PARAMETER>
<PARAMETER
NAME="ELT_TABLE_NAME"

View File

@@ -81,7 +81,9 @@ imports="
dbproperties = ElementParameterParser.getValue(previousNode, "__PROPERTIES__");
}
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
boolean useWhereTable = ("true").equals(ElementParameterParser.getValue(node, "__USE_WHERE_CONDITIONS_TABLE__"));
String whereClause = ElementParameterParser.getValue(node, "__WHERE_CLAUSE__");
List<Map<String, String>> whereConditions = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__WHERE_CONDITIONS_TABLE__");
if(useExistingConn) {
String connection = ElementParameterParser.getValue(previousNode, "__CONNECTION__");
@@ -293,30 +295,59 @@ imports="
<%
} else if (("UPDATE").equals(dataAction)) {
%>
String updateQuery_<%=cid %> = "UPDATE " + info_<%=cid%> + " "+tableName_<%=cid%>+" SET <%=updateSetStmt.toString()%> "
StringBuffer updateQuery_<%=cid %> = new StringBuffer("UPDATE " + info_<%=cid%> + " "+tableName_<%=cid%>+" SET <%=updateSetStmt.toString()%> ");
<%
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
if(!useWhereTable) {
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
+" WHERE " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>
updateQuery_<%=cid %>.append(" WHERE " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
}
} else {
if(whereConditions.size() > 0) {
%>
updateQuery_<%=cid %>.append(" WHERE ");
<%
String operator = "\"\"";
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
updateQuery_<%=cid %>.append(<%=operator %> + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
operator = "\" AND \"";
}
}
}
%>
;
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>);
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(updateQuery_<%=cid %>.toString());
<%
}else if (("DELETE").equals(dataAction)){
%>
String deleteQuery_<%=cid %> = "DELETE " + info_<%=cid%> + " FROM "+ tableName_<%=cid%>+" WHERE EXISTS ("+ select_query_<%=cid %>.replaceAll(selectQueryColumnsName_<%=cid %>, "*")+") "
StringBuffer deleteQuery_<%=cid %> = new StringBuffer("DELETE " + info_<%=cid%> + " FROM "+ tableName_<%=cid%>+" WHERE EXISTS ("+ select_query_<%=cid %>.replaceAll(selectQueryColumnsName_<%=cid %>, "*")+") ");
<%
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
if(!useWhereTable) {
if(CodeGenerationUtils.hasAlphaNumericCharacter(whereClause)) {
%>
+" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>
deleteQuery_<%=cid %>.append(" AND " + <%=CodeGenerationUtils.replaceAllCrBySpace(whereClause)%>);
<%
}
} else {
if(whereConditions.size() > 0) {
for(Map<String, String> whereCondition : whereConditions) {
String column_condition = whereCondition.get("COLUMN");
String function_condition = whereCondition.get("FUNCTION");
String value_condition = whereCondition.get("VALUE_SQL");
%>
deleteQuery_<%=cid %>.append(" AND " + <%=column_condition %> + " " + <%=function_condition %> + " " + <%=value_condition %>);
<%
}
}
}
%>
;
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>);
%>
pstmt_<%=cid %> = conn_<%=cid%>.prepareStatement(deleteQuery_<%=cid %>.toString());
<%
}
%>
@@ -338,7 +369,7 @@ imports="
<%
}else if(("UPDATE").equals(dataAction)){
%>
System.out.println("Updating with : \n" + updateQuery_<%=cid %> +"\n");
System.out.println("Updating with : \n" + updateQuery_<%=cid %>.toString() +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+updateQuery_"+ cid +"+\"");%>
nb_line_<%=cid%> += nb_line_updated_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>
@@ -346,7 +377,7 @@ imports="
<%
}else if (("DELETE").equals(dataAction)){
%>
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %> +"\n");
System.out.println("Deleting with : \n" + deleteQuery_<%=cid %>.toString() +"\n");
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executing SQL:\"+deleteQuery_"+ cid +"+\"");%>
nb_line_<%=cid%> += nb_line_deleted_<%=cid%> = pstmt_<%=cid %>.executeUpdate();
<%log4jCodeGenerateUtil.logInfo(node,"info",cid+" - Executed successfully.");%>

View File

@@ -41,6 +41,22 @@ WHERE_CLAUSE.NAME=Where clauses \n(for UPDATE and DELETE only)
ELT_TABLE_NAME.NAME=Default Table Name
ELT_SCHEMA_NAME.NAME=Default Schema Name
USE_WHERE_CONDITIONS_TABLE.NAME=Use WHERE conditions table
WHERE_CONDITIONS_TABLE.NAME=
WHERE_CONDITIONS_TABLE.ITEM.COLUMN=Column
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION=Function
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.EQUAL==
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER=>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS=<
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.GREATER_OR_EQUAL=>=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LESS_OR_EQUAL=<=
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.NOT_EQUAL=<>
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.BETWEEN=BETWEEN
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.LIKE=LIKE
WHERE_CONDITIONS_TABLE.ITEM.FUNCTION.ITEM.IN=IN
WHERE_CONDITIONS_TABLE.ITEM.VALUE_SQL=Value
NB_LINE_UPDATED.NAME=Number Of Updated Lines
NB_LINE_INSERTED.NAME=Number Of Inserted Lines
NB_LINE_DELETED.NAME=Number Of Deleted Lines

View File

@@ -149,7 +149,7 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Talen File Enhanced"
MODULE="talend_file_enhanced-1.0.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.0" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.0.jar" REQUIRED="true" />
MODULE="talend_file_enhanced-1.1.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.1" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.1.jar" REQUIRED="true" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -250,16 +250,6 @@ int nb_file_<%=cid%> = 0;
passwordFieldName = "__PASSWORD__";
%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/FTP/ftp_connect.javajet"%>
<%
}
if("binary".equalsIgnoreCase(ElementParameterParser.getValue(node, "__MODE__"))){
%>
ftp_<%=cid %>.setFileType(org.apache.commons.net.ftp.FTP.BINARY_FILE_TYPE);
<%
} else {
%>
ftp_<%=cid %>.setFileType(org.apache.commons.net.ftp.FTP.ASCII_FILE_TYPE);
<%
}
%>
@@ -288,6 +278,26 @@ int nb_file_<%=cid%> = 0;
<%
}
} //common code for ftp and ftps:
if("binary".equalsIgnoreCase(ElementParameterParser.getValue(node, "__MODE__"))){
%>
ftp_<%=cid %>.setFileType(org.apache.commons.net.ftp.FTP.BINARY_FILE_TYPE);
<%
} else {
%>
ftp_<%=cid %>.setFileType(org.apache.commons.net.ftp.FTP.ASCII_FILE_TYPE);
<%
}
%>
String rootDir_<%=cid %> = ftp_<%=cid %>.printWorkingDirectory();
String remotedir_<%=cid%> = (<%=remotedir%>).replaceAll("\\\\", "/");

View File

@@ -189,7 +189,7 @@ COMPATIBILITY="ALL"
<DEFAULT>"123456"</DEFAULT>
</PARAMETER>
<PARAMETER NAME="MODE" FIELD="CLOSED_LIST" NUM_ROW="7" SHOW_IF="((USE_EXISTING_CONNECTION == 'true') AND (#LINK@NODE.CONNECTION.SFTP == 'false') AND (#LINK@NODE.CONNECTION.FTPS == 'false')) OR ((USE_EXISTING_CONNECTION == 'false') AND (SFTP=='false') AND (FTPS == 'false'))">
<PARAMETER NAME="MODE" FIELD="CLOSED_LIST" NUM_ROW="7" SHOW_IF="((USE_EXISTING_CONNECTION == 'true') AND (#LINK@NODE.CONNECTION.SFTP == 'false')) OR ((USE_EXISTING_CONNECTION == 'false') AND (SFTP=='false'))">
<ITEMS DEFAULT="ascii">
<ITEM NAME="ASCII" VALUE="ascii" />
<ITEM NAME="BINARY" VALUE="binary" />

View File

@@ -48,8 +48,6 @@ if ("http".equals(protocol) || "https".equals(protocol)) {
boolean addHeader = "true".equals(ElementParameterParser.getValue(node, "__ADD_HEADER__"));
boolean encodeURI = "true".equals(ElementParameterParser.getValue(node, "__ENCODE_URI__"));
boolean trustAll = "true".equals(ElementParameterParser.getValue(node, "__TRUST_ALL_SERVER__"));
String scaccepted_uploadfile = ((uploadFile) ? " || status_"+cid+" == org.apache.commons.httpclient.HttpStatus.SC_ACCEPTED": "");
%>
java.net.URI uriToFetch_<%=cid %> = null;
try {
@@ -405,7 +403,7 @@ if ("http".equals(protocol) || "https".equals(protocol)) {
System.out.println("Redirect to: " + method_<%=cid%>.getURI());
finalURL_<%=cid%> = method_<%=cid%>.getURI().toString();
} else if (status_<%=cid%> == org.apache.commons.httpclient.HttpStatus.SC_OK<%= scaccepted_uploadfile%>) {
} else if (status_<%=cid%> >= 200 && status_<%=cid%> < 300) { //Status code 2XX indicates success
redirect_<%=cid%> = false;
} else {
throw new java.lang.Exception("Method failed: " + method_<%=cid%>.getStatusLine());
@@ -418,7 +416,7 @@ if ("http".equals(protocol) || "https".equals(protocol)) {
if (!redirect) {
%>
if (!(status_<%=cid%> == org.apache.commons.httpclient.HttpStatus.SC_OK<%= scaccepted_uploadfile%>)) {
if (!(status_<%=cid%> >= 200 && status_<%=cid%> < 300)){//Status code 2XX indicates success
throw new java.lang.Exception("Method failed: " + method_<%=cid%>.getStatusLine());
}
<%

View File

@@ -37,6 +37,7 @@
}
int dynamic_index = -1;
boolean hasDynamic = false;
int dynamicColumnlength = 100;
List<IMetadataColumn> columnList = null;
List<IMetadataTable> metadatas = node.getMetadataList();
IMetadataTable metadata = null;
@@ -52,6 +53,9 @@
if(columnList.get(i).getTalendType().equals("id_Dynamic")){
dynamic_index = i+1;
hasDynamic = true;
if(columnList.get(i).getLength() != null){
dynamicColumnlength = columnList.get(i).getLength();
}
break;
}
}
@@ -65,7 +69,7 @@
class GenerateCode{
public int dynamic_index = -1;
public int colLen = 0; // the length of the column in the input schema
public void generateDynamicSchemaCode(boolean isCsv){
public void generateDynamicSchemaCode(boolean isCsv,int dynamicColumnlength){
%>
if(isFirstCheckDyn_<%=cid %>){// for the header line
<%
@@ -85,7 +89,7 @@
dynamicMetadata_<%=cid%>.setDbName(dynamicMetadata_<%=cid%>.getName());
dynamicMetadata_<%=cid%>.setType("id_String");
dynamicMetadata_<%=cid%>.setDbType("VARCHAR");
dynamicMetadata_<%=cid%>.setLength(100);
dynamicMetadata_<%=cid%>.setLength(<%=dynamicColumnlength%>);
dynamicMetadata_<%=cid%>.setPrecision(0);
dynamicMetadata_<%=cid%>.setNullable(true);
dynamicMetadata_<%=cid%>.setKey(false);
@@ -565,7 +569,7 @@
if(hasDynamic){// generate the dynamic schema code
generateCode.colLen = sizeListColumns;
generateCode.dynamic_index = dynamic_index;
generateCode.generateDynamicSchemaCode(false); //false: delimited mode
generateCode.generateDynamicSchemaCode(false,dynamicColumnlength); //false: delimited mode
rowUtil.callValueToConnWithD("fid_"+cid, firstConnName, "dynamic_"+cid);
}else{
rowUtil.callValueToConn("fid_"+cid, firstConnName);
@@ -1347,7 +1351,7 @@
if(hasDynamic){// generate the dynamic schema code
generateCode.colLen = columnSize;
generateCode.dynamic_index = dynamic_index;
generateCode.generateDynamicSchemaCode(true); //true: CSV mode
generateCode.generateDynamicSchemaCode(true,dynamicColumnlength); //true: CSV mode
rowUtil.callValueToConnWithD("row"+cid, firstConnName, "dynamic_"+cid);
}else{
rowUtil.callValueToConn("row"+cid, firstConnName);

View File

@@ -213,7 +213,7 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Talen File Enhanced"
MODULE="talend_file_enhanced-1.0.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.0" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.0.jar" REQUIRED="true" />
MODULE="talend_file_enhanced-1.1.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.1" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.1.jar" REQUIRED="true" />
<IMPORT NAME="Talend_CSV" MODULE="talendcsv.jar" MVN="mvn:org.talend.libraries/talendcsv/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.csv/lib/talendcsv.jar"
REQUIRED="true" />
</IMPORTS>

View File

@@ -70,6 +70,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
int dynamic_index = -1;
boolean hasDynamic = false;
int dynamicColumnlength = 100;
List<IMetadataColumn> columnList = metadata.getListColumns();
String datePattern = "\"dd-MM-yyyy\"";
for(int i=0; columnList!=null && i< columnList.size(); i++) {
@@ -77,12 +78,15 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
dynamic_index = i+1;
hasDynamic = true;
datePattern= columnList.get(i).getPattern();
if(columnList.get(i).getLength() != null){
dynamicColumnlength = columnList.get(i).getLength();
}
break;
}
}
class GenerateCodeUtil{
public void generateCode(int dynamic_index,int colLen,boolean hasDynamic){
public void generateCode(int dynamic_index,int colLen,boolean hasDynamic,int dynamicColumnlength){
if(hasDynamic){
%>
int dynamic_column_count_<%=cid%>=1;
@@ -136,7 +140,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
dynamicMetadata_<%=cid%>.setDbName(dynamicMetadata_<%=cid%>.getName());
dynamicMetadata_<%=cid%>.setType("id_String");
dynamicMetadata_<%=cid%>.setDbType("VARCHAR");
dynamicMetadata_<%=cid%>.setLength(100);
dynamicMetadata_<%=cid%>.setLength(<%=dynamicColumnlength%>);
dynamicMetadata_<%=cid%>.setPrecision(0);
dynamicMetadata_<%=cid%>.setNullable(true);
dynamicMetadata_<%=cid%>.setKey(false);
@@ -406,7 +410,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
List<IMetadataColumn> listColumns = metadata.getListColumns();
int size = listColumns.size();
if (conn.getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {
generateCodeUtil.generateCode(dynamic_index,size,hasDynamic);
generateCodeUtil.generateCode(dynamic_index,size,hasDynamic, dynamicColumnlength);
%>
//
//end%>
@@ -854,7 +858,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
List<IMetadataColumn> listColumns = metadata.getListColumns();
int size = listColumns.size();
if (conn.getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {//5
generateCodeUtil.generateCode(dynamic_index,size,hasDynamic);
generateCodeUtil.generateCode(dynamic_index,size,hasDynamic,dynamicColumnlength);
%>
String[] temp_row_<%= cid %> = new String[tempRowLength_<%=cid%>];
<%
@@ -1353,7 +1357,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
List<IMetadataColumn> listColumns = metadata.getListColumns();
int size = listColumns.size();
if (conn.getLineStyle().hasConnectionCategory(IConnectionCategory.DATA)) {//TD256
generateCodeUtil.generateCode(dynamic_index,size,hasDynamic);
generateCodeUtil.generateCode(dynamic_index,size,hasDynamic,dynamicColumnlength);
%>
String[] temp_row_<%= cid %> = new String[tempRowLength_<%=cid%>];

View File

@@ -131,7 +131,7 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Talend File Enhanced" MODULE="talend_file_enhanced-1.0.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.0" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.0.jar" REQUIRED="true" />
<IMPORT NAME="Talend File Enhanced" MODULE="talend_file_enhanced-1.1.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.1" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.1.jar" REQUIRED="true" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -118,7 +118,7 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Talen File Enhanced"
MODULE="talend_file_enhanced-1.0.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.0" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.0.jar" REQUIRED="true" />
MODULE="talend_file_enhanced-1.1.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.1" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.1.jar" REQUIRED="true" />
<IMPORT NAME="Talend_CSV" MODULE="talendcsv.jar" MVN="mvn:org.talend.libraries/talendcsv/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.csv/lib/talendcsv.jar" REQUIRED="true" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -81,11 +81,11 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Talen File Enhanced" MODULE="talend_file_enhanced-1.0.jar" REQUIRED="true" />
<IMPORT NAME="Talen File Enhanced" MODULE="talend_file_enhanced-1.1.jar" REQUIRED="true" />
</IMPORTS>
</CODEGENERATION>
<RETURNS>
<RETURN NAME="NB_LINE" TYPE="id_Integer" AVAILABILITY="AFTER" />
</RETURNS>
</COMPONENT>
</COMPONENT>

View File

@@ -39,7 +39,7 @@
String skipEmptyRows = "true"; //("true").equals(ElementParameterParser.getValue(node, "__SKIP_EMPTY_ROWS__"));
boolean trimAll = ("true").equals(ElementParameterParser.getValue(node,"__TRIMALL__"));
String encoding = ElementParameterParser.getValue(node,"__ENCODING__");
//need to process rows longger than 100,000 characters, the property SafetySwitch(in talend_file_enhanced-1.0.jar) should be sent to false.(the default is true)
//need to process rows longger than 100,000 characters, the property SafetySwitch(in talend_file_enhanced-1.1.jar) should be sent to false.(the default is true)
//that means if check the option(true), the logic value of bSafetySwitch should be changed to false (negate the property)
boolean bSafetySwitch = !(("true").equals(ElementParameterParser.getValue(node, "__PROCESS_LONG_ROW__")));
String advancedSeparatorStr = ElementParameterParser.getValue(node, "__ADVANCED_SEPARATOR__");

View File

@@ -128,7 +128,7 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Talen File Enhanced" MODULE="talend_file_enhanced-1.0.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.0" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.0.jar" REQUIRED="true" />
<IMPORT NAME="Talen File Enhanced" MODULE="talend_file_enhanced-1.1.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.1" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.1.jar" REQUIRED="true" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -69,7 +69,7 @@
String dieOnErrorStr = ElementParameterParser.getValue(node, "__DIE_ON_ERROR__");
boolean dieOnError = (dieOnErrorStr!=null&&!("").equals(dieOnErrorStr))?("true").equals(dieOnErrorStr):false;
//need to process rows longger than 100 000 characters, the property SafetySwitch(in talend_file_enhanced-1.0.jar) should be sent to false.(the default is true)
//need to process rows longger than 100 000 characters, the property SafetySwitch(in talend_file_enhanced-1.1.jar) should be sent to false.(the default is true)
//that means if check the option(true), the logic value of bSafetySwitch should be changed to false (XOR with 'true')
boolean bSafetySwitch = (("true").equals(ElementParameterParser.getValue(node, "__PROCESS_LONG_ROW__")) ^ true);
String advancedSeparatorStr = ElementParameterParser.getValue(node, "__ADVANCED_SEPARATOR__");

View File

@@ -258,7 +258,7 @@
<IMPORTS>
<IMPORT
NAME="Talen File Enhanced"
MODULE="talend_file_enhanced-1.0.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.0" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.0.jar"
MODULE="talend_file_enhanced-1.1.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.1" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.1.jar"
REQUIRED="true"
/>
</IMPORTS>

View File

@@ -175,7 +175,7 @@
<IMPORTS>
<IMPORT
NAME="Talen File Enhanced"
MODULE="talend_file_enhanced-1.0.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.0" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.0.jar"
MODULE="talend_file_enhanced-1.1.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.1" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.1.jar"
REQUIRED="true"
/>
</IMPORTS>

View File

@@ -1,6 +1,6 @@
<%@ jet
<%@ jet
imports="
org.talend.core.model.process.INode
org.talend.core.model.process.INode
org.talend.core.model.process.ElementParameterParser
org.talend.core.model.metadata.IMetadataTable
org.talend.core.model.metadata.IMetadataColumn
@@ -12,7 +12,7 @@ imports="
java.util.List
java.util.Map
java.util.HashMap
"
"
%>
<%@ include file="../templates/Log4j/Log4jFileUtil.javajet"%>
@@ -21,7 +21,7 @@ CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
INode node = (INode)codeGenArgument.getArgument();
String cid = node.getUniqueName();
boolean version07 = ("true").equals(ElementParameterParser.getValue(node,"__VERSION_2007__"));
boolean useStream = ("true").equals(ElementParameterParser.getValue(node,"__USESTREAM__"));
String outStream = ElementParameterParser.getValue(node,"__STREAMNAME__");
@@ -54,7 +54,8 @@ List<Map<String, String>> autoSizeList = (List<Map<String,String>>)ElementParame
String advancedSeparatorStr = ElementParameterParser.getValue(node, "__ADVANCED_SEPARATOR__");
boolean advancedSeparator = (advancedSeparatorStr!=null&&!("").equals(advancedSeparatorStr))?("true").equals(advancedSeparatorStr):false;
String thousandsSeparator = ElementParameterParser.getValueWithJavaType(node, "__THOUSANDS_SEPARATOR__", JavaTypesManager.CHARACTER);
String decimalSeparator = ElementParameterParser.getValueWithJavaType(node, "__DECIMAL_SEPARATOR__", JavaTypesManager.CHARACTER);
String decimalSeparator = ElementParameterParser.getValueWithJavaType(node, "__DECIMAL_SEPARATOR__", JavaTypesManager.CHARACTER);
boolean isTruncateExceedingCharacters = ("true").equals(ElementParameterParser.getValue(node, "__TRUNCATE_EXCEEDING_CHARACTERS__" ));
Map<String,String> autColSizeMaping=new HashMap<String,String>();
List< ? extends IConnection> conns = node.getIncomingConnections();
@@ -93,7 +94,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
autColSizeMaping.put(column.getLabel(),"true");
}else{
autColSizeMaping.put(column.getLabel(),autoSizeList.get(i).get("IS_AUTO_SIZE"));
}
}
if(hasDynamic){
@@ -102,7 +103,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
int dynamicColCount=0;
private java.util.List<String> numberTypes = java.util.Arrays.asList(
new String[]{"Integer", "Float", "Double", "Long", "Short", "Byte", "BigDecimal"});
public boolean isNumberType(String talendType){
if(talendType==null){
return false;
@@ -116,7 +117,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
int[] fitWidth;
jxl.write.WritableCellFormat cellFormat;
jxl.write.WritableCellFormat dateCellFormat;
public ExcelDynamicUtil_<%=cid%>(){
initFormat();
}
@@ -125,7 +126,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
if(isSettingFont){
%>
jxl.write.WritableFont font = new jxl.write.WritableFont(jxl.write.WritableFont.<%=font%>, 10, jxl.write.WritableFont.NO_BOLD, false);
cellFormat = new jxl.write.WritableCellFormat(font);
cellFormat = new jxl.write.WritableCellFormat(font);
dateCellFormat=new jxl.write.WritableCellFormat(font ,new jxl.write.DateFormat(<%=datePattern %>));
<%
}else{
@@ -135,7 +136,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
}
%>
}
public String getJxlWriteType(DynamicMetadata dynamicColumn){
String talendType=dynamicColumn.getType();
String jxlWriteType="Number";
@@ -188,11 +189,11 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
writableSheet.setColumnView(columnIndex+i+<%=i%>, dynamicColumn.getName().trim().length());
}
}
<%
}else{
%>
cell = new jxl.write.Label(columnIndex+<%=i%><%if(i+1>dynamic_index){%>+dynamicColCount-1<%}%>, rowNum, "<%=column.getLabel()%>"<%if (isSettingFont) {%>,cellFormat<%}%>);
writableSheet.addCell(cell);
writableSheet.setColumnView(columnIndex+<%=i%><%if(i+1>dynamic_index){%>+dynamicColCount-1<%}%>, "<%=column.getLabel()%>".length());
@@ -206,7 +207,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
return 1;
}
return 0;
}
<%
}
@@ -232,7 +233,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
if("Boolean".equals(jxlWriteType)){
cell = new jxl.write.Boolean(columnIndex+i, rowNum, ((Boolean)column.getColumnValue(i))<%if(isSettingFont){%>,cellFormat<%}%>);
}else if("Label".equals(jxlWriteType)){
if(<%=advancedSeparator%> && isNumberType(dynamicColumn.getType())) {
if(<%=advancedSeparator%> && isNumberType(dynamicColumn.getType())) {
cell = new jxl.write.Label(columnIndex+i, rowNum, FormatterUtils.format_Number(String.valueOf(column.getColumnValue(i)), <%= thousandsSeparator %>, <%= decimalSeparator %>)<%if(isSettingFont){%>,cellFormat<%}%>);
}else{
cell = new jxl.write.Label(columnIndex+i, rowNum, column.getColumnValue(i).toString()<%if(isSettingFont){%>,cellFormat<%}%>);
@@ -243,7 +244,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
cell = new jxl.write.Number(columnIndex+i, rowNum, Double.valueOf(column.getColumnValue(i).toString())<%if(isSettingFont){%>,cellFormat<%}%>);
}
writableSheet.addCell(cell);
int currentWith = 5;
if("Number".equals(jxlWriteType)){
currentWith = String.valueOf(((jxl.write.Number)cell).getValue()).trim().length();
@@ -263,7 +264,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
<%
}else{
%>
<%
if(isIncludeHeader){
%>
@@ -306,7 +307,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
}else{
return 0;
}
}
<%
}
@@ -319,9 +320,9 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
String talendType=dynamicColumn.getType();
if("id_Date".equals(talendType)){
xlsxTool.addCellValue((java.util.Date)column.getColumnValue(i), <%=datePattern%>);
} else if(<%=advancedSeparator%> && isNumberType(talendType)) {
} else if(<%=advancedSeparator%> && isNumberType(talendType)) {
xlsxTool.addCellValue(FormatterUtils.format_Number(String.valueOf(column.getColumnValue(i)), <%= thousandsSeparator %>, <%= decimalSeparator %>));
} else if(isNumberType(talendType)) {
} else if(isNumberType(talendType)) {
xlsxTool.addCellValue(Double.parseDouble(String.valueOf(column.getColumnValue(i))));
}else if("id_Boolean".equals(talendType)){
xlsxTool.addCellValue((Boolean)(column.getColumnValue(i)));
@@ -357,7 +358,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
<%
if(!useStream){ // the part of the file path
%>
%>
String fileName_<%=cid%>=<%=filename%>;
java.io.File file_<%=cid %> = new java.io.File(fileName_<%=cid%>);
boolean isFileGenerated_<%=cid %> = true;
@@ -371,7 +372,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
}
if(("true").equals(ElementParameterParser.getValue(node,"__CREATE__"))){
%>
//create directory only if not exists
//create directory only if not exists
java.io.File parentFile_<%=cid %> = file_<%=cid %>.getParentFile();
if (parentFile_<%=cid %> != null && !parentFile_<%=cid %>.exists()) {
<%if(isLog4jEnabled){%>
@@ -385,43 +386,43 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
<%
}
}
%>
%>
jxl.write.WritableWorkbook writeableWorkbook_<%=cid %> = null;
jxl.write.WritableSheet writableSheet_<%=cid %> = null;
jxl.WorkbookSettings workbookSettings_<%= cid %> = new jxl.WorkbookSettings();
workbookSettings_<%= cid %>.setEncoding(<%=ElementParameterParser.getValue(node,"__ENCODING__") %>);
<%
if(useStream){ // the part of the output stream support
%>
writeableWorkbook_<%=cid %> = new jxl.write.biff.WritableWorkbookImpl(
new java.io.BufferedOutputStream(<%=outStream %>),
new java.io.BufferedOutputStream(<%=outStream %>),
false, workbookSettings_<%=cid %>);
<%
}else{
if(isAppendFile){
%>
%>
if (file_<%=cid %>.exists()) {
jxl.Workbook workbook_<%=cid %> = jxl.Workbook.getWorkbook(file_<%=cid %>,workbookSettings_<%= cid %>);
workbookSettings_<%= cid %>.setWriteAccess(null);
writeableWorkbook_<%=cid %> = new jxl.write.biff.WritableWorkbookImpl(
new java.io.BufferedOutputStream(new java.io.FileOutputStream(file_<%=cid %>, false)),
workbook_<%=cid %>,
new java.io.BufferedOutputStream(new java.io.FileOutputStream(file_<%=cid %>, false)),
workbook_<%=cid %>,
true,
workbookSettings_<%=cid %>);
}else{
}else{
writeableWorkbook_<%=cid %> = new jxl.write.biff.WritableWorkbookImpl(
new java.io.BufferedOutputStream(new java.io.FileOutputStream(fileName_<%=cid%>)),
true,
workbookSettings_<%= cid %>);
}
new java.io.BufferedOutputStream(new java.io.FileOutputStream(fileName_<%=cid%>)),
true,
workbookSettings_<%= cid %>);
}
<%
} else {
%>
writeableWorkbook_<%=cid %> = new jxl.write.biff.WritableWorkbookImpl(
new java.io.BufferedOutputStream(new java.io.FileOutputStream(fileName_<%=cid%>)),
true,
new java.io.BufferedOutputStream(new java.io.FileOutputStream(fileName_<%=cid%>)),
true,
workbookSettings_<%= cid %>);
<%
}
@@ -455,7 +456,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
int startRowNum_<%=cid %> = writableSheet_<%=cid %>.getRows();
<%}%>
//modif end
int[] fitWidth_<%=cid %> = new int[<%=columns.size()%>];
for(int i_<%=cid%>=0;i_<%=cid%><<%=columns.size()%>;i_<%=cid%>++){
int fitCellViewSize_<%=cid%>=writableSheet_<%=cid %>.getColumnView(i_<%=cid%><%if(firstCellYAbsolute){%>+<%=firstCellXStr%><%}%>).getSize();
@@ -465,9 +466,9 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
}
}
<%if(isSettingFont){%>
jxl.write.WritableFont wf_<%=cid%> = new jxl.write.WritableFont(jxl.write.WritableFont.<%=font%>, 10, jxl.write.WritableFont.NO_BOLD, false);
jxl.write.WritableCellFormat format_<%=cid%> = new jxl.write.WritableCellFormat(wf_<%=cid%>);
jxl.write.WritableCellFormat format_<%=cid%> = new jxl.write.WritableCellFormat(wf_<%=cid%>);
<%}%>
<%
@@ -482,9 +483,9 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
final jxl.write.WritableCellFormat cell_format_<%=column.getLabel() %>_<%= cid%>=new jxl.write.WritableCellFormat(wf_<%=cid%> ,new jxl.write.DateFormat(<%=pattern %>));
<%
}else{
%>
%>
final jxl.write.WritableCellFormat cell_format_<%=column.getLabel() %>_<%= cid%>=new jxl.write.WritableCellFormat(new jxl.write.DateFormat(<%=pattern %>));
<%
<%
}
}else{
%>
@@ -493,9 +494,9 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
}
<% }
}
}
%>
%>
<%
int sizeColumns = columns.size();
@@ -516,7 +517,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
final jxl.write.WritableCellFormat format_<%=cid %>,final int[] fitWidth_<%=cid%>) throws java.lang.Exception {
<%
}//TD256
if(firstCellYAbsolute){
%>
writableSheet_<%=cid %>.addCell(new jxl.write.Label(<%=i%> + <%=firstCellXStr%>, rowNum_<%=cid %>, "<%=column.getLabel() %>"
@@ -527,7 +528,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
<%
}
%>
));
));
<%
}else{
%>
@@ -552,18 +553,18 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
<%
}
}//TD128
if(sizeColumns>0&&(sizeColumns%schemaOptNum)>0){//TD512
%>
}
<%
}//TD512
boolean emptyMethod = true;
for(int i=0;i<sizeColumns;i++){//TD1024
IMetadataColumn column = columns.get(i);
if(i%schemaOptNum==0){
if(!isAllColumnAutoSize) {
if(autoSizeList.size() == columns.size()){
@@ -578,7 +579,7 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
} else {
emptyMethod = false;
}
if(!emptyMethod) {
%>
public void setColumnView_<%=i/schemaOptNum%>(final jxl.write.WritableSheet writableSheet_<%=cid %>,
@@ -634,13 +635,13 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
<%
}
}//TD1024
if(!emptyMethod && (sizeColumns>0&&(sizeColumns%schemaOptNum)>0)){
%>
}
<%
}
for(int i=0;i<sizeColumns;i++){//TD2048
IMetadataColumn column = columns.get(i);
if(i%schemaOptNum==0){
@@ -660,16 +661,16 @@ if ((metadatas!=null)&&(metadatas.size()>0)) {
<%
}
}//TD2048
if(sizeColumns>0&&(sizeColumns%schemaOptNum)>0){
%>
}
<%
}
%>
}
FileOutputExcelUtil_<%=cid%> fileOutputExcelUtil_<%=cid%>=new FileOutputExcelUtil_<%=cid%>();
<%
}//TD64
@@ -704,7 +705,7 @@ if(!hasDynamic && isIncludeHeader){
}
}
continue;
}
%>
@@ -720,7 +721,7 @@ if(!hasDynamic && isIncludeHeader){
<%
}
%>
));
));
<%
}else{
%>
@@ -746,15 +747,15 @@ if(!hasDynamic && isIncludeHeader){
<%
}
%>
<%
<%
}else{ //version judgement /***excel 2007 xlsx*****/
if(!useStream){
%>
String fileName_<%=cid%>=<%=filename%>;
<%
if(isDeleteEmptyFile){
%>
%>
java.io.File file_<%=cid %> = new java.io.File(fileName_<%=cid%>);
boolean isFileGenerated_<%=cid %> = true;
<%
@@ -772,17 +773,18 @@ if(!hasDynamic && isIncludeHeader){
org.talend.ExcelTool xlsxTool_<%=cid%> = new org.talend.ExcelTool();
<% if (protectFile) { %>
xlsxTool_<%=cid%>.setPasswordProtection(password_<%=cid%>);
<%}%>
<%
<%}%>
xlsxTool_<%=cid%>.setTruncateExceedingCharacters(<%=isTruncateExceedingCharacters%>);
<%
if(flushOnRow && (useStream || !isAppendFile)){
%>
int flushRowNum_<%=cid%>=<%=flushRowNum%>;
int bufferCount_<%=cid%>=0;
xlsxTool_<%=cid%>.setRowAccessWindowSize(-1);
//turn-off auto flush
<%
<%
}
boolean recalculateFormula = "true".equals(ElementParameterParser.getValue(node,"__RECALCULATE_FORMULA__"));
%>
xlsxTool_<%=cid%>.setSheet(<%=sheetname%>);
@@ -834,13 +836,13 @@ if(!hasDynamic && isIncludeHeader){
<%
}
}
if(isIncludeHeader && sizeColumns>0 && (sizeColumns%schemaOptNum)>0){
%>
}
<%
}
boolean emptyMethod = true;
for(int i=0;i<sizeColumns;i++){
IMetadataColumn column = columns.get(i);
@@ -858,12 +860,12 @@ if(!hasDynamic && isIncludeHeader){
} else {
emptyMethod = false;
}
if(!emptyMethod) {
%>
public void setColAutoSize_<%=i/schemaOptNum%>(final org.talend.ExcelTool xlsxTool_<%=cid%>) throws java.lang.Exception {
int columnIndex_<%=cid%> = 0;
<%
<%
}
}
if(!column.getTalendType().equals("id_Dynamic")){
@@ -902,47 +904,47 @@ if(!hasDynamic && isIncludeHeader){
emptyMethod = true;
%>
}
<%
<%
}
}
if(!emptyMethod && (sizeColumns>0 && (sizeColumns%schemaOptNum)>0)){
%>
}
<%
<%
}
for(int i=0;i<sizeColumns;i++){
IMetadataColumn column = columns.get(i);
if(i%schemaOptNum==0){
%>
public void putValue_<%=i/schemaOptNum%>(final <%=NodeUtil.getPrivateConnClassName(conn) %>Struct <%=conn.getName() %>,
final org.talend.ExcelTool xlsxTool_<%=cid%>) throws java.lang.Exception {
<%
<%
}
%>
<%@ include file="./putValue2007.javajet"%>
<%
<%
if((i+1)%schemaOptNum==0){
%>
}
<%
<%
}
}
if(sizeColumns>0 && (sizeColumns%schemaOptNum)>0){
%>
}
<%
<%
}
%>
}
FileOutputExcelUtil_<%=cid%> fileOutputExcelUtil_<%=cid%>=new FileOutputExcelUtil_<%=cid%>();
<%
}//TD1
if(!hasDynamic && isIncludeHeader){
if(!firstCellYAbsolute) {
%>
if (xlsxTool_<%=cid%>.getStartRow() == 0){
@@ -966,14 +968,14 @@ if(!hasDynamic && isIncludeHeader){
<%
}
%>
nb_line_<%=cid %>++;
nb_line_<%=cid %>++;
<%
if(!firstCellYAbsolute) {
%>
}
<%
}
}
}
%>
<%
}

View File

@@ -201,6 +201,11 @@
<DEFAULT>"."</DEFAULT>
</PARAMETER>
<PARAMETER NAME="TRUNCATE_EXCEEDING_CHARACTERS" FIELD="CHECK" REQUIRED="true" NUM_ROW="49"
SHOW_IF="(VERSION_2007=='true')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="ENCODING"
FIELD="ENCODING_TYPE"
@@ -214,11 +219,11 @@
<PARAMETER NAME="DELETE_EMPTYFILE" FIELD="CHECK" REQUIRED="true" NUM_ROW="70" SHOW_IF="(USESTREAM=='false')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER NAME="RECALCULATE_FORMULA" FIELD="CHECK" REQUIRED="true" NUM_ROW="80" SHOW_IF="(VERSION_2007 == 'true') AND (USESTREAM=='false') AND (APPEND_FILE=='true') AND (APPEND_SHEET=='true')">
<DEFAULT>false</DEFAULT>
</PARAMETER>
</PARAMETER>
<PARAMETER NAME="SCHEMA_OPT_NUM" FIELD="TEXT" NUM_ROW="100" REQUIRED="true" SHOW="false">
<DEFAULT>100</DEFAULT>
</PARAMETER>
@@ -227,7 +232,7 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Java_Excel" MODULE="jxl.jar" MVN="mvn:org.talend.libraries/jxl/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.jexcel/lib/jxl.jar" REQUIRED_IF="(VERSION_2007 == 'false')" />
<IMPORT NAME="TALEND_EXCEL" MODULE="talendExcel-1.8-20201113.jar" MVN="mvn:org.talend.components/talendExcel/1.8-20201113" UrlPath="platform:/plugin/org.talend.libraries.excel/lib/talendExcel-1.8-20201113.jar" REQUIRED_IF="(VERSION_2007 == 'true')" />
<IMPORT NAME="TALEND_EXCEL" MODULE="talendExcel-1.10-20210113.jar" MVN="mvn:org.talend.components/talendExcel/1.10-20210113" UrlPath="platform:/plugin/org.talend.libraries.excel/lib/talendExcel-1.10-20210113.jar" REQUIRED_IF="(VERSION_2007 == 'true')" />
<IMPORT NAME="commons-lang3" MODULE="commons-lang3-3.8.1.jar" MVN="mvn:org.apache.commons/commons-lang3/3.8.1" REQUIRED_IF="(VERSION_2007 == 'true')" />
<IMPORT NAME="Java_DOM4J2" MODULE="dom4j-2.1.3.jar" MVN="mvn:org.dom4j/dom4j/2.1.3" REQUIRED_IF="(VERSION_2007 == 'true')" BundleID="" />
<IMPORT NAME="log4j" MODULE="log4j-1.2.17.jar" MVN="mvn:log4j/log4j/1.2.17" REQUIRED_IF="(VERSION_2007 == 'true')" BundleID="" />

View File

@@ -72,7 +72,7 @@ HELP=org.talend.help.tFileOutputExcel
INCLUDEHEADER.NAME=Include header
IS_ALL_AUTO_SZIE.NAME=Define all columns auto size
KEEP_LEADING_ZEROS.NAME=Keep leading zeros
LONG_NAME=Writes the cells row by row in a Microsoft Excel file
LONG_NAME=Writes the cells row by row in a Microsoft Excel file
NB_LINE.NAME=Number of line
PROTECT_FILE.NAME=Protect file
PASSWORD.NAME=Password
@@ -91,3 +91,4 @@ FLUSHONROW.NAME=Custom the flush buffer size
FLUSHONROW_NUM.NAME=Row number
RECALCULATE_FORMULA.NAME=Recalculate formula
TRUNCATE_EXCEEDING_CHARACTERS.NAME=Truncate characters exceeding max cell length

View File

@@ -371,9 +371,10 @@ class GenerateToolByDom4j{
<%touchXMLNode.putCurrentElementByQName(currEleName);%>
java.util.List<org.dom4j.Element> allElements_<%=currEleName%>_<%=cid%> = <%touchXMLNode.getXMLElement(parentName);%>.elements();
java.util.List<org.dom4j.Node> allElements_<%=currEleName%>_<%=cid%> = <%touchXMLNode.getXMLElement(parentName);%>.content();
int order_<%=cid%> = allElements_<%=currEleName%>_<%=cid%>.size();
java.util.List<org.dom4j.Element> elements_<%=currEleName%>_<%=cid%> = <%touchXMLNode.getXMLElement(parentName);%>.elements(qname_<%=currEleName%>_<%=cid%>);
int app_size_<%=cid %> = elements_<%=currEleName%>_<%=cid%>.size();
@@ -408,8 +409,8 @@ class GenerateToolByDom4j{
}
%>
}
<%touchXMLNode.getXMLElement(parentName);%>.elements().add(order_<%=cid%>,<%touchXMLNode.getXMLElement(currEleName);%>);
allElements_<%=currEleName%>_<%=cid%>.add(order_<%=cid%>,<%touchXMLNode.getXMLElement(currEleName);%>);
<%
}else{

View File

@@ -79,7 +79,7 @@
<CODEGENERATION>
<IMPORTS>
<IMPORT NAME="Talen File Enhanced" MODULE="talend_file_enhanced-1.0.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.0" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.0.jar" REQUIRED="true" />
<IMPORT NAME="Talen File Enhanced" MODULE="talend_file_enhanced-1.1.jar" MVN="mvn:org.talend.components.lib/talend_file_enhanced/1.1" UrlPath="platform:/plugin/org.talend.libraries.custom/lib/talend_file_enhanced-1.1.jar" REQUIRED="true" />
</IMPORTS>
</CODEGENERATION>

View File

@@ -14,6 +14,8 @@
String gpgBin = ElementParameterParser.getValue(node, "__GPGBIN__");
String inputFile = ElementParameterParser.getValue(node, "__INPUT_FILE__");
String outputFile = ElementParameterParser.getValue(node, "__OUTPUT_FILE__");
boolean useExtraParameters = "true".equals(ElementParameterParser.getValue(node, "__USE_EXTRA_PARAMETERS__"));
String extraParameters = ElementParameterParser.getValue(node, "__EXTRA_PARAMETERS__");
boolean noTTY = "true".equals(ElementParameterParser.getValue(node, "__NOTTY__"));
@@ -28,23 +30,19 @@
%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/password.javajet"%>
String[] cmdArray_<%=cid %> = new String[]{
<%=gpgBin %>,
<%if(noTTY){%>
"--no-tty",
<%}%>
"--yes",
"-q",
"-d",
"--passphrase",
decryptedPassword_<%=cid%>,
"-o",
<%=outputFile %>,
<%=inputFile %>
};
StringBuilder cmdBuilder_<%=cid %> = new StringBuilder();
cmdBuilder_<%=cid %>.append(<%=gpgBin %>)
<%if(noTTY){%>.append(" --no-tty")<%}%>
.append(" --yes").append(" --batch")
<%if(useExtraParameters){%>.append(' ').append(<%=extraParameters%>.trim())<%}%>
.append(" -q").append(" -d").append(" --passphrase").append(' ').append(decryptedPassword_<%=cid%>).append(" -o")
.append(' ').append(<%=outputFile %>).append(' ')
.append(<%=inputFile %>);
Runtime runtime_<%=cid %> = Runtime.getRuntime();
final Process ps_<%=cid %> = runtime_<%=cid %>.exec(cmdArray_<%=cid %>);
final Process ps_<%=cid %> = runtime_<%=cid %>.exec(cmdBuilder_<%=cid %>.toString().split(" "));
Thread normal_<%=cid %> = new Thread() {
public void run() {

View File

@@ -68,10 +68,24 @@
FIELD="CHECK"
NUM_ROW="60"
>
<DEFAULT>false</DEFAULT>
<DEFAULT>false</DEFAULT>
</PARAMETER>
</PARAMETERS>
<ADVANCED_PARAMETERS>
<PARAMETER
NAME="USE_EXTRA_PARAMETERS"
FIELD="CHECK"
NUM_ROW="1"
>
<DEFAULT>true</DEFAULT>
</PARAMETER>
<PARAMETER NAME="EXTRA_PARAMETERS" FIELD="TEXT" REQUIRED="false" NUM_ROW="2"
SHOW_IF="USE_EXTRA_PARAMETERS == 'true'">
<DEFAULT>"--pinentry-mode loopback"</DEFAULT>
</PARAMETER>
</ADVANCED_PARAMETERS>
<CODEGENERATION/>

View File

@@ -11,3 +11,6 @@ FILE.NAME=Current File Name
FILEPATH.NAME=Current File Name with path
NOTTY.NAME=No TTY Terminal
USE_EXTRA_PARAMETERS.NAME=Use extra parameters
EXTRA_PARAMETERS.NAME=Extra parameters

View File

@@ -241,17 +241,17 @@
<IMPORT NAME="google-auth-library-oauth2-http-0.20.0" MODULE="google-auth-library-oauth2-http-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-oauth2-http/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-auth-library-oauth2-http -->
<IMPORT NAME="google-auth-library-credentials-0.20.0" MODULE="google-auth-library-credentials-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-credentials/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.25.0" MODULE="google-http-client-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.25.0" MODULE="google-http-client-jackson2-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.38.0" MODULE="google-http-client-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.38.0" MODULE="google-http-client-jackson2-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="jackson-core-2.10.1" MODULE="jackson-core-2.10.1.jar" MVN="mvn:com.fasterxml.jackson.core/jackson-core/2.10.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="guava-20.0.jar" MODULE="guava-20.0.jar" MVN="mvn:com.google.guava/guava/20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-storage-1.104.0" MODULE="google-cloud-storage-1.104.0.jar" MVN="mvn:com.google.cloud/google-cloud-storage/1.104.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-cloud-storage -->
<IMPORT NAME="google-cloud-core-1.93.4.jar" MODULE="google-cloud-core-1.93.4.jar" MVN="mvn:com.google.cloud/google-cloud-core/1.93.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.25.0.jar" MODULE="google-api-client-1.25.0.jar" MVN="mvn:com.google.api-client/google-api-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.31.1.jar" MODULE="google-api-client-1.31.1.jar" MVN="mvn:com.google.api-client/google-api-client/1.31.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-oauth-client-1.31.0.jar" MODULE="google-oauth-client-1.31.0.jar" MVN="mvn:com.google.oauth-client/google-oauth-client/1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20191011-1.30.3" MODULE="google-api-services-storage-v1-rev20191011-1.30.3.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20191011-1.30.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20201112-1.31.0" MODULE="google-api-services-storage-v1-rev20201112-1.31.0.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20201112-1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="gson-2.8.6" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="api-common-1.6.0" MODULE="api-common-1.6.0.jar" MVN="mvn:com.google.api/api-common/1.6.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="javax.annotation-api" MODULE="javax.annotation-api-1.3.jar" MVN="mvn:javax.annotation/javax.annotation-api/1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
@@ -261,10 +261,10 @@
<IMPORT NAME="protobuf-java-2.5.0" MODULE="protobuf-java-2.5.0.jar" MVN="mvn:com.google.protobuf/protobuf-java/2.5.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="error_prone_annotation-2.1.3" MODULE="error_prone_annotation-2.1.3.jar" MVN="mvn:com.google.errorprone/error_prone_annotations/2.1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-core-http-1.32.0.jar" MODULE="google-cloud-core-http-1.32.0.jar" MVN="mvn:com.google.cloud/google-cloud-core-http/1.32.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.25.0.jar" MODULE="google-http-client-appengine-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.21.0" MODULE="opencensus-api-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.21.0" MODULE="opencensus-contrib-http-util-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.19.0" MODULE="grpc-context-1.19.0.jar" MVN="mvn:io.grpc/grpc-context/1.19.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.38.0.jar" MODULE="google-http-client-appengine-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.24.0" MODULE="opencensus-api-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.24.0" MODULE="opencensus-contrib-http-util-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.22.1" MODULE="grpc-context-1.22.1.jar" MVN="mvn:io.grpc/grpc-context/1.22.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-common-protos-1.17.0" MODULE="proto-google-common-protos-1.17.0.jar" MVN="mvn:com.google.api.grpc/proto-google-common-protos/1.17.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-iam-v1-0.13.0" MODULE="proto-google-iam-v1-0.13.0.jar" MVN="mvn:com.google.api.grpc/proto-google-iam-v1/0.13.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="protobuf-java-util-3.11.4" MODULE="protobuf-java-util-3.11.4.jar" MVN="mvn:com.google.protobuf/protobuf-java-util/3.11.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />

View File

@@ -159,17 +159,17 @@
<IMPORT NAME="google-auth-library-oauth2-http-0.20.0" MODULE="google-auth-library-oauth2-http-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-oauth2-http/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-auth-library-oauth2-http -->
<IMPORT NAME="google-auth-library-credentials-0.20.0" MODULE="google-auth-library-credentials-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-credentials/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.25.0" MODULE="google-http-client-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.25.0" MODULE="google-http-client-jackson2-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.38.0" MODULE="google-http-client-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.38.0" MODULE="google-http-client-jackson2-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="jackson-core-2.10.1" MODULE="jackson-core-2.10.1.jar" MVN="mvn:com.fasterxml.jackson.core/jackson-core/2.10.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="guava-20.0.jar" MODULE="guava-20.0.jar" MVN="mvn:com.google.guava/guava/20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-storage-1.104.0" MODULE="google-cloud-storage-1.104.0.jar" MVN="mvn:com.google.cloud/google-cloud-storage/1.104.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-cloud-storage -->
<IMPORT NAME="google-cloud-core-1.93.4.jar" MODULE="google-cloud-core-1.93.4.jar" MVN="mvn:com.google.cloud/google-cloud-core/1.93.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.25.0.jar" MODULE="google-api-client-1.25.0.jar" MVN="mvn:com.google.api-client/google-api-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.31.1.jar" MODULE="google-api-client-1.31.1.jar" MVN="mvn:com.google.api-client/google-api-client/1.31.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-oauth-client-1.31.0.jar" MODULE="google-oauth-client-1.31.0.jar" MVN="mvn:com.google.oauth-client/google-oauth-client/1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20191011-1.30.3" MODULE="google-api-services-storage-v1-rev20191011-1.30.3.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20191011-1.30.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20201112-1.31.0" MODULE="google-api-services-storage-v1-rev20201112-1.31.0.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20201112-1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="gson-2.8.6" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="api-common-1.6.0" MODULE="api-common-1.6.0.jar" MVN="mvn:com.google.api/api-common/1.6.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="javax.annotation-api" MODULE="javax.annotation-api-1.3.jar" MVN="mvn:javax.annotation/javax.annotation-api/1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
@@ -179,10 +179,10 @@
<IMPORT NAME="protobuf-java-2.5.0" MODULE="protobuf-java-2.5.0.jar" MVN="mvn:com.google.protobuf/protobuf-java/2.5.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="error_prone_annotation-2.1.3" MODULE="error_prone_annotation-2.1.3.jar" MVN="mvn:com.google.errorprone/error_prone_annotations/2.1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-core-http-1.32.0.jar" MODULE="google-cloud-core-http-1.32.0.jar" MVN="mvn:com.google.cloud/google-cloud-core-http/1.32.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.25.0.jar" MODULE="google-http-client-appengine-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.21.0" MODULE="opencensus-api-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.21.0" MODULE="opencensus-contrib-http-util-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.19.0" MODULE="grpc-context-1.19.0.jar" MVN="mvn:io.grpc/grpc-context/1.19.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.38.0.jar" MODULE="google-http-client-appengine-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.24.0" MODULE="opencensus-api-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.24.0" MODULE="opencensus-contrib-http-util-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.22.1" MODULE="grpc-context-1.22.1.jar" MVN="mvn:io.grpc/grpc-context/1.22.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-common-protos-1.17.0" MODULE="proto-google-common-protos-1.17.0.jar" MVN="mvn:com.google.api.grpc/proto-google-common-protos/1.17.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-iam-v1-0.13.0" MODULE="proto-google-iam-v1-0.13.0.jar" MVN="mvn:com.google.api.grpc/proto-google-iam-v1/0.13.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="protobuf-java-util-3.11.4" MODULE="protobuf-java-util-3.11.4.jar" MVN="mvn:com.google.protobuf/protobuf-java-util/3.11.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />

View File

@@ -160,17 +160,17 @@
<IMPORT NAME="google-auth-library-oauth2-http-0.20.0" MODULE="google-auth-library-oauth2-http-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-oauth2-http/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-auth-library-oauth2-http -->
<IMPORT NAME="google-auth-library-credentials-0.20.0" MODULE="google-auth-library-credentials-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-credentials/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.25.0" MODULE="google-http-client-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.25.0" MODULE="google-http-client-jackson2-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.38.0" MODULE="google-http-client-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.38.0" MODULE="google-http-client-jackson2-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="jackson-core-2.10.1" MODULE="jackson-core-2.10.1.jar" MVN="mvn:com.fasterxml.jackson.core/jackson-core/2.10.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="guava-20.0.jar" MODULE="guava-20.0.jar" MVN="mvn:com.google.guava/guava/20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-storage-1.104.0" MODULE="google-cloud-storage-1.104.0.jar" MVN="mvn:com.google.cloud/google-cloud-storage/1.104.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-cloud-storage -->
<IMPORT NAME="google-cloud-core-1.93.4.jar" MODULE="google-cloud-core-1.93.4.jar" MVN="mvn:com.google.cloud/google-cloud-core/1.93.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.25.0.jar" MODULE="google-api-client-1.25.0.jar" MVN="mvn:com.google.api-client/google-api-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.31.1.jar" MODULE="google-api-client-1.31.1.jar" MVN="mvn:com.google.api-client/google-api-client/1.31.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-oauth-client-1.31.0.jar" MODULE="google-oauth-client-1.31.0.jar" MVN="mvn:com.google.oauth-client/google-oauth-client/1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20191011-1.30.3" MODULE="google-api-services-storage-v1-rev20191011-1.30.3.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20191011-1.30.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20201112-1.31.0" MODULE="google-api-services-storage-v1-rev20201112-1.31.0.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20201112-1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="gson-2.8.6" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="api-common-1.6.0" MODULE="api-common-1.6.0.jar" MVN="mvn:com.google.api/api-common/1.6.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="javax.annotation-api" MODULE="javax.annotation-api-1.3.jar" MVN="mvn:javax.annotation/javax.annotation-api/1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
@@ -180,10 +180,10 @@
<IMPORT NAME="protobuf-java-2.5.0" MODULE="protobuf-java-2.5.0.jar" MVN="mvn:com.google.protobuf/protobuf-java/2.5.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="error_prone_annotation-2.1.3" MODULE="error_prone_annotation-2.1.3.jar" MVN="mvn:com.google.errorprone/error_prone_annotations/2.1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-core-http-1.32.0.jar" MODULE="google-cloud-core-http-1.32.0.jar" MVN="mvn:com.google.cloud/google-cloud-core-http/1.32.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.25.0.jar" MODULE="google-http-client-appengine-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.21.0" MODULE="opencensus-api-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.21.0" MODULE="opencensus-contrib-http-util-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.19.0" MODULE="grpc-context-1.19.0.jar" MVN="mvn:io.grpc/grpc-context/1.19.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.38.0.jar" MODULE="google-http-client-appengine-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.24.0" MODULE="opencensus-api-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.24.0" MODULE="opencensus-contrib-http-util-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.22.1" MODULE="grpc-context-1.22.1.jar" MVN="mvn:io.grpc/grpc-context/1.22.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-common-protos-1.17.0" MODULE="proto-google-common-protos-1.17.0.jar" MVN="mvn:com.google.api.grpc/proto-google-common-protos/1.17.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-iam-v1-0.13.0" MODULE="proto-google-iam-v1-0.13.0.jar" MVN="mvn:com.google.api.grpc/proto-google-iam-v1/0.13.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="protobuf-java-util-3.11.4" MODULE="protobuf-java-util-3.11.4.jar" MVN="mvn:com.google.protobuf/protobuf-java-util/3.11.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />

View File

@@ -164,17 +164,17 @@
<IMPORT NAME="google-auth-library-oauth2-http-0.20.0" MODULE="google-auth-library-oauth2-http-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-oauth2-http/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-auth-library-oauth2-http -->
<IMPORT NAME="google-auth-library-credentials-0.20.0" MODULE="google-auth-library-credentials-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-credentials/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.25.0" MODULE="google-http-client-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.25.0" MODULE="google-http-client-jackson2-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.38.0" MODULE="google-http-client-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.38.0" MODULE="google-http-client-jackson2-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="jackson-core-2.10.1" MODULE="jackson-core-2.10.1.jar" MVN="mvn:com.fasterxml.jackson.core/jackson-core/2.10.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="guava-20.0.jar" MODULE="guava-20.0.jar" MVN="mvn:com.google.guava/guava/20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-storage-1.104.0" MODULE="google-cloud-storage-1.104.0.jar" MVN="mvn:com.google.cloud/google-cloud-storage/1.104.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-cloud-storage -->
<IMPORT NAME="google-cloud-core-1.93.4.jar" MODULE="google-cloud-core-1.93.4.jar" MVN="mvn:com.google.cloud/google-cloud-core/1.93.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.25.0.jar" MODULE="google-api-client-1.25.0.jar" MVN="mvn:com.google.api-client/google-api-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.31.1.jar" MODULE="google-api-client-1.31.1.jar" MVN="mvn:com.google.api-client/google-api-client/1.31.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-oauth-client-1.31.0.jar" MODULE="google-oauth-client-1.31.0.jar" MVN="mvn:com.google.oauth-client/google-oauth-client/1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20191011-1.30.3" MODULE="google-api-services-storage-v1-rev20191011-1.30.3.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20191011-1.30.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20201112-1.31.0" MODULE="google-api-services-storage-v1-rev20201112-1.31.0.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20201112-1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="gson-2.8.6" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="api-common-1.6.0" MODULE="api-common-1.6.0.jar" MVN="mvn:com.google.api/api-common/1.6.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="javax.annotation-api" MODULE="javax.annotation-api-1.3.jar" MVN="mvn:javax.annotation/javax.annotation-api/1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
@@ -184,10 +184,10 @@
<IMPORT NAME="protobuf-java-2.5.0" MODULE="protobuf-java-2.5.0.jar" MVN="mvn:com.google.protobuf/protobuf-java/2.5.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="error_prone_annotation-2.1.3" MODULE="error_prone_annotation-2.1.3.jar" MVN="mvn:com.google.errorprone/error_prone_annotations/2.1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-core-http-1.32.0.jar" MODULE="google-cloud-core-http-1.32.0.jar" MVN="mvn:com.google.cloud/google-cloud-core-http/1.32.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.25.0.jar" MODULE="google-http-client-appengine-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.21.0" MODULE="opencensus-api-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.21.0" MODULE="opencensus-contrib-http-util-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.19.0" MODULE="grpc-context-1.19.0.jar" MVN="mvn:io.grpc/grpc-context/1.19.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.38.0.jar" MODULE="google-http-client-appengine-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.24.0" MODULE="opencensus-api-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.24.0" MODULE="opencensus-contrib-http-util-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.22.1" MODULE="grpc-context-1.22.1.jar" MVN="mvn:io.grpc/grpc-context/1.22.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-common-protos-1.17.0" MODULE="proto-google-common-protos-1.17.0.jar" MVN="mvn:com.google.api.grpc/proto-google-common-protos/1.17.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-iam-v1-0.13.0" MODULE="proto-google-iam-v1-0.13.0.jar" MVN="mvn:com.google.api.grpc/proto-google-iam-v1/0.13.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="protobuf-java-util-3.11.4" MODULE="protobuf-java-util-3.11.4.jar" MVN="mvn:com.google.protobuf/protobuf-java-util/3.11.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />

View File

@@ -111,17 +111,17 @@
<IMPORT NAME="google-auth-library-oauth2-http-0.20.0" MODULE="google-auth-library-oauth2-http-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-oauth2-http/0.20.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<!-- Transitive dependencies of google-auth-library-oauth2-http -->
<IMPORT NAME="google-auth-library-credentials-0.20.0" MODULE="google-auth-library-credentials-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-credentials/0.20.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-http-client-1.25.0" MODULE="google-http-client-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.25.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-http-client-jackson2-1.25.0" MODULE="google-http-client-jackson2-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.25.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-http-client-1.38.0" MODULE="google-http-client-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.38.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-http-client-jackson2-1.38.0" MODULE="google-http-client-jackson2-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.38.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="jackson-core-2.10.1" MODULE="jackson-core-2.10.1.jar" MVN="mvn:com.fasterxml.jackson.core/jackson-core/2.10.1" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="guava-20.0.jar" MODULE="guava-20.0.jar" MVN="mvn:com.google.guava/guava/20.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-cloud-storage-1.104.0" MODULE="google-cloud-storage-1.104.0.jar" MVN="mvn:com.google.cloud/google-cloud-storage/1.104.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<!-- Transitive dependencies of google-cloud-storage -->
<IMPORT NAME="google-cloud-core-1.93.4.jar" MODULE="google-cloud-core-1.93.4.jar" MVN="mvn:com.google.cloud/google-cloud-core/1.93.4" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-api-client-1.25.0.jar" MODULE="google-api-client-1.25.0.jar" MVN="mvn:com.google.api-client/google-api-client/1.25.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-api-client-1.31.1.jar" MODULE="google-api-client-1.31.1.jar" MVN="mvn:com.google.api-client/google-api-client/1.31.1" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-oauth-client-1.31.0.jar" MODULE="google-oauth-client-1.31.0.jar" MVN="mvn:com.google.oauth-client/google-oauth-client/1.31.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-api-services-storage-v1-rev20191011-1.30.3" MODULE="google-api-services-storage-v1-rev20191011-1.30.3.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20191011-1.30.3" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-api-services-storage-v1-rev20201112-1.31.0" MODULE="google-api-services-storage-v1-rev20201112-1.31.0.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20201112-1.31.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="gson-2.8.6" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="api-common-1.6.0" MODULE="api-common-1.6.0.jar" MVN="mvn:com.google.api/api-common/1.6.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="javax.annotation-api" MODULE="javax.annotation-api-1.3.jar" MVN="mvn:javax.annotation/javax.annotation-api/1.3" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
@@ -131,10 +131,10 @@
<IMPORT NAME="protobuf-java-2.5.0" MODULE="protobuf-java-2.5.0.jar" MVN="mvn:com.google.protobuf/protobuf-java/2.5.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="error_prone_annotation-2.1.3" MODULE="error_prone_annotation-2.1.3.jar" MVN="mvn:com.google.errorprone/error_prone_annotations/2.1.3" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-cloud-core-http-1.32.0.jar" MODULE="google-cloud-core-http-1.32.0.jar" MVN="mvn:com.google.cloud/google-cloud-core-http/1.32.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-http-client-appengine-1.25.0.jar" MODULE="google-http-client-appengine-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.25.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="opencensus-api-0.21.0" MODULE="opencensus-api-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.21.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="opencensus-contrib-http-util-0.21.0" MODULE="opencensus-contrib-http-util-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.21.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="grpc-context-1.19.0" MODULE="grpc-context-1.19.0.jar" MVN="mvn:io.grpc/grpc-context/1.19.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="google-http-client-appengine-1.38.0.jar" MODULE="google-http-client-appengine-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.38.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="opencensus-api-0.24.0" MODULE="opencensus-api-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.24.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="opencensus-contrib-http-util-0.24.0" MODULE="opencensus-contrib-http-util-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.24.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="grpc-context-1.22.1" MODULE="grpc-context-1.22.1.jar" MVN="mvn:io.grpc/grpc-context/1.22.1" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="proto-google-common-protos-1.17.0" MODULE="proto-google-common-protos-1.17.0.jar" MVN="mvn:com.google.api.grpc/proto-google-common-protos/1.17.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="proto-google-iam-v1-0.13.0" MODULE="proto-google-iam-v1-0.13.0.jar" MVN="mvn:com.google.api.grpc/proto-google-iam-v1/0.13.0" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />
<IMPORT NAME="protobuf-java-util-3.11.4" MODULE="protobuf-java-util-3.11.4.jar" MVN="mvn:com.google.protobuf/protobuf-java-util/3.11.4" REQUIRED_IF="(AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN')" />

View File

@@ -237,17 +237,17 @@
<IMPORT NAME="google-auth-library-oauth2-http-0.20.0" MODULE="google-auth-library-oauth2-http-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-oauth2-http/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-auth-library-oauth2-http -->
<IMPORT NAME="google-auth-library-credentials-0.20.0" MODULE="google-auth-library-credentials-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-credentials/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.25.0" MODULE="google-http-client-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.25.0" MODULE="google-http-client-jackson2-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.38.0" MODULE="google-http-client-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.38.0" MODULE="google-http-client-jackson2-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="jackson-core-2.10.1" MODULE="jackson-core-2.10.1.jar" MVN="mvn:com.fasterxml.jackson.core/jackson-core/2.10.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="guava-20.0.jar" MODULE="guava-20.0.jar" MVN="mvn:com.google.guava/guava/20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-storage-1.104.0" MODULE="google-cloud-storage-1.104.0.jar" MVN="mvn:com.google.cloud/google-cloud-storage/1.104.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-cloud-storage -->
<IMPORT NAME="google-cloud-core-1.93.4.jar" MODULE="google-cloud-core-1.93.4.jar" MVN="mvn:com.google.cloud/google-cloud-core/1.93.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.25.0.jar" MODULE="google-api-client-1.25.0.jar" MVN="mvn:com.google.api-client/google-api-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.31.1.jar" MODULE="google-api-client-1.31.1.jar" MVN="mvn:com.google.api-client/google-api-client/1.31.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-oauth-client-1.31.0.jar" MODULE="google-oauth-client-1.31.0.jar" MVN="mvn:com.google.oauth-client/google-oauth-client/1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20191011-1.30.3" MODULE="google-api-services-storage-v1-rev20191011-1.30.3.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20191011-1.30.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20201112-1.31.0" MODULE="google-api-services-storage-v1-rev20201112-1.31.0.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20201112-1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="gson-2.8.6" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="api-common-1.6.0" MODULE="api-common-1.6.0.jar" MVN="mvn:com.google.api/api-common/1.6.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="javax.annotation-api" MODULE="javax.annotation-api-1.3.jar" MVN="mvn:javax.annotation/javax.annotation-api/1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
@@ -257,10 +257,10 @@
<IMPORT NAME="protobuf-java-2.5.0" MODULE="protobuf-java-2.5.0.jar" MVN="mvn:com.google.protobuf/protobuf-java/2.5.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="error_prone_annotation-2.1.3" MODULE="error_prone_annotation-2.1.3.jar" MVN="mvn:com.google.errorprone/error_prone_annotations/2.1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-core-http-1.32.0.jar" MODULE="google-cloud-core-http-1.32.0.jar" MVN="mvn:com.google.cloud/google-cloud-core-http/1.32.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.25.0.jar" MODULE="google-http-client-appengine-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.21.0" MODULE="opencensus-api-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.21.0" MODULE="opencensus-contrib-http-util-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.19.0" MODULE="grpc-context-1.19.0.jar" MVN="mvn:io.grpc/grpc-context/1.19.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.38.0.jar" MODULE="google-http-client-appengine-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.24.0" MODULE="opencensus-api-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.24.0" MODULE="opencensus-contrib-http-util-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.22.1" MODULE="grpc-context-1.22.1.jar" MVN="mvn:io.grpc/grpc-context/1.22.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-common-protos-1.17.0" MODULE="proto-google-common-protos-1.17.0.jar" MVN="mvn:com.google.api.grpc/proto-google-common-protos/1.17.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-iam-v1-0.13.0" MODULE="proto-google-iam-v1-0.13.0.jar" MVN="mvn:com.google.api.grpc/proto-google-iam-v1/0.13.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="protobuf-java-util-3.11.4" MODULE="protobuf-java-util-3.11.4.jar" MVN="mvn:com.google.protobuf/protobuf-java-util/3.11.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />

View File

@@ -230,17 +230,17 @@
<IMPORT NAME="google-auth-library-oauth2-http-0.20.0" MODULE="google-auth-library-oauth2-http-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-oauth2-http/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-auth-library-oauth2-http -->
<IMPORT NAME="google-auth-library-credentials-0.20.0" MODULE="google-auth-library-credentials-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-credentials/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.25.0" MODULE="google-http-client-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.25.0" MODULE="google-http-client-jackson2-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.38.0" MODULE="google-http-client-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.38.0" MODULE="google-http-client-jackson2-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="jackson-core-2.10.1" MODULE="jackson-core-2.10.1.jar" MVN="mvn:com.fasterxml.jackson.core/jackson-core/2.10.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="guava-20.0.jar" MODULE="guava-20.0.jar" MVN="mvn:com.google.guava/guava/20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-storage-1.104.0" MODULE="google-cloud-storage-1.104.0.jar" MVN="mvn:com.google.cloud/google-cloud-storage/1.104.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-cloud-storage -->
<IMPORT NAME="google-cloud-core-1.93.4.jar" MODULE="google-cloud-core-1.93.4.jar" MVN="mvn:com.google.cloud/google-cloud-core/1.93.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.25.0.jar" MODULE="google-api-client-1.25.0.jar" MVN="mvn:com.google.api-client/google-api-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.31.1.jar" MODULE="google-api-client-1.31.1.jar" MVN="mvn:com.google.api-client/google-api-client/1.31.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-oauth-client-1.31.0.jar" MODULE="google-oauth-client-1.31.0.jar" MVN="mvn:com.google.oauth-client/google-oauth-client/1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20191011-1.30.3" MODULE="google-api-services-storage-v1-rev20191011-1.30.3.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20191011-1.30.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20201112-1.31.0" MODULE="google-api-services-storage-v1-rev20201112-1.31.0.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20201112-1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="gson-2.8.6" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="api-common-1.6.0" MODULE="api-common-1.6.0.jar" MVN="mvn:com.google.api/api-common/1.6.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="javax.annotation-api" MODULE="javax.annotation-api-1.3.jar" MVN="mvn:javax.annotation/javax.annotation-api/1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
@@ -250,10 +250,10 @@
<IMPORT NAME="protobuf-java-2.5.0" MODULE="protobuf-java-2.5.0.jar" MVN="mvn:com.google.protobuf/protobuf-java/2.5.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="error_prone_annotation-2.1.3" MODULE="error_prone_annotation-2.1.3.jar" MVN="mvn:com.google.errorprone/error_prone_annotations/2.1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-core-http-1.32.0.jar" MODULE="google-cloud-core-http-1.32.0.jar" MVN="mvn:com.google.cloud/google-cloud-core-http/1.32.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.25.0.jar" MODULE="google-http-client-appengine-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.21.0" MODULE="opencensus-api-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.21.0" MODULE="opencensus-contrib-http-util-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.19.0" MODULE="grpc-context-1.19.0.jar" MVN="mvn:io.grpc/grpc-context/1.19.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.38.0.jar" MODULE="google-http-client-appengine-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.24.0" MODULE="opencensus-api-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.24.0" MODULE="opencensus-contrib-http-util-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.22.1" MODULE="grpc-context-1.22.1.jar" MVN="mvn:io.grpc/grpc-context/1.22.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-common-protos-1.17.0" MODULE="proto-google-common-protos-1.17.0.jar" MVN="mvn:com.google.api.grpc/proto-google-common-protos/1.17.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-iam-v1-0.13.0" MODULE="proto-google-iam-v1-0.13.0.jar" MVN="mvn:com.google.api.grpc/proto-google-iam-v1/0.13.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="protobuf-java-util-3.11.4" MODULE="protobuf-java-util-3.11.4.jar" MVN="mvn:com.google.protobuf/protobuf-java-util/3.11.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />

View File

@@ -268,17 +268,17 @@
<IMPORT NAME="google-auth-library-oauth2-http-0.20.0" MODULE="google-auth-library-oauth2-http-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-oauth2-http/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-auth-library-oauth2-http -->
<IMPORT NAME="google-auth-library-credentials-0.20.0" MODULE="google-auth-library-credentials-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-credentials/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.25.0" MODULE="google-http-client-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.25.0" MODULE="google-http-client-jackson2-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.38.0" MODULE="google-http-client-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.38.0" MODULE="google-http-client-jackson2-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="jackson-core-2.10.1" MODULE="jackson-core-2.10.1.jar" MVN="mvn:com.fasterxml.jackson.core/jackson-core/2.10.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="guava-20.0.jar" MODULE="guava-20.0.jar" MVN="mvn:com.google.guava/guava/20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-storage-1.104.0" MODULE="google-cloud-storage-1.104.0.jar" MVN="mvn:com.google.cloud/google-cloud-storage/1.104.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-cloud-storage -->
<IMPORT NAME="google-cloud-core-1.93.4.jar" MODULE="google-cloud-core-1.93.4.jar" MVN="mvn:com.google.cloud/google-cloud-core/1.93.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.25.0.jar" MODULE="google-api-client-1.25.0.jar" MVN="mvn:com.google.api-client/google-api-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.31.1.jar" MODULE="google-api-client-1.31.1.jar" MVN="mvn:com.google.api-client/google-api-client/1.31.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-oauth-client-1.31.0.jar" MODULE="google-oauth-client-1.31.0.jar" MVN="mvn:com.google.oauth-client/google-oauth-client/1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20191011-1.30.3" MODULE="google-api-services-storage-v1-rev20191011-1.30.3.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20191011-1.30.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20201112-1.31.0" MODULE="google-api-services-storage-v1-rev20201112-1.31.0.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20201112-1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="gson-2.8.6" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="api-common-1.6.0" MODULE="api-common-1.6.0.jar" MVN="mvn:com.google.api/api-common/1.6.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="javax.annotation-api" MODULE="javax.annotation-api-1.3.jar" MVN="mvn:javax.annotation/javax.annotation-api/1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
@@ -288,10 +288,10 @@
<IMPORT NAME="protobuf-java-2.5.0" MODULE="protobuf-java-2.5.0.jar" MVN="mvn:com.google.protobuf/protobuf-java/2.5.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="error_prone_annotation-2.1.3" MODULE="error_prone_annotation-2.1.3.jar" MVN="mvn:com.google.errorprone/error_prone_annotations/2.1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-core-http-1.32.0.jar" MODULE="google-cloud-core-http-1.32.0.jar" MVN="mvn:com.google.cloud/google-cloud-core-http/1.32.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.25.0.jar" MODULE="google-http-client-appengine-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.21.0" MODULE="opencensus-api-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.21.0" MODULE="opencensus-contrib-http-util-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.19.0" MODULE="grpc-context-1.19.0.jar" MVN="mvn:io.grpc/grpc-context/1.19.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.38.0.jar" MODULE="google-http-client-appengine-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.24.0" MODULE="opencensus-api-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.24.0" MODULE="opencensus-contrib-http-util-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.22.1" MODULE="grpc-context-1.22.1.jar" MVN="mvn:io.grpc/grpc-context/1.22.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-common-protos-1.17.0" MODULE="proto-google-common-protos-1.17.0.jar" MVN="mvn:com.google.api.grpc/proto-google-common-protos/1.17.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-iam-v1-0.13.0" MODULE="proto-google-iam-v1-0.13.0.jar" MVN="mvn:com.google.api.grpc/proto-google-iam-v1/0.13.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="protobuf-java-util-3.11.4" MODULE="protobuf-java-util-3.11.4.jar" MVN="mvn:com.google.protobuf/protobuf-java-util/3.11.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />

View File

@@ -230,17 +230,17 @@
<IMPORT NAME="google-auth-library-oauth2-http-0.20.0" MODULE="google-auth-library-oauth2-http-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-oauth2-http/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-auth-library-oauth2-http -->
<IMPORT NAME="google-auth-library-credentials-0.20.0" MODULE="google-auth-library-credentials-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-credentials/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.25.0" MODULE="google-http-client-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.25.0" MODULE="google-http-client-jackson2-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.38.0" MODULE="google-http-client-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.38.0" MODULE="google-http-client-jackson2-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="jackson-core-2.10.1" MODULE="jackson-core-2.10.1.jar" MVN="mvn:com.fasterxml.jackson.core/jackson-core/2.10.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="guava-20.0.jar" MODULE="guava-20.0.jar" MVN="mvn:com.google.guava/guava/20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-storage-1.104.0" MODULE="google-cloud-storage-1.104.0.jar" MVN="mvn:com.google.cloud/google-cloud-storage/1.104.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-cloud-storage -->
<IMPORT NAME="google-cloud-core-1.93.4.jar" MODULE="google-cloud-core-1.93.4.jar" MVN="mvn:com.google.cloud/google-cloud-core/1.93.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.25.0.jar" MODULE="google-api-client-1.25.0.jar" MVN="mvn:com.google.api-client/google-api-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.31.1.jar" MODULE="google-api-client-1.31.1.jar" MVN="mvn:com.google.api-client/google-api-client/1.31.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-oauth-client-1.31.0.jar" MODULE="google-oauth-client-1.31.0.jar" MVN="mvn:com.google.oauth-client/google-oauth-client/1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20191011-1.30.3" MODULE="google-api-services-storage-v1-rev20191011-1.30.3.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20191011-1.30.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20201112-1.31.0" MODULE="google-api-services-storage-v1-rev20201112-1.31.0.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20201112-1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="gson-2.8.6" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="api-common-1.6.0" MODULE="api-common-1.6.0.jar" MVN="mvn:com.google.api/api-common/1.6.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="javax.annotation-api" MODULE="javax.annotation-api-1.3.jar" MVN="mvn:javax.annotation/javax.annotation-api/1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
@@ -250,10 +250,10 @@
<IMPORT NAME="protobuf-java-2.5.0" MODULE="protobuf-java-2.5.0.jar" MVN="mvn:com.google.protobuf/protobuf-java/2.5.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="error_prone_annotation-2.1.3" MODULE="error_prone_annotation-2.1.3.jar" MVN="mvn:com.google.errorprone/error_prone_annotations/2.1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-core-http-1.32.0.jar" MODULE="google-cloud-core-http-1.32.0.jar" MVN="mvn:com.google.cloud/google-cloud-core-http/1.32.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.25.0.jar" MODULE="google-http-client-appengine-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.21.0" MODULE="opencensus-api-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.21.0" MODULE="opencensus-contrib-http-util-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.19.0" MODULE="grpc-context-1.19.0.jar" MVN="mvn:io.grpc/grpc-context/1.19.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.38.0.jar" MODULE="google-http-client-appengine-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.24.0" MODULE="opencensus-api-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.24.0" MODULE="opencensus-contrib-http-util-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.22.1" MODULE="grpc-context-1.22.1.jar" MVN="mvn:io.grpc/grpc-context/1.22.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-common-protos-1.17.0" MODULE="proto-google-common-protos-1.17.0.jar" MVN="mvn:com.google.api.grpc/proto-google-common-protos/1.17.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-iam-v1-0.13.0" MODULE="proto-google-iam-v1-0.13.0.jar" MVN="mvn:com.google.api.grpc/proto-google-iam-v1/0.13.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="protobuf-java-util-3.11.4" MODULE="protobuf-java-util-3.11.4.jar" MVN="mvn:com.google.protobuf/protobuf-java-util/3.11.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />

View File

@@ -214,17 +214,17 @@
<IMPORT NAME="google-auth-library-oauth2-http-0.20.0" MODULE="google-auth-library-oauth2-http-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-oauth2-http/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-auth-library-oauth2-http -->
<IMPORT NAME="google-auth-library-credentials-0.20.0" MODULE="google-auth-library-credentials-0.20.0.jar" MVN="mvn:com.google.auth/google-auth-library-credentials/0.20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.25.0" MODULE="google-http-client-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.25.0" MODULE="google-http-client-jackson2-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-1.38.0" MODULE="google-http-client-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-jackson2-1.38.0" MODULE="google-http-client-jackson2-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-jackson2/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="jackson-core-2.10.1" MODULE="jackson-core-2.10.1.jar" MVN="mvn:com.fasterxml.jackson.core/jackson-core/2.10.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="guava-20.0.jar" MODULE="guava-20.0.jar" MVN="mvn:com.google.guava/guava/20.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-storage-1.104.0" MODULE="google-cloud-storage-1.104.0.jar" MVN="mvn:com.google.cloud/google-cloud-storage/1.104.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<!-- Transitive dependencies of google-cloud-storage -->
<IMPORT NAME="google-cloud-core-1.93.4.jar" MODULE="google-cloud-core-1.93.4.jar" MVN="mvn:com.google.cloud/google-cloud-core/1.93.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.25.0.jar" MODULE="google-api-client-1.25.0.jar" MVN="mvn:com.google.api-client/google-api-client/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-client-1.31.1.jar" MODULE="google-api-client-1.31.1.jar" MVN="mvn:com.google.api-client/google-api-client/1.31.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-oauth-client-1.31.0.jar" MODULE="google-oauth-client-1.31.0.jar" MVN="mvn:com.google.oauth-client/google-oauth-client/1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20191011-1.30.3" MODULE="google-api-services-storage-v1-rev20191011-1.30.3.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20191011-1.30.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-api-services-storage-v1-rev20201112-1.31.0" MODULE="google-api-services-storage-v1-rev20201112-1.31.0.jar" MVN="mvn:com.google.apis/google-api-services-storage/v1-rev20201112-1.31.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="gson-2.8.6" MODULE="gson-2.8.6.jar" MVN="mvn:com.google.code.gson/gson/2.8.6" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="api-common-1.6.0" MODULE="api-common-1.6.0.jar" MVN="mvn:com.google.api/api-common/1.6.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="javax.annotation-api" MODULE="javax.annotation-api-1.3.jar" MVN="mvn:javax.annotation/javax.annotation-api/1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
@@ -234,10 +234,10 @@
<IMPORT NAME="protobuf-java-2.5.0" MODULE="protobuf-java-2.5.0.jar" MVN="mvn:com.google.protobuf/protobuf-java/2.5.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="error_prone_annotation-2.1.3" MODULE="error_prone_annotation-2.1.3.jar" MVN="mvn:com.google.errorprone/error_prone_annotations/2.1.3" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-cloud-core-http-1.32.0.jar" MODULE="google-cloud-core-http-1.32.0.jar" MVN="mvn:com.google.cloud/google-cloud-core-http/1.32.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.25.0.jar" MODULE="google-http-client-appengine-1.25.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.25.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.21.0" MODULE="opencensus-api-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.21.0" MODULE="opencensus-contrib-http-util-0.21.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.21.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.19.0" MODULE="grpc-context-1.19.0.jar" MVN="mvn:io.grpc/grpc-context/1.19.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="google-http-client-appengine-1.38.0.jar" MODULE="google-http-client-appengine-1.38.0.jar" MVN="mvn:com.google.http-client/google-http-client-appengine/1.38.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-api-0.24.0" MODULE="opencensus-api-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-api/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="opencensus-contrib-http-util-0.24.0" MODULE="opencensus-contrib-http-util-0.24.0.jar" MVN="mvn:io.opencensus/opencensus-contrib-http-util/0.24.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="grpc-context-1.22.1" MODULE="grpc-context-1.22.1.jar" MVN="mvn:io.grpc/grpc-context/1.22.1" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-common-protos-1.17.0" MODULE="proto-google-common-protos-1.17.0.jar" MVN="mvn:com.google.api.grpc/proto-google-common-protos/1.17.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="proto-google-iam-v1-0.13.0" MODULE="proto-google-iam-v1-0.13.0.jar" MVN="mvn:com.google.api.grpc/proto-google-iam-v1/0.13.0" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />
<IMPORT NAME="protobuf-java-util-3.11.4" MODULE="protobuf-java-util-3.11.4.jar" MVN="mvn:com.google.protobuf/protobuf-java-util/3.11.4" REQUIRED_IF="(USE_EXISTING_CONNECTION == 'false') AND ((AUTH_TYPE == 'SERVICE_ACCOUNT') OR (AUTH_TYPE == 'TOKEN'))" />

View File

@@ -130,7 +130,7 @@
NUM_ROW="3"
SHOW_IF="USE_EXISTING_CONNECTION == 'false'"
>
<ITEMS DEFAULT="POSTGRESQL">
<ITEMS DEFAULT="GREENPLUM">
<ITEM NAME="POSTGRESQL" VALUE="POSTGRESQL" />
<ITEM NAME="GREENPLUM" VALUE="GREENPLUM"/>
</ITEMS>
@@ -201,7 +201,7 @@
<IMPORTS>
<IMPORT NAME="Postgres-Driver"
MODULE="postgresql-8.4-703.jdbc4.jar" MVN="mvn:postgresql/postgresql/8.4-703.jdbc4" REQUIRED_IF="(DB_DRIVER =='POSTGRESQL') AND (USE_EXISTING_CONNECTION == 'false')"/>
<IMPORT NAME="Greenplum-Driver" MODULE="greenplum.jar" MVN="mvn:com.pivotal/greenplum/5.8.1" REQUIRED_IF="(DB_DRIVER =='GREENPLUM') AND (USE_EXISTING_CONNECTION == 'false')"/>
<IMPORT NAME="Greenplum-Driver" MODULE="greenplum-5.1.4.000275.jar" MVN="mvn:com.pivotal/greenplum/5.1.4.000275" REQUIRED_IF="(DB_DRIVER =='GREENPLUM') AND (USE_EXISTING_CONNECTION == 'false')"/>
</IMPORTS>
</CODEGENERATION>

View File

@@ -57,5 +57,5 @@ NOTE.NAME=Note
CONNECTION.NAME=Component List
DB_DRIVER.NAME=DB driver
DB_DRIVER.ITEM.POSTGRESQL=PostgreSQL
DB_DRIVER.ITEM.POSTGRESQL=PostgreSQL (Deprecated)
DB_DRIVER.ITEM.GREENPLUM=Greenplum

View File

@@ -157,7 +157,7 @@
FIELD="CLOSED_LIST"
NUM_ROW="10"
>
<ITEMS DEFAULT="POSTGRESQL">
<ITEMS DEFAULT="GREENPLUM">
<ITEM NAME="POSTGRESQL" VALUE="POSTGRESQL" />
<ITEM NAME="GREENPLUM" VALUE="GREENPLUM"/>
</ITEMS>
@@ -172,7 +172,7 @@
<IMPORTS>
<IMPORT NAME="Postgres-Driver"
MODULE="postgresql-8.4-703.jdbc4.jar" MVN="mvn:postgresql/postgresql/8.4-703.jdbc4" REQUIRED_IF="DB_DRIVER =='POSTGRESQL'"/>
<IMPORT NAME="Greenplum-Driver" MODULE="greenplum.jar" MVN="mvn:com.pivotal/greenplum/5.8.1" REQUIRED_IF="DB_DRIVER =='GREENPLUM'"/>
<IMPORT NAME="Greenplum-Driver" MODULE="greenplum-5.1.4.000275.jar" MVN="mvn:com.pivotal/greenplum/5.1.4.000275" REQUIRED_IF="DB_DRIVER =='GREENPLUM'"/>
<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'" />
</IMPORTS>

View File

@@ -18,5 +18,5 @@ TYPE.NAME=Database Driver
PROPERTY.NAME=Property Type
DB_DRIVER.NAME=DB driver
DB_DRIVER.ITEM.POSTGRESQL=PostgreSQL
DB_DRIVER.ITEM.POSTGRESQL=PostgreSQL (Deprecated)
DB_DRIVER.ITEM.GREENPLUM=Greenplum

View File

@@ -14,9 +14,9 @@ imports="
java.util.Map
java.util.HashMap
"
skeleton="../templates/db_output_bulk.skeleton"
skeleton="@{org.talend.designer.components.localprovider}/components/templates/db_output_bulk.skeleton"
%>
<%@ include file="../templates/Log4j/Log4jDBConnUtil.javajet"%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Log4j/Log4jDBConnUtil.javajet"%>
<%
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
@@ -34,6 +34,8 @@ skeleton="../templates/db_output_bulk.skeleton"
String tableAction = ElementParameterParser.getValue(node, "__TABLE_ACTION__");
String dataAction = ElementParameterParser.getValue(node, "__DATA_ACTION__");
String dataFile = ElementParameterParser.getValue(node, "__DATA_FILE__");
boolean removeFile = ("true").equals(ElementParameterParser.getValue(node,"__REMOVE_DATAFILE__"));
boolean useGzip = ("true").equals(ElementParameterParser.getValue(node,"__USE_GZIP_COMPRESSION__"));
boolean useNamedPiped = ElementParameterParser.getValue(node, "__USE_NAMED_PIPE__").equals("true");
String namedPipeName = ElementParameterParser.getValue(node, "__NAMED_PIPE__");
List<Map<String, String>> updateOptions = (List<Map<String,String>>)ElementParameterParser.getObjectValue(node, "__UPDATE_OPTIONS__");
@@ -64,7 +66,7 @@ skeleton="../templates/db_output_bulk.skeleton"
boolean gploadpyPathGiven = ElementParameterParser.getValue(node, "__SPECIFY_GPLOADPY_PATH__").equals("true");
String gploadpyPath = ElementParameterParser.getValue(node, "__GPLOADPY_PATH__");
boolean guessColumnList = ("true").equals(ElementParameterParser.getValue(node,"__GUESS_COLUMN_LIST__"));
String dbmsId = ElementParameterParser.getValue(node,"__MAPPING__");
boolean dieOnError = ("true").equals(ElementParameterParser.getValue(node,"__DIE_ON_ERROR__"));
@@ -97,9 +99,19 @@ skeleton="../templates/db_output_bulk.skeleton"
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
%>
String dataFile_<%=cid%> = <%=dataFile%>;
<%
if(hasInputRow && useGzip) {
//when it have input and checked use gzip, make sure it ends with .gz
%>
if(!dataFile_<%=cid%>.endsWith(".gz")) {
dataFile_<%=cid%> += ".gz";
}
<%
}
%>
int deletedCount_<%=cid%> = 0;
int insertedCount_<%=cid%> = 0;
<%
// -----------------------------------------------------------
// basic setup check:
@@ -138,7 +150,7 @@ skeleton="../templates/db_output_bulk.skeleton"
//-----------------------------------------------------------
// create table option
//-----------------------------------------------------------
if((columnList != null && columnList.size() > 0) || "CLEAR".equals(tableAction) || "TRUNCATE".equals(tableAction)) {
if((columnList != null && columnList.size() > 0 && false == "NONE".equals(tableAction) ) || "CLEAR".equals(tableAction) || "TRUNCATE".equals(tableAction)) {
Manager manager = getManager(dbmsId, cid);
%>
@@ -375,18 +387,21 @@ skeleton="../templates/db_output_bulk.skeleton"
if (useExistingCtrlFile) {
%>
String gploadCtrlFile = <%=ctrlFile%>;
String gploadCtrlFile_<%=cid%> = <%=ctrlFile%>;
<%
} else {
%>
String gploadCtrlFile = "gp_ctrl_" + "<%=cid%>" + pid + Thread.currentThread().getId() + ".txt";
String gploadCtrlFile_<%=cid%> = "gp_ctrl_" + "<%=cid%>" + pid + Thread.currentThread().getId() + ".txt";
String delim_<%=cid%> = <%=fieldSeparator%>;
<% if(fieldSeparator.contains("\\\\")) { %>
String delim_<%=cid%> = <%=fieldSeparator%>;
<% } else { %>
String delim_<%=cid%> = <%=fieldSeparator.replace("\\","\\\\")%>;
<% } %>
String escape_<%=cid%> = <%=escapeChar%>;
String quote_<%=cid%> = <%=quoteChar%>;
delim_<%=cid%> = "\t".equals(delim_<%=cid%>) ? "\\t" : delim_<%=cid%>;
try (java.io.PrintWriter gpctrl_<%=cid%> = new java.io.PrintWriter(new java.io.FileOutputStream(gploadCtrlFile, false), true)){
try (java.io.PrintWriter gpctrl_<%=cid%> = new java.io.PrintWriter(new java.io.FileOutputStream(gploadCtrlFile_<%=cid%>, false), true)){
gpctrl_<%=cid%>.println("---");
gpctrl_<%=cid%>.println("VERSION: 1.0.0.1");
gpctrl_<%=cid%>.println("DATABASE: " + <%=dbname%>);
@@ -437,8 +452,10 @@ skeleton="../templates/db_output_bulk.skeleton"
<% if (useNamedPiped) { %>
gpctrl_<%=cid%>.println(" - " + (new com.infobright.io.NamedPipeFactory()).getNativePipeName(<%=namedPipeName%>));
<% } else { %>
gpctrl_<%=cid%>.println(" - " + <%=dataFile%>);
gpctrl_<%=cid%>.println(" - " + dataFile_<%=cid%>);
<% } %>
gpctrl_<%=cid%>.println(" - DELIMITER: '" + delim_<%=cid%> + "'");
gpctrl_<%=cid%>.println(" - ESCAPE: '" + escape_<%=cid%> + "'");
@@ -468,6 +485,33 @@ skeleton="../templates/db_output_bulk.skeleton"
gpctrl_<%=cid%>.println(" - ERROR_TABLE: '" + <%=value%> + "'");
<%
}
if (key.equals("LOG_ERRORS")){
%>
gpctrl_<%=cid%>.println(" - LOG_ERRORS: " + <%=value%> );
<%
}
if (key.equals("MAX_LINE_LENGTH")){
%>
gpctrl_<%=cid%>.println(" - MAX_LINE_LENGTH: " + <%=value%> );
<%
}
}
}
%>
<%
if(guessColumnList) {
%>
gpctrl_<%=cid%>.println(" - COLUMNS:");
//iterate on schema.
<%
//pass the columnlist
if (stmtStructure != null) {
for (Column column : stmtStructure) {
%>
gpctrl_<%=cid%>.println(" - <%=column.getColumnName()%> : <%=column.getDataType()%>");
<%
}
}
}
%>
@@ -482,6 +526,22 @@ skeleton="../templates/db_output_bulk.skeleton"
gpctrl_<%=cid%>.println(" - HEADER: true");
<% } %>
gpctrl_<%=cid%>.println(" - ENCODING: " + <%=encoding%>);
<%
for (Map<String, String> option : options) {
String key = option.get("KEY");
String value = option.get("VALUE");
if(key.equals("EXTERNAL_SCHEMA") && value != null && !("".equals(value))) {
%>
gpctrl_<%=cid%>.println(" EXTERNAL:");
gpctrl_<%=cid%>.println(" - SCHEMA: '" + <%=value%> + "'");
<%
break;
}
}
%>
gpctrl_<%=cid%>.println(" OUTPUT: ");
gpctrl_<%=cid%>.println(" - TABLE: '" + tableName4Load_<%=cid%>+"'");
gpctrl_<%=cid%>.println(" - MODE: <%=dataAction.toLowerCase()%>");
@@ -517,13 +577,58 @@ skeleton="../templates/db_output_bulk.skeleton"
<%
}
}
boolean hasSection = false;
for (Map<String, String> option : options) {
String key = option.get("KEY");
String value = option.get("VALUE");
if(key.startsWith("PRELOAD") && value != null && !("".equals(value))) {
if(!hasSection ) {
%>
gpctrl_<%=cid%>.println(" PRELOAD:");
<%
hasSection = true;
}
if (key.equals("PRELOAD_STAGING_TABLE")){
%>
gpctrl_<%=cid%>.println(" - STAGING_TABLE: '\"" + <%=value%> +"\"'");
<%
} else {
%>
gpctrl_<%=cid%>.println(" - <%=key.replace("PRELOAD_","")%>: " + <%=value%> );
<%
}
}
}
hasSection = false;
for (Map<String, String> option : options) {
String key = option.get("KEY");
String value = option.get("VALUE");
if(key.startsWith("SQL") && value != null && !("".equals(value))) {
if(!hasSection ) {
%>
gpctrl_<%=cid%>.println(" SQL:");
<%
hasSection = true;
}
%>
gpctrl_<%=cid%>.println(" - <%=key.replace("SQL_","")%>: \"" + (<%=value%>).replace("\"","\\\"") +"\"");
<%
}
}
%>
}
<%
}
List<String> parametersList = new ArrayList();
parametersList.add("\"-f\"");
parametersList.add("gploadCtrlFile_"+cid);
parametersList.add("\"-h\"");
parametersList.add(dbhost);
parametersList.add("\"-p\"");
@@ -569,20 +674,42 @@ skeleton="../templates/db_output_bulk.skeleton"
public void run() {
int nbLine_<%=cid %> = 0;
try {
Boolean failure = false;
int dataErrors = 0;
String[] cmds = new String[] {
<%if (!"".equals(pythonPathForCMD)){%>
<%=pythonPathForCMD%>,
<%}%>
<%=gpLoadPathForCMD%>
, "-f", gploadCtrlFile
<%
for (int i=0; i < parametersList.size(); i++) {
%>,<%=parametersList.get(i)%><%
%>,<%=parametersList.get(i)%>
<%
}
%>
};
final Process ps = Runtime.getRuntime().exec(cmds);
<%
String passwordFieldName = "__PASS__";
%>
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/password.javajet"%>
String dbPwd_<%=cid %> = decryptedPassword_<%=cid%>;
String[] env_<%=cid %> = null;
java.util.Map<String, String> envMap_<%=cid %> = System.getenv();
java.util.Map<String, String> envMapClone_<%=cid %> = new java.util.HashMap();
envMapClone_<%=cid %>.putAll(envMap_<%=cid %>);
envMapClone_<%=cid %>.put("PGPASSWORD", dbPwd_<%=cid %>);
env_<%=cid %> = new String[envMapClone_<%=cid %>.size()];
int i_<%=cid %> = 0;
for (String envKey : (java.util.Set<String>) envMapClone_<%=cid %>.keySet()) {
env_<%=cid %>[i_<%=cid %>++] = envKey + "=" + envMapClone_<%=cid %>.get(envKey);
}
final Process ps = Runtime.getRuntime().exec(cmds,env_<%=cid %>);
ps.waitFor();
globalMap.put("<%=cid%>_EXIT_CODE", ps.exitValue());
@@ -590,13 +717,26 @@ skeleton="../templates/db_output_bulk.skeleton"
java.io.BufferedReader errorReader = new java.io.BufferedReader(new java.io.InputStreamReader(ps.getErrorStream()));
String line = "";
while ((line = reader.readLine()) != null) {
gploadOutput_<%=cid%>.append(line);
System.out.println(line);
if (line.contains("rows Inserted")) {
nbLine_<%=cid %> = getNBLine(line);
}
gploadOutput_<%=cid%>.append(line+"\n");
<%if(isLog4jEnabled){%>
if(line.contains("|ERROR|")){
log.error("<%=cid%> - gpload says: "+ line);
} else if(line.contains("|WARN|")){
log.warn("<%=cid%> - gpload says: "+ line);
} else if(line.contains("|INFO|")){
log.info("<%=cid%> - gpload says: "+ line);
} else {
log.debug("<%=cid%> - gpload says: "+ line);
}
<%}%>
if (line.contains("rows Updated")) {
if(line.contains("|INFO|rows Inserted")){
globalMap.put("<%=cid%>_NB_LINE_INSERTED",getNBLine(line));
nbLine_<%=cid %> += getNBLine(line);
} else
if(line.contains("|INFO|rows Updated")){
globalMap.put("<%=cid%>_NB_LINE_UPDATED", getNBLine(line));
<%
if ("UPDATE".equals(dataAction)) {
%>
@@ -609,23 +749,93 @@ skeleton="../templates/db_output_bulk.skeleton"
<%
}
%>
} else if(line.contains("|INFO|data formatting errors =")){
dataErrors = getNBLine(line);
globalMap.put("<%=cid%>_NB_DATA_ERRORS", dataErrors);
} else if(line.contains("|INFO|gpload ") && !line.contains("session") && !line.contains("gpload.py") ){
globalMap.put("<%=cid%>_STATUS", line.substring(line.indexOf("gpload ")+7).replace(" ",""));
} else if(line.contains("|INFO|running time:")){
line = line.substring(line.indexOf("time: ")+5).replace(" ","");
String timeStr = line.substring(0,line.indexOf("seconds")).trim();
if(!timeStr.isEmpty()){
try{
// convert to long type value with unit ms
Long runtime = ((Double)(Double.parseDouble(timeStr)*1000)).longValue();
globalMap.put("<%=cid%>_RUNTIME", runtime);
}catch(NumberFormatException e){
<%if(isLog4jEnabled){%>
log.error("<%=cid%> - parse runtime value failed:"+ line);
<%}%>
}
}
} else if(line.contains("|ERROR|")){
failure = true;
line = line.substring(line.indexOf("|ERROR|")+7);
if(<%=dieOnError%>){
throw new RuntimeException ("gpload failed because: " + line);
} else {
<%if(isLog4jEnabled){%>
log.error("<%=cid%> - gpload says:"+ line);
<%}%>
}
}
}
globalMap.put("<%=cid%>_NB_LINE", nbLine_<%=cid %>);
String errorLine = "";
while ((errorLine = errorReader.readLine()) != null) {
gploadOutput_<%=cid%>.append(errorLine);
System.err.println(errorLine);
gploadOutput_<%=cid%>.append(errorLine+"\n");
<%if(isLog4jEnabled){%>
log.error("<%=cid%> - gpload says: " + errorLine);
<%}%>
if (errorLine.contains("name 'tableName' is not defined") ) {
failure = true;
String errorLine1 = "Table (" + <%=dbname%> + "." + <%=dbschema%> + "." + <%=tableName%> + ") is not available in target (" + <%=dbhost%> + ")!";
if(<%=dieOnError%>){
throw new RuntimeException ("gpload failed because: " + errorLine1);
}
}
if (errorLine.toUpperCase().contains("|ERROR|") ) {
failure = true;
if(<%=dieOnError%>){
throw new RuntimeException ("gpload failed because: " + errorLine);
}
}
}
<%
if(removeFile ) {
%>
String dataFile_<%=cid%> = <%=dataFile%>;
<%
if(hasInputRow && useGzip) {
//when it have input and checked use gzip, make sure it ends with .gz
%>
if(!dataFile_<%=cid%>.endsWith(".gz")) {
dataFile_<%=cid%> += ".gz";
}
<%
}
%>
if(!failure && dataErrors == 0) {
java.io.File file = new java.io.File(dataFile_<%=cid%>);
file.delete();
}
<%
}
%>
}
catch (java.lang.Exception e) {
globalMap.put("<%=cid%>_GPLOAD_ERROR",e.getMessage());
throw new RuntimeException(e.getMessage(),e.getCause());
}
}
private int getNBLine(String logLine) {
try {
return Integer.parseInt(logLine.substring(logLine.lastIndexOf("=") + 1).trim());
@@ -649,7 +859,10 @@ skeleton="../templates/db_output_bulk.skeleton"
// component is used in startable mode.
//-----------------------------------------------------------------
if(isLog4jEnabled){%>
StringBuffer command_<%=cid%> = new StringBuffer(<%=gpLoadPathForCMD%>);
StringBuffer command_<%=cid%> = new StringBuffer(
<%if (!"".equals(pythonPathForCMD)){%>
<%=pythonPathForCMD%>+" "+
<%}%><%=gpLoadPathForCMD%>+" ");
<%
for (int i=0; i < parametersList.size(); i++) {
%>
@@ -668,10 +881,33 @@ skeleton="../templates/db_output_bulk.skeleton"
Thread.sleep(10000);
}
<%
} else { //using data file
} else {
%>
java.io.BufferedOutputStream outputStream_<%=cid%> = new java.io.BufferedOutputStream(new java.io.FileOutputStream(<%=dataFile%>,false), 1024000);
//make sure parent folder exists
java.io.File dataFiletmp_<%=cid%> = new java.io.File(dataFile_<%=cid%>);
if(dataFiletmp_<%=cid%>.getParentFile() != null && !dataFiletmp_<%=cid%>.getParentFile().exists() ){
if(dataFiletmp_<%=cid%>.getParentFile().mkdirs()){
<%if(isLog4jEnabled){%>
log.info("<%=cid%> - Created parent folder for data file: " + dataFiletmp_<%=cid%>.getParentFile());
<%}%>
} else {
<%if(isLog4jEnabled){%>
log.fatal("<%=cid%> - Cannot create parent folder: " + dataFiletmp_<%=cid%>.getParentFile());
<%} else {%>
System.err.println("<%=cid%> - Cannot create parent folder: " + dataFiletmp_<%=cid%>.getParentFile());
<%}%>
}
}
<%
if(useGzip) { //using GZIP compressed data file
%>
java.util.zip.GZIPOutputStream outputStream_<%=cid%> = new java.util.zip.GZIPOutputStream(new java.io.BufferedOutputStream(new java.io.FileOutputStream(dataFile_<%=cid%>,false), 1024000) );
<%
} else { //using data file
%>
java.io.BufferedOutputStream outputStream_<%=cid%> = new java.io.BufferedOutputStream(new java.io.FileOutputStream(dataFile_<%=cid%>,false), 1024000);
<%
}
}
} else { // no input connections
%>

View File

@@ -14,7 +14,7 @@ imports="
java.util.Map
java.util.HashMap
"
skeleton="../templates/db_output_bulk.skeleton"
skeleton="@{org.talend.designer.components.localprovider}/components/templates/db_output_bulk.skeleton"
%>
<%
@@ -67,9 +67,8 @@ skeleton="../templates/db_output_bulk.skeleton"
}
if(isLog4jEnabled){%>
log.info("<%=cid%> - Execute '"+command_<%=cid %>.toString()+"' has finished.");
log.info("<%=cid%> - Loaded records count:"+insertedCount_<%=cid%> + ".");
log.info("<%=cid%> - Loaded records count:"+ globalMap.get("<%=cid%>_NB_LINE") + ".");
<%}%>
globalMap.put("<%=cid%>_NB_LINE", insertedCount_<%=cid%>);
<%
}
%>

View File

@@ -177,6 +177,15 @@
<DEFAULT>"__COMP_DEFAULT_FILE_DIR__/data_file.txt"</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="GUESS_COLUMN_LIST"
FIELD="CHECK"
NUM_ROW="72"
REQUIRED="true"
>
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="USE_NAMED_PIPE"
FIELD="CHECK"
@@ -240,7 +249,7 @@
FIELD="CLOSED_LIST"
NUM_ROW="5"
>
<ITEMS DEFAULT="POSTGRESQL">
<ITEMS DEFAULT="GREENPLUM">
<ITEM NAME="POSTGRESQL" VALUE="POSTGRESQL" />
<ITEM NAME="GREENPLUM" VALUE="GREENPLUM"/>
</ITEMS>
@@ -341,6 +350,15 @@
<ITEM NAME="FORCE_NOT_NULL" VALUE="FORCE_NOT_NULL"/>
<ITEM NAME="ERROR_LIMIT" VALUE="ERROR_LIMIT"/>
<ITEM NAME="ERROR_TABLE" VALUE="ERROR_TABLE"/>
<ITEM NAME="LOG_ERRORS" VALUE="LOG_ERRORS"/>
<ITEM NAME="MAX_LINE_LENGTH" VALUE="MAX_LINE_LENGTH"/>
<ITEM NAME="EXTERNAL_SCHEMA" VALUE="EXTERNAL_SCHEMA"/>
<ITEM NAME="PRELOAD_TRUNCATE" VALUE="PRELOAD_TRUNCATE"/>
<ITEM NAME="PRELOAD_REUSE_TABLES" VALUE="PRELOAD_REUSE_TABLES"/>
<ITEM NAME="PRELOAD_STAGING_TABLE" VALUE="PRELOAD_STAGING_TABLE"/>
<ITEM NAME="PRELOAD_FAST_MATCH" VALUE="PRELOAD_FAST_MATCH"/>
<ITEM NAME="SQL_BEFORE" VALUE="SQL_BEFORE"/>
<ITEM NAME="SQL_AFTER" VALUE="SQL_AFTER"/>
</ITEMS>
</ITEM>
<ITEM NAME="VALUE" FIELD="TEXT"/>
@@ -493,6 +511,21 @@
<DEFAULT>"gpload.py"</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="REMOVE_DATAFILE"
FIELD="CHECK"
NUM_ROW="90"
>
<DEFAULT>false</DEFAULT>
</PARAMETER>
<PARAMETER
NAME="USE_GZIP_COMPRESSION"
FIELD="CHECK"
NUM_ROW="95"
>
<DEFAULT>false</DEFAULT>
</PARAMETER>
</ADVANCED_PARAMETERS>
<CODEGENERATION>
@@ -500,7 +533,7 @@
<IMPORT MODULE="namedpipe-1.0.jar" MVN="mvn:org.talend.libraries/namedpipe-1.0/6.0.0" NAME="namedpipe-1.0.jar" REQUIRED="true"/>
<IMPORT NAME="Postgres-Driver"
MODULE="postgresql-8.4-703.jdbc4.jar" MVN="mvn:postgresql/postgresql/8.4-703.jdbc4" REQUIRED_IF="DB_DRIVER =='POSTGRESQL'" />
<IMPORT NAME="Greenplum-Driver" MODULE="greenplum.jar" MVN="mvn:com.pivotal/greenplum/5.8.1" REQUIRED_IF="DB_DRIVER =='GREENPLUM'"/>
<IMPORT NAME="Greenplum-Driver" MODULE="greenplum-5.1.4.000275.jar" MVN="mvn:com.pivotal/greenplum/5.1.4.000275" REQUIRED_IF="DB_DRIVER =='GREENPLUM'"/>
<IMPORT MODULE="namedpipe_jni_64bit.dll" MVN="mvn:org.talend.libraries/namedpipe_jni_64bit/6.0.0/dll" NAME="namedpipe_jni_64bit.dll" REQUIRED="false"/>
<IMPORT MODULE="namedpipe_jni.dll" MVN="mvn:org.talend.libraries/namedpipe_jni/6.0.0/dll" NAME="namedpipe_jni.dll" REQUIRED="false"/>
</IMPORTS>
@@ -510,5 +543,10 @@
<RETURN AVAILABILITY="AFTER" NAME="NB_LINE" TYPE="id_Integer"/>
<RETURN AVAILABILITY="AFTER" NAME="EXIT_CODE" TYPE="id_Integer"/>
<RETURN AVAILABILITY="AFTER" NAME="GPLOAD_OUTPUT" TYPE="id_String"/>
<RETURN AVAILABILITY="AFTER" NAME="NB_LINE_INSERTED" TYPE="id_Integer"/>
<RETURN AVAILABILITY="AFTER" NAME="NB_LINE_UPDATED" TYPE="id_Integer"/>
<RETURN AVAILABILITY="AFTER" NAME="NB_DATA_ERRORS" TYPE="id_Integer"/>
<RETURN AVAILABILITY="AFTER" NAME="STATUS" TYPE="id_String"/>
<RETURN AVAILABILITY="AFTER" NAME="RUNTIME" TYPE="id_Long"/>
</RETURNS>
</COMPONENT>

View File

@@ -16,7 +16,7 @@ imports="
java.util.Map
java.util.HashMap
"
skeleton="../templates/db_output_bulk.skeleton"
skeleton="@{org.talend.designer.components.localprovider}/components/templates/db_output_bulk.skeleton"
%>
<%
@@ -107,7 +107,21 @@ skeleton="../templates/db_output_bulk.skeleton"
else {
<%
}
if (javaType == JavaTypesManager.DATE) {
if (javaType == JavaTypesManager.BYTE_ARRAY) {
%>
for(int bi = 0; bi < <%=inputRowName%>.<%=column.getLabel()%>.length; bi++){
sb_<%=cid %>.append("\\\\");
String octalValue = Integer.toOctalString(<%=inputRowName%>.<%=column.getLabel()%>[bi]);
if(octalValue.length() > 3) {
sb_<%=cid %>.append(Integer.parseInt(octalValue.substring(8,11))-400);
} else {
if(octalValue.length() == 2) sb_<%=cid %>.append("0");
if(octalValue.length() == 1) sb_<%=cid %>.append("00");
sb_<%=cid %>.append(octalValue);
}
}
<%
} else if (javaType == JavaTypesManager.DATE) {
%> sb_<%=cid %>.append(TalendDate.formatDate(<%=datePattern%>,<%=inputRowName%>.<%=column.getLabel()%>)); <%
} else if (javaType == JavaTypesManager.DOUBLE || javaType == JavaTypesManager.FLOAT || javaType == JavaTypesManager.BIGDECIMAL) {
%> sb_<%=cid %>.append(String.format("%-<%=length%>.<%=precision%>f",<%=inputRowName%>.<%=column.getLabel()%>)); <%
@@ -120,7 +134,11 @@ skeleton="../templates/db_output_bulk.skeleton"
%> sb_<%=cid %>.append((<%=inputRowName%>.<%=column.getLabel()%> ? "1" : "0")); <%
}
} else {
%> sb_<%=cid %>.append(String.valueOf(<%=inputRowName%>.<%=column.getLabel()%>)); <%
%> sb_<%=cid %>.append(String.valueOf(<%=inputRowName%>.<%=column.getLabel()%>)
.replace(<%=escapeChar%>,escapeCharRepl_<%=cid%> )
.replace(<%=fieldSeparator%>,fieldSeparatorRepl_<%=cid%>)
.replaceAll("\\\n", "\\\\012").replaceAll("\\\r","\\\\015")
.replaceAll("\\x00", "").replaceAll("\\u0000","") ); <%
}
if (!isPrimitive) {
%>
@@ -141,7 +159,21 @@ skeleton="../templates/db_output_bulk.skeleton"
else {
<%
}
if (javaType == JavaTypesManager.DATE) {
if (javaType == JavaTypesManager.BYTE_ARRAY) {
%>
for(int bi = 0; bi < <%=inputRowName%>.<%=column.getLabel()%>.length; bi++){
sb_<%=cid %>.append("\\\\");
String octalValue = Integer.toOctalString(<%=inputRowName%>.<%=column.getLabel()%>[bi]);
if(octalValue.length() > 3) {
sb_<%=cid %>.append(Integer.parseInt(octalValue.substring(8,11))-400);
} else {
if(octalValue.length() == 2) sb_<%=cid %>.append("0");
if(octalValue.length() == 1) sb_<%=cid %>.append("00");
sb_<%=cid %>.append(octalValue);
}
}
<%
} else if (javaType == JavaTypesManager.DATE) {
%> sb_<%=cid %>.append(TalendDate.formatDate(<%=datePattern%>,<%=inputRowName%>.<%=column.getLabel()%>)); <%
} else if (javaType == JavaTypesManager.DOUBLE || javaType == JavaTypesManager.FLOAT || javaType == JavaTypesManager.BIGDECIMAL) {
%> sb_<%=cid %>.append(String.format("%-<%=length%>.<%=precision%>f",<%=inputRowName%>.<%=column.getLabel()%>)); <%
@@ -158,7 +190,9 @@ skeleton="../templates/db_output_bulk.skeleton"
temp_<%=cid%> = String.valueOf(<%=inputRowName%>.<%=column.getLabel()%>);
temp_<%=cid%> = temp_<%=cid%>.replace(<%=escapeChar%>,escapeCharRepl_<%=cid%>);
temp_<%=cid%> = temp_<%=cid%>.replace(<%=quoteChar%>,quoteCharRepl_<%=cid%>);
temp_<%=cid%> = temp_<%=cid%>.replace("\n",rowSepRepl_<%=cid%>);
temp_<%=cid%> = temp_<%=cid%>.replace("\n", rowSepRepl_<%=cid%>).replace("\r","");
temp_<%=cid%> = temp_<%=cid%>.replaceAll("\\x00", "").replaceAll("\\u0000","");
temp_<%=cid%> = temp_<%=cid%>.replace(<%=fieldSeparator%>,fieldSeparatorRepl_<%=cid%>);
sb_<%=cid %>.append(<%=quoteChar%> + temp_<%=cid%> + <%=quoteChar%>);
temp_<%=cid%> = null;
<%
@@ -187,7 +221,7 @@ skeleton="../templates/db_output_bulk.skeleton"
%>
outputStream_<%=cid%>.write(sb_<%=cid%>.toString().getBytes());
<%if(isLog4jEnabled){%>
log.debug("<%=cid%> - Loading the record :" + sb_<%=cid%>);
log.debug("<%=cid%> - Loading the record :" + sb_<%=cid%>.toString());
<%}%>
sb_<%=cid%> = null;
<%

View File

@@ -41,7 +41,7 @@ UPDATE_OPTIONS.ITEM.UPDATE_KEY=Update Column
UPDATE_CONDITION.NAME=Update condition
DB_DRIVER.NAME=DB driver
DB_DRIVER.ITEM.POSTGRESQL=PostgreSQL
DB_DRIVER.ITEM.POSTGRESQL=PostgreSQL (Deprecated)
DB_DRIVER.ITEM.GREENPLUM=Greenplum
USE_EXISTING_CLT_FILE.NAME=Use existing control file (YAML formatted)
CLT_FILE.NAME=Control file
@@ -63,6 +63,15 @@ OPTIONS.ITEM.KEY.ITEM.NULL_AS=NULL_AS
OPTIONS.ITEM.KEY.ITEM.FORCE_NOT_NULL=FORCE_NOT_NULL
OPTIONS.ITEM.KEY.ITEM.ERROR_LIMIT=ERROR_LIMIT (2 or higher)
OPTIONS.ITEM.KEY.ITEM.ERROR_TABLE=ERROR_TABLE
OPTIONS.ITEM.KEY.ITEM.LOG_ERRORS=LOG_ERRORS
OPTIONS.ITEM.KEY.ITEM.MAX_LINE_LENGTH=MAX_LINE_LENGTH
OPTIONS.ITEM.KEY.ITEM.EXTERNAL_SCHEMA=EXTERNAL_SCHEMA (_ext _stg objects)
OPTIONS.ITEM.KEY.ITEM.PRELOAD_TRUNCATE=PRELOAD_TRUNCATE
OPTIONS.ITEM.KEY.ITEM.PRELOAD_REUSE_TABLES=PRELOAD_REUSE_TABLES
OPTIONS.ITEM.KEY.ITEM.PRELOAD_STAGING_TABLE=PRELOAD_STAGING_TABLE
OPTIONS.ITEM.KEY.ITEM.PRELOAD_FAST_MATCH=PRELOAD_FAST_MATCH
OPTIONS.ITEM.KEY.ITEM.SQL_BEFORE=SQL_BEFORE LOAD
OPTIONS.ITEM.KEY.ITEM.SQL_AFTER=SQL_AFTER LOAD
LOG_FILE.NAME=Log file
HAS_BEFORE_SQL.NAME=Execute a SQL command BEFORE gpload
BEFORE_SQL.NAME=BEFORE SQL
@@ -82,3 +91,14 @@ SPECIFY_GPLOADPY_PATH.NAME=Specify gpload.py path
GPLOADPY_PATH.NAME=Full path to gpload.py executable
DIE_ON_ERROR.NAME=Die on error
NB_LINE_INSERTED.NAME=NB_LINE_INSERTED
NB_LINE_UPDATED.NAME=NB_LINE_UPDATED
NB_DATA_ERRORS.NAME=NB_DATA_ERRORS
STATUS.NAME=GPLOAD_STATUS
RUNTIME.NAME=GPLOAD_RUNTIME
ERRORMESSAGE.NAME=GPLOAD_ERRORMESSAGE
GUESS_COLUMN_LIST.NAME=Populate column list based on schema
REMOVE_DATAFILE.NAME=Remove datafile on successful execution
USE_GZIP_COMPRESSION.NAME=Gzip compress the datafile

View File

@@ -194,7 +194,7 @@
NUM_ROW="5"
SHOW_IF="USE_EXISTING_CONNECTION == 'false'"
>
<ITEMS DEFAULT="POSTGRESQL">
<ITEMS DEFAULT="GREENPLUM">
<ITEM NAME="POSTGRESQL" VALUE="POSTGRESQL" />
<ITEM NAME="GREENPLUM" VALUE="GREENPLUM"/>
</ITEMS>
@@ -243,7 +243,7 @@
<IMPORTS>
<IMPORT NAME="Postgres-Driver"
MODULE="postgresql-8.4-703.jdbc4.jar" MVN="mvn:postgresql/postgresql/8.4-703.jdbc4" REQUIRED_IF="(DB_DRIVER =='POSTGRESQL') AND (USE_EXISTING_CONNECTION == 'false')"/>
<IMPORT NAME="Greenplum-Driver" MODULE="greenplum.jar" MVN="mvn:com.pivotal/greenplum/5.8.1" REQUIRED_IF="(DB_DRIVER =='GREENPLUM') AND (USE_EXISTING_CONNECTION == 'false')"/>
<IMPORT NAME="Greenplum-Driver" MODULE="greenplum-5.1.4.000275.jar" MVN="mvn:com.pivotal/greenplum/5.1.4.000275" REQUIRED_IF="(DB_DRIVER =='GREENPLUM') AND (USE_EXISTING_CONNECTION == 'false')"/>
</IMPORTS>
</CODEGENERATION>

View File

@@ -39,5 +39,5 @@ CONNECTION.NAME=Component List
GUESS_SCHEMA.NAME=Guess Schema
MAPPING.NAME=Mapping
DB_DRIVER.NAME=DB driver
DB_DRIVER.ITEM.POSTGRESQL=PostgreSQL
DB_DRIVER.ITEM.POSTGRESQL=PostgreSQL (Deprecated)
DB_DRIVER.ITEM.GREENPLUM=Greenplum

View File

@@ -243,7 +243,7 @@
NUM_ROW="5"
SHOW_IF="USE_EXISTING_CONNECTION == 'false'"
>
<ITEMS DEFAULT="POSTGRESQL">
<ITEMS DEFAULT="GREENPLUM">
<ITEM NAME="POSTGRESQL" VALUE="POSTGRESQL" />
<ITEM NAME="GREENPLUM" VALUE="GREENPLUM"/>
</ITEMS>
@@ -347,7 +347,7 @@
<IMPORT NAME="Postgres-Driver"
MODULE="postgresql-8.4-703.jdbc4.jar" MVN="mvn:postgresql/postgresql/8.4-703.jdbc4" REQUIRED_IF="(DB_DRIVER =='POSTGRESQL') AND (USE_EXISTING_CONNECTION == 'false')"/>
<IMPORT NAME="Greenplum-Driver"
MODULE="greenplum.jar" MVN="mvn:com.pivotal/greenplum/5.8.1" REQUIRED_IF="(DB_DRIVER =='GREENPLUM') AND (USE_EXISTING_CONNECTION == 'false')"/>
MODULE="greenplum-5.1.4.000275.jar" MVN="mvn:com.pivotal/greenplum/5.1.4.000275" REQUIRED_IF="(DB_DRIVER =='GREENPLUM') AND (USE_EXISTING_CONNECTION == 'false')"/>
</IMPORTS>
</CODEGENERATION>

View File

@@ -86,7 +86,7 @@ USE_BATCH.NAME=Use Batch
BATCH_SIZE.NAME= Batch Size
DB_DRIVER.NAME=DB driver
DB_DRIVER.ITEM.POSTGRESQL=PostgreSQL
DB_DRIVER.ITEM.POSTGRESQL=PostgreSQL (Deprecated)
DB_DRIVER.ITEM.GREENPLUM=Greenplum
USE_ALTERNATE_SCHEMA.NAME=Use alternate schema
ALTERNATE_SCHEMA.NAME=Schema

View File

@@ -170,7 +170,7 @@
FIELD="CLOSED_LIST"
NUM_ROW="3"
>
<ITEMS DEFAULT="POSTGRESQL">
<ITEMS DEFAULT="GREENPLUM">
<ITEM NAME="POSTGRESQL" VALUE="POSTGRESQL" />
<ITEM NAME="GREENPLUM" VALUE="GREENPLUM"/>
</ITEMS>

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