Compare commits

...

53 Commits

Author SHA1 Message Date
hcyi
6596ea25ec TPS-3715 : tELTJDBC** generating wrong sql (TUP-25672) (#4506)
* TPS-3715: for TUP-21479 ELTMSSQLMAP generate wrong update query.

* TPS-3715: for TDI-41651 Provide possibility to specify alias for output
table.

* TPS-3715: for TUP-23500 Provide possibility to specify alias for output
table.
2020-03-05 17:02:49 +08:00
hcyi
8ef2ac917e fix(TUP-19128):Talend Migration issue in joblet connection (#1811) 2019-10-24 16:05:03 +08:00
hwang-talend
5f7c766407 bugfix(TUP-22435):tMap lost look-up details (#3404)
bugfix(TUP-22435):tMap lost look-up details
2019-07-12 16:35:14 +08:00
zwxue
8e4141583e fix(TUP-17688): Performing HDFS operation after a tDataPrepRun. (#1482) 2019-04-09 15:58:20 +08:00
Zhiwei Xue
21af77ca53 fix(TUP-21110):fix job assembly which leads to deploy twice 2018-12-05 09:40:44 +08:00
zwxue
de79e199a6 fix(TUP-21110):Only job artifacts must be deployed (#2940) 2018-11-26 14:58:04 +08:00
apoltavtsev@gmail.com
d080fe5d66 TESB-23071 Routes needed libraries are updated before Edit page is open 2018-08-23 09:05:47 +03:00
qiongli
9d04ec0369 fix(TDQ-15455): using getUniqueName().indexOf("tRecordMatching")>-1 insdead of getComponent().getName().equals("tRecordMatching") to judge the component is tRecordMatching or not (#2511) (#2515) 2018-07-17 17:23:41 +08:00
qiongli
03957a58ee TDQ-15455 Compile error after refactoring job (#2433) (#2497) 2018-07-11 13:44:15 +08:00
qiongli
c4464ce8c8 TDQ-14308 include some drools file for tRulesurvivorhsip. (#1638) (#1679) (#2460)
* TDQ-14308 include some drools file for tRulesurvivorhsip.

* TDQ-14308 move the code of copy drools file to 'ProcesssorUtilites.java'
2018-06-28 16:12:30 +08:00
Jane Ding
329eec4028 fix(TUP-20267)Preview in Metadata Delimited File fails with (#2429)
NullPointerException
https://jira.talendforge.org/browse/TUP-20267
2018-06-25 10:30:29 +08:00
zwxue
8bece42dea fix(TUP-20223):Wrong branch value in the jobs generated by CI. (#2393) 2018-06-19 14:51:22 +08:00
apoltavtsev
ba4de0c3cd TESB-22085 Missing links to resources are added 2018-06-15 10:50:54 +03:00
apoltavtsev
6a92a024d6 TESB-22085 Dynamic schema column type is always String in Runtime 2018-06-13 21:56:28 +03:00
jzhao
a90586e2ac fix(TDI-40443): add check to control tsalesforceinput bulk mode all return null for empty value(#2302)
* set default value true when migration old framework jobs
2018-05-16 10:50:24 +08:00
pyzhou
edd6067270 fix(TDI-39711):remove \r|\n|\r\n of module name. (#1733)
* fix(TDI-39711):remove \r|\n|\r\n of module name.

* move the replacement to the migration task of old framework to new.

* remove the brackets.
2018-05-16 10:49:24 +08:00
zwxue
295ca74bd9 fix(TUP-19806): add missing import. 2018-05-14 10:35:04 +08:00
zwxue
8c4409bf86 fix(TUP-19806):Error: Could not find or load main class / Remote (#2278)
Execution / routines.jar missing in ZIP file.
2018-05-14 10:29:30 +08:00
Chao MENG
c4c510c0a6 fix(TUP-19961): tELTMSSqlInput component does not support the schema (#2285)
with a DB-column name having Degree symbol in it
https://jira.talendforge.org/browse/TUP-19961
2018-05-04 18:20:53 +08:00
Chao MENG
4be9e926e3 fix(TUP-19961): tELTMSSqlInput component does not support the schema (#2284)
with a DB-column name having Degree symbol in it
https://jira.talendforge.org/browse/TUP-19961
2018-05-04 14:12:25 +08:00
Chao MENG
2e7774b4e8 fix(TUP-19961): tELTMSSqlInput component does not support the schema (#2277)
fix(TUP-19961): tELTMSSqlInput component does not support the schema with a DB-column name having Degree symbol in it
https://jira.talendforge.org/browse/TUP-19961
2018-05-03 15:18:19 +08:00
Chao MENG
1be791da4e fix(TUP-19961): tELTMSSqlInput component does not support the schema
with a DB-column name having Degree symbol in it (#2272)

* fix(TUP-19961): tELTMSSqlInput component does not support the schema
with a DB-column name having Degree symbol in it
https://jira.talendforge.org/browse/TUP-19961

Conflicts:
	test/plugins/org.talend.designer.dbmap.test/src/org/talend/designer/dbmap/language/mysql/MysqlGenerationManagerTest.java
	test/plugins/org.talend.designer.dbmap.test/src/org/talend/designer/dbmap/language/oracle/OracleGenerationManagerTest.java
	test/plugins/org.talend.designer.dbmap.test/src/org/talend/designer/dbmap/language/postgres/PostgresGenerationManagerTest.java
2018-05-02 16:15:43 +08:00
Chao MENG
c860f02533 fix(TUP-19961): tELTMSSqlInput component does not support the schema (#2266)
fix(TUP-19961): tELTMSSqlInput component does not support the schema with a DB-column name having Degree symbol in it
https://jira.talendforge.org/browse/TUP-19961
2018-05-02 10:25:28 +08:00
Chao MENG
1839b7da44 fix(TUP-19961): tELTMSSqlInput component does not support the schema
with a DB-column name having Degree symbol in it

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

Conflicts:
	main/plugins/org.talend.designer.core/src/main/java/org/talend/designer/core/model/process/DataProcess.java
	main/plugins/org.talend.designer.dbmap/src/main/java/org/talend/designer/dbmap/language/generation/DbGenerationManager.java
	main/plugins/org.talend.designer.dbmap/src/main/java/org/talend/designer/dbmap/language/postgres/PostgresGenerationManager.java

Conflicts:
	main/plugins/org.talend.designer.core/src/main/java/org/talend/designer/core/model/process/DataProcess.java
2018-05-02 10:24:20 +08:00
Chao MENG
62cdb5656a fix(TUP-19961): tELTMSSqlInput component does not support the schema
(#2219)

fix(TUP-19961): tELTMSSqlInput component does not support the schema
with a DB-column name having Degree symbol in it
https://jira.talendforge.org/browse/TUP-19961

Conflicts:
	main/plugins/org.talend.designer.core/src/main/java/org/talend/designer/core/model/components/EParameterName.java
	main/plugins/org.talend.designer.dbmap/src/main/java/org/talend/designer/dbmap/language/generation/DbGenerationManager.java
2018-05-02 10:05:08 +08:00
Haiting Yin
50addf5e93 TPS-2299 [6.4.1] transaction does not commit when multiple tMDMOutput used in same subjob (TMDM-11629) 2018-03-27 10:22:08 +08:00
nrousseau
3df8d0952b fix(TUP-19758) generate code even if the jars are missing (#2065) 2018-03-19 13:09:44 +08:00
GGu
cee07dcc40 fix(TUP-18769): exclude the dependenceis of children jobs in main pom (#1676) 2018-03-19 10:32:14 +08:00
Haiting Yin
0cda46c516 TPS-2299 [6.4.1] transaction does not commit when multiple tMDMOutput used in same subjob (TMDM-11629) (#2102) 2018-03-19 09:57:43 +08:00
kjwang-talend
08020a4892 Kjwang/fix(tup 19528)implicit t context load does not load variables
when from file is initialized with a context variable (#2001)

Conflicts:
	main/plugins/org.talend.designer.core/src/main/java/org/talend/designer/core/model/process/jobsettings/JobSettingsManager.java
	test/plugins/org.talend.designer.core.test/src/org/talend/designer/core/model/process/jobsettings/JobSettingsManagerTest.java
2018-03-05 14:23:09 +08:00
Emmanuel GALLOIS
86138a3d5d fix(TDI-39319): correct include/exclude types in REST API (#1677) 2018-01-08 14:39:30 +08:00
wang wei
5558ca5d04 Revert "fix(TPS-2267): JDBC URL change from 6.1 to 6.4 the patches contain: * fix(TDI-39365): Support Amazon Redshift JDBC Driver 1.2.10 * fix(TDI-39707): mutli thread failed for stats and logs in redshift database by redshift jdb and postgresql output component"
This reverts commit 75c67669f2.
2017-12-04 10:37:54 +08:00
wang wei
75c67669f2 fix(TPS-2267): JDBC URL change from 6.1 to 6.4
the patches contain:
* fix(TDI-39365): Support Amazon Redshift JDBC Driver 1.2.10
* fix(TDI-39707): mutli thread failed for stats and logs in redshift
database by redshift jdb and postgresql output component
2017-11-29 10:43:26 +08:00
hwang-talend
a7b7bedbb4 fix(TUP-18217):Testcase for tWriteJSONFiled gives junitGlobalMap cannot (#1509)
be resolved exception
2017-11-27 18:06:30 +08:00
zwxue
af91049840 fix(TUP-18158):tELTOracleMap / ELT Oracle Map Editor / left panel empty
after migration from 6.1.1 to 6.3.1.
2017-11-17 11:52:23 +08:00
Chao MENG
f0c1a0604c fix(TUP-18466): complete URL Pop-up with LDAP SSH Git Authentication
https://jira.talendforge.org/browse/TUP-18466
fix a bug when managing connection in login dialog
2017-10-31 11:56:47 +08:00
hcyi
a653e1f710 fix (TUP-18453): Guess Schema on tAS400Input fails with
MissingDriverException.
2017-10-23 18:41:44 +08:00
Pingwen Lin
52e4180474 TPS-2102 [6.4.1] "OnComponentError" and "On SubjobError" not triggered when an error occurs (TMDM-11214) (#1673) 2017-10-23 17:18:16 +08:00
Kevin Wang
7600c5d9a4 Merge branch 'patch/6.4.1' of https://github.com/Talend/tdi-studio-se.git into patch/6.4.1 2017-09-25 15:31:30 +08:00
kjwang-talend
88d8328b95 fix(TUP-17996):When Deploying one customer's job in CI, the build failed with error: constant string too long (#1403)
fix(TUP-17996):When Deploying one customer's job in CI, the build failed with error: constant string too long
https://jira.talendforge.org/browse/TUP-17996
2017-09-25 15:30:14 +08:00
zwxue
4980c01e1f fix(TUP-18278):Could not find or load main class exception after (#1547) 2017-09-25 14:47:10 +08:00
hcyi
9deb7b8f25 fix(TUP-18118): misspelled word as the system property 2017-09-18 16:36:54 +08:00
wchen-talend
84274134c1 fixe(TUP-18118):Remote run in studio fails with file not found exception (#1511)
* fixe(TUP-18118):Remote run in studio fails with file not found exception

* fix(TUP-18118):Remote run in studio fails with file not found exception
2017-07-14 10:08:15 +08:00
Yucheng Bai
398955415d fix(TUP-18178): tMicrosoftCRMOutput Online 2016(oada) can't work (#1468) (#1470) 2017-06-29 18:18:39 +08:00
Yucheng Bai
21699748d1 fix(TUP-18146): https://jira.talendforge.org/browse/TUP-18146 (#1446)
* fix(TUP-18146) fix quote issue

* fix(TUP-18146): update junits.

* fix(TUP-18146): update junits.
2017-06-23 17:27:29 +08:00
mtuhai
5c9f7fa16c bug(TBD-5111/components): tBigQueryBulkExec component does not report error when failures happen - fixed (#1419) 2017-06-22 09:46:33 +02:00
zafkirTalend
660ba3714b fix(TBD-4990): Avoid NullPointerException when the component's flow connector is not shown (#1416) 2017-06-22 09:44:00 +02:00
zafkirTalend
94108609db fix(TBD-4990): Avoid NullPointerException when the component's flow connector is not shown (#1409) 2017-06-22 09:43:49 +02:00
Liu Xinquan
e9bcfa8af1 TDQ-13814 TDQ-13930 always ask user to change the Property to built-in mode (#1424) 2017-06-21 16:22:08 +08:00
kevin.cui
39ea1fe8be TMDM-11077 : tMDMBulkLoad & tMDMConnection can't load data with auto commit setting (#1429) 2017-06-21 03:17:08 -05:00
zwxue
3cce521491 fix(TUP-17726):java version for reference project changed to 1.8 after
migration.
2017-06-19 16:09:02 +08:00
zwxue
8cc6cbbd02 fix(TUP-18075):Studio throw NPE error when switch to page "Deployment"
for a service child node.
2017-06-19 16:08:20 +08:00
Jenkins Continuous Build server
dec1792509 Set version to 6.4.1 2017-06-14 12:42:04 +02:00
190 changed files with 2045 additions and 969 deletions

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.componentdesigner.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.componentdesigner.rcp.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.abstractmap.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.alfrescooutput.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.business.diagram.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.codegen.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.components.exchange.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.core.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.dbmap.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.documentation.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.fileoutputxml.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.gefabstractmap.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.hl7.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.mapper.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.maven.job.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.rowgenerator.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.runprocess.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.scd.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.webservice.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.xmlmap.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.expressionbuilder.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.presentation.onboarding.resource.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.presentation.onboarding.resource.tos.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.repository.ftp.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.repository.json.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.repository.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.repository.view.di.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.sbi.engines.client.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.spagic.engines.client.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.sqlbuilder.nl</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.componentdesigner.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.business.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.rcp.branding.tos.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.rcp.branding.tos.test.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.repository.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.sbi.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.spagic.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.tos.components.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.tos.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.tos.libraries.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.componentdesigner.rcp</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.componentdesigner</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.abstractmap</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.alfrescooutput</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.business.diagram</artifactId>

View File

@@ -324,6 +324,13 @@ public <%=JavaTypesManager.getTypeToGenerate(ctxParam.getType(),true)%> get<%=Ch
if(isRunInMultiThread || NodeUtil.containsMultiThreadComponent(process)){
%>
private final java.util.Map<String, Object> globalMap = java.util.Collections.synchronizedMap(new java.util.HashMap<String, Object>());
<%
if(ProcessUtils.isTestContainer(process)) {
%>
private final static java.util.Map<String, Object> junitGlobalMap = java.util.Collections.synchronizedMap(new java.util.HashMap<String, Object>());
<%
}
%>
<%
} else {
%>

View File

@@ -97,7 +97,7 @@
}
// for tRecordMatching
if(conn.getTarget().getUniqueName().startsWith("tRecordMatching")){
if(conn.getTarget().getUniqueName().indexOf("tRecordMatching")>-1){
List<Map<String, String>> joinKeys = (List<Map<String,String>>)ElementParameterParser.getObjectValue(conn.getTarget(), "__BLOCKING_DEFINITION__");
for(Map<String, String> joinKeyLine : joinKeys){
String lookupKey = joinKeyLine.get("LOOKUP_COLUMN");

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.codegen</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.components.exchange</artifactId>

View File

@@ -1,6 +1,7 @@
package com.talend.mdm.transaction.client;
import java.io.IOException;
import java.util.List;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
@@ -10,98 +11,96 @@ import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.DeleteMethod;
import org.apache.commons.httpclient.methods.PostMethod;
@SuppressWarnings("nls")
public class MDMTransaction {
public static final String JVM_STICKY_SESSION = "sticky_session"; //$NON-NLS-1$
public static final String DEFAULT_STICKY_SESSION = "JSESSIONID"; //$NON-NLS-1$
private String url;
private String url;
private String id;
private String username;
private String password;
private String sessionId;
public void commit() throws IOException {
HttpClient client = new HttpClient();
client.getState().setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(username, password));
private String id;
HttpMethod method = new PostMethod(url + "/" + id);
method.setDoAuthentication(true);
try {
method.setRequestHeader("Cookie", getStickySession() + "=" + sessionId); //$NON-NLS-1$ //$NON-NLS-2$
client.executeMethod(method);
} catch (HttpException e) {
throw e;
} catch (IOException e) {
throw e;
} finally {
method.releaseConnection();
}
private String username;
int statuscode = method.getStatusCode();
if (statuscode >= 400) {
throw new MDMTransactionException("Commit failed. The commit operation has returned the code " + statuscode + ".");
}
}
private String password;
public void rollback() throws IOException {
HttpClient client = new HttpClient();
client.getState().setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(username, password));
private List<String> cookies;
HttpMethod method = new DeleteMethod(url + "/" + id);
method.setDoAuthentication(true);
try {
method.setRequestHeader("Cookie", getStickySession() + "=" + sessionId); //$NON-NLS-1$ //$NON-NLS-2$
client.executeMethod(method);
} catch (HttpException e) {
throw e;
} catch (IOException e) {
throw e;
} finally {
method.releaseConnection();
}
public void commit() throws IOException {
HttpClient client = new HttpClient();
client.getState().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
int statuscode = method.getStatusCode();
if (statuscode >= 400) {
throw new MDMTransactionException("Rollback failed. The rollback operation has returned the code " + statuscode + ".");
}
}
public void setUrl(String url) {
this.url = url;
}
public void setId(String id) {
this.id = id;
}
public String getId() {
return id;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public String getSessionId() {
return sessionId;
}
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}
public static String getStickySession() {
String stickySession = System.getProperty(JVM_STICKY_SESSION);
if(stickySession == null) {
stickySession = DEFAULT_STICKY_SESSION;
HttpMethod method = new PostMethod(url + "/" + id);
method.setDoAuthentication(true);
try {
for (String cookie : cookies) {
method.addRequestHeader("Cookie", cookie);
}
client.executeMethod(method);
} catch (HttpException e) {
throw e;
} catch (IOException e) {
throw e;
} finally {
method.releaseConnection();
}
int statuscode = method.getStatusCode();
if (statuscode >= 400) {
throw new MDMTransactionException("Commit failed. The commit operation has returned the code " + statuscode + ".");
}
return stickySession;
}
public void rollback() throws IOException {
HttpClient client = new HttpClient();
client.getState().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
HttpMethod method = new DeleteMethod(url + "/" + id);
method.setDoAuthentication(true);
try {
for (String cookie : cookies) {
method.addRequestHeader("Cookie", cookie);
}
client.executeMethod(method);
} catch (HttpException e) {
throw e;
} catch (IOException e) {
throw e;
} finally {
method.releaseConnection();
}
int statuscode = method.getStatusCode();
if (statuscode >= 400) {
throw new MDMTransactionException(
"Rollback failed. The rollback operation has returned the code " + statuscode + ".");
}
}
public void setUrl(String url) {
this.url = url;
}
public void setId(String id) {
this.id = id;
}
public String getId() {
return id;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public List<String> getCookies() {
return cookies;
}
public void setCookies(List<String> cookies) {
this.cookies = cookies;
}
}

View File

@@ -1,6 +1,8 @@
package com.talend.mdm.transaction.client;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
@@ -10,13 +12,10 @@ import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PutMethod;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@SuppressWarnings("nls")
public class MDMTransactionClient {
private static final Log LOG = LogFactory.getLog(MDMTransactionClient.class);
public static MDMTransaction newTransaction(String url, String username, String password) throws IOException {
HttpClient client = new HttpClient();
client.getState().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
@@ -25,11 +24,11 @@ public class MDMTransactionClient {
PutMethod put = new PutMethod(url);
put.setDoAuthentication(true);
String tid;
String sessionID;
List<String> cookies;
try {
client.executeMethod(put);
tid = put.getResponseBodyAsString();
sessionID = parseSessionID(put);
cookies = parseCookies(put);
} catch (HttpException e) {
throw e;
} catch (IOException e) {
@@ -43,30 +42,30 @@ public class MDMTransactionClient {
result.setId(tid);
result.setUsername(username);
result.setPassword(password);
result.setSessionId(sessionID);
result.setCookies(cookies);
return result;
}
public static String getMDMTransactionURL(String url, boolean isNewServer) {
if(url == null || "".equals(url)) {
if (url == null || "".equals(url)) {
return "";
}
int count = 3;
int i=0;
for(;i<url.length();i++) {
int i = 0;
for (; i < url.length(); i++) {
char c = url.charAt(i);
if('/' == c) {
if ('/' == c) {
count--;
}
if(count == 0) {
if (count == 0) {
break;
}
}
String result = url.substring(0, i);
if(isNewServer){
if (isNewServer) {
result += "/talendmdm/services/rest/transactions";
} else {
result += "/datamanager/services/transactions";
@@ -75,17 +74,17 @@ public class MDMTransactionClient {
return result;
}
public static String getSessionID(String url, String username, String password) throws IOException {
public static List<String> getCookies(String url, String username, String password) throws IOException {
HttpClient client = new HttpClient();
client.getState().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
client.getParams().setAuthenticationPreemptive(true);
GetMethod get = new GetMethod(url);
get.setDoAuthentication(true);
String sessionID;
List<String> cookies;
try {
client.executeMethod(get);
sessionID = parseSessionID(get);
cookies = parseCookies(get);
} catch (HttpException e) {
throw e;
} catch (IOException e) {
@@ -93,44 +92,16 @@ public class MDMTransactionClient {
} finally {
get.releaseConnection();
}
return sessionID;
return cookies;
}
private static String parseSessionID(HttpMethod method) {
String sessionID = null;
String stickySession = MDMTransaction.getStickySession();
Header[] setCookie = method.getResponseHeaders("Set-Cookie"); //$NON-NLS-1$
for(Header header : setCookie) {
String headerValue = header.getValue();
if(headerValue.startsWith(stickySession + "=")) { //$NON-NLS-1$
int beginIndex = (stickySession + "=").length(); //$NON-NLS-1$
int endIndex = headerValue.indexOf(";", beginIndex); //$NON-NLS-1$
sessionID = headerValue.substring(beginIndex, endIndex);
break;
}
private static List<String> parseCookies(HttpMethod method) {
List<String> cookies = new ArrayList<String>();
Header[] setCookie = method.getResponseHeaders("Set-Cookie");
for (Header header : setCookie) {
cookies.add(header.getValue());
}
if(sessionID == null) {
if(LOG.isDebugEnabled()) {
LOG.warn("Cookie for sticky session not found!"); //$NON-NLS-1$
}
sessionID = ""; //$NON-NLS-1$
}
return sessionID;
}
public static void main(String[] args) throws IOException {
String sessionID = MDMTransactionClient.getSessionID("http://localhost:8621/talendmdm/services/rest/transactions", "administrator", "administrator");
System.out.println(sessionID);
MDMTransaction mt = MDMTransactionClient.newTransaction("http://localhost:8180/talendmdm/services/rest/transactions", "administrator", "administrator");
mt.commit();
MDMTransaction mt1 = MDMTransactionClient.newTransaction("http://localhost:8180/talendmdm/services/rest/transactions", "administrator", "administrator");
mt1.rollback();
String url = "http://localhost:8180/talend/TalendPort";
String mdmurl = MDMTransactionClient.getMDMTransactionURL(url, true);
System.out.println(mdmurl);
return cookies;
}
}

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.components.libs</artifactId>

View File

@@ -366,6 +366,12 @@
}
com.google.api.services.bigquery.model.Job doneJob_<%=cid%> = pollJob_<%=cid%>;
if ((doneJob_<%=cid%>.getStatus() != null) && (doneJob_<%=cid%>.getStatus().getErrors() != null)) {
status = "failure";
throw new Exception(doneJob_<%=cid%>.getStatus().getErrors().toString());
}
System.out.println("Done: " + doneJob_<%=cid%>.toString());
com.google.api.services.bigquery.model.JobStatistics jobStatistics_<%=cid%>= doneJob_<%=cid%>.getStatistics();
if(jobStatistics_<%=cid%>!=null && jobStatistics_<%=cid%>.getLoad() != null){

View File

@@ -36,33 +36,50 @@ String trans = "mdmTrans_" + connection;
org.talend.mdm.bulkload.client.BulkloadClient bulkloadClient_<%=cid %> = new org.talend.mdm.bulkload.client.BulkloadClient(<%=mdmUrl %>, <%=username %>, decryptedPassword_<%=cid %>, null, <%=dataCluster %> + "<%=isStaging?"#STAGING":""%>", <%=dataEntity %>, <%=dataModule %>);
<%if(useTransaction) {%>
String transKey_<%=cid %> = "<%=trans%>_" + Thread.currentThread().getThreadGroup().getName();
com.talend.mdm.transaction.client.MDMTransaction mdmTransaction_<%=cid %> = (com.talend.mdm.transaction.client.MDMTransaction)globalMap.get(transKey_<%=cid %>);
if(mdmTransaction_<%=cid %> == null) {
String murl_<%=cid %> = (String)globalMap.get("mdmUrl_<%=connection %>");
if(murl_<%=cid %>.endsWith("?wsdl")) {
murl_<%=cid %> = murl_<%=cid %>.substring(0, murl_<%=cid %>.length() - 5);
if(globalMap.get("useTransaction_<%=connection %>") != null && (Boolean)globalMap.get("useTransaction_<%=connection %>")) {
String transKey_<%=cid %> = "<%=trans%>_" + Thread.currentThread().getThreadGroup().getName();
com.talend.mdm.transaction.client.MDMTransaction mdmTransaction_<%=cid %> = (com.talend.mdm.transaction.client.MDMTransaction)globalMap.get(transKey_<%=cid %>);
if(mdmTransaction_<%=cid %> == null) {
Boolean transInitStart_<%=cid%> = false;
synchronized(globalMap){
if(globalMap.containsKey(transKey_<%=cid %> + "_initStart")){
transInitStart_<%=cid%> = true;
}else{
globalMap.put(transKey_<%=cid %> + "_initStart", true);
}
}
if(transInitStart_<%=cid%> == false){
String murl_<%=cid %> = (String)globalMap.get("mdmUrl_<%=connection %>");
if(murl_<%=cid %>.endsWith("?wsdl")) {
murl_<%=cid %> = murl_<%=cid %>.substring(0, murl_<%=cid %>.length() - 5);
}
String turl_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.getMDMTransactionURL(murl_<%=cid %>, true);
String username_<%=cid %> = (String)globalMap.get("username_<%=connection %>");
String password_<%=cid %> = (String)globalMap.get("password_<%=connection %>");
if((Boolean)globalMap.get("useClientTranId_<%=connection %>")){
List<String> cookies_<%=cid%> = com.talend.mdm.transaction.client.MDMTransactionClient.getCookies(turl_<%=cid%>,username_<%=cid%>,password_<%=cid%>);
mdmTransaction_<%=cid %> = new com.talend.mdm.transaction.client.MDMTransaction();
mdmTransaction_<%=cid %>.setUrl(turl_<%=cid %>);
mdmTransaction_<%=cid %>.setId("<%=cid %>_" + java.util.UUID.randomUUID());
mdmTransaction_<%=cid %>.setUsername(username_<%=cid %>);
mdmTransaction_<%=cid %>.setPassword(password_<%=cid %>);
mdmTransaction_<%=cid %>.setCookies(cookies_<%=cid%>);
}else{
<% logUtil.debug("\"Attempt to get a remote transaction from url: \" + murl_" + cid);%>
mdmTransaction_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.newTransaction(turl_<%=cid %>,username_<%=cid %>,password_<%=cid %>);
}
}else{
while(mdmTransaction_<%=cid %> == null){
Thread.sleep(10);
mdmTransaction_<%=cid %> = (com.talend.mdm.transaction.client.MDMTransaction)globalMap.get(transKey_<%=cid %>);
}
}
globalMap.put(transKey_<%=cid %>, mdmTransaction_<%=cid %>);
<% logUtil.debug("\"Got transaction successfully with key=\" + transKey_" + cid);%>
}
String turl_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.getMDMTransactionURL(murl_<%=cid %>, true);
String username_<%=cid %> = (String)globalMap.get("username_<%=connection %>");
String password_<%=cid %> = (String)globalMap.get("password_<%=connection %>");
if((Boolean)globalMap.get("useClientTranId_<%=connection %>")) {
String sessionID_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.getSessionID(turl_<%=cid %>,username_<%=cid %>,password_<%=cid %>);
mdmTransaction_<%=cid %> = new com.talend.mdm.transaction.client.MDMTransaction();
mdmTransaction_<%=cid %>.setUrl(turl_<%=cid %>);
mdmTransaction_<%=cid %>.setId("<%=cid %>_" + java.util.UUID.randomUUID());
mdmTransaction_<%=cid %>.setUsername(username_<%=cid %>);
mdmTransaction_<%=cid %>.setPassword(password_<%=cid %>);
mdmTransaction_<%=cid %>.setSessionId(sessionID_<%=cid %>);
} else {
<% logUtil.debug("\"Attempt to get a remote transaction from url: \" + murl_" + cid);%>
mdmTransaction_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.newTransaction(turl_<%=cid %>,username_<%=cid %>,password_<%=cid %>);
}
globalMap.put(transKey_<%=cid %>, mdmTransaction_<%=cid %>);
<% logUtil.debug("\"Got transaction successfully with key=\" + transKey_" + cid);%>
bulkloadClient_<%=cid %>.setTransactionId(mdmTransaction_<%=cid %>.getId());
bulkloadClient_<%=cid %>.setCookies(mdmTransaction_<%=cid%>.getCookies());
}
bulkloadClient_<%=cid %>.setTransactionId(mdmTransaction_<%=cid %>.getId());
bulkloadClient_<%=cid %>.setSessionId(mdmTransaction_<%=cid%>.getSessionId());
<%}%>
bulkloadClient_<%=cid %>.startThreadCount();

View File

@@ -31,4 +31,20 @@ globalMap.put("mdmUrl_<%=cid %>", <%=mdmUrl %>);
globalMap.put("username_<%=cid %>", <%=username %>);
globalMap.put("password_<%=cid %>", decryptedPassword_<%=cid %>);
globalMap.put("useTransaction_<%=cid %>", <%=useTransaction %>);
globalMap.put("useClientTranId_<%=cid %>", <%=useClientTranId %>);
globalMap.put("useClientTranId_<%=cid %>", <%=useClientTranId %>);
String murl_<%=cid %> = <%=mdmUrl %>;
String username_<%=cid%> = <%=username %>;
String password_<%=cid%> = decryptedPassword_<%=cid %>;
if(murl_<%=cid %>.endsWith("?wsdl")) {
murl_<%=cid %> = murl_<%=cid %>.substring(0, murl_<%=cid %>.length() - 5);
}
org.talend.mdm.webservice.TMDMService service_<%=cid %> = new org.talend.mdm.webservice.TMDMService_Service(null).getTMDMPort();
javax.xml.ws.BindingProvider stub_<%=cid %> = (javax.xml.ws.BindingProvider) service_<%=cid %>;
java.util.Map<String, Object> context_<%=cid %> = stub_<%=cid %>.getRequestContext();
context_<%=cid %>.put(javax.xml.ws.BindingProvider.SESSION_MAINTAIN_PROPERTY, true);
context_<%=cid %>.put(javax.xml.ws.BindingProvider.ENDPOINT_ADDRESS_PROPERTY, murl_<%=cid %>);
context_<%=cid %>.put(javax.xml.ws.BindingProvider.USERNAME_PROPERTY, username_<%=cid %>);
context_<%=cid %>.put(javax.xml.ws.BindingProvider.PASSWORD_PROPERTY, password_<%=cid %>);
service_<%=cid %>.ping(new org.talend.mdm.webservice.WSPing());
service_<%=cid %>.logout(new org.talend.mdm.webservice.WSLogout());

View File

@@ -74,18 +74,34 @@ int nb_line_<%=cid %> = 0;
String turl_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.getMDMTransactionURL(murl_<%=cid %>, true);
com.talend.mdm.transaction.client.MDMTransaction mdmTransaction_<%=cid %> = (com.talend.mdm.transaction.client.MDMTransaction)globalMap.get(transKey_<%=cid %>);
if(mdmTransaction_<%=cid %> == null){
if((Boolean)globalMap.get("useClientTranId_<%=connection %>")){
String sessionID_<%=cid%> = com.talend.mdm.transaction.client.MDMTransactionClient.getSessionID(turl_<%=cid%>,username_<%=cid%>,password_<%=cid%>);
mdmTransaction_<%=cid %> = new com.talend.mdm.transaction.client.MDMTransaction();
mdmTransaction_<%=cid %>.setUrl(turl_<%=cid %>);
mdmTransaction_<%=cid %>.setId("<%=cid %>_" + java.util.UUID.randomUUID());
mdmTransaction_<%=cid %>.setUsername(username_<%=cid %>);
mdmTransaction_<%=cid %>.setPassword(password_<%=cid %>);
mdmTransaction_<%=cid %>.setSessionId(sessionID_<%=cid%>);
}else{
<% logUtil.debug("\"Attempt to get a remote transaction from url: \" + murl_" + cid);%>
mdmTransaction_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.newTransaction(turl_<%=cid %>,username_<%=cid %>,password_<%=cid %>);
Boolean transInitStart_<%=cid%> = false;
synchronized(globalMap){
if(globalMap.containsKey(transKey_<%=cid %> + "_initStart")){
transInitStart_<%=cid%> = true;
}else{
globalMap.put(transKey_<%=cid %> + "_initStart", true);
}
}
if(transInitStart_<%=cid%> == false){
if((Boolean)globalMap.get("useClientTranId_<%=connection %>")){
List<String> cookies_<%=cid%> = com.talend.mdm.transaction.client.MDMTransactionClient.getCookies(turl_<%=cid%>,username_<%=cid%>,password_<%=cid%>);
mdmTransaction_<%=cid %> = new com.talend.mdm.transaction.client.MDMTransaction();
mdmTransaction_<%=cid %>.setUrl(turl_<%=cid %>);
mdmTransaction_<%=cid %>.setId("<%=cid %>_" + java.util.UUID.randomUUID());
mdmTransaction_<%=cid %>.setUsername(username_<%=cid %>);
mdmTransaction_<%=cid %>.setPassword(password_<%=cid %>);
mdmTransaction_<%=cid %>.setCookies(cookies_<%=cid%>);
}else{
<% logUtil.debug("\"Attempt to get a remote transaction from url: \" + murl_" + cid);%>
mdmTransaction_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.newTransaction(turl_<%=cid %>,username_<%=cid %>,password_<%=cid %>);
}
}else{
while(mdmTransaction_<%=cid %> == null){
Thread.sleep(10);
mdmTransaction_<%=cid %> = (com.talend.mdm.transaction.client.MDMTransaction)globalMap.get(transKey_<%=cid %>);
}
}
java.util.List<org.apache.cxf.headers.Header> soapHeaders_<%=cid %> = new java.util.ArrayList<org.apache.cxf.headers.Header>();
javax.xml.namespace.QName qName_<%=cid %> = new javax.xml.namespace.QName("http://www.talend.com/mdm", "transaction-id");
org.apache.cxf.databinding.DataBinding dataBinding_<%=cid %> = new org.apache.cxf.jaxb.JAXBDataBinding(String.class);
@@ -93,8 +109,7 @@ int nb_line_<%=cid %> = 0;
context_<%=cid %>.put(org.apache.cxf.headers.Header.HEADER_LIST, soapHeaders_<%=cid %>);
java.util.Map<String, java.util.List<String>> httpHeaders_<%=cid %> = new java.util.HashMap<String, java.util.List<String>>();
String cookie_<%=cid %> = com.talend.mdm.transaction.client.MDMTransaction.getStickySession() + "=" + mdmTransaction_<%=cid%>.getSessionId();
httpHeaders_<%=cid %>.put("Cookie", java.util.Arrays.asList(cookie_<%=cid %>));
httpHeaders_<%=cid %>.put("Cookie", mdmTransaction_<%=cid %>.getCookies());
context_<%=cid %>.put(org.apache.cxf.message.Message.PROTOCOL_HEADERS, httpHeaders_<%=cid %>);
globalMap.put(transKey_<%=cid %>, mdmTransaction_<%=cid %>);

View File

@@ -144,18 +144,34 @@ int nb_line_rejected_<%=cid %> = 0;
String turl_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.getMDMTransactionURL(murl_<%=cid %>, true);
com.talend.mdm.transaction.client.MDMTransaction mdmTransaction_<%=cid %> = (com.talend.mdm.transaction.client.MDMTransaction)globalMap.get(transKey_<%=cid %>);
if(mdmTransaction_<%=cid %> == null){
if((Boolean)globalMap.get("useClientTranId_<%=connection %>")){
String sessionID_<%=cid%> = com.talend.mdm.transaction.client.MDMTransactionClient.getSessionID(turl_<%=cid%>,username_<%=cid%>,password_<%=cid%>);
mdmTransaction_<%=cid %> = new com.talend.mdm.transaction.client.MDMTransaction();
mdmTransaction_<%=cid %>.setUrl(turl_<%=cid %>);
mdmTransaction_<%=cid %>.setId("<%=cid %>_" + java.util.UUID.randomUUID());
mdmTransaction_<%=cid %>.setUsername(username_<%=cid %>);
mdmTransaction_<%=cid %>.setPassword(password_<%=cid %>);
mdmTransaction_<%=cid %>.setSessionId(sessionID_<%=cid%>);
}else{
<% logUtil.debug("\"Attempt to get a remote transaction from url: \" + murl_" + cid);%>
mdmTransaction_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.newTransaction(turl_<%=cid %>,username_<%=cid %>,password_<%=cid %>);
Boolean transInitStart_<%=cid%> = false;
synchronized(globalMap){
if(globalMap.containsKey(transKey_<%=cid %> + "_initStart")){
transInitStart_<%=cid%> = true;
}else{
globalMap.put(transKey_<%=cid %> + "_initStart", true);
}
}
if(transInitStart_<%=cid%> == false){
if((Boolean)globalMap.get("useClientTranId_<%=connection %>")){
List<String> cookies_<%=cid%> = com.talend.mdm.transaction.client.MDMTransactionClient.getCookies(turl_<%=cid%>,username_<%=cid%>,password_<%=cid%>);
mdmTransaction_<%=cid %> = new com.talend.mdm.transaction.client.MDMTransaction();
mdmTransaction_<%=cid %>.setUrl(turl_<%=cid %>);
mdmTransaction_<%=cid %>.setId("<%=cid %>_" + java.util.UUID.randomUUID());
mdmTransaction_<%=cid %>.setUsername(username_<%=cid %>);
mdmTransaction_<%=cid %>.setPassword(password_<%=cid %>);
mdmTransaction_<%=cid %>.setCookies(cookies_<%=cid%>);
}else{
<% logUtil.debug("\"Attempt to get a remote transaction from url: \" + murl_" + cid);%>
mdmTransaction_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.newTransaction(turl_<%=cid %>,username_<%=cid %>,password_<%=cid %>);
}
}else{
while(mdmTransaction_<%=cid %> == null){
Thread.sleep(10);
mdmTransaction_<%=cid %> = (com.talend.mdm.transaction.client.MDMTransaction)globalMap.get(transKey_<%=cid %>);
}
}
java.util.List<org.apache.cxf.headers.Header> soapHeaders_<%=cid %> = new java.util.ArrayList<org.apache.cxf.headers.Header>();
javax.xml.namespace.QName qName_<%=cid %> = new javax.xml.namespace.QName("http://www.talend.com/mdm", "transaction-id");
org.apache.cxf.databinding.DataBinding dataBinding_<%=cid %> = new org.apache.cxf.jaxb.JAXBDataBinding(String.class);
@@ -163,8 +179,7 @@ int nb_line_rejected_<%=cid %> = 0;
context_<%=cid %>.put(org.apache.cxf.headers.Header.HEADER_LIST, soapHeaders_<%=cid %>);
java.util.Map<String, java.util.List<String>> httpHeaders_<%=cid %> = new java.util.HashMap<String, java.util.List<String>>();
String cookie_<%=cid %> = com.talend.mdm.transaction.client.MDMTransaction.getStickySession() + "=" + mdmTransaction_<%=cid%>.getSessionId();
httpHeaders_<%=cid %>.put("Cookie", java.util.Arrays.asList(cookie_<%=cid %>));
httpHeaders_<%=cid %>.put("Cookie", mdmTransaction_<%=cid %>.getCookies());
context_<%=cid %>.put(org.apache.cxf.message.Message.PROTOCOL_HEADERS, httpHeaders_<%=cid %>);
globalMap.put(transKey_<%=cid %>, mdmTransaction_<%=cid %>);

View File

@@ -117,18 +117,34 @@ if ((metadatas != null) && (metadatas.size() > 0)) {//1
String turl_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.getMDMTransactionURL(murl_<%=cid %>, true);
com.talend.mdm.transaction.client.MDMTransaction mdmTransaction_<%=cid %> = (com.talend.mdm.transaction.client.MDMTransaction)globalMap.get(transKey_<%=cid %>);
if(mdmTransaction_<%=cid %> == null){
if((Boolean)globalMap.get("useClientTranId_<%=connection %>")){
String sessionID_<%=cid%> = com.talend.mdm.transaction.client.MDMTransactionClient.getSessionID(turl_<%=cid%>,username_<%=cid%>,password_<%=cid%>);
mdmTransaction_<%=cid %> = new com.talend.mdm.transaction.client.MDMTransaction();
mdmTransaction_<%=cid %>.setUrl(turl_<%=cid %>);
mdmTransaction_<%=cid %>.setId("<%=cid %>_" + java.util.UUID.randomUUID());
mdmTransaction_<%=cid %>.setUsername(username_<%=cid %>);
mdmTransaction_<%=cid %>.setPassword(password_<%=cid %>);
mdmTransaction_<%=cid %>.setSessionId(sessionID_<%=cid%>);
}else{
<% logUtil.debug("\"Attempt to get a remote transaction from url: \" + murl_" + cid);%>
mdmTransaction_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.newTransaction(turl_<%=cid %>,username_<%=cid %>,password_<%=cid %>);
Boolean transInitStart_<%=cid%> = false;
synchronized(globalMap){
if(globalMap.containsKey(transKey_<%=cid %> + "_initStart")){
transInitStart_<%=cid%> = true;
}else{
globalMap.put(transKey_<%=cid %> + "_initStart", true);
}
}
if(transInitStart_<%=cid%> == false){
if((Boolean)globalMap.get("useClientTranId_<%=connection %>")){
List<String> cookies_<%=cid%> = com.talend.mdm.transaction.client.MDMTransactionClient.getCookies(turl_<%=cid%>,username_<%=cid%>,password_<%=cid%>);
mdmTransaction_<%=cid %> = new com.talend.mdm.transaction.client.MDMTransaction();
mdmTransaction_<%=cid %>.setUrl(turl_<%=cid %>);
mdmTransaction_<%=cid %>.setId("<%=cid %>_" + java.util.UUID.randomUUID());
mdmTransaction_<%=cid %>.setUsername(username_<%=cid %>);
mdmTransaction_<%=cid %>.setPassword(password_<%=cid %>);
mdmTransaction_<%=cid %>.setCookies(cookies_<%=cid%>);
}else{
<% logUtil.debug("\"Attempt to get a remote transaction from url: \" + murl_" + cid);%>
mdmTransaction_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.newTransaction(turl_<%=cid %>,username_<%=cid %>,password_<%=cid %>);
}
}else{
while(mdmTransaction_<%=cid %> == null){
Thread.sleep(10);
mdmTransaction_<%=cid %> = (com.talend.mdm.transaction.client.MDMTransaction)globalMap.get(transKey_<%=cid %>);
}
}
java.util.List<org.apache.cxf.headers.Header> soapHeaders_<%=cid %> = new java.util.ArrayList<org.apache.cxf.headers.Header>();
javax.xml.namespace.QName qName_<%=cid %> = new javax.xml.namespace.QName("http://www.talend.com/mdm", "transaction-id");
org.apache.cxf.databinding.DataBinding dataBinding_<%=cid %> = new org.apache.cxf.jaxb.JAXBDataBinding(String.class);
@@ -136,8 +152,7 @@ if ((metadatas != null) && (metadatas.size() > 0)) {//1
context_<%=cid %>.put(org.apache.cxf.headers.Header.HEADER_LIST, soapHeaders_<%=cid %>);
java.util.Map<String, java.util.List<String>> httpHeaders_<%=cid %> = new java.util.HashMap<String, java.util.List<String>>();
String cookie_<%=cid %> = com.talend.mdm.transaction.client.MDMTransaction.getStickySession() + "=" + mdmTransaction_<%=cid%>.getSessionId();
httpHeaders_<%=cid %>.put("Cookie", java.util.Arrays.asList(cookie_<%=cid %>));
httpHeaders_<%=cid %>.put("Cookie", mdmTransaction_<%=cid %>.getCookies());
context_<%=cid %>.put(org.apache.cxf.message.Message.PROTOCOL_HEADERS, httpHeaders_<%=cid %>);
globalMap.put(transKey_<%=cid %>, mdmTransaction_<%=cid %>);

View File

@@ -79,18 +79,34 @@ int nb_line_<%=cid %> = 0;
String turl_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.getMDMTransactionURL(murl_<%=cid %>, true);
com.talend.mdm.transaction.client.MDMTransaction mdmTransaction_<%=cid %> = (com.talend.mdm.transaction.client.MDMTransaction)globalMap.get(transKey_<%=cid %>);
if(mdmTransaction_<%=cid %> == null){
if((Boolean)globalMap.get("useClientTranId_<%=connection %>")){
String sessionID_<%=cid%> = com.talend.mdm.transaction.client.MDMTransactionClient.getSessionID(turl_<%=cid%>,username_<%=cid%>,password_<%=cid%>);
mdmTransaction_<%=cid %> = new com.talend.mdm.transaction.client.MDMTransaction();
mdmTransaction_<%=cid %>.setUrl(turl_<%=cid %>);
mdmTransaction_<%=cid %>.setId("<%=cid %>_" + java.util.UUID.randomUUID());
mdmTransaction_<%=cid %>.setUsername(username_<%=cid %>);
mdmTransaction_<%=cid %>.setPassword(password_<%=cid %>);
mdmTransaction_<%=cid %>.setSessionId(sessionID_<%=cid%>);
}else{
<% logUtil.debug("\"Attempt to get a remote transaction from url: \" + murl_" + cid);%>
mdmTransaction_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.newTransaction(turl_<%=cid %>,username_<%=cid %>,password_<%=cid %>);
Boolean transInitStart_<%=cid%> = false;
synchronized(globalMap){
if(globalMap.containsKey(transKey_<%=cid %> + "_initStart")){
transInitStart_<%=cid%> = true;
}else{
globalMap.put(transKey_<%=cid %> + "_initStart", true);
}
}
if(transInitStart_<%=cid%> == false){
if((Boolean)globalMap.get("useClientTranId_<%=connection %>")){
List<String> cookies_<%=cid%> = com.talend.mdm.transaction.client.MDMTransactionClient.getCookies(turl_<%=cid%>,username_<%=cid%>,password_<%=cid%>);
mdmTransaction_<%=cid %> = new com.talend.mdm.transaction.client.MDMTransaction();
mdmTransaction_<%=cid %>.setUrl(turl_<%=cid %>);
mdmTransaction_<%=cid %>.setId("<%=cid %>_" + java.util.UUID.randomUUID());
mdmTransaction_<%=cid %>.setUsername(username_<%=cid %>);
mdmTransaction_<%=cid %>.setPassword(password_<%=cid %>);
mdmTransaction_<%=cid %>.setCookies(cookies_<%=cid%>);
}else{
<% logUtil.debug("\"Attempt to get a remote transaction from url: \" + murl_" + cid);%>
mdmTransaction_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.newTransaction(turl_<%=cid %>,username_<%=cid %>,password_<%=cid %>);
}
}else{
while(mdmTransaction_<%=cid %> == null){
Thread.sleep(10);
mdmTransaction_<%=cid %> = (com.talend.mdm.transaction.client.MDMTransaction)globalMap.get(transKey_<%=cid %>);
}
}
java.util.List<org.apache.cxf.headers.Header> soapHeaders_<%=cid %> = new java.util.ArrayList<org.apache.cxf.headers.Header>();
javax.xml.namespace.QName qName_<%=cid %> = new javax.xml.namespace.QName("http://www.talend.com/mdm", "transaction-id");
org.apache.cxf.databinding.DataBinding dataBinding_<%=cid %> = new org.apache.cxf.jaxb.JAXBDataBinding(String.class);
@@ -98,8 +114,7 @@ int nb_line_<%=cid %> = 0;
context_<%=cid %>.put(org.apache.cxf.headers.Header.HEADER_LIST, soapHeaders_<%=cid %>);
java.util.Map<String, java.util.List<String>> httpHeaders_<%=cid %> = new java.util.HashMap<String, java.util.List<String>>();
String cookie_<%=cid %> = com.talend.mdm.transaction.client.MDMTransaction.getStickySession() + "=" + mdmTransaction_<%=cid%>.getSessionId();
httpHeaders_<%=cid %>.put("Cookie", java.util.Arrays.asList(cookie_<%=cid %>));
httpHeaders_<%=cid %>.put("Cookie", mdmTransaction_<%=cid %>.getCookies());
context_<%=cid %>.put(org.apache.cxf.message.Message.PROTOCOL_HEADERS, httpHeaders_<%=cid %>);
globalMap.put(transKey_<%=cid %>, mdmTransaction_<%=cid %>);

View File

@@ -72,18 +72,34 @@ int nb_line_<%=cid %> = 0;
String turl_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.getMDMTransactionURL(murl_<%=cid %>, true);
com.talend.mdm.transaction.client.MDMTransaction mdmTransaction_<%=cid %> = (com.talend.mdm.transaction.client.MDMTransaction)globalMap.get(transKey_<%=cid %>);
if(mdmTransaction_<%=cid %> == null){
if((Boolean)globalMap.get("useClientTranId_<%=connection %>")){
String sessionID_<%=cid%> = com.talend.mdm.transaction.client.MDMTransactionClient.getSessionID(turl_<%=cid%>,username_<%=cid%>,password_<%=cid%>);
mdmTransaction_<%=cid %> = new com.talend.mdm.transaction.client.MDMTransaction();
mdmTransaction_<%=cid %>.setUrl(turl_<%=cid %>);
mdmTransaction_<%=cid %>.setId("<%=cid %>_" + java.util.UUID.randomUUID());
mdmTransaction_<%=cid %>.setUsername(username_<%=cid %>);
mdmTransaction_<%=cid %>.setPassword(password_<%=cid %>);
mdmTransaction_<%=cid %>.setSessionId(sessionID_<%=cid%>);
}else{
<% logUtil.debug("\"Attempt to get a remote transaction from url: \" + murl_" + cid);%>
mdmTransaction_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.newTransaction(turl_<%=cid %>,username_<%=cid %>,password_<%=cid %>);
Boolean transInitStart_<%=cid%> = false;
synchronized(globalMap){
if(globalMap.containsKey(transKey_<%=cid %> + "_initStart")){
transInitStart_<%=cid%> = true;
}else{
globalMap.put(transKey_<%=cid %> + "_initStart", true);
}
}
if(transInitStart_<%=cid%> == false){
if((Boolean)globalMap.get("useClientTranId_<%=connection %>")){
List<String> cookies_<%=cid%> = com.talend.mdm.transaction.client.MDMTransactionClient.getCookies(turl_<%=cid%>,username_<%=cid%>,password_<%=cid%>);
mdmTransaction_<%=cid %> = new com.talend.mdm.transaction.client.MDMTransaction();
mdmTransaction_<%=cid %>.setUrl(turl_<%=cid %>);
mdmTransaction_<%=cid %>.setId("<%=cid %>_" + java.util.UUID.randomUUID());
mdmTransaction_<%=cid %>.setUsername(username_<%=cid %>);
mdmTransaction_<%=cid %>.setPassword(password_<%=cid %>);
mdmTransaction_<%=cid %>.setCookies(cookies_<%=cid%>);
}else{
<% logUtil.debug("\"Attempt to get a remote transaction from url: \" + murl_" + cid);%>
mdmTransaction_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.newTransaction(turl_<%=cid %>,username_<%=cid %>,password_<%=cid %>);
}
}else{
while(mdmTransaction_<%=cid %> == null){
Thread.sleep(10);
mdmTransaction_<%=cid %> = (com.talend.mdm.transaction.client.MDMTransaction)globalMap.get(transKey_<%=cid %>);
}
}
java.util.List<org.apache.cxf.headers.Header> soapHeaders_<%=cid %> = new java.util.ArrayList<org.apache.cxf.headers.Header>();
javax.xml.namespace.QName qName_<%=cid %> = new javax.xml.namespace.QName("http://www.talend.com/mdm", "transaction-id");
org.apache.cxf.databinding.DataBinding dataBinding_<%=cid %> = new org.apache.cxf.jaxb.JAXBDataBinding(String.class);
@@ -91,8 +107,7 @@ int nb_line_<%=cid %> = 0;
context_<%=cid %>.put(org.apache.cxf.headers.Header.HEADER_LIST, soapHeaders_<%=cid %>);
java.util.Map<String, java.util.List<String>> httpHeaders_<%=cid %> = new java.util.HashMap<String, java.util.List<String>>();
String cookie_<%=cid %> = com.talend.mdm.transaction.client.MDMTransaction.getStickySession() + "=" + mdmTransaction_<%=cid%>.getSessionId();
httpHeaders_<%=cid %>.put("Cookie", java.util.Arrays.asList(cookie_<%=cid %>));
httpHeaders_<%=cid %>.put("Cookie", mdmTransaction_<%=cid %>.getCookies());
context_<%=cid %>.put(org.apache.cxf.message.Message.PROTOCOL_HEADERS, httpHeaders_<%=cid %>);
globalMap.put(transKey_<%=cid %>, mdmTransaction_<%=cid %>);

View File

@@ -115,18 +115,34 @@ if ((metadatas != null) && (metadatas.size() > 0)) {
String turl_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.getMDMTransactionURL(murl_<%=cid %>, true);
com.talend.mdm.transaction.client.MDMTransaction mdmTransaction_<%=cid %> = (com.talend.mdm.transaction.client.MDMTransaction)globalMap.get(transKey_<%=cid %>);
if(mdmTransaction_<%=cid %> == null){
if((Boolean)globalMap.get("useClientTranId_<%=connection %>")){
String sessionID_<%=cid%> = com.talend.mdm.transaction.client.MDMTransactionClient.getSessionID(turl_<%=cid%>,username_<%=cid%>,password_<%=cid%>);
mdmTransaction_<%=cid %> = new com.talend.mdm.transaction.client.MDMTransaction();
mdmTransaction_<%=cid %>.setUrl(turl_<%=cid %>);
mdmTransaction_<%=cid %>.setId("<%=cid %>_" + java.util.UUID.randomUUID());
mdmTransaction_<%=cid %>.setUsername(username_<%=cid %>);
mdmTransaction_<%=cid %>.setPassword(password_<%=cid %>);
mdmTransaction_<%=cid %>.setSessionId(sessionID_<%=cid%>);
}else{
<% logUtil.debug("\"Attempt to get a remote transaction from url: \" + murl_" + cid);%>
mdmTransaction_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.newTransaction(turl_<%=cid %>,username_<%=cid %>,password_<%=cid %>);
Boolean transInitStart_<%=cid%> = false;
synchronized(globalMap){
if(globalMap.containsKey(transKey_<%=cid %> + "_initStart")){
transInitStart_<%=cid%> = true;
}else{
globalMap.put(transKey_<%=cid %> + "_initStart", true);
}
}
if(transInitStart_<%=cid%> == false){
if((Boolean)globalMap.get("useClientTranId_<%=connection %>")){
List<String> cookies_<%=cid%> = com.talend.mdm.transaction.client.MDMTransactionClient.getCookies(turl_<%=cid%>,username_<%=cid%>,password_<%=cid%>);
mdmTransaction_<%=cid %> = new com.talend.mdm.transaction.client.MDMTransaction();
mdmTransaction_<%=cid %>.setUrl(turl_<%=cid %>);
mdmTransaction_<%=cid %>.setId("<%=cid %>_" + java.util.UUID.randomUUID());
mdmTransaction_<%=cid %>.setUsername(username_<%=cid %>);
mdmTransaction_<%=cid %>.setPassword(password_<%=cid %>);
mdmTransaction_<%=cid %>.setCookies(cookies_<%=cid%>);
}else{
<% logUtil.debug("\"Attempt to get a remote transaction from url: \" + murl_" + cid);%>
mdmTransaction_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.newTransaction(turl_<%=cid %>,username_<%=cid %>,password_<%=cid %>);
}
}else{
while(mdmTransaction_<%=cid %> == null){
Thread.sleep(10);
mdmTransaction_<%=cid %> = (com.talend.mdm.transaction.client.MDMTransaction)globalMap.get(transKey_<%=cid %>);
}
}
java.util.List<org.apache.cxf.headers.Header> soapHeaders_<%=cid %> = new java.util.ArrayList<org.apache.cxf.headers.Header>();
javax.xml.namespace.QName qName_<%=cid %> = new javax.xml.namespace.QName("http://www.talend.com/mdm", "transaction-id");
org.apache.cxf.databinding.DataBinding dataBinding_<%=cid %> = new org.apache.cxf.jaxb.JAXBDataBinding(String.class);
@@ -134,8 +150,7 @@ if ((metadatas != null) && (metadatas.size() > 0)) {
context_<%=cid %>.put(org.apache.cxf.headers.Header.HEADER_LIST, soapHeaders_<%=cid %>);
java.util.Map<String, java.util.List<String>> httpHeaders_<%=cid %> = new java.util.HashMap<String, java.util.List<String>>();
String cookie_<%=cid %> = com.talend.mdm.transaction.client.MDMTransaction.getStickySession() + "=" + mdmTransaction_<%=cid%>.getSessionId();
httpHeaders_<%=cid %>.put("Cookie", java.util.Arrays.asList(cookie_<%=cid %>));
httpHeaders_<%=cid %>.put("Cookie", mdmTransaction_<%=cid %>.getCookies());
context_<%=cid %>.put(org.apache.cxf.message.Message.PROTOCOL_HEADERS, httpHeaders_<%=cid %>);
globalMap.put(transKey_<%=cid %>, mdmTransaction_<%=cid %>);

View File

@@ -148,18 +148,34 @@ int nb_line_rejected_<%=cid %> = 0;
String turl_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.getMDMTransactionURL(murl_<%=cid %>, true);
com.talend.mdm.transaction.client.MDMTransaction mdmTransaction_<%=cid %> = (com.talend.mdm.transaction.client.MDMTransaction)globalMap.get(transKey_<%=cid %>);
if(mdmTransaction_<%=cid %> == null){
if((Boolean)globalMap.get("useClientTranId_<%=connection %>")){
String sessionID_<%=cid%> = com.talend.mdm.transaction.client.MDMTransactionClient.getSessionID(turl_<%=cid%>,username_<%=cid%>,password_<%=cid%>);
mdmTransaction_<%=cid %> = new com.talend.mdm.transaction.client.MDMTransaction();
mdmTransaction_<%=cid %>.setUrl(turl_<%=cid %>);
mdmTransaction_<%=cid %>.setId("<%=cid %>_" + java.util.UUID.randomUUID());
mdmTransaction_<%=cid %>.setUsername(username_<%=cid %>);
mdmTransaction_<%=cid %>.setPassword(password_<%=cid %>);
mdmTransaction_<%=cid %>.setSessionId(sessionID_<%=cid%>);
}else{
<% logUtil.debug("\"Attempt to get a remote transaction from url: \" + murl_" + cid);%>
mdmTransaction_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.newTransaction(turl_<%=cid %>,username_<%=cid %>,password_<%=cid %>);
Boolean transInitStart_<%=cid%> = false;
synchronized(globalMap){
if(globalMap.containsKey(transKey_<%=cid %> + "_initStart")){
transInitStart_<%=cid%> = true;
}else{
globalMap.put(transKey_<%=cid %> + "_initStart", true);
}
}
if(transInitStart_<%=cid%> == false){
if((Boolean)globalMap.get("useClientTranId_<%=connection %>")){
List<String> cookies_<%=cid%> = com.talend.mdm.transaction.client.MDMTransactionClient.getCookies(turl_<%=cid%>,username_<%=cid%>,password_<%=cid%>);
mdmTransaction_<%=cid %> = new com.talend.mdm.transaction.client.MDMTransaction();
mdmTransaction_<%=cid %>.setUrl(turl_<%=cid %>);
mdmTransaction_<%=cid %>.setId("<%=cid %>_" + java.util.UUID.randomUUID());
mdmTransaction_<%=cid %>.setUsername(username_<%=cid %>);
mdmTransaction_<%=cid %>.setPassword(password_<%=cid %>);
mdmTransaction_<%=cid %>.setCookies(cookies_<%=cid%>);
}else{
<% logUtil.debug("\"Attempt to get a remote transaction from url: \" + murl_" + cid);%>
mdmTransaction_<%=cid %> = com.talend.mdm.transaction.client.MDMTransactionClient.newTransaction(turl_<%=cid %>,username_<%=cid %>,password_<%=cid %>);
}
}else{
while(mdmTransaction_<%=cid %> == null){
Thread.sleep(10);
mdmTransaction_<%=cid %> = (com.talend.mdm.transaction.client.MDMTransaction)globalMap.get(transKey_<%=cid %>);
}
}
java.util.List<org.apache.cxf.headers.Header> soapHeaders_<%=cid %> = new java.util.ArrayList<org.apache.cxf.headers.Header>();
javax.xml.namespace.QName qName_<%=cid %> = new javax.xml.namespace.QName("http://www.talend.com/mdm", "transaction-id");
org.apache.cxf.databinding.DataBinding dataBinding_<%=cid %> = new org.apache.cxf.jaxb.JAXBDataBinding(String.class);
@@ -167,8 +183,7 @@ int nb_line_rejected_<%=cid %> = 0;
context_<%=cid %>.put(org.apache.cxf.headers.Header.HEADER_LIST, soapHeaders_<%=cid %>);
java.util.Map<String, java.util.List<String>> httpHeaders_<%=cid %> = new java.util.HashMap<String, java.util.List<String>>();
String cookie_<%=cid %> = com.talend.mdm.transaction.client.MDMTransaction.getStickySession() + "=" + mdmTransaction_<%=cid%>.getSessionId();
httpHeaders_<%=cid %>.put("Cookie", java.util.Arrays.asList(cookie_<%=cid %>));
httpHeaders_<%=cid %>.put("Cookie", mdmTransaction_<%=cid %>.getCookies());
context_<%=cid %>.put(org.apache.cxf.message.Message.PROTOCOL_HEADERS, httpHeaders_<%=cid %>);
globalMap.put(transKey_<%=cid %>, mdmTransaction_<%=cid %>);

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.components.localprovider</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.core.generic</artifactId>

View File

@@ -43,6 +43,14 @@ public class NewMarketoMigrationTask extends NewComponentFrameworkMigrationTask
ParameterUtilTool.addParameterType(node, "RADIO", "USE_SOAP_API", "true");
paramType = ParameterUtilTool.findParameterType(node, paramName);
}
// Parameter is unassigned, so "LEAD_SELECTOR" parameter isn't processed yet.
if ("LEAD_SELECTOR_REST".equals(paramName) && paramType == null) {
ElementParameterType leadSelector = ParameterUtilTool.findParameterType(node, "LEAD_SELECTOR");
Object selValue = ParameterUtilTool.convertParameterValue(leadSelector);
ParameterUtilTool.addParameterType(node, "CLOSED_LIST", "LEAD_SELECTOR_REST", String.valueOf(selValue));
paramType = ParameterUtilTool.findParameterType(node, paramName);
}
//
if (node != null && paramType != null) {
String componentName = node.getComponentName();
Object value = ParameterUtilTool.convertParameterValue(paramType);
@@ -59,7 +67,7 @@ public class NewMarketoMigrationTask extends NewComponentFrameworkMigrationTask
}
// Correct ListOperation value
if ("OPERATION".equals(paramName) && "tMarketoListOperation".equals(componentName)) {
switch(String.valueOf(value)){
switch (String.valueOf(value)) {
case "ADDTOLIST":
paramType.setValue("addTo");
break;
@@ -98,6 +106,21 @@ public class NewMarketoMigrationTask extends NewComponentFrameworkMigrationTask
if ("LEAD_KEYVALUES".equals(paramName)) {
paramType.setValue(TalendQuoteUtils.addQuotesIfNotExist(String.valueOf(value)));
}
// creates a parameter for REST LeadSelector based on original value
if ("LEAD_SELECTOR".equals(paramName)) {
ParameterUtilTool.addParameterType(node, "CLOSED_LIST", "LEAD_SELECTOR_REST", String.valueOf(value));
}
// Manage include/exclude REST types
if ("INCLUDE_TYPES".equals(paramName) || "EXCLUDE_TYPES".equals(paramName)) {
ElementParameterType isSOAP = ParameterUtilTool.findParameterType(node, "USE_SOAP_API");
Object isSOAPValue = ParameterUtilTool.convertParameterValue(isSOAP);
if ("true".equals(String.valueOf(isSOAPValue))) {
return paramType;
}
String k = "INCLUDE_TYPES".equals(paramName) ? "INCLUDE_TYPES_REST" : "EXCLUDE_TYPES_REST";
ElementParameterType rest = ParameterUtilTool.findParameterType(node, k);
return rest;
}
}
return paramType;
}

View File

@@ -23,6 +23,9 @@ import java.util.Map;
import java.util.Properties;
import org.apache.commons.lang.StringUtils;
import org.talend.daikon.NamedThing;
import org.talend.daikon.properties.property.Property;
import org.talend.designer.core.generic.model.GenericElementParameter;
import org.talend.designer.core.generic.utils.ParameterUtilTool;
import org.talend.designer.core.model.utils.emf.talendfile.ElementParameterType;
import org.talend.designer.core.model.utils.emf.talendfile.ElementValueType;
@@ -65,7 +68,8 @@ public class NewSalesforceMigrationTask extends NewComponentFrameworkMigrationTa
}
ElementParameterType customModuleName = ParameterUtilTool.findParameterType(node, paramName);
if(customModuleName != null){
paramType.setValue(StringUtils.strip(String.valueOf(ParameterUtilTool.convertParameterValue(customModuleName)),"\""));
String ModuleName = StringUtils.strip(String.valueOf(ParameterUtilTool.convertParameterValue(customModuleName)),"\"");
paramType.setValue(ModuleName.replaceAll("\r|\n|\r\n", ""));
}
}else if("CONNECTION".equals(paramName) && value!=null && !"".equals(value)){
ElementParameterType useConnection = ParameterUtilTool.findParameterType(node, "USE_EXISTING_CONNECTION");
@@ -124,4 +128,17 @@ public class NewSalesforceMigrationTask extends NewComponentFrameworkMigrationTa
}
return tableValue;
}
@Override
protected void processUnmappedElementParameter(Properties props, NodeType nodeType, GenericElementParameter param,
NamedThing currNamedThing) {
if ("tSalesforceInput".equals(nodeType.getComponentName()) && "returnNullValue".equals(param.getName())) {
if (currNamedThing instanceof Property) {
((Property<?>) currNamedThing).setStoredValue(true);
}
} else {
super.processUnmappedElementParameter(props, nodeType, param, currNamedThing);
}
}
}

View File

@@ -63,6 +63,7 @@ tSalesforceInput.connection.proxy.port=PROXY_PORT
tSalesforceInput.connection.proxy.userPassword.userId=PROXY_USERNAME
tSalesforceInput.connection.proxy.userPassword.password=PROXY_PASSWORD
tSalesforceInput.batchSize=BATCH_SIZE
tSalesforceInput.returnNullValue=
tSalesforceInput.normalizeDelimiter=NORMALIZE_DELIMITER
tSalesforceInput.columnNameDelimiter=COLUMNNAME_DELIMITER
### tSalesforceInput end ###

View File

@@ -49,6 +49,7 @@ import org.talend.core.model.process.EComponentCategory;
import org.talend.core.model.process.EConnectionType;
import org.talend.core.model.process.EParameterFieldType;
import org.talend.core.model.process.IElement;
import org.talend.core.model.process.IElementParameter;
import org.talend.core.model.process.IElementParameterDefaultValue;
import org.talend.core.model.process.INode;
import org.talend.core.model.process.INodeConnector;
@@ -331,7 +332,7 @@ public class ComponentsUtils {
} else if (widgetProperty instanceof Property) {
Property property = (Property) widgetProperty;
param.setRequired(property.isRequired());
param.setValue(getParameterValue(element, property, fieldType));
param.setValue(getParameterValue(element, property, fieldType, parameterName));
boolean isNameProperty = IGenericConstants.NAME_PROPERTY.equals(param.getParameterName());
if (EParameterFieldType.NAME_SELECTION_AREA.equals(fieldType) || EParameterFieldType.JSON_TABLE.equals(fieldType)
|| EParameterFieldType.CLOSED_LIST.equals(fieldType) || EParameterFieldType.CHECK.equals(fieldType)
@@ -493,7 +494,7 @@ public class ComponentsUtils {
return params;
}
public static Object getParameterValue(IElement element, Property property, EParameterFieldType fieldType) {
public static Object getParameterValue(IElement element, Property property, EParameterFieldType fieldType, String parameterName) {
Object paramValue = property.getStoredValue();
if (paramValue instanceof List) {
return null;
@@ -507,10 +508,24 @@ public class ComponentsUtils {
}
}
} else if (GenericTypeUtils.isStringType(property)) {
boolean needInitializeProperty = false;
IElementParameter oldParam = null;
if (element.getElementParameters() != null) {
oldParam = element.getElementParameter(parameterName);
}
if (oldParam == null || oldParam.getValue() == null || !StringUtils.equals((String) oldParam.getValue(), (String) property.getStoredValue())) {
// if parameter is not setup yet (= initialization)
// then we set the value and check if we need to add quotes.
//
// if parameter value / property value are not the same
// then the component updated the property in it's own code, so we need to add quotes/initialize.
needInitializeProperty = true;
}
String value = (String) paramValue;
// If value is not context mode and is not in wizard and is not changed by user then add double quotes.
if (!(element instanceof FakeElement || ContextParameterUtils.isContainContextParam(value)
|| isPropertyChangedByUser(property))) {
// If property is not initialized by client and value is not context mode and is not in wizard then add
// double quotes.
if (needInitializeProperty && !(element instanceof FakeElement || ContextParameterUtils.isContainContextParam(value))) {
if (value == null) {
value = StringUtils.EMPTY;
}

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.core</artifactId>

View File

@@ -368,6 +368,8 @@ public enum EParameterName {
REPAINT("REPAINT"), //$NON-NLS-1$
ACTIVE_DATABASE_DELIMITED_IDENTIFIERS("Active database delimited identifiers"), //$NON-NLS-1$
// for tDataprepRun
PREPARATION_ID("PREPARATION_ID");

View File

@@ -15,6 +15,7 @@ package org.talend.designer.core.model.process;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -265,8 +266,207 @@ public class DataProcess implements IGeneratingProcess {
return buildCheckMap.get(graphicalNode);
}
AbstractNode dataNode;
AbstractNode dataNode = createDataNode(graphicalNode, prefix);
INode addedNode = addDataNode(dataNode);
buildCheckMap.put(graphicalNode, addedNode);
List<IConnection> outgoingConnections = new ArrayList<IConnection>();
List<IConnection> incomingConnections = new ArrayList<IConnection>();
dataNode.setIncomingConnections(incomingConnections);
dataNode.setOutgoingConnections(outgoingConnections);
// if the component is a hash, and that there is a lookup connection just after, don't generate the node.
// if (graphicalNode.getComponent().isHashComponent()) {
// if (graphicalNode.getOutgoingConnections(EConnectionType.FLOW_REF).size() != 0) {
// dataNode.setSubProcessStart(false);
// }
// }
for (IConnection connection : graphicalNode.getOutgoingConnections()) {
if (!connection.isActivate()) {
continue;
}
IElementParameter monitorParam = connection.getElementParameter(EParameterName.MONITOR_CONNECTION.getName());
if (monitorParam != null && (!connection.getLineStyle().equals(EConnectionType.FLOW_REF))
&& ((Boolean) monitorParam.getValue())) {
addvFlowMeterBetween(dataNode, buildDataNodeFromNode(connection.getTarget(), prefix), connection,
graphicalNode.getProcess(), connection.getElementParameters());
} else {
INode target = buildDataNodeFromNode(connection.getTarget(), prefix);
createDataConnection(dataNode, (AbstractNode) target, connection, prefix);
}
}
dataNode.setRealGraphicalNode(graphicalNode);
return dataNode;
}
private DataConnection createDataConnection(AbstractNode sourceDataNode, AbstractNode targetDataNode, IConnection connection,
String prefix) {
DataConnection dataConnec = new DataConnection();
dataConnec.setActivate(connection.isActivate());
dataConnec.setLineStyle(connection.getLineStyle());
dataConnec.setTraceConnection(connection.isTraceConnection());
dataConnec.setTracesCondition(connection.getTracesCondition());
dataConnec.setMonitorConnection(connection.isMonitorConnection());
dataConnec.setEnabledTraceColumns(connection.getEnabledTraceColumns());
if ((connection.getLineStyle().hasConnectionCategory(IConnectionCategory.EXECUTION_ORDER))
&& (connection.getTarget().getMetadataList().size() > 0)) {
dataConnec.setMetadataTable(connection.getTarget().getMetadataList().get(0));
} else {
dataConnec.setMetadataTable(connection.getMetadataTable());
}
String name = connection.getName();
if (prefix != null) {
name = prefix + name;
}
dataConnec.setName(name);
String uniqueName2 = connection.getUniqueName();
if (prefix != null) {
uniqueName2 = prefix + uniqueName2;
}
dataConnec.setUniqueName(uniqueName2);
dataConnec.setSource(sourceDataNode);
dataConnec.setCondition(connection.getCondition());
dataConnec.setRouteConnectionType(connection.getRouteConnectionType());
dataConnec.setEndChoice(connection.getEndChoice());// TESB-8043
dataConnec.setExceptionList(connection.getExceptionList());
dataConnec.setConnectorName(connection.getConnectorName());
dataConnec.setInputId(connection.getInputId());
dataConnec.setOutputId(connection.getOutputId());
if (connection.getLineStyle().equals(EConnectionType.ITERATE)) {
IElementParameter param = new ElementParameter(dataConnec);
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.BASIC);
param.setValue(Boolean.FALSE);
param.setName("ENABLE_PARALLEL"); //$NON-NLS-1$
param.setDisplayName(Messages.getString("DataProcess.enableParallel")); //$NON-NLS-1$
param.setShow(true);
param.setNumRow(1);
((List<IElementParameter>) dataConnec.getElementParameters()).add(param);
param = new ElementParameter(dataConnec);
param.setFieldType(EParameterFieldType.TEXT);
param.setCategory(EComponentCategory.BASIC);
// param.setListItemsDisplayName(new String[] { "2", "3", "4" });
// param.setListItemsDisplayCodeName(new String[] { "2", "3", "4" });
// param.setListItemsValue(new String[] { "2", "3", "4" });
param.setValue("2"); //$NON-NLS-1$
param.setName("NUMBER_PARALLEL"); //$NON-NLS-1$
param.setDisplayName(Messages.getString("DataProcess.numberParallel")); //$NON-NLS-1$
param.setShow(true);
param.setShowIf("ENABLE_PARALLEL == 'true'"); //$NON-NLS-1$
param.setNumRow(1);
((List<IElementParameter>) dataConnec.getElementParameters()).add(param);
}
if (dataConnec.getLineStyle().hasConnectionCategory(IConnectionCategory.FLOW)) {
IElementParameter param = new ElementParameter(dataConnec);
param.setName(EParameterName.TRACES_CONNECTION_ENABLE.getName());
param.setDisplayName(EParameterName.TRACES_CONNECTION_ENABLE.getDisplayName());
param.setFieldType(EParameterFieldType.CHECK);
param.setValue(Boolean.FALSE);
param.setCategory(EComponentCategory.ADVANCED);
param.setShow(false);
param.setNumRow(1);
((List<IElementParameter>) dataConnec.getElementParameters()).add(param);
}
if (PluginChecker.isTeamEdition()) {
if ((connection.getLineStyle() == EConnectionType.ON_SUBJOB_OK
|| connection.getLineStyle() == EConnectionType.ON_SUBJOB_ERROR
|| connection.getLineStyle() == EConnectionType.RUN_IF
|| connection.getLineStyle() == EConnectionType.ROUTE_WHEN
|| connection.getLineStyle() == EConnectionType.ROUTE_CATCH
|| connection.getLineStyle() == EConnectionType.ON_COMPONENT_OK
|| connection.getLineStyle() == EConnectionType.ON_COMPONENT_ERROR)) {
IElementParameter param = new ElementParameter(dataConnec);
param.setName(EParameterName.RESUMING_CHECKPOINT.getName());
param.setValue(Boolean.FALSE);
param.setDisplayName(EParameterName.RESUMING_CHECKPOINT.getDisplayName());
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.RESUMING);
param.setNumRow(2);
param.setShow(true);
((List<IElementParameter>) dataConnec.getElementParameters()).add(param); // breakpoint
}
if (dataConnec.getLineStyle().hasConnectionCategory(IConnectionCategory.FLOW)) {
IElementParameter param = new ElementParameter(dataConnec);
param.setName(EParameterName.ACTIVEBREAKPOINT.getName());
param.setDisplayName(EParameterName.ACTIVEBREAKPOINT.getDisplayName());
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.BREAKPOINT);
param.setNumRow(13);
param.setValue(false);
param.setContextMode(false);
param.setShow(true);
((List<IElementParameter>) dataConnec.getElementParameters()).add(param);
IComponent component = ComponentsFactoryProvider.getInstance().get("tFilterRow",
ComponentCategory.CATEGORY_4_DI.getName());
DataNode tmpNode = new DataNode(component, "breakpointNode");
IElementParameter tmpParam = tmpNode.getElementParameter("LOGICAL_OP");
if (tmpParam != null) {
tmpParam.setCategory(EComponentCategory.BREAKPOINT);
tmpParam.setNumRow(14);
((List<IElementParameter>) dataConnec.getElementParameters()).add(tmpParam);
}
tmpParam = tmpNode.getElementParameter("CONDITIONS");
if (tmpParam != null) {
tmpParam.setCategory(EComponentCategory.BREAKPOINT);
tmpParam.setNumRow(15);
((List<IElementParameter>) dataConnec.getElementParameters()).add(tmpParam);
}
tmpParam = tmpNode.getElementParameter("USE_ADVANCED");
if (tmpParam != null) {
tmpParam.setCategory(EComponentCategory.BREAKPOINT);
tmpParam.setNumRow(16);
((List<IElementParameter>) dataConnec.getElementParameters()).add(tmpParam);
}
tmpParam = tmpNode.getElementParameter("ADVANCED_COND");
if (tmpParam != null) {
tmpParam.setCategory(EComponentCategory.BREAKPOINT);
tmpParam.setNumRow(17);
((List<IElementParameter>) dataConnec.getElementParameters()).add(tmpParam);
}
}
}
copyElementParametersValue(connection, dataConnec);
dataConnec.setTarget(targetDataNode);
List<IConnection> incomingConnections = (List<IConnection>) targetDataNode.getIncomingConnections();
if (incomingConnections == null) {
incomingConnections = new ArrayList<IConnection>();
targetDataNode.setIncomingConnections(incomingConnections);
}
List<IConnection> outgoingConnections = (List<IConnection>) sourceDataNode.getOutgoingConnections();
if (outgoingConnections == null) {
outgoingConnections = new ArrayList<IConnection>();
sourceDataNode.setOutgoingConnections(outgoingConnections);
}
outgoingConnections.add(dataConnec);
incomingConnections.add(dataConnec);
if (!connection.getName().equals(name)) {
if (targetDataNode instanceof AbstractExternalNode) {
// System.out.println("dataProcess: rename input:" + connection.getName() + " to " + name);
((AbstractExternalNode) targetDataNode).renameInputConnection(connection.getName(), name);
}
if (sourceDataNode instanceof AbstractExternalNode) {
// System.out.println("dataProcess: rename output:" + connection.getName() + " to " + name);
((AbstractExternalNode) sourceDataNode).renameOutputConnection(connection.getName(), name);
}
}
return dataConnec;
}
private AbstractNode createDataNode(final INode graphicalNode, String prefix) {
AbstractNode dataNode;
if (graphicalNode.getExternalNode() == null) {
dataNode = new DataNode();
} else {
@@ -336,184 +536,6 @@ public class DataProcess implements IGeneratingProcess {
}
}
dataNode.setDesignSubjobStartNode(graphicalNode.getDesignSubjobStartNode());
INode addedNode = addDataNode(dataNode);
buildCheckMap.put(graphicalNode, addedNode);
List<IConnection> outgoingConnections = new ArrayList<IConnection>();
List<IConnection> incomingConnections = new ArrayList<IConnection>();
dataNode.setIncomingConnections(incomingConnections);
dataNode.setOutgoingConnections(outgoingConnections);
// if the component is a hash, and that there is a lookup connection just after, don't generate the node.
// if (graphicalNode.getComponent().isHashComponent()) {
// if (graphicalNode.getOutgoingConnections(EConnectionType.FLOW_REF).size() != 0) {
// dataNode.setSubProcessStart(false);
// }
// }
DataConnection dataConnec;
for (IConnection connection : graphicalNode.getOutgoingConnections()) {
if (!connection.isActivate()) {
continue;
}
IElementParameter monitorParam = connection.getElementParameter(EParameterName.MONITOR_CONNECTION.getName());
if (monitorParam != null && (!connection.getLineStyle().equals(EConnectionType.FLOW_REF))
&& ((Boolean) monitorParam.getValue())) {
addvFlowMeterBetween(dataNode, buildDataNodeFromNode(connection.getTarget(), prefix), connection,
graphicalNode.getProcess(), connection.getElementParameters());
} else {
dataConnec = new DataConnection();
dataConnec.setActivate(connection.isActivate());
dataConnec.setLineStyle(connection.getLineStyle());
dataConnec.setTraceConnection(connection.isTraceConnection());
dataConnec.setTracesCondition(connection.getTracesCondition());
dataConnec.setMonitorConnection(connection.isMonitorConnection());
dataConnec.setEnabledTraceColumns(connection.getEnabledTraceColumns());
if ((connection.getLineStyle().hasConnectionCategory(IConnectionCategory.EXECUTION_ORDER))
&& (connection.getTarget().getMetadataList().size() > 0)) {
dataConnec.setMetadataTable(connection.getTarget().getMetadataList().get(0));
} else {
dataConnec.setMetadataTable(connection.getMetadataTable());
}
String name = connection.getName();
if (prefix != null) {
name = prefix + name;
}
dataConnec.setName(name);
String uniqueName2 = connection.getUniqueName();
if (prefix != null) {
uniqueName2 = prefix + uniqueName2;
}
dataConnec.setUniqueName(uniqueName2);
dataConnec.setSource(dataNode);
dataConnec.setCondition(connection.getCondition());
dataConnec.setRouteConnectionType(connection.getRouteConnectionType());
dataConnec.setEndChoice(connection.getEndChoice());// TESB-8043
dataConnec.setExceptionList(connection.getExceptionList());
dataConnec.setConnectorName(connection.getConnectorName());
dataConnec.setInputId(connection.getInputId());
dataConnec.setOutputId(connection.getOutputId());
if (connection.getLineStyle().equals(EConnectionType.ITERATE)) {
IElementParameter param = new ElementParameter(dataConnec);
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.BASIC);
param.setValue(Boolean.FALSE);
param.setName("ENABLE_PARALLEL"); //$NON-NLS-1$
param.setDisplayName(Messages.getString("DataProcess.enableParallel")); //$NON-NLS-1$
param.setShow(true);
param.setNumRow(1);
((List<IElementParameter>) dataConnec.getElementParameters()).add(param);
param = new ElementParameter(dataConnec);
param.setFieldType(EParameterFieldType.TEXT);
param.setCategory(EComponentCategory.BASIC);
// param.setListItemsDisplayName(new String[] { "2", "3", "4" });
// param.setListItemsDisplayCodeName(new String[] { "2", "3", "4" });
// param.setListItemsValue(new String[] { "2", "3", "4" });
param.setValue("2"); //$NON-NLS-1$
param.setName("NUMBER_PARALLEL"); //$NON-NLS-1$
param.setDisplayName(Messages.getString("DataProcess.numberParallel")); //$NON-NLS-1$
param.setShow(true);
param.setShowIf("ENABLE_PARALLEL == 'true'"); //$NON-NLS-1$
param.setNumRow(1);
((List<IElementParameter>) dataConnec.getElementParameters()).add(param);
}
if (dataConnec.getLineStyle().hasConnectionCategory(IConnectionCategory.FLOW)) {
IElementParameter param = new ElementParameter(dataConnec);
param.setName(EParameterName.TRACES_CONNECTION_ENABLE.getName());
param.setDisplayName(EParameterName.TRACES_CONNECTION_ENABLE.getDisplayName());
param.setFieldType(EParameterFieldType.CHECK);
param.setValue(Boolean.FALSE);
param.setCategory(EComponentCategory.ADVANCED);
param.setShow(false);
param.setNumRow(1);
((List<IElementParameter>) dataConnec.getElementParameters()).add(param);
}
if (PluginChecker.isTeamEdition()) {
if ((connection.getLineStyle() == EConnectionType.ON_SUBJOB_OK
|| connection.getLineStyle() == EConnectionType.ON_SUBJOB_ERROR
|| connection.getLineStyle() == EConnectionType.RUN_IF
|| connection.getLineStyle() == EConnectionType.ROUTE_WHEN
|| connection.getLineStyle() == EConnectionType.ROUTE_CATCH
|| connection.getLineStyle() == EConnectionType.ON_COMPONENT_OK || connection.getLineStyle() == EConnectionType.ON_COMPONENT_ERROR)) {
IElementParameter param = new ElementParameter(dataConnec);
param.setName(EParameterName.RESUMING_CHECKPOINT.getName());
param.setValue(Boolean.FALSE);
param.setDisplayName(EParameterName.RESUMING_CHECKPOINT.getDisplayName());
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.RESUMING);
param.setNumRow(2);
param.setShow(true);
((List<IElementParameter>) dataConnec.getElementParameters()).add(param); // breakpoint
}
if (dataConnec.getLineStyle().hasConnectionCategory(IConnectionCategory.FLOW)) {
IElementParameter param = new ElementParameter(dataConnec);
param.setName(EParameterName.ACTIVEBREAKPOINT.getName());
param.setDisplayName(EParameterName.ACTIVEBREAKPOINT.getDisplayName());
param.setFieldType(EParameterFieldType.CHECK);
param.setCategory(EComponentCategory.BREAKPOINT);
param.setNumRow(13);
param.setValue(false);
param.setContextMode(false);
param.setShow(true);
((List<IElementParameter>) dataConnec.getElementParameters()).add(param);
IComponent component = ComponentsFactoryProvider.getInstance().get("tFilterRow",
ComponentCategory.CATEGORY_4_DI.getName());
DataNode tmpNode = new DataNode(component, "breakpointNode");
IElementParameter tmpParam = tmpNode.getElementParameter("LOGICAL_OP");
if (tmpParam != null) {
tmpParam.setCategory(EComponentCategory.BREAKPOINT);
tmpParam.setNumRow(14);
((List<IElementParameter>) dataConnec.getElementParameters()).add(tmpParam);
}
tmpParam = tmpNode.getElementParameter("CONDITIONS");
if (tmpParam != null) {
tmpParam.setCategory(EComponentCategory.BREAKPOINT);
tmpParam.setNumRow(15);
((List<IElementParameter>) dataConnec.getElementParameters()).add(tmpParam);
}
tmpParam = tmpNode.getElementParameter("USE_ADVANCED");
if (tmpParam != null) {
tmpParam.setCategory(EComponentCategory.BREAKPOINT);
tmpParam.setNumRow(16);
((List<IElementParameter>) dataConnec.getElementParameters()).add(tmpParam);
}
tmpParam = tmpNode.getElementParameter("ADVANCED_COND");
if (tmpParam != null) {
tmpParam.setCategory(EComponentCategory.BREAKPOINT);
tmpParam.setNumRow(17);
((List<IElementParameter>) dataConnec.getElementParameters()).add(tmpParam);
}
}
}
copyElementParametersValue(connection, dataConnec);
INode target = buildDataNodeFromNode(connection.getTarget(), prefix);
dataConnec.setTarget(target);
incomingConnections = (List<IConnection>) target.getIncomingConnections();
if (incomingConnections == null) {
incomingConnections = new ArrayList<IConnection>();
}
outgoingConnections.add(dataConnec);
incomingConnections.add(dataConnec);
if (!connection.getName().equals(name)) {
if (target instanceof AbstractExternalNode) {
// System.out.println("dataProcess: rename input:" + connection.getName() + " to " + name);
((AbstractExternalNode) target).renameInputConnection(connection.getName(), name);
}
if (dataNode instanceof AbstractExternalNode) {
// System.out.println("dataProcess: rename output:" + connection.getName() + " to " + name);
((AbstractExternalNode) dataNode).renameOutputConnection(connection.getName(), name);
}
}
}
}
return dataNode;
}
@@ -3092,6 +3114,45 @@ public class DataProcess implements IGeneratingProcess {
return null;
}
private Node cloneGraphicalNode(IProcess process, INode node) {
IComponent component = node.getComponent();
Node newGraphicalNode = null;
if (EComponentType.GENERIC.equals(component.getComponentType())) {
newGraphicalNode = new Node(node, (IProcess2) process);
} else {
newGraphicalNode = new Node(node.getComponent(), (IProcess2) process);
}
newGraphicalNode.setMetadataList(node.getMetadataList());
IExternalNode externalNode = node.getExternalNode();
if (externalNode != null) {
AbstractExternalData externalEmfData = externalNode.getExternalEmfData();
newGraphicalNode.getExternalNode().setExternalEmfData(externalEmfData);
}
// fwang fixed bug TDI-8027
IExternalData externalData = node.getExternalData();
if (externalData != null) {
try {
newGraphicalNode.setExternalData(externalData.clone());
} catch (CloneNotSupportedException e) {
newGraphicalNode.setExternalData(externalData);
}
}
copyElementParametersValue(node, newGraphicalNode);
if (newGraphicalNode.getComponentProperties() != null) {
List<Form> forms = newGraphicalNode.getComponentProperties().getForms();
for (Form form : forms) {
newGraphicalNode.getComponentProperties().refreshLayout(form);
}
}
newGraphicalNode.setDummy(node.isDummy());
ValidationRulesUtil.createRejectConnector(newGraphicalNode);
ValidationRulesUtil.updateRejectMetatable(newGraphicalNode, node);
return newGraphicalNode;
}
@SuppressWarnings("unchecked")
public INode buildNodeFromNode(final INode graphicalNode, final IProcess process) {
if (buildCheckMap == null) {
@@ -3101,56 +3162,15 @@ public class DataProcess implements IGeneratingProcess {
return (INode) buildGraphicalMap.get(graphicalNode);
}
IComponent component = graphicalNode.getComponent();
Node newGraphicalNode = null;
if (EComponentType.GENERIC.equals(component.getComponentType())) {
newGraphicalNode = new Node(graphicalNode, (IProcess2) process);
} else {
newGraphicalNode = new Node(graphicalNode.getComponent(), (IProcess2) process);
}
newGraphicalNode.setMetadataList(graphicalNode.getMetadataList());
// // for bug 11771
// IExternalData externalData = graphicalNode.getExternalData();
// if (externalData != null) {
// newGraphicalNode.setExternalData(externalData);
// }
// IExternalData externalData = graphicalNode.getExternalData();
IExternalNode externalNode = graphicalNode.getExternalNode();
if (externalNode != null) {
AbstractExternalData externalEmfData = externalNode.getExternalEmfData();
newGraphicalNode.getExternalNode().setExternalEmfData(externalEmfData);
}
// fwang fixed bug TDI-8027
IExternalData externalData = graphicalNode.getExternalData();
if (externalData != null) {
try {
newGraphicalNode.setExternalData(externalData.clone());
} catch (CloneNotSupportedException e) {
newGraphicalNode.setExternalData(externalData);
}
}
copyElementParametersValue(graphicalNode, newGraphicalNode);
if (newGraphicalNode.getComponentProperties() != null) {
List<Form> forms = newGraphicalNode.getComponentProperties().getForms();
for (Form form : forms) {
newGraphicalNode.getComponentProperties().refreshLayout(form);
}
}
newGraphicalNode.setDummy(graphicalNode.isDummy());
ValidationRulesUtil.createRejectConnector(newGraphicalNode);
ValidationRulesUtil.updateRejectMetatable(newGraphicalNode, graphicalNode);
Node newGraphicalNode = cloneGraphicalNode(process, graphicalNode);
NodeContainer nc = ((Process) process).loadNodeContainer(newGraphicalNode, false);
((Process) process).addNodeContainer(nc);
if(buildGraphicalMap == null){
initialize();
}
buildGraphicalMap.put(graphicalNode, newGraphicalNode);
IConnection dataConnec;
for (IConnection connection : (List<IConnection>) graphicalNode.getOutgoingConnections()) {
if (!connection.isActivate()) {
continue;
@@ -3161,8 +3181,9 @@ public class DataProcess implements IGeneratingProcess {
}
INode target = buildNodeFromNode(connTarget, process);
dataConnec = new Connection(newGraphicalNode, target, connection.getLineStyle(), connection.getConnectorName(),
connection.getMetaName(), connection.getName(), connection.getUniqueName(), connection.isMonitorConnection());
IConnection dataConnec = new Connection(newGraphicalNode, target, connection.getLineStyle(),
connection.getConnectorName(), connection.getMetaName(), connection.getName(), connection.getUniqueName(),
connection.isMonitorConnection());
// incomingConnections = (List<Connection>) target.getIncomingConnections();
// if (incomingConnections == null) {
// incomingConnections = new ArrayList<Connection>();
@@ -3172,6 +3193,7 @@ public class DataProcess implements IGeneratingProcess {
copyElementParametersValue(connection, dataConnec);
dataConnec.setTraceConnection(connection.isTraceConnection());
}
newGraphicalNode.setActivate(graphicalNode.isActivate());
newGraphicalNode.setStart(graphicalNode.isStart());
newGraphicalNode.setComponentProperties(graphicalNode.getComponentProperties());
@@ -3179,6 +3201,40 @@ public class DataProcess implements IGeneratingProcess {
return newGraphicalNode;
}
private void buildGraphicalNodeForInputConnections(IProcess process, INode graphicalNode, INode newGraphicalNode,
Set<INode> visitedNodes) {
if (visitedNodes.contains(graphicalNode)) {
return;
} else {
visitedNodes.add(graphicalNode);
}
List<IConnection> connections = (List<IConnection>) graphicalNode.getIncomingConnections();
if (connections == null || connections.isEmpty()) {
return;
}
for (IConnection connection : connections) {
if (!connection.isActivate()) {
continue;
}
INode sourceNode = connection.getSource();
// if it exists in the essential nodes, means the input and output are already both created, then no need to
// create it again
INode newSourceNode = (INode) buildGraphicalMap.get(sourceNode);
if (newSourceNode == null) {
// if it not exists in the essential nodes, create a new one, and don't put it into the Map!
newSourceNode = cloneGraphicalNode(process, sourceNode);
NodeContainer nc = ((Process) process).loadNodeContainer((Node) newSourceNode, false);
((Process) process).addNodeContainer(nc);
IConnection dataConnec = new Connection(newSourceNode, newGraphicalNode, connection.getLineStyle(),
connection.getConnectorName(), connection.getMetaName(), connection.getName(), connection.getUniqueName(),
connection.isMonitorConnection());
copyElementParametersValue(connection, dataConnec);
dataConnec.setTraceConnection(connection.isTraceConnection());
buildGraphicalNodeForInputConnections(process, sourceNode, newSourceNode, visitedNodes);
}
}
}
/**
* nrousseau Comment method "buildCopyOfGraphicalNodeList".
*
@@ -3227,6 +3283,13 @@ public class DataProcess implements IGeneratingProcess {
buildNodeFromNode(node, duplicatedProcess);
}
}
Set<INode> visitedNodes = new HashSet<INode>();
Set<Map.Entry> entrySet = buildGraphicalMap.entrySet();
for (Map.Entry entry : entrySet) {
INode node = (INode) entry.getKey();
INode newNode = (INode) entry.getValue();
buildGraphicalNodeForInputConnections(duplicatedProcess, node, newNode, visitedNodes);
}
// make sure the new tUnite incomingConnections order is the same as the old one. @see
// Connection.setInputId(int id)

View File

@@ -945,7 +945,7 @@ public class JobSettingsManager {
.getValue();
String fileSparator = (String) process.getElementParameter(EParameterName.FIELDSEPARATOR.getName()).getValue();
tContextLoadNode.getElementParameter(EParameterName.IMPLICIT_TCONTEXTLOAD_FILE.getName()).setValue(inputFile);
String regex = FileSeparator.getSeparatorsRegexp(TalendQuoteUtils.removeQuotes(fileSparator));
String regex = FileSeparator.getSeparatorsRegexp(fileSparator);
tContextLoadNode.getElementParameter(JobSettingsConstants.IMPLICIT_TCONTEXTLOAD_REGEX).setValue(regex);
} else {
// is db
@@ -1204,7 +1204,7 @@ public class JobSettingsManager {
realDbTypeForJDBC = ExtractMetaDataUtils.getInstance().getDbTypeByClassName(driverClassValue);
}
return realDbTypeForJDBC;
}
}
private static List<String> getMetadataChars() {
String[] metaChars = new String[] { "\\", "^", "$", ".", "?", "|", "[", "+", "*", "{", "(", ")", "}", "]" };
@@ -1213,24 +1213,35 @@ public class JobSettingsManager {
public static class FileSeparator {
private static List<String> METADATA_CHAR = getMetadataChars();
static String doRegexpQuote(String separators) {
if (StringUtils.isEmpty(separators)) {
return separators;
} else if (separators.length() == 1) {
if (separators.equals("\\")) { // special \ //$NON-NLS-1$
return "\\\\\\" + separators;//$NON-NLS-1$
} else if (getMetadataChars().contains(separators)) {
return "\\\\" + separators;//$NON-NLS-1$
return TalendQuoteUtils.addQuotes("");
}
String filedSeparator = TalendQuoteUtils.removeQuotes(separators);
if (filedSeparator.length() == 1) {
if (filedSeparator.equals("\\")) { // special \ //$NON-NLS-1$
return TalendQuoteUtils.addQuotes("\\\\\\" + filedSeparator);//$NON-NLS-1$
} else if (METADATA_CHAR.contains(filedSeparator)) {
return TalendQuoteUtils.addQuotes("\\\\" + filedSeparator);//$NON-NLS-1$
}
} else {
return doRegexpQuote(separators.substring(0, 1)) + doRegexpQuote(separators.substring(1));
} else if (filedSeparator.equals("||")) {// TUP-17232
return TalendQuoteUtils.addQuotes("\\\\" + "|" + "\\\\" + "|");//$NON-NLS-1$
}
return separators;
}
static String getSeparatorsRegexp(String fileSeparator) {
fileSeparator = TalendQuoteUtils.addQuotes(doRegexpQuote(fileSeparator));
fileSeparator = doRegexpQuote(fileSeparator);
return "\"^([^\"+" + fileSeparator + "+\"]*)\"+" + fileSeparator + "+\"(.*)$\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
private static List<String> getMetadataChars() {
String[] metaChars = new String[] { "\\", "^", "$", ".", "?", "|", "[", "+", "*", "{", "(", ")", "}", "]", "\"" };
return Arrays.asList(metaChars);
}
}
}

View File

@@ -110,6 +110,7 @@ import org.talend.core.language.ECodeLanguage;
import org.talend.core.model.components.IComponent;
import org.talend.core.model.components.IMultipleComponentManager;
import org.talend.core.model.context.JobContextManager;
import org.talend.core.model.general.ModuleNeeded;
import org.talend.core.model.metadata.builder.connection.Properties;
import org.talend.core.model.process.IContextManager;
import org.talend.core.model.process.IContextParameter;
@@ -970,6 +971,16 @@ public abstract class AbstractMultiPageTalendEditor extends MultiPageEditorPart
if (DesignerPlugin.getDefault().getPreferenceStore().getBoolean(TalendDesignerPrefConstants.GENERATE_CODE_WHEN_OPEN_JOB)) {
generateCode();
}else {
Set<ModuleNeeded> neededLibraries = CorePlugin.getDefault().getDesignerCoreService()
.getNeededLibrariesForProcess(process, false);
if (neededLibraries != null) {
try {
CorePlugin.getDefault().getRunProcessService()
.updateLibraries(neededLibraries, process, new HashSet<ModuleNeeded>());
} catch (Exception e) {
}
}
}
}

View File

@@ -296,6 +296,10 @@ public class PropertyChangeCommand extends Command {
}
List<? extends IConnection> connections = ((Node) elem).getOutgoingConnections();
for (IConnection connection : connections) {
if (!connection.getName().equals(oldELTValue)) {
//do nothing when custom connection name.
continue;
}
INode targetNode = connection.getTarget();
String componentName = targetNode.getComponent().getName();
if (componentName.matches("tELT.+Map")) { //$NON-NLS-1$
@@ -648,9 +652,6 @@ public class PropertyChangeCommand extends Command {
if (elementParameters == null) {
return;
}
if (!testedParam.isShow(elementParameters)) {
return;
}
boolean contains = false;
// zli
for (IElementParameterDefaultValue value : testedParam.getDefaultValues()) {

View File

@@ -2869,12 +2869,15 @@ public class Node extends Element implements IGraphicalNode {
case COMPONENT_LIST:
if (param != null) {
String errorMessage;
boolean isContextMode = false;
if (param.getValue() == null || "".equals(param.getValue())) { //$NON-NLS-1$
errorMessage = Messages.getString("Node.parameterEmpty", param.getDisplayName()); //$NON-NLS-1$
} else {
errorMessage = Messages.getString("Node.parameterNotExist", param.getDisplayName(), param.getValue()); //$NON-NLS-1$
isContextMode = param.isDynamicSettings();
}
if ((!hasUseExistingConnection(this)) || (isUseExistedConnetion(this))) {
if (!isContextMode && ((!hasUseExistingConnection(this)) || (isUseExistedConnetion(this)))) {
List<INode> list = (List<INode>) this.getProcess().getNodesOfType(param.getFilter());
if (list == null || list.size() == 0 || list.isEmpty()) {
Problems.add(ProblemStatus.ERROR, this, errorMessage);
@@ -3345,7 +3348,8 @@ public class Node extends Element implements IGraphicalNode {
// check not startable components not linked
if (getComponentProperties() == null) {
if ((getConnectorFromType(EConnectionType.FLOW_MAIN).getMaxLinkInput() == 0)
if (getConnectorFromType(EConnectionType.FLOW_MAIN) != null
&& (getConnectorFromType(EConnectionType.FLOW_MAIN).getMaxLinkInput() == 0)
&& (getConnectorFromType(EConnectionType.FLOW_MAIN).getMaxLinkOutput() != 0)) {
if ((getCurrentActiveLinksNbOutput(EConnectionType.FLOW_MAIN) == 0)
&& (getCurrentActiveLinksNbOutput(EConnectionType.FLOW_MERGE) == 0)

View File

@@ -1351,6 +1351,34 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
}
}
loadElementParameters(elemParam, pType, param, pType.getName(), paraValue, false);
} else {
boolean canAddElementParameter = false;
String paramName = pType.getName();
if (EParameterName.ACTIVE_DATABASE_DELIMITED_IDENTIFIERS.getName().equals(paramName)) {
canAddElementParameter = true;
}
if (canAddElementParameter) {
param = new ElementParameter(elemParam);
param.setValue(pType.getValue());
param.setName(pType.getName());
param.setCategory(EComponentCategory.TECHNICAL);
String fieldName = pType.getField();
EParameterFieldType fieldType = null;
if (StringUtils.isNotBlank(fieldName)) {
fieldType = EParameterFieldType.valueOf(fieldName);
}
if (fieldType == null) {
ExceptionHandler.process(new Exception("Can't find filed of " + fieldName));
continue;
}
param.setFieldType(fieldType);
param.setNumRow(99);
param.setShow(false);
param.setReadOnly(false);
elemParam.addElementParameter(param);
param = null;
continue;
}
}
}
}
@@ -2546,7 +2574,8 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
if (!listNames.contains(metadataTable.getTableName())) {
listNames.add(metadataTable.getTableName());
listMetaData.add(metadataTable);
if (nc.getConnectorFromType(EConnectionType.FLOW_MAIN).isMultiSchema()
if (nc.getConnectorFromType(EConnectionType.FLOW_MAIN) != null
&& nc.getConnectorFromType(EConnectionType.FLOW_MAIN).isMultiSchema()
&& checkValidConnectionName(metadataTable.getTableName())) {
addUniqueConnectionName(metadataTable.getTableName());
// for tmap 11884

View File

@@ -1684,6 +1684,7 @@ public class ProcessUpdateManager extends AbstractUpdateManager {
}
List<UpdateResult> propertiesResults = new ArrayList<UpdateResult>();
for (IElementParameter curPropertyParam : node.getElementParametersFromField(EParameterFieldType.PROPERTY_TYPE)) {
String propertyType = (String) curPropertyParam.getChildParameters().get(EParameterName.PROPERTY_TYPE.getName())
.getValue();
@@ -2197,6 +2198,8 @@ public class ProcessUpdateManager extends AbstractUpdateManager {
result.setResult(EUpdateItemType.NODE_PROPERTY, EUpdateResult.UPDATE, newValueParameter);
}
}
} else if (item != null && item instanceof RulesItem) {
// if the RulesItem is not null, that means the Rule exist, so do nothing
} else {
result = new UpdateCheckResult(node);
result.setResult(EUpdateItemType.NODE_PROPERTY, EUpdateResult.BUIL_IN, repositoryPropertyParam);

View File

@@ -1483,12 +1483,16 @@ public abstract class AbstractElementPropertySectionController implements Proper
String driverClass = getValueFromRepositoryName(element, EConnectionParameterName.DRIVER_CLASS.getName(),
basePropertyParameter);
String dbVersion = getValueFromRepositoryName(element, "DB_VERSION", basePropertyParameter);
connParameters.setDbVersion(dbVersion);
if (EDatabaseVersion4Drivers.VERTICA_5_1.getVersionValue().equals(dbVersion)
|| EDatabaseVersion4Drivers.VERTICA_6.getVersionValue().equals(dbVersion)
|| EDatabaseVersion4Drivers.VERTICA_6_1_X.getVersionValue().equals(dbVersion)
|| EDatabaseVersion4Drivers.VERTICA_7.getVersionValue().equals(dbVersion)) {
String driverName = getValueFromRepositoryName(element, "DB_VERSION", basePropertyParameter); //$NON-NLS-1$
if (StringUtils.isBlank(driverName) && EDatabaseTypeName.MSSQL.getDisplayName().equals(connParameters.getDbType())) {
driverName = getValueFromRepositoryName(element, "DRIVER", basePropertyParameter); //$NON-NLS-1$
}
String dbVersionName = EDatabaseVersion4Drivers.getDbVersionName(type, driverName);
connParameters.setDbVersion(dbVersionName);
if (EDatabaseVersion4Drivers.VERTICA_5_1.getVersionValue().equals(dbVersionName)
|| EDatabaseVersion4Drivers.VERTICA_6.getVersionValue().equals(dbVersionName)
|| EDatabaseVersion4Drivers.VERTICA_6_1_X.getVersionValue().equals(dbVersionName)
|| EDatabaseVersion4Drivers.VERTICA_7.getVersionValue().equals(dbVersionName)) {
driverClass = EDatabase4DriverClassName.VERTICA2.getDriverClass();
}

View File

@@ -130,7 +130,7 @@ public class DeploymentComposite extends AbstractTabComposite {
}
} else {
IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
if (esbService.isWSDLEditor(editor) && esbService.getServicesType() == repositoryViewObject.getRepositoryObjectType()) {
if (esbService != null && esbService.isWSDLEditor(editor)) {
serviceItem = esbService.getWSDLEditorItem(editor);
commandStack = (CommandStack) editor.getAdapter(CommandStack.class);
defaultVersion = getDefaultVersion(serviceItem.getProperty().getVersion());

View File

@@ -42,6 +42,7 @@ import org.talend.core.model.properties.Item;
import org.talend.core.model.properties.ProcessItem;
import org.talend.core.model.utils.ContextParameterUtils;
import org.talend.core.model.utils.TalendTextUtils;
import org.talend.core.runtime.process.LastGenerationInfo;
import org.talend.designer.core.IDesignerCoreService;
import org.talend.designer.core.model.components.EParameterName;
import org.talend.designer.core.model.components.EmfComponent;
@@ -178,6 +179,9 @@ public class JavaProcessUtil {
Set<ModuleNeeded> nodeNeededModules = getNeededModules(node, searchItems, withChildrens, forMR);
if (nodeNeededModules != null) {
modulesNeeded.addAll(nodeNeededModules);
if (node.getComponent().getName().equals("tLibraryLoad")) { //$NON-NLS-1$
LastGenerationInfo.getInstance().getHighPriorityModuleNeeded().addAll(nodeNeededModules);
}
}
}

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.dbmap</artifactId>

View File

@@ -68,7 +68,9 @@ ToolbarInputZone.widgetTooltip.removeAlias=Remove alias
ToolbarOutputZone.widgetTooltip.addOutputTable=Add output table
ToolbarOutputZone.widgetTooltip.removeOutputTable=Remove selected output table
ToolbarOutputZone.widgetTooltip.mapInputAndOutput=Map automatically inputs and outputs (for empty expressions only)
ToolbarOutputZone.widgetTooltip.delimitedIdentifiers=Active me to add double quotes for schemas to support delimited identifiers.
ToolbarOutputZone.widgetText.autoMap=Auto map\!
ToolbarOutputZone.widgetText.delimitedIdentifiers=Delimited identifiers
EntryContentProposal.metadataColumn=Metadata column
EntryContentProposal.properties=properties :

View File

@@ -29,16 +29,21 @@ import org.talend.core.model.components.IODataComponentContainer;
import org.talend.core.model.genhtml.HTMLDocUtils;
import org.talend.core.model.metadata.ColumnNameChanged;
import org.talend.core.model.metadata.IMetadataTable;
import org.talend.core.model.process.EComponentCategory;
import org.talend.core.model.process.EParameterFieldType;
import org.talend.core.model.process.IComponentDocumentation;
import org.talend.core.model.process.IConnection;
import org.talend.core.model.process.IElementParameter;
import org.talend.core.model.process.IExternalData;
import org.talend.core.model.process.IExternalNode;
import org.talend.core.model.process.INode;
import org.talend.core.model.process.Problem;
import org.talend.core.model.process.node.IExternalMapEntry;
import org.talend.core.model.temp.ECodePart;
import org.talend.designer.abstractmap.AbstractMapComponent;
import org.talend.designer.codegen.ICodeGeneratorService;
import org.talend.designer.core.model.components.EParameterName;
import org.talend.designer.core.model.components.ElementParameter;
import org.talend.designer.core.model.utils.emf.talendfile.AbstractExternalData;
import org.talend.designer.core.ui.editor.connections.Connection;
import org.talend.designer.dbmap.external.converter.ExternalNodeUtils;
@@ -159,6 +164,23 @@ public class DbMapComponent extends AbstractMapComponent {
*/
@Override
public void restoreMapperModelFromInternalData() {
INode origNode = getOriginalNode();
if (origNode != null) {
IElementParameter activeDelimitedIdentifiersEP = origNode
.getElementParameter(EParameterName.ACTIVE_DATABASE_DELIMITED_IDENTIFIERS.getName());
if (activeDelimitedIdentifiersEP == null) {
activeDelimitedIdentifiersEP = new ElementParameter(origNode);
activeDelimitedIdentifiersEP.setShow(false);
activeDelimitedIdentifiersEP.setFieldType(EParameterFieldType.TEXT);
activeDelimitedIdentifiersEP.setName(EParameterName.ACTIVE_DATABASE_DELIMITED_IDENTIFIERS.getName());
activeDelimitedIdentifiersEP.setCategory(EComponentCategory.TECHNICAL);
activeDelimitedIdentifiersEP.setNumRow(99);
activeDelimitedIdentifiersEP.setReadOnly(false);
List<IElementParameter> elemParams = (List<IElementParameter>) origNode.getElementParameters();
elemParams.add(activeDelimitedIdentifiersEP);
}
activeDelimitedIdentifiersEP.setValue(getGenerationManager().isUseDelimitedIdentifiers());
}
mapperMain.loadModelFromInternalData();
metadataListOut = mapperMain.getMetadataListOut();
externalData = mapperMain.buildExternalData();
@@ -572,11 +594,37 @@ public class DbMapComponent extends AbstractMapComponent {
} else {
throw new IllegalArgumentException(Messages.getString("DbMapComponent.unknowValue") + value); //$NON-NLS-1$
}
updateUseDelimitedIdentifiersStatus();
}
return generationManager;
}
@Override
public void setOriginalNode(INode originalNode) {
super.setOriginalNode(originalNode);
updateUseDelimitedIdentifiersStatus();
}
private void updateUseDelimitedIdentifiersStatus() {
if (generationManager == null) {
return;
}
INode oriNode = getOriginalNode();
if (oriNode != null) {
IElementParameter activeDelimitedIdentifiersEP = oriNode
.getElementParameter(EParameterName.ACTIVE_DATABASE_DELIMITED_IDENTIFIERS.getName());
boolean activeDelimitedIdentifiers = false;
if (activeDelimitedIdentifiersEP != null) {
Object value = activeDelimitedIdentifiersEP.getValue();
if (value != null) {
activeDelimitedIdentifiers = Boolean.valueOf(value.toString());
}
}
generationManager.setUseDelimitedIdentifiers(activeDelimitedIdentifiers);
}
}
/*
* (non-Javadoc)
*

View File

@@ -2,6 +2,7 @@ package org.talend.designer.dbmap.command;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.gef.commands.Command;
import org.talend.core.model.process.IConnection;
import org.talend.core.model.process.INode;
@@ -36,6 +37,8 @@ public class UpdateELTMapComponentCommand extends Command {
private void execute(String oldValue, String newValue) {
connection.setName(newValue);
// may have several tables with different aliases.
boolean isAliasIncludeTableName = false;
// update table name
for (IExternalMapTable input : newInputTables) {
if (input instanceof ExternalDbMapTable) {
@@ -43,6 +46,12 @@ public class UpdateELTMapComponentCommand extends Command {
if (oldValue.equals(dbMapTable.getName()) || oldValue.equals(dbMapTable.getTableName())) {
dbMapTable.setName(newValue);
dbMapTable.setTableName(newValue);
String alias = dbMapTable.getAlias();
if (alias != null) {
if (alias.contains(oldValue)) {
isAliasIncludeTableName = true;
}
}
}
}
}
@@ -52,15 +61,8 @@ public class UpdateELTMapComponentCommand extends Command {
List<ExternalDbMapEntry> entries = ((ExternalDbMapTable) output).getMetadataTableEntries();
for (ExternalDbMapEntry entry : entries) {
String expression = entry.getExpression();
if (expression != null && !"".equals(expression.trim())) { //$NON-NLS-1$
int index = expression.lastIndexOf("."); //$NON-NLS-1$
// at least "a.b"
if (index > 0) {
String connectionName = expression.substring(0, index);
if (oldValue.equals(connectionName)) {
entry.setExpression(newValue + expression.substring(index, expression.length()));
}
}
if (!StringUtils.isBlank(expression) && expression.contains(oldValue) && !isAliasIncludeTableName) {
entry.setExpression(expression.replace(oldValue, newValue));
}
}
}

View File

@@ -34,9 +34,14 @@ import org.talend.core.model.process.EConnectionType;
import org.talend.core.model.process.IConnection;
import org.talend.core.model.process.IContext;
import org.talend.core.model.process.IContextParameter;
import org.talend.core.model.process.IElementParameter;
import org.talend.core.model.process.IExternalNode;
import org.talend.core.model.process.INode;
import org.talend.core.model.process.IProcess;
import org.talend.core.model.utils.ContextParameterUtils;
import org.talend.core.model.utils.TalendTextUtils;
import org.talend.core.utils.TalendQuoteUtils;
import org.talend.designer.core.model.components.EParameterName;
import org.talend.designer.dbmap.DbMapComponent;
import org.talend.designer.dbmap.external.data.ExternalDbMapData;
import org.talend.designer.dbmap.external.data.ExternalDbMapEntry;
@@ -70,6 +75,14 @@ public abstract class DbGenerationManager {
protected String tabSpaceString = DEFAULT_TAB_SPACE_STRING;
protected static final String DEFAULT_TAB_SPACE_STRING = ""; //$NON-NLS-1$
protected List<String> queryColumnsSegments = new ArrayList<String>();
protected List<String> querySegments = new ArrayList<String>();
private Boolean useDelimitedIdentifiers;
protected INode source;
/**
* DOC amaumont GenerationManager constructor comment.
@@ -233,7 +246,12 @@ public abstract class DbGenerationManager {
* @return
*/
public String buildSqlSelect(DbMapComponent component, String outputTableName) {
return buildSqlSelect(component, outputTableName, DEFAULT_TAB_SPACE_STRING);
boolean checkUseUpdateStatement = checkUseUpdateStatement(component, outputTableName);
if (checkUseUpdateStatement) {
return buildSqlSelect(component, outputTableName, DEFAULT_TAB_SPACE_STRING, checkUseUpdateStatement);
} else {
return buildSqlSelect(component, outputTableName, DEFAULT_TAB_SPACE_STRING);
}
}
protected String getAliasOf(String tableName) {
@@ -249,10 +267,14 @@ public abstract class DbGenerationManager {
* @param tabSpaceString
* @return
*/
public String buildSqlSelect(DbMapComponent component, String outputTableName, String tabString) {
public String buildSqlSelect(DbMapComponent dbMapComponent, String outputTableName, String tabString) {
queryColumnsName = "\""; //$NON-NLS-1$
aliasAlreadyDeclared.clear();
queryColumnsSegments.clear();
querySegments.clear();
this.tabSpaceString = tabString;
DbMapComponent component = getDbMapComponent(dbMapComponent);
List<IConnection> outputConnections = (List<IConnection>) component.getOutgoingConnections();
@@ -288,10 +310,10 @@ public abstract class DbGenerationManager {
// outputTable = removeUnmatchingEntriesWithColumnsOfMetadataTable(outputTable, metadataTable);
}
}
sb.append("\""); //$NON-NLS-1$
sb.append(DbMapSqlConstants.SELECT);
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
appendSqlQuery(sb, "\"", false); //$NON-NLS-1$
appendSqlQuery(sb, DbMapSqlConstants.SELECT);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
List<ExternalDbMapEntry> metadataTableEntries = outputTable.getMetadataTableEntries();
if (metadataTableEntries != null) {
int lstSizeOutTableEntries = metadataTableEntries.size();
@@ -311,28 +333,29 @@ public abstract class DbGenerationManager {
expression += DbMapSqlConstants.SPACE + DbMapSqlConstants.AS + DbMapSqlConstants.SPACE
+ getAliasOf(dbMapEntry.getName());
}
String columnSegment = expression;
if (i > 0) {
sb.append(DbMapSqlConstants.COMMA);
sb.append(DbMapSqlConstants.SPACE);
appendSqlQuery(sb, DbMapSqlConstants.COMMA);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
queryColumnsName += DbMapSqlConstants.COMMA + DbMapSqlConstants.SPACE;
columnSegment = DbMapSqlConstants.COMMA + DbMapSqlConstants.SPACE + columnSegment;
}
if (expression != null && expression.trim().length() > 0) {
sb.append(expression);
appendSqlQuery(sb, expression);
queryColumnsName += expression;
queryColumnsSegments.add(columnSegment);
} else {
sb.append(DbMapSqlConstants.LEFT_COMMENT);
appendSqlQuery(sb, DbMapSqlConstants.LEFT_COMMENT);
String str = outputTable.getName() + DbMapSqlConstants.DOT + dbMapEntry.getName();
sb.append(Messages.getString("DbGenerationManager.OuputExpSetMessage", str)); //$NON-NLS-1$
sb.append(DbMapSqlConstants.RIGHT_COMMENT);
appendSqlQuery(sb, Messages.getString("DbGenerationManager.OuputExpSetMessage", str));//$NON-NLS-1$
appendSqlQuery(sb, DbMapSqlConstants.RIGHT_COMMENT);
}
}
}
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
sb.append(DbMapSqlConstants.FROM);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.FROM);
List<ExternalDbMapTable> inputTables = data.getInputTables();
// load input table in hash
@@ -358,8 +381,8 @@ public abstract class DbGenerationManager {
}
}
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
IJoinType previousJoinType = null;
for (int i = 0; i < lstSizeInputTables; i++) {
@@ -381,13 +404,14 @@ public abstract class DbGenerationManager {
buildTableDeclaration(component, sb, inputTables.get(i - 1), commaCouldBeAdded, crCouldBeAdded, true);
previousJoinType = joinType;
} else {
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
}
sb.append(DbMapSqlConstants.SPACE);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
}
String labelJoinType = joinType.getLabel();
sb.append(labelJoinType);
sb.append(DbMapSqlConstants.SPACE);
appendSqlQuery(sb, labelJoinType);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
if (joinType == AbstractDbLanguage.JOIN.CROSS_JOIN) {
ExternalDbMapTable nextTable = null;
if (i < lstSizeInputTables) {
@@ -403,19 +427,19 @@ public abstract class DbGenerationManager {
// } else {
// sb.append(" <!! NO JOIN CLAUSES FOR '" + inputTable.getName() + "' !!> ");
// }
sb.append(DbMapSqlConstants.SPACE);
sb.append(DbMapSqlConstants.ON);
sb.append(DbMapSqlConstants.LEFT_BRACKET);
sb.append(DbMapSqlConstants.SPACE);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, DbMapSqlConstants.ON);
appendSqlQuery(sb, DbMapSqlConstants.LEFT_BRACKET);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
if (!buildConditions(component, sb, inputTable, true, true)) {
sb.append(DbMapSqlConstants.LEFT_COMMENT);
sb.append(DbMapSqlConstants.SPACE);
sb.append(Messages.getString("DbGenerationManager.conditionNotSet")); //$NON-NLS-1$
sb.append(DbMapSqlConstants.SPACE);
sb.append(DbMapSqlConstants.RIGHT_COMMENT);
appendSqlQuery(sb, DbMapSqlConstants.LEFT_COMMENT);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, Messages.getString("DbGenerationManager.conditionNotSet"));//$NON-NLS-1$
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, DbMapSqlConstants.RIGHT_COMMENT);
}
sb.append(DbMapSqlConstants.SPACE);
sb.append(DbMapSqlConstants.RIGHT_BRACKET);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, DbMapSqlConstants.RIGHT_BRACKET);
}
}
@@ -473,35 +497,39 @@ public abstract class DbGenerationManager {
boolean whereOriginalFlag = !originalWhereAddition.isEmpty();
if (whereFlag || whereAddFlag || whereOriginalFlag) {
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
sb.append(DbMapSqlConstants.WHERE);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.WHERE);
}
if (whereFlag) {
sb.append(whereClauses);
appendSqlQuery(sb, whereClauses);
}
if (whereAddFlag) {
for (int i = 0; i < whereAddition.size(); i++) {
if (i == 0 && whereFlag || i > 0) {
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
sb.append(DbMapSqlConstants.SPACE);
sb.append(DbMapSqlConstants.AND);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, DbMapSqlConstants.AND);
}
sb.append(DbMapSqlConstants.SPACE);
sb.append(whereAddition.get(i));
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, whereAddition.get(i));
}
}
if (whereOriginalFlag) {
for (String s : originalWhereAddition) {
sb.append(DbMapSqlConstants.NEW_LINE);
sb.append(DbMapSqlConstants.SPACE);
sb.append(s);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, s);
}
}
if (!otherAddition.isEmpty()) {
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
for (String s : otherAddition) {
sb.append(s);
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
appendSqlQuery(sb, s);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
}
}
}
@@ -514,9 +542,11 @@ public abstract class DbGenerationManager {
sqlQuery = sqlQuery.replaceAll("\\b" + context + "\\b", "\" +" + context + "+ \""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
haveReplace = true;
}
replaceQueryContext(querySegments, context);
if (queryColumnsName.contains(context)) {
queryColumnsName = queryColumnsName.replaceAll("\\b" + context + "\\b", "\" +" + context + "+ \""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
}
replaceQueryContext(queryColumnsSegments, context);
}
if (!haveReplace) {
List<String> connContextList = getConnectionContextList(component);
@@ -524,9 +554,11 @@ public abstract class DbGenerationManager {
if (sqlQuery.contains(context)) {
sqlQuery = sqlQuery.replaceAll("\\b" + context + "\\b", "\" +" + context + "+ \""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
}
replaceQueryContext(querySegments, context);
if (queryColumnsName.contains(context)) {
queryColumnsName = queryColumnsName.replaceAll("\\b" + context + "\\b", "\" +" + context + "+ \""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
}
replaceQueryContext(queryColumnsSegments, context);
}
}
}
@@ -535,6 +567,335 @@ public abstract class DbGenerationManager {
return sqlQuery;
}
public String buildSqlSelect(DbMapComponent dbMapComponent, String outputTableName, String tabString,
boolean checkUseUpdateStatement) {
queryColumnsName = "\""; //$NON-NLS-1$
aliasAlreadyDeclared.clear();
queryColumnsSegments.clear();
querySegments.clear();
this.tabSpaceString = tabString;
DbMapComponent component = getDbMapComponent(dbMapComponent);
List<IConnection> outputConnections = (List<IConnection>) component.getOutgoingConnections();
Map<String, IConnection> nameToOutputConnection = new HashMap<String, IConnection>();
for (IConnection connection : outputConnections) {
nameToOutputConnection.put(connection.getUniqueName(), connection);
}
ExternalDbMapData data = (ExternalDbMapData)component.getExternalData();
StringBuilder sb = new StringBuilder();
List<ExternalDbMapTable> outputTables = data.getOutputTables();
int lstOutputTablesSize = outputTables.size();
ExternalDbMapTable outputTable = null;
for (int i = 0; i < lstOutputTablesSize; i++) {
ExternalDbMapTable temp = outputTables.get(i);
if (outputTableName.equals(temp.getName())) {
outputTable = temp;
break;
}
}
if (outputTable != null) {
String outTableName = outputTable.getTableName();
IConnection connection = nameToOutputConnection.get(outputTable.getName());
List<IMetadataColumn> columns = new ArrayList<IMetadataColumn>();
if (connection != null) {
IMetadataTable metadataTable = connection.getMetadataTable();
if (metadataTable != null) {
columns.addAll(metadataTable.getListColumns());
}
}
// Update
String targetSchemaTable = outTableName;
IElementParameter eltSchemaNameParam = source.getElementParameter("ELT_SCHEMA_NAME"); //$NON-NLS-1$
if (eltSchemaNameParam != null && eltSchemaNameParam.getValue() != null) {
String schema = TalendQuoteUtils.removeQuotesIfExist(String.valueOf(eltSchemaNameParam.getValue()));
if (org.apache.commons.lang.StringUtils.isNotEmpty(schema)) {
targetSchemaTable = schema + DbMapSqlConstants.DOT + outTableName;
}
}
appendSqlQuery(sb, "\"", false); //$NON-NLS-1$
appendSqlQuery(sb, DbMapSqlConstants.UPDATE);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, targetSchemaTable);
appendSqlQuery(sb, tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
// Set
String keyColumn = DbMapSqlConstants.EMPTY;
List<ExternalDbMapEntry> metadataTableEntries = outputTable.getMetadataTableEntries();
if (metadataTableEntries != null) {
appendSqlQuery(sb, "SET"); //$NON-NLS-1$
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
boolean isKey = false;
int lstSizeOutTableEntries = metadataTableEntries.size();
for (int i = 0; i < lstSizeOutTableEntries; i++) {
ExternalDbMapEntry dbMapEntry = metadataTableEntries.get(i);
String columnEntry = dbMapEntry.getName();
String expression = dbMapEntry.getExpression();
expression = initExpression(component, dbMapEntry);
expression = addQuoteForSpecialChar(expression, component);
//
if (!DEFAULT_TAB_SPACE_STRING.equals(this.tabSpaceString)) {
expression += DbMapSqlConstants.SPACE + DbMapSqlConstants.AS + DbMapSqlConstants.SPACE
+ getAliasOf(dbMapEntry.getName());
}
String columnSegment = expression;
if (i > 0) {
queryColumnsName += DbMapSqlConstants.COMMA + DbMapSqlConstants.SPACE;
columnSegment = DbMapSqlConstants.COMMA + DbMapSqlConstants.SPACE + columnSegment;
}
if (expression != null && expression.trim().length() > 0) {
queryColumnsName += expression;
queryColumnsSegments.add(columnSegment);
}
//
if (!isKey) {
for (IMetadataColumn column : columns) {
String columnName = column.getLabel();
if (columnName.equals(dbMapEntry.getName()) && column.isKey()) {
isKey = column.isKey();
keyColumn = columnEntry + " = " + expression;//$NON-NLS-1$
break;
}
}
if (isKey) {
continue;
}
}
if (expression != null && expression.trim().length() > 0) {
appendSqlQuery(sb, columnEntry + " = " + expression); //$NON-NLS-1$
if (i < lstSizeOutTableEntries - 1) {
appendSqlQuery(sb, DbMapSqlConstants.COMMA);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
}
}
}
}
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
// From
appendSqlQuery(sb, tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.FROM);
List<ExternalDbMapTable> inputTables = data.getInputTables();
// load input table in hash
boolean explicitJoin = false;
int lstSizeInputTables = inputTables.size();
Map<String, ExternalDbMapTable> nameToInputTable = new HashMap<String, ExternalDbMapTable>();
for (int i = 0; i < lstSizeInputTables; i++) {
ExternalDbMapTable inputTable = inputTables.get(i);
nameToInputTable.put(inputTable.getName(), inputTable);
IJoinType joinType = language.getJoin(inputTable.getJoinType());
if (!language.unuseWithExplicitJoin().contains(joinType) && i > 0) {
explicitJoin = true;
}
}
appendSqlQuery(sb, tabSpaceString);
for (int i = 0; i < lstSizeInputTables; i++) {
ExternalDbMapTable inputTable = inputTables.get(i);
IJoinType joinType = null;
if (i == 0) {
joinType = AbstractDbLanguage.JOIN.NO_JOIN;
} else {
joinType = language.getJoin(inputTable.getJoinType());
}
boolean commaCouldBeAdded = !explicitJoin && i > 0;
if (language.unuseWithExplicitJoin().contains(joinType) && !explicitJoin) {
buildTableDeclaration(component, sb, inputTable, commaCouldBeAdded, false, false);
}
}
// where
StringBuilder sbWhere = new StringBuilder();
this.tabSpaceString = DEFAULT_TAB_SPACE_STRING;
boolean isFirstClause = true;
for (int i = 0; i < lstSizeInputTables; i++) {
ExternalDbMapTable inputTable = inputTables.get(i);
if (buildConditions(component, sbWhere, inputTable, false, isFirstClause)) {
isFirstClause = false;
}
}
/*
* for addition conditions
*/
// like as input.newcolumn1>100
List<String> whereAddition = new ArrayList<String>();
// olny pure start with group or order, like as order/group by input.newcolumn1
// List<String> byAddition = new ArrayList<String>();
// like as input.newcolumn1>100 group/oder by input.newcolumn1
// List<String> containWhereAddition = new ArrayList<String>();
// like as "OR/AND input.newcolumn1", will keep original
List<String> originalWhereAddition = new ArrayList<String>();
List<String> otherAddition = new ArrayList<String>();
if (outputTable != null) {
List<ExternalDbMapEntry> customWhereConditionsEntries = outputTable.getCustomWhereConditionsEntries();
if (customWhereConditionsEntries != null) {
for (ExternalDbMapEntry entry : customWhereConditionsEntries) {
String exp = initExpression(component, entry);
if (exp != null && !DbMapSqlConstants.EMPTY.equals(exp.trim())) {
if (containWith(exp, DbMapSqlConstants.OR, true) || containWith(exp, DbMapSqlConstants.AND, true)) {
originalWhereAddition.add(exp);
} else {
whereAddition.add(exp);
}
}
}
}
List<ExternalDbMapEntry> customOtherConditionsEntries = outputTable.getCustomOtherConditionsEntries();
if (customOtherConditionsEntries != null) {
for (ExternalDbMapEntry entry : customOtherConditionsEntries) {
String exp = initExpression(component, entry);
if (exp != null && !DbMapSqlConstants.EMPTY.equals(exp.trim())) {
otherAddition.add(exp);
}
}
}
}
this.tabSpaceString = tabString;
String whereClauses = sbWhere.toString();
boolean whereFlag = whereClauses.trim().length() > 0;
boolean whereAddFlag = !whereAddition.isEmpty();
boolean whereOriginalFlag = !originalWhereAddition.isEmpty();
if (whereFlag || whereAddFlag || whereOriginalFlag) {
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.WHERE);
}
if (whereFlag) {
appendSqlQuery(sb, whereClauses);
}
if (whereAddFlag) {
for (int i = 0; i < whereAddition.size(); i++) {
if (i == 0 && whereFlag || i > 0) {
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, DbMapSqlConstants.AND);
}
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, whereAddition.get(i));
}
}
if (whereOriginalFlag) {
for (String s : originalWhereAddition) {
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, s);
}
}
if (!otherAddition.isEmpty()) {
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
for (String s : otherAddition) {
appendSqlQuery(sb, s);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
}
}
}
String sqlQuery = sb.toString();
sqlQuery = handleQuery(sqlQuery);
queryColumnsName = handleQuery(queryColumnsName);
return sqlQuery;
}
protected DbMapComponent getDbMapComponent(DbMapComponent dbMapComponent) {
DbMapComponent component = dbMapComponent;
INode realGraphicalNode = dbMapComponent.getRealGraphicalNode();
if (realGraphicalNode != null) {
IExternalNode externalNode = realGraphicalNode.getExternalNode();
if (externalNode instanceof DbMapComponent) {
component = (DbMapComponent) externalNode;
}
}
checkParameters(component);
return component;
}
protected void checkParameters(DbMapComponent component) {
checkUseDelimitedIdentifiers(component);
}
protected boolean checkUseUpdateStatement(DbMapComponent dbMapComponent, String outputTableName) {
List<IConnection> outputConnections = (List<IConnection>) dbMapComponent.getOutgoingConnections();
if (outputConnections != null) {
IConnection iconn = this.getConnectonByMetadataName(outputConnections, outputTableName);
if (iconn != null&&iconn.getTarget()!=null) {
source = iconn.getTarget();
IElementParameter useUpdateStatementParam = source.getElementParameter("USE_UPDATE_STATEMENT"); //$NON-NLS-1$
if (useUpdateStatementParam != null && useUpdateStatementParam.isShow(source.getElementParameters())
&& useUpdateStatementParam.getValue() != null) {
return Boolean.valueOf(useUpdateStatementParam.getValue().toString());
}
}
}
return false;
}
protected void checkUseDelimitedIdentifiers(DbMapComponent component) {
/**
* in elt related component javajets(like tELTMSSqlMap_main.javajet), they don't get DbGenerationManager by
* DbMapComponent#getGenerationManager() while they construct a new manager manually, so some parameters may not
* be initialised, then need to check these parameters here manually to make sure they are initialised.
*/
if (this.useDelimitedIdentifiers == null) {
this.useDelimitedIdentifiers = false;
IElementParameter activeDelimitedIdentifiersEP = component
.getElementParameter(EParameterName.ACTIVE_DATABASE_DELIMITED_IDENTIFIERS.getName());
if (activeDelimitedIdentifiersEP != null) {
Object value = activeDelimitedIdentifiersEP.getValue();
if (value != null) {
setUseDelimitedIdentifiers(Boolean.valueOf(value.toString()));
}
}
}
}
protected void replaceQueryContext(List<String> querySegments, String context) {
if (querySegments == null || querySegments.size() == 0) {
return;
}
for (int i = 0; i < querySegments.size(); i++) {
String segment = querySegments.get(i);
if (segment.contains(context)) {
segment = segment.replaceAll("\\b" + context + "\\b", "\" +" + context + "+ \""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
querySegments.set(i, segment);
}
}
}
protected void appendSqlQuery(StringBuilder sb, String value) {
appendSqlQuery(sb, value, true);
}
protected void appendSqlQuery(StringBuilder sb, String value, boolean addToQuerySegment) {
if (!"".equals(value)) {//$NON-NLS-1$
sb.append(value);
if (addToQuerySegment) {
querySegments.add(value);
}
}
}
public List<String> getQuerySegments() {
return querySegments;
}
public List<String> getQueryColumnsSegments() {
return queryColumnsSegments;
}
protected String handleQuery(String query) {
if (query != null) {
@@ -645,6 +1006,7 @@ public abstract class DbGenerationManager {
} else {
tableName = getHandledField(table.getAlias());
}
entryName = getColumnName(null, entryName);
String locationInputEntry = language.getLocation(tableName, getHandledField(entryName));
sbWhere.append(DbMapSqlConstants.SPACE);
sbWhere.append(locationInputEntry);
@@ -697,7 +1059,7 @@ public abstract class DbGenerationManager {
*/
protected void buildTableDeclaration(DbMapComponent component, StringBuilder sb, ExternalDbMapTable inputTable,
boolean commaCouldBeAdded, boolean crCouldBeAdded, boolean writingInJoin) {
sb.append(DbMapSqlConstants.SPACE);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
String alias = inputTable.getAlias();
if (alias != null) {
List<IConnection> inputConnections = (List<IConnection>) component.getIncomingConnections();
@@ -714,31 +1076,34 @@ public abstract class DbGenerationManager {
buildTableDeclaration(component, sb, inputTable);
} else if (!aliasAlreadyDeclared.contains(inputTable.getName())) {
if (crCouldBeAdded) {
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
}
if (commaCouldBeAdded) {
sb.append(DbMapSqlConstants.COMMA);
sb.append(DbMapSqlConstants.SPACE);
appendSqlQuery(sb, DbMapSqlConstants.COMMA);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
}
sb.append(getHandledTableName(component, inputTable.getTableName()));
sb.append(DbMapSqlConstants.SPACE);
sb.append(getHandledField(alias));
String handledTableName = getHandledTableName(component, inputTable.getTableName());
appendSqlQuery(sb, handledTableName);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
String handledField = getHandledField(alias);
appendSqlQuery(sb, handledField);
aliasAlreadyDeclared.add(alias);
} else {
if (writingInJoin) {
sb.append(getHandledTableName(component, inputTable.getName()));
appendSqlQuery(sb, getHandledTableName(component, inputTable.getName()));
}
}
} else {
if (crCouldBeAdded) {
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
}
if (commaCouldBeAdded) {
sb.append(DbMapSqlConstants.COMMA);
sb.append(DbMapSqlConstants.SPACE);
appendSqlQuery(sb, DbMapSqlConstants.COMMA);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
}
buildTableDeclaration(component, sb, inputTable);
}
}
@@ -754,6 +1119,19 @@ public abstract class DbGenerationManager {
}
return retConnection;
}
protected IConnection getConnectonByMetadataName(List<IConnection> connections, String metaTableName) {
IConnection retConnection = null;
for (IConnection iconn : connections) {
IMetadataTable metadataTable = iconn.getMetadataTable();
String tName = iconn.getMetaName() != null ? iconn.getMetaName() : iconn.getUniqueName();
if (tName.equals(metaTableName) && metadataTable != null) {
retConnection = iconn;
break;
}
}
return retConnection;
}
protected void buildTableDeclaration(DbMapComponent component, StringBuilder sb, ExternalDbMapTable inputTable) {
Object inConns = component.getIncomingConnections();
@@ -788,9 +1166,15 @@ public abstract class DbGenerationManager {
int begin = 1;
int end = deliveredTable.length() - 1;
if (begin <= end) {
sb.append("(").append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString).append(" "); //$NON-NLS-1$ //$NON-NLS-2$
sb.append(deliveredTable.substring(begin, end)).append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString)
.append(" ) "); //$NON-NLS-1$
appendSqlQuery(sb, "("); //$NON-NLS-1$
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
appendSqlQuery(sb, " "); //$NON-NLS-1$
appendSqlQuery(sb, deliveredTable.substring(begin, end));
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
appendSqlQuery(sb, " ) "); //$NON-NLS-1$
}
}
String tableColneName = tableName;
@@ -807,9 +1191,8 @@ public abstract class DbGenerationManager {
String tableLabel = tableEntry.getKey();
String schemaValue = tableEntry.getValue();
if (tableLabel.equals(metadataTable.getLabel()) && tableColneName.equals(tableLabel)) {
sb.append(schemaValue);
sb.append("."); //$NON-NLS-1$
sb.append(tableName);
String name = schemaValue + "." + tableName; //$NON-NLS-1$
appendSqlQuery(sb, name);
replace = true;
}
}
@@ -817,16 +1200,14 @@ public abstract class DbGenerationManager {
}
} else if (tableName != null) {
if (inputTableName.equals(metadataTable.getLabel()) && tableColneName.equals(inputTableName)) {
sb.append(tableName);
appendSqlQuery(sb, tableName);
replace = true;
}
}
if (!replace) {
sb.append(inputTable.getName());
appendSqlQuery(sb, inputTable.getName());
}
}
}
protected static boolean isELTDBMap(INode node) {
@@ -934,16 +1315,24 @@ public abstract class DbGenerationManager {
continue;
}
if (expression.trim().equals(tableValue + "." + oriName)) {
expression = tableValue + "." + getColumnName(iconn, oriName);
expression = expression.replace("\"", "\\\"");
continue;
}
if (expression.trim().equals(originaltableName + "." + oriName)) {
expression = originaltableName + "." + getColumnName(iconn, oriName);
expression = expression.replace("\"", "\\\"");
continue;
}
// if it is temp delived table, use label to generate sql
if (iconn.getLineStyle() == EConnectionType.TABLE_REF) {
continue;
}
oriName = oriName.replaceAll("\\$", "\\\\\\$"); //$NON-NLS-1$ //$NON-NLS-2$
if (!isRefTableConnection(iconn) && isUseDelimitedIdentifiers()) {
oriName = getColumnName(iconn, oriName);
} else {
oriName = oriName.replaceAll("\\$", "\\\\\\$"); //$NON-NLS-1$ //$NON-NLS-2$
}
expression = expression.replaceFirst("\\." + co.getLabel(), //$NON-NLS-1$
"\\." + oriName); //$NON-NLS-1$
expression = expression.replace("\"", "\\\"");
@@ -1022,8 +1411,43 @@ public abstract class DbGenerationManager {
return name;
}
protected String getColumnName(IConnection conn, String name) {
if (!isRefTableConnection(conn) && isUseDelimitedIdentifiers()) {
return getNameWithDelimitedIdentifier(name);
} else {
return name;
}
}
protected boolean isRefTableConnection(IConnection conn) {
return conn != null && conn.getLineStyle() == EConnectionType.TABLE_REF;
}
protected String getNameWithDelimitedIdentifier(String name) {
final String delimitedIdentifier = getDelimitedIdentifiers();
String newName = name;
newName = newName.replaceAll("\"", "\"\"");
newName = delimitedIdentifier + newName + delimitedIdentifier;
return newName;
}
protected String getDelimitedIdentifiers() {
return "\""; //$NON-NLS-1$
}
protected String getHandledField(String field) {
if (field != null) {
field = field.replace("\"", "\\\"");
}
return field;
}
public boolean isUseDelimitedIdentifiers() {
return Boolean.TRUE.equals(this.useDelimitedIdentifiers);
}
public void setUseDelimitedIdentifiers(boolean useDelimitedIdentifiers) {
this.useDelimitedIdentifiers = useDelimitedIdentifiers;
}
}

View File

@@ -42,8 +42,12 @@ public interface DbMapSqlConstants {
*
*/
public final static String SELECT = "SELECT"; //$NON-NLS-1$
public final static String UPDATE = "UPDATE"; //$NON-NLS-1$
public final static String FROM = "FROM"; //$NON-NLS-1$
public final static String INNER_JOIN = "INNER JOIN"; //$NON-NLS-1$
public final static String WHERE = "WHERE"; //$NON-NLS-1$

View File

@@ -42,7 +42,12 @@ public class HiveGenerationManager extends DbGenerationManager {
if (inputTableName != null && inputTableName.contains(".")) {
String[] inputTableNames = inputTableName.split("\\.");
if (inputTableNames.length > 1) {
query = query.replaceAll(inputTableName + "\\.", inputTableNames[1] + ".");
query = query.replaceAll(inputTableName + "\\.", inputTableNames[1] + "."); //$NON-NLS-1$ //$NON-NLS-2$
for (int i = 0; i < querySegments.size(); i++) {
String segment = querySegments.get(i);
segment = segment.replaceAll(inputTableName + "\\.", inputTableNames[1] + "."); //$NON-NLS-1$ //$NON-NLS-2$
querySegments.set(i, segment);
}
}
}
}

View File

@@ -62,11 +62,15 @@ public class OracleGenerationManager extends DbGenerationManager {
* @return
*/
@Override
public String buildSqlSelect(DbMapComponent component, String outputTableName, String tabString) {
public String buildSqlSelect(DbMapComponent dbMapComponent, String outputTableName, String tabString) {
queryColumnsName = "\""; //$NON-NLS-1$
aliasAlreadyDeclared.clear();
queryColumnsSegments.clear();
querySegments.clear();
this.tabSpaceString = tabString;
DbMapComponent component = getDbMapComponent(dbMapComponent);
List<IConnection> outputConnections = (List<IConnection>) component.getOutgoingConnections();
Map<String, IConnection> nameToOutputConnection = new HashMap<String, IConnection>();
@@ -101,9 +105,10 @@ public class OracleGenerationManager extends DbGenerationManager {
// outputTable = removeUnmatchingEntriesWithColumnsOfMetadataTable(outputTable, metadataTable);
}
}
sb.append("\""); //$NON-NLS-1$
sb.append(DbMapSqlConstants.SELECT);
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
appendSqlQuery(sb, "\"", false); //$NON-NLS-1$
appendSqlQuery(sb, DbMapSqlConstants.SELECT);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
List<ExternalDbMapEntry> metadataTableEntries = outputTable.getMetadataTableEntries();
if (metadataTableEntries != null) {
@@ -126,14 +131,15 @@ public class OracleGenerationManager extends DbGenerationManager {
+ getAliasOf(dbMapEntry.getName());
added = true;
}
String columnSegment = expression;
if (i > 0) {
sb.append(DbMapSqlConstants.COMMA);
sb.append(DbMapSqlConstants.SPACE);
appendSqlQuery(sb, DbMapSqlConstants.COMMA);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
queryColumnsName += DbMapSqlConstants.COMMA + DbMapSqlConstants.SPACE;
columnSegment = DbMapSqlConstants.COMMA + DbMapSqlConstants.SPACE + columnSegment;
}
if (expression != null && expression.trim().length() > 0) {
sb.append(expression);
appendSqlQuery(sb, expression);
if (component.getMapperMain() == null) {
component.getExternalEmfData();
}
@@ -158,22 +164,25 @@ public class OracleGenerationManager extends DbGenerationManager {
}
}
if (!added && columnChanged) {
sb.append(DbMapSqlConstants.SPACE + DbMapSqlConstants.AS + DbMapSqlConstants.SPACE
+ getAliasOf(dbMapEntry.getName()));
String name = DbMapSqlConstants.SPACE + DbMapSqlConstants.AS + DbMapSqlConstants.SPACE
+ getAliasOf(dbMapEntry.getName());
appendSqlQuery(sb, name);
}
}
queryColumnsName += expression;
queryColumnsSegments.add(columnSegment);
} else {
sb.append(DbMapSqlConstants.LEFT_COMMENT);
appendSqlQuery(sb, DbMapSqlConstants.LEFT_COMMENT);
String str = outputTable.getName() + DbMapSqlConstants.DOT + dbMapEntry.getName();
sb.append(Messages.getString("DbGenerationManager.OuputExpSetMessage", str)); //$NON-NLS-1$
sb.append(DbMapSqlConstants.RIGHT_COMMENT);
appendSqlQuery(sb, Messages.getString("DbGenerationManager.OuputExpSetMessage", str));//$NON-NLS-1$
appendSqlQuery(sb, DbMapSqlConstants.RIGHT_COMMENT);
}
}
}
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
sb.append(DbMapSqlConstants.FROM);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.FROM);
List<ExternalDbMapTable> inputTables = data.getInputTables();
@@ -200,7 +209,8 @@ public class OracleGenerationManager extends DbGenerationManager {
}
}
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
IJoinType previousJoinType = null;
@@ -223,13 +233,14 @@ public class OracleGenerationManager extends DbGenerationManager {
buildTableDeclaration(component, sb, inputTables.get(i - 1), commaCouldBeAdded, crCouldBeAdded, true);
previousJoinType = joinType;
} else {
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
}
sb.append(DbMapSqlConstants.SPACE);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
}
String labelJoinType = joinType.getLabel();
sb.append(labelJoinType);
sb.append(DbMapSqlConstants.SPACE);
appendSqlQuery(sb, labelJoinType);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
if (joinType == AbstractDbLanguage.JOIN.CROSS_JOIN) {
ExternalDbMapTable nextTable = null;
if (i < lstSizeInputTables) {
@@ -244,20 +255,20 @@ public class OracleGenerationManager extends DbGenerationManager {
// if (rightTable != null) {
// } else {
// sb.append(" <!! NO JOIN CLAUSES FOR '" + inputTable.getName() + "' !!> ");
// }
sb.append(DbMapSqlConstants.SPACE);
sb.append(DbMapSqlConstants.ON);
sb.append(DbMapSqlConstants.LEFT_BRACKET);
sb.append(DbMapSqlConstants.SPACE);
// }
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, DbMapSqlConstants.ON);
appendSqlQuery(sb, DbMapSqlConstants.LEFT_BRACKET);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
if (!buildConditions(component, sb, inputTable, true, true)) {
sb.append(DbMapSqlConstants.LEFT_COMMENT);
sb.append(DbMapSqlConstants.SPACE);
sb.append(Messages.getString("DbGenerationManager.conditionNotSet")); //$NON-NLS-1$
sb.append(DbMapSqlConstants.SPACE);
sb.append(DbMapSqlConstants.RIGHT_COMMENT);
appendSqlQuery(sb, DbMapSqlConstants.LEFT_COMMENT);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, Messages.getString("DbGenerationManager.conditionNotSet"));//$NON-NLS-1$
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, DbMapSqlConstants.RIGHT_COMMENT);
}
sb.append(DbMapSqlConstants.SPACE);
sb.append(DbMapSqlConstants.RIGHT_BRACKET);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, DbMapSqlConstants.RIGHT_BRACKET);
}
}
@@ -315,35 +326,39 @@ public class OracleGenerationManager extends DbGenerationManager {
boolean whereOriginalFlag = !originalWhereAddition.isEmpty();
if (whereFlag || whereAddFlag || whereOriginalFlag) {
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
sb.append(DbMapSqlConstants.WHERE);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.WHERE);
}
if (whereFlag) {
sb.append(whereClauses);
}
if (whereAddFlag) {
for (int i = 0; i < whereAddition.size(); i++) {
if (i == 0 && whereFlag || i > 0) {
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
sb.append(DbMapSqlConstants.SPACE);
sb.append(DbMapSqlConstants.AND);
if (i == 0 && whereFlag || i > 0) {
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, DbMapSqlConstants.AND);
}
sb.append(DbMapSqlConstants.SPACE);
sb.append(whereAddition.get(i));
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, whereAddition.get(i));
}
}
if (whereOriginalFlag) {
for (String s : originalWhereAddition) {
sb.append(DbMapSqlConstants.NEW_LINE);
sb.append(DbMapSqlConstants.SPACE);
sb.append(s);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, DbMapSqlConstants.SPACE);
appendSqlQuery(sb, s);
}
}
if (!otherAddition.isEmpty()) {
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
for (String s : otherAddition) {
sb.append(s);
sb.append(DbMapSqlConstants.NEW_LINE).append(tabSpaceString);
appendSqlQuery(sb, s);
appendSqlQuery(sb, DbMapSqlConstants.NEW_LINE);
appendSqlQuery(sb, tabSpaceString);
}
}
}
@@ -356,9 +371,11 @@ public class OracleGenerationManager extends DbGenerationManager {
sqlQuery = sqlQuery.replaceAll("\\b" + context + "\\b", "\" +" + context + "+ \""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
haveReplace = true;
}
replaceQueryContext(querySegments, context);
if (queryColumnsName.contains(context)) {
queryColumnsName = queryColumnsName.replaceAll("\\b" + context + "\\b", "\" +" + context + "+ \""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
}
replaceQueryContext(queryColumnsSegments, context);
}
if (!haveReplace) {
List<String> connContextList = getConnectionContextList(component);
@@ -366,9 +383,11 @@ public class OracleGenerationManager extends DbGenerationManager {
if (sqlQuery.contains(context)) {
sqlQuery = sqlQuery.replaceAll("\\b" + context + "\\b", "\" +" + context + "+ \""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
}
replaceQueryContext(querySegments, context);
if (queryColumnsName.contains(context)) {
queryColumnsName = queryColumnsName.replaceAll("\\b" + context + "\\b", "\" +" + context + "+ \""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
}
replaceQueryContext(queryColumnsSegments, context);
}
}
}

View File

@@ -200,6 +200,11 @@ public class PostgresGenerationManager extends DbGenerationManager {
return getHandledField(field, false);
}
@Override
protected String getColumnName(IConnection conn, String name) {
return name;
}
@Override
protected void buildTableDeclaration(DbMapComponent component, StringBuilder sb, ExternalDbMapTable inputTable) {
sb.append(getHandledTableName(component, inputTable.getTableName(), inputTable.getAlias(), true));

View File

@@ -776,6 +776,11 @@ public class MapperManager extends AbstractMapperManager {
uiManager.refreshSqlExpression();
}
public void useDelimitedIdentifiers(boolean useDelimitedIdentifiers) {
getComponent().getGenerationManager().setUseDelimitedIdentifiers(useDelimitedIdentifiers);
uiManager.refreshSqlExpression();
}
/**
* Getter for problemsManager.
*

View File

@@ -1,16 +1,10 @@
package org.talend.designer.dbmap.service;
import java.util.List;
import org.eclipse.gef.commands.Command;
import org.talend.core.model.process.IConnection;
import org.talend.core.model.process.INode;
import org.talend.core.model.process.node.IExternalMapTable;
import org.talend.designer.core.IDbMapDesignerService;
import org.talend.designer.dbmap.DbMapComponent;
import org.talend.designer.dbmap.command.UpdateELTMapComponentCommand;
import org.talend.designer.dbmap.external.data.ExternalDbMapEntry;
import org.talend.designer.dbmap.external.data.ExternalDbMapTable;
public class DbMapDesignerService implements IDbMapDesignerService {

View File

@@ -14,6 +14,7 @@ package org.talend.designer.dbmap.service;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.talend.core.model.process.IExternalNode;
import org.talend.core.service.IDbMapService;
import org.talend.designer.core.model.utils.emf.talendfile.AbstractExternalData;
@@ -42,25 +43,28 @@ public class DbMapService implements IDbMapService {
AbstractExternalData nodeData = nodeType.getNodeData();
if (nodeData instanceof DBMapData) {
DBMapData dbMapData = (DBMapData) nodeData;
// may have several tables with different aliases.
boolean isAliasIncludeTableName = false;
for (InputTable input : dbMapData.getInputTables()) {
if (input.getName().equals(oldValue) || input.getTableName().equals(oldValue)) {
input.setName(newValue);
input.setTableName(newValue);
String alias = input.getAlias();
if (alias != null) {
if (alias.contains(oldValue)) {
isAliasIncludeTableName = true;
}
}
}
}
// do this when no alias in expression(or has alias which alias = old tableName, when tableName change to new, don't change alias in expression)
for (OutputTable output : dbMapData.getOutputTables()) {
List<DBMapperTableEntry> entries = output.getDBMapperTableEntries();
for (DBMapperTableEntry entry : entries) {
String expression = entry.getExpression();
if (expression != null && !"".equals(expression.trim())) { //$NON-NLS-1$
int index = expression.lastIndexOf("."); //$NON-NLS-1$
// at least "a.b"
if (index > 0) {
String connectionName = expression.substring(0, index);
if (oldValue.equals(connectionName)) {
entry.setExpression(newValue + expression.substring(index, expression.length()));
}
}
if (!StringUtils.isBlank(expression) && expression.contains(oldValue) && !isAliasIncludeTableName) {
entry.setExpression(expression.replace(oldValue, newValue));
}
}
}

View File

@@ -36,6 +36,8 @@ public class ToolbarOutputZone extends ToolbarZone {
private ToolItem guessItem;
private ToolItem delimitedIdentifiersItem;
public static final String MINIMIZE_TOOLTIP = Messages.getString("ToolbarOutputZone.minimizeTooltip"); //$NON-NLS-1$
public static final String RESTORE_TOOLTIP = Messages.getString("ToolbarOutputZone.restorTooltip"); //$NON-NLS-1$
@@ -82,6 +84,11 @@ public class ToolbarOutputZone extends ToolbarZone {
guessItem.setToolTipText(Messages.getString("ToolbarOutputZone.widgetTooltip.mapInputAndOutput")); //$NON-NLS-1$
guessItem.setText(Messages.getString("ToolbarOutputZone.widgetText.autoMap")); //$NON-NLS-1$
delimitedIdentifiersItem = new ToolItem(getToolBarActions(), SWT.CHECK);
delimitedIdentifiersItem.setToolTipText(Messages.getString("ToolbarOutputZone.widgetTooltip.delimitedIdentifiers")); //$NON-NLS-1$
delimitedIdentifiersItem.setText(Messages.getString("ToolbarOutputZone.widgetText.delimitedIdentifiers")); //$NON-NLS-1$
delimitedIdentifiersItem
.setSelection(getMapperManager().getComponent().getGenerationManager().isUseDelimitedIdentifiers());
}
/**
@@ -91,6 +98,7 @@ public class ToolbarOutputZone extends ToolbarZone {
// final UIManager uiManager = getMapperManager().getUiManager();
addOutputItem.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
getMapperManager().addOutput();
}
@@ -99,6 +107,7 @@ public class ToolbarOutputZone extends ToolbarZone {
removeOutputItem.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
getMapperManager().removeSelectedOutputTable();
}
@@ -107,26 +116,40 @@ public class ToolbarOutputZone extends ToolbarZone {
guessItem.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
getMapperManager().mapAutomaticallly();
}
});
delimitedIdentifiersItem.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
getMapperManager().useDelimitedIdentifiers(delimitedIdentifiersItem.getSelection());
}
});
}
@Override
public String getMinimizeTooltipText() {
return MINIMIZE_TOOLTIP;
}
@Override
public String getRestoreTooltipText() {
return RESTORE_TOOLTIP;
}
@Override
public String getMoveUpTooltipText() {
return MOVE_UP_TOOLTIP;
}
@Override
public String getMoveDownTooltipText() {
return MOVE_DOWN_TOOLTIP;
}

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.documentation</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.filemultischemas</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.fileoutputxml</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.gefabstractmap</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>6.4.1-SNAPSHOT</version>
<version>6.4.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.hl7</artifactId>

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