Compare commits

...

62 Commits

Author SHA1 Message Date
jzhao
711e2dee5a fix(TPS-3626):release note 2019-12-05 15:21:55 +08:00
Roman
8c11e31911 feat(TDI-42819): correct behavior whe use log file (#3862) 2019-12-05 14:49:52 +08:00
Chao MENG
ddb69232e5 fix(TUP-24749): [7.2.1] issue to download component jar via https proxy (#4167) (#4184)
fix(TUP-24749): [7.2.1] issue to download component jar via https proxy
https://jira.talendforge.org/browse/TUP-24749
2019-12-02 10:52:01 +08:00
jiezhang-tlnd
a4ffd73a24 Jzhang/test patch tps 3491 (#4193)
* kjwang/Fix TUP-24748 CLONE - Modification in Context Variables is not (#4009) (#4047)

propagating to all jobs
https://jira.talendforge.org/browse/TUP-24748

* Jding/test patch tps 3474 (#4170)

* fix(TUP-24732) Studio Code tab doesn't generate code/show errors in Job (#4113)

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

* fix(TUP-24732)Studio Code tab doesn't generate code/show errors in Job (#4169)

https://jira.talendforge.org/browse/TUP-24732
2019-12-02 10:45:03 +08:00
Hanna Liashchuk
6bb63c2a6d backport(TPS-3600): tBigQueryBulkExec get error when run with big file (#4190) 2019-11-29 16:51:11 +01:00
AlixMetivier
e7881d1ecd patch(tps-3592): cherry pick (#4189)
* cherry pick

* cherry pick
2019-11-29 15:34:46 +01:00
hwang
8b879dcbbd bugfix(TUP-24937):Propagate changes in tELTInput schema to tELTMap 2019-11-22 16:17:12 +08:00
hwang
87b860b0b1 Revert "bugfix(TUP-24937):Propagate changes in tELTInput schema to tELTMap"
This reverts commit 9b736bf30a.
2019-11-22 16:12:07 +08:00
hwang
3f5a74d847 Revert "bugfix(TUP-24937):Propagate changes in tELTInput schema to tELTMap"
This reverts commit dd6501d8c6.
2019-11-22 16:11:15 +08:00
hwang
dd6501d8c6 bugfix(TUP-24937):Propagate changes in tELTInput schema to tELTMap 2019-11-21 22:09:08 +08:00
hwang
9b736bf30a bugfix(TUP-24937):Propagate changes in tELTInput schema to tELTMap 2019-11-21 22:07:22 +08:00
hcyi
09b2ad8aa6 fix(TUP-25218):tELTXXXMap: Output table : Expression & Column set to
blank if you add a Column without Expression on Mac OS X.
2019-11-15 16:45:02 +08:00
hcyi
245f1c42c2 TPS-3542 : [7.2.1] ELTMap / Teradata connexion fixes (#4136)
* fix(TUP-24885):tELTTeradataMap: Output table : Expression & Column set (#4048)

to blank if you add a Column without Expression.

* fix(TUP-24937):Propagate changes in tELTInput schema to tELTMap.
2019-11-14 11:31:13 +08:00
apoltavtsev
03085d1574 TESB-27110 Missing tSendMail dependencies are added 2019-11-13 09:20:23 +01:00
hwang
5fb4589799 bugfix(TUP-24884):Spark Joblets cannot be built within Parent DI job 2019-11-11 15:00:43 +08:00
nrousseau
7a69ed4c4d Nrousseau/tup 24884 backport (#4110)
* bugfix(TUP-24884):Spark Joblets cannot be built within Parent DI job (#4042)

bugfix(TUP-24884):Spark Joblets cannot be built within Parent DI job

* bugfix(TUP-24884):Spark Joblets cannot be built within Parent DI job (#4101)

bugfix(TUP-24884):Spark Joblets cannot be built within Parent DI job
2019-11-08 14:12:54 +08:00
Zhiwei Xue
a38fec9792 fix(TUP-24323):_tdm folder is missing after build thmap job (#3885) 2019-11-06 15:57:58 +08:00
nrousseau
4cef94aff4 upgrade tacokit 1.1.14 (#4033) 2019-11-04 16:34:11 +08:00
jiezhang-tlnd
09169a8664 fix(TUP-24786)Jobs are failing with the error "Cannot find or load the (#4077) (#4098)
main class" when imported the project export from 6.3 to 7.2
https://jira.talendforge.org/browse/TUP-24786
2019-11-04 15:08:22 +08:00
SunChaoqun
391704ac42 TESB-27139:"Could not find the context Default" is shown in runtime when
deploy a route into runtime



* TESB-27139:"Could not find the context Default" is shown in runtime
when

deploy a route into runtime
2019-11-01 15:56:03 +08:00
Zhiwei Xue
9e693e6f89 fix(TUP-23637):7.x missing local_project for big data spark batch job (#3671) (#3823) 2019-11-01 15:56:01 +08:00
Zhiwei Xue
eee97f1977 Revert "TESB-27123:Context does not transmit to Job called by route in the second call in runtime (#4073)"
This reverts commit 2884b847d5.
2019-11-01 15:55:58 +08:00
hzhao-talendbj
095c79cbf2 fix(TUP-24613)routine section does not allow user to edit required (#4011)
checkbox
2019-11-01 15:47:20 +08:00
SunChaoqun
2884b847d5 TESB-27123:Context does not transmit to Job called by route in the second call in runtime (#4073) 2019-10-28 18:58:52 +08:00
Zhiwei Xue
96d4930a0a fix(TUP-24623):fix regression. 2019-10-24 14:21:09 +08:00
apoltavtsev
e8f2adce2d TESB-26789 Bean called in routelet not found by main route 2019-10-24 11:54:53 +08:00
Zhiwei Xue
34396d7182 fix(TUP-24623):Compilation error on the job with project references (#4010) 2019-10-18 18:30:49 +08:00
hzhao-talendbj
82d238deff fix(TUP-24607)Not able to see the component error in the Studio Designer (#3968)
* fix(TUP-24607)Not able to see the component error in the Studio Designer

* fix(TUP-24607)Not able to see the component error in the Studio Designer
2019-10-18 18:04:22 +08:00
slushatel
4487a6d33e fix(TDI-43010): [ADLSgen2] Short term solution for columns selector i… (#3979)
* fix(TDI-43010): [ADLSgen2] Short term solution for columns selector in Studio. Hide 'CSV schema'field
* fix(TDI-43010): [ADLSgen2] Short term solution for columns selector in Studio. Hide 'CSV schema'field. Refactoring
* fix(TDI-43010): [ADLSgen2] Short term solution for columns selector in Studio. Hide 'CSV schema'field. Add Output component check
(cherry picked from commit 47deaa8326)
2019-10-17 14:53:40 +02:00
hcyi
70469391d8 fix(TUP-24784):Build error with tRunJob on a spark job. (#4025) (#4029) 2019-10-16 17:33:14 +08:00
Denis Sergent
7ea110dc3c TESB-26300: disable message dialog when checking build errors (#3654) (#4019)
* TESB-23600 : do not open dialog anymore when checking errors

* TESB-23600 : refactor/cleanup

Conflicts:
	main/plugins/org.talend.designer.runprocess/src/main/java/org/talend/designer/runprocess/JobErrorsChecker.java

Conflicts:
	main/plugins/org.talend.designer.runprocess/src/main/java/org/talend/designer/runprocess/JobErrorsChecker.java
2019-10-14 09:08:31 +02:00
jiezhang-tlnd
fcad4148f5 fix(TUP-24392)JDBCInput component not working as expected when values as provided using context (#3875) (#3880)
* fix(TUP-24392)JDBCInput component not working as expected when values as
provided using context
https://jira.talendforge.org/browse/TUP-24392

* fix(TUP-24392)JDBCInput component not working as expected when values as
provided using context
https://jira.talendforge.org/browse/TUP-24392
2019-10-14 14:29:04 +08:00
hwang-talend
ebe98a4d67 bugfix(TUP-23894):Fix all failed junit for both java 8 and 11 #3761 (#3781)
bugfix(TUP-23894):Fix all failed junit for both java 8 and 11
2019-10-11 11:41:25 +08:00
yanbasic
cd23062e30 Revert "TESB-26300: disable message dialog when checking build errors (#3654)"
This reverts commit c9c9d4df22.
2019-10-08 15:14:19 +08:00
hcyi
5990df09b0 fix(TUP-23790):Can't guess schema for metadata (#3692)
item(delimited/positional/regex/excel/ldif/ldap)
2019-10-08 12:05:59 +08:00
hwang-talend
4f5b39d2da bugfix(TUP-24355):Default Context environment appended after migrating (#3927)
* bugfix(TUP-24355):Default Context environment appended after migrating
to 7.2.1
2019-10-08 11:56:19 +08:00
Stéphane Bouchet
c9c9d4df22 TESB-26300: disable message dialog when checking build errors (#3654)
* TESB-23600 : do not open dialog anymore when checking errors

* TESB-23600 : refactor/cleanup

Conflicts:
	main/plugins/org.talend.designer.runprocess/src/main/java/org/talend/designer/runprocess/JobErrorsChecker.java

Conflicts:
	main/plugins/org.talend.designer.runprocess/src/main/java/org/talend/designer/runprocess/JobErrorsChecker.java
2019-10-07 11:43:03 +02:00
SunChaoqun
9f4d4fc832 TESB-27079:Data Service Micro-service is failing from TMC (#3983) 2019-09-27 20:47:47 +08:00
Mike Yan
cc93b9959b fix(TESB-27046): Job run failed with pure DI license in studio (#3966) 2019-09-24 15:24:19 +08:00
hcyi
94e2442e11 fix(TUP-24084):Change the display of the new Couchbase component names. (#3934) 2019-09-23 15:23:30 +08:00
hwang-talend
079ce620ab bugfix(TUP-23967):Studio can't run jobs when path has spaces, Windows 10 (#3768) (#3789)
bugfix(TUP-23967):Studio can't run jobs when path has spaces, Windows 10
2019-09-23 15:20:26 +08:00
hcyi
535af6359e fix(TUP-23264):Studio can't find dependencies for tacokit components. 2019-09-23 15:20:24 +08:00
jiezhang-tlnd
0544da1147 Jzhang/maintenance72/bugfix/tup 22646 path in textbox of to archive file is incomplete when building job (#3960)
* fix(TUP-22646)Path in Textbox of "To archive file" is incomplete when building job (#3931)

* fix(TUP-22646)Path in Textbox of "To archive file" is incomplete when
building job
https://jira.talendforge.org/browse/TUP-22646

* fix(TUP-22646)Path in Textbox of "To archive file" is incomplete when
building job
https://jira.talendforge.org/browse/TUP-22646

* fix(TUP-22646)Path in Textbox of "To archive file" is incomplete when (#3857)

building job
https://jira.talendforge.org/browse/TUP-22646
2019-09-23 14:47:33 +08:00
Laurent BOURGEOIS
bdb27eaf55 fix(TBD-9137) : tBigQueryInput does not support backtick in query (#3953) 2019-09-20 17:08:13 +02:00
hwang
c4b9def853 bugfix(TUP-24326):keyword "__TABLE__" not working for tJDBCxxxx
components
2019-09-18 14:16:37 +08:00
hwang
9b31f616f7 Revert "bugfix(TUP-24326):keyword "__TABLE__" not working for tJDBCxxxx (#3906)"
This reverts commit 3c8552e58c.
2019-09-18 14:15:56 +08:00
hwang-talend
3c8552e58c bugfix(TUP-24326):keyword "__TABLE__" not working for tJDBCxxxx (#3906)
bugfix(TUP-24326):keyword "__TABLE__" not working for tJDBCxxxx components
2019-09-16 13:37:53 +08:00
heng zhao
81f603037b feat(TUP-24028)Add Azure datacenter part of the studio connection 2019-09-12 13:47:28 +08:00
hzhao-talendbj
3c9ff7e553 Hengzhao/backportpatch721/tup 24028 add azure datacenter part of the studio connection (#3910)
* feat(TUP-24028)Add Azure datacenter part of the studio connection

* feat(TUP-24028)Add Azure datacenter part of the studio connection

* feat(TUP-24028)Add Azure datacenter part of the studio connection
2019-09-09 15:21:47 +08:00
hcyi
6611515bd6 fix(TUP-23743):ERROR when Job in MDM project calling Job in Reference DI (#3709)
project:import routines.DataQuality cannot be resolved.
2019-08-26 11:49:10 +08:00
SunChaoqun
66dfb4f0bf TESB-26736:DS OSGi bundles are failing on runtime after the docker patch 2019-08-15 16:30:20 +08:00
yanbasic
75b74d2c17 fix(TESB-24597): Fixed OSGi job build missing OSGI-INF folder issue 2019-08-14 18:07:41 +08:00
SunChaoqun
92e5a0801d TESB-26736:DS OSGi bundles are failing on runtime after the docker patch 2019-08-13 19:22:39 +08:00
SunChaoqun
62ce41a0e9 TESB-24597 Docker Support for Microservice - CI Part (#3797)
* TESB-24597:Docker Support for Microservice - CI Part

* TESB-24597:Docker Support for Microservice - CI Part

* TESB-24597:Docker Support for Microservice - CI Part

* TESB-24597:Docker Support for Microservice - CI Part (#3782)
2019-08-07 18:17:49 +08:00
apoltavtsev
aa9c2b08b9 TESB-26293 Duplicated libraries in private & import packages of the build manifest file 2019-07-15 11:26:07 +08:00
kjwang-talend
37c58a98cd kjwang/Fix TUP-23809 changes in column
Fix TUP-23809 [Studio] changes in column order are not saved (no
propagate changes dialog)
https://jira.talendforge.org/browse/TUP-23809
2019-07-15 10:34:31 +08:00
nrousseau
9c31c2869d fix(TDI-42522) add option to deactivate component log 2019-06-19 18:58:02 +08:00
Jane Ding
e91f8c1b5d fix(TUP-23506)Job use tsapconnection component run fail when use the (#3623) (#3633)
* fix(TUP-23506)Job use tsapconnection component run fail when use the
sapjco3.jar with a newer version 3.0.14.
https://jira.talendforge.org/browse/TUP-23506

* fix(TUP-23506)Job use tsapconnection component run fail when use the
sapjco3.jar with a newer version 3.0.14.
https://jira.talendforge.org/browse/TUP-23506

* fix(TUP-23506)Job use tsapconnection component run fail when use the
sapjco3.jar with a newer version 3.0.14
https://jira.talendforge.org/browse/TUP-23506
2019-06-18 14:22:33 +08:00
hwang-talend
6d16ec2e3e bugfix(TUP-23510):There is compile error job in TDI demo project (#3632)
* bugfix(TUP-23510):There is compile error job in TDI demo project

* bugfix(TUP-23510):There is compile error job in TDI demo project (#3628)
2019-06-18 12:11:46 +08:00
Chao MENG
d5dfa732da Cmeng/backport/7.2.1/tup 20054 tck refresh issue (#3624)
* fix(TUP-20054): Due to checking fields it is hard to type
credentials/data from the keyboard
https://jira.talendforge.org/browse/TUP-20054

* main/plugins/org.talend.sdk.component.studio-integration/src/main/java/org/talend/sdk/component/studio/ui/wizard/TaCoKitConfigurationWizard.java

* fix(TUP-20054): Due to checking fields it is hard to type
credentials/data from the keyboard
https://jira.talendforge.org/browse/TUP-20054

* fix(TUP-20054): Due to checking fields it is hard to type
credentials/data from the keyboard
https://jira.talendforge.org/browse/TUP-20054

* Cmeng/bugfix/tup 20054 fix junit issue (#3627)

* fix(TUP-20054): Due to checking fields it is hard to type
credentials/data from the keyboard
https://jira.talendforge.org/browse/TUP-20054

Fix junit issue

* add junit source

* add junit source

* fix(TUP-20054): Due to checking fields it is hard to type (#3630)

credentials/data from the keyboard
https://jira.talendforge.org/browse/TUP-20054

Fix junit issue
2019-06-18 11:29:06 +08:00
Antoine Parent
49d093c671 fix(): typo in a pattern (#3626)
fix a pattern used to display job status
2019-06-17 16:46:08 +02:00
Jenkins Continuous Build server
0f3b302525 Set version to 7.2.1 2019-06-14 11:49:03 +02:00
203 changed files with 1600 additions and 649 deletions

59
PATCH_RELEASE_NOTE.md Normal file
View File

@@ -0,0 +1,59 @@
---
version: 7.2.1
module: https://talend.poolparty.biz/coretaxonomy/42
product:
- https://talend.poolparty.biz/coretaxonomy/23
---
# TPS-3626
| Info | Value |
| ---------------- | ---------------- |
| Patch Name | Patch\_20191205\_TPS-3626\_v1-7.2.1 |
| Release Date | 2019-12-05 |
| Target Version | 20190620_1446-V7.2.1 |
| Product affected | Talend Studio |
## Introduction
This is a self-contained patch.
**NOTE**: For information on how to obtain this patch, reach out to your Support contact at Talend.
## Fixed issues
This patch contains the following fixes:
- [7.2.1] tDBInput(Redshift) "Logging level" = Info, will cause tLogRow can't print result in console. (TDI-42819)
## Prerequisites
Consider the following requirements for your system:
- Talend Studio 7.2.1 must be installed.
## Installation
### Installing the patch using Software update
1) Logon TAC and switch to Configuration->Software Update, then enter the correct values and save referring to the documentation: https://help.talend.com/reader/f7Em9WV_cPm2RRywucSN0Q/j9x5iXV~vyxMlUafnDejaQ
2) Switch to Software update page, where the new patch will be listed. The patch can be downloaded from here into the nexus repository.
3) On Studio Side: Logon Studio with remote mode, on the logon page the Update button is displayed: click this button to install the patch.
### Installing the patch using Talend Studio
1) Create a folder named "patches" under your studio installer directory and copy the patch .zip file to this folder.
2) Restart your studio: a window pops up, then click OK to install the patch, or restart the commandline and the patch will be installed automatically.
### Installing the patch using Commandline
Execute the following commands:
1. Talend-Studio-win-x86_64.exe -nosplash -application org.talend.commandline.CommandLine -consoleLog -data commandline-workspace startServer -p 8002 --talendDebug
2. initRemote {tac_url} -ul {TAC login username} -up {TAC login password}
3. checkAndUpdate -tu {TAC login username} -tup {TAC login password}

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.runprocess.nl</artifactId>

View File

@@ -52,7 +52,7 @@ ProcessDebugDialog.errortext=Impossible de d\u00E9bugger le job.\\nV\u00E9rifiez
ShadowProcess.notGeneratedOutputException=Sortie non g\u00E9n\u00E9r\u00E9e.
ProcessComposite.contextGroup=Contexte
prefs.clientConfiguration=Configuration du client Talend
ProcessComposite.endPattern=Le Job {0} s\'est termin\u00E9 \u00E0 {1,date,HH:mm dd/MM/yyyy}. [code de sortie={2,number}]
ProcessComposite.endPattern=Le Job {0} s'est termin\u00E9 \u00E0 {1,date,HH:mm dd/MM/yyyy}. [code de sortie={2,number}]
ProcessView.title=Ex\u00E9cuter({0})
Processor.configurePerl=L'interpr\u00E9teur Perl n'est pas configur\u00E9.
JavaProcessor.notFoundedFolderException=Dossier introuvable dans le projet .Java

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.fragment.jars.di.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.tos.core.feature</artifactId>

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.business.diagram</artifactId>

View File

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

View File

@@ -94,7 +94,7 @@ public class JavaRoutineSynchronizer extends AbstractRoutineSynchronizer {
private void syncRoutineItems(Collection<RoutineItem> routineObjects, boolean forceUpdate) throws SystemException {
for (RoutineItem routineItem : routineObjects) {
syncRoutine(routineItem, true, true, forceUpdate);
syncRoutine(routineItem, true, forceUpdate);
}
syncSystemRoutine(ProjectManager.getInstance().getCurrentProject());
}

View File

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

View File

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

View File

@@ -569,17 +569,18 @@
loadJobBuilder_<%=cid%>.setDestinationTable(tableId_<%=cid%>);
com.google.cloud.bigquery.CsvOptions.Builder csvOptions_<%=cid%> = com.google.cloud.bigquery.CsvOptions.newBuilder();
csvOptions_<%=cid%>.setAllowQuotedNewLines(true);
csvOptions_<%=cid%>.setSkipLeadingRows(<%=ElementParameterParser.getValue(node, "__GS_FILE_HEADER__")%>);
<%if("true".equals(ElementParameterParser.getValue(node, "__SET_FIELD_DELIMITER__"))) {
%>
loadJobBuilder_<%=cid%>.setFormatOptions(csvOptions_<%=cid%>.setFieldDelimiter(<%=fieldDelimiter%>).build());
csvOptions_<%=cid%>.setFieldDelimiter(<%=fieldDelimiter%>);
<%
}
%>
loadJobBuilder_<%=cid%>.setFormatOptions(csvOptions_<%=cid%>.build());
loadJobBuilder_<%=cid%>.setNullMarker("\\N");
com.google.cloud.bigquery.Job job_<%=cid%> = bigquery_<%=cid%>.create(com.google.cloud.bigquery.JobInfo.of(loadJobBuilder_<%=cid%>.build()));
job_<%=cid%> = job_<%=cid%>.waitFor(com.google.cloud.RetryOption.initialRetryDelay(org.threeten.bp.Duration.ofSeconds(1)), com.google.cloud.RetryOption.totalTimeout(org.threeten.bp.Duration.ofSeconds(30)));
job_<%=cid%> = job_<%=cid%>.waitFor(com.google.cloud.RetryOption.initialRetryDelay(org.threeten.bp.Duration.ofSeconds(1)));
if (job_<%=cid%> != null && job_<%=cid%>.getStatus().getError() == null) {
<%
if(isLog4jEnabled){

View File

@@ -221,10 +221,9 @@
}
String query_<%=cid%> = <%=query%>;
String dataset = query_<%=cid%>.substring(query_<%=cid%>.indexOf("from") + 4, query_<%=cid%>.indexOf(".")).trim();
String temp_table = "temp_" + dataset + java.util.UUID.randomUUID().toString().replaceAll("-", "")
+ "<%=cid%>".toLowerCase().replaceAll("[^a-z0-9]", "0").replaceAll("^[^a-z]", "a")
+ Integer.toHexString(java.util.concurrent.ThreadLocalRandom.current().nextInt());
<% if(isLog4jEnabled) { %>
log.info("<%=cid%> - query " + <%=query%>);
<% } %>
com.google.cloud.bigquery.BigQuery bigquery_<%=cid%> = com.google.cloud.bigquery.BigQueryOptions.newBuilder()
.setCredentials(credentials_<%=cid%>)
@@ -234,24 +233,54 @@
com.google.cloud.bigquery.QueryJobConfiguration.Builder queryConfiguration_<%=cid%> = com.google.cloud.bigquery.QueryJobConfiguration.newBuilder(<%=query%>).setUseLegacySql(<%=useLegacySql%>);
<%
if (resultSizeType.equals("LARGE") || resultSizeType.equals("AUTO")) {
%>
queryConfiguration_<%=cid%>.setDestinationTable(com.google.cloud.bigquery.TableId.of(dataset, temp_table)).setAllowLargeResults(true);
<%
}
%>
<%if (resultSizeType.equals("LARGE") || resultSizeType.equals("AUTO")) {%>
com.google.cloud.bigquery.JobId jobId_<%=cid%> = com.google.cloud.bigquery.JobId.of(java.util.UUID.randomUUID().toString());
com.google.cloud.bigquery.QueryJobConfiguration jobConfDryRun_<%=cid%> = queryConfiguration_<%=cid%> .setDryRun(true).build();
com.google.cloud.bigquery.Job jobDryRun_<%=cid%> = bigquery_<%=cid%>.create(com.google.cloud.bigquery.JobInfo.of(jobConfDryRun_<%=cid%>));
String queryLocation_<%=cid%> =jobDryRun_<%=cid%>.getJobId().getLocation();
String location_<%=cid%> = queryLocation_<%=cid%> == null ? "US" : queryLocation_<%=cid%>;
String tempDataset_<%=cid%> = java.util.UUID.randomUUID().toString().replaceAll("-", "")
+ Integer.toHexString(java.util.concurrent.ThreadLocalRandom.current().nextInt())
+ Integer.toHexString(java.util.concurrent.ThreadLocalRandom.current().nextInt());
String tempTable_<%=cid%> = java.util.UUID.randomUUID().toString().replaceAll("-", "")
+ Integer.toHexString(java.util.concurrent.ThreadLocalRandom.current().nextInt())
+ Integer.toHexString(java.util.concurrent.ThreadLocalRandom.current().nextInt());
<% if(isLog4jEnabled){ %>
log.info("<%=cid%> - query location :" + queryLocation_<%=cid%>);
log.info("<%=cid%> - temporary dataset location :" + location_<%=cid%>);
log.info("<%=cid%> - temporary Dataset name : " + tempDataset_<%=cid%>);
log.info("<%=cid%> - temporary table name : " + tempTable_<%=cid%>);
<% } %>
com.google.cloud.bigquery.DatasetInfo datasetInfo_<%=cid%> = com.google.cloud.bigquery.DatasetInfo.newBuilder(tempDataset_<%=cid%>).setLocation(location_<%=cid%>).build();
com.google.cloud.bigquery.Dataset dataset_<%=cid%> = bigquery_<%=cid%> .create(datasetInfo_<%=cid%>);
queryConfiguration_<%=cid%>
.setDryRun(false)
.setAllowLargeResults(true)
.setDestinationTable(com.google.cloud.bigquery.TableId.of(tempDataset_<%=cid%>, tempTable_<%=cid%>));
com.google.cloud.bigquery.JobId jobId_<%=cid%> = com.google.cloud.bigquery.JobId
.newBuilder().setProject(<%=projectId%>)
.setJob(java.util.UUID.randomUUID().toString())
.setLocation(location_<%=cid%>)
.build();
<% if(isLog4jEnabled){ %>
log.info("<%=cid%> - job location : " + jobId_<%=cid%>.getLocation());
<% } %>
<% } else { %>
com.google.cloud.bigquery.JobId jobId_<%=cid%> = com.google.cloud.bigquery.JobId.of(<%=projectId%>,java.util.UUID.randomUUID().toString());
<% } %>
com.google.cloud.bigquery.Job job_<%=cid%> = bigquery_<%=cid%>.create(com.google.cloud.bigquery.JobInfo.newBuilder(queryConfiguration_<%=cid%>.build()).setJobId(jobId_<%=cid%>).build());
<%
if(isLog4jEnabled){
%>
<% if(isLog4jEnabled) { %>
log.info("<%=cid%> - Sending job " + jobId_<%=cid%> + " with query: " + <%=query%>);
<%
}
%>
<% } %>
job_<%=cid%> = job_<%=cid%>.waitFor();
if (job_<%=cid%> == null) {
@@ -260,13 +289,9 @@
throw new RuntimeException(job_<%=cid%>.getStatus().getError().toString());
}
<%
if(isLog4jEnabled){
%>
<% if(isLog4jEnabled) { %>
log.info("<%=cid%> - Job " + jobId_<%=cid%> + " finished successfully.");
<%
}
%>
<% } %>
com.google.cloud.bigquery.TableResult result_<%=cid%> = job_<%=cid%>.getQueryResults();
long nb_line_<%=cid%> = 0;
<%

View File

@@ -11,6 +11,9 @@ imports="
INode node = (INode)codeGenArgument.getArgument();
String cid = node.getUniqueName();
String authMode = ElementParameterParser.getValue(node,"__AUTH_MODE__");
String projectId = ElementParameterParser.getValue(node,"__PROJECT_ID__");
String resultSizeType = ElementParameterParser.getValue(node,"__RESULT_SIZE__");
if (authMode.equals("OAUTH")) {
%>
}
@@ -24,7 +27,10 @@ imports="
} else if (authMode.equals("SERVICEACCOUNT")) {
%>
}
bigquery_<%=cid%>.delete(com.google.cloud.bigquery.TableId.of(dataset, temp_table));
<% if (resultSizeType.equals("LARGE") || resultSizeType.equals("AUTO")) { %>
com.google.cloud.bigquery.DatasetId datasetId_<%=cid%> = com.google.cloud.bigquery.DatasetId.of(<%=projectId%>, tempDataset_<%=cid%>);
bigquery_<%=cid%>.delete(datasetId_<%=cid%>, com.google.cloud.bigquery.BigQuery.DatasetDeleteOption.deleteContents());
<% }%>
<%
} else {
throw new IllegalArgumentException("authentication mode should be either \"SERVICEACCOUNT\" or \"OAUTH\", but it is " + authMode);

View File

@@ -2,10 +2,13 @@
<%
String logLevel= ElementParameterParser.getValue(node, "__LOG_LEVEL__");
boolean useLogFile= "true".equals(ElementParameterParser.getValue(node, "__USE_LOG_FILE__"));
if (useLogFile){
if ("false".equalsIgnoreCase(ElementParameterParser.getValue(node, "__USE_EXISTING_CONNECTION__"))
&& !logLevel.equals("0")) {
%>
logWriter_<%=cid %>.close();
<%
}
}
%>

View File

@@ -208,6 +208,8 @@ boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.ge
mc_<%=cid%>.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
mc_<%=cid%>.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
javax.activation.CommandMap.setDefaultCommandMap(mc_<%=cid%>);
// add com.sun.mail.handlers to job imports / depenencies (TESB-27110)
com.sun.mail.handlers.text_plain text_plain_h_<%=cid%> = null;
// -- Send the message --
javax.mail.Transport.send(msg_<%=cid %>);
} catch(java.lang.Exception e){

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.core.generic</artifactId>

View File

@@ -16,6 +16,7 @@ import java.beans.PropertyChangeEvent;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.gef.commands.Command;
import org.eclipse.swt.SWT;
@@ -126,8 +127,10 @@ public class ButtonController extends AbstractElementPropertySectionController {
continue;
}
for(String path : listString){
if (!StringUtils.isBlank(path)) {
jars.add(GenericTableUtils.getDriverJarPath(path));
}
}
}
}

View File

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

View File

@@ -736,6 +736,7 @@ PerformancePreferencePage.generateCode=Generate code when opening the job
PerformancePreferencePage.checkVersion=Check only the last version when updating jobs or joblets
PerformancePreferencePage.addOrDeleteVariable=Propagate add/delete variable changes in repository contexts
PerformancePreferencePage.ActivedTimeoutSetting=Activate the timeout for database connection.
PerformancePreferencePage.propagateContext=Propagate add context groups in repository contexts
PerformancePreferencePage.ConnectionTimeout=Connection timeout (seconds)
PerformancePreferencePage.HBaseOrMaprDBScanLimit=HBase/MapR-DB scan limit (for retrieving schema)
PerformancePreferencePage.HBaseOrMaprDBScanLimitTip=If set it by zero, will be same as deactiving the limit.

View File

@@ -99,6 +99,7 @@ import org.talend.designer.core.ui.views.jobsettings.JobSettings;
import org.talend.designer.core.ui.views.problems.Problems;
import org.talend.designer.core.ui.views.properties.ComponentSettings;
import org.talend.designer.core.ui.views.properties.ComponentSettingsView;
import org.talend.designer.core.utils.BigDataJobUtil;
import org.talend.designer.core.utils.JavaProcessUtil;
import org.talend.designer.core.utils.UnifiedComponentUtil;
import org.talend.designer.runprocess.ProcessorException;
@@ -874,4 +875,9 @@ public class DesignerCoreService implements IDesignerCoreService {
}
return false;
}
@Override
public boolean isNeedContextInJar(IProcess process) {
return new BigDataJobUtil(process).needsToHaveContextInsideJar();
}
}

View File

@@ -23,6 +23,7 @@ import org.eclipse.core.runtime.Platform;
import org.eclipse.gef.palette.PaletteEntry;
import org.eclipse.jface.resource.ImageDescriptor;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.exception.PersistenceException;
import org.talend.core.model.components.IComponent;
import org.talend.core.model.process.INode;
import org.talend.core.model.process.IProcess;
@@ -31,6 +32,7 @@ import org.talend.core.model.process.IReplaceNodeInProcess;
import org.talend.core.model.properties.Item;
import org.talend.core.model.properties.JobletProcessItem;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryEditorInput;
import org.talend.core.model.update.UpdateResult;
import org.talend.designer.core.ui.editor.process.Process;
@@ -258,4 +260,9 @@ public abstract class AbstractProcessProvider implements IReplaceNodeInProcess {
return false;
}
public IRepositoryEditorInput createJobletEditorInput(JobletProcessItem processItem, boolean load, Boolean lastVersion, Boolean readonly,
Boolean openedInJob) throws PersistenceException{
return null;
}
}

View File

@@ -1948,7 +1948,7 @@ public class DataProcess implements IGeneratingProcess {
}
}
if (duplicatedProcess.getComponentsType().equals(ComponentCategory.CATEGORY_4_DI.getName()) && PluginChecker.isTIS()) {
if (duplicatedProcess.getComponentsType().equals(ComponentCategory.CATEGORY_4_DI.getName()) && PluginChecker.isTIS() && !Boolean.getBoolean("deactivate_extended_component_log")) {
final String talendJobLogComponent = "tJobStructureCatcher";
final String uid4TalendJobLogComponent = "talendJobLog";
IComponent jobStructComponent = ComponentsFactoryProvider.getInstance().get(talendJobLogComponent, ComponentCategory.CATEGORY_4_DI.getName());

View File

@@ -607,7 +607,7 @@ public final class TalendEditorPaletteFactory {
while (iter.hasNext()) {
IComponent xmlComponent = iter.next();
Matcher matcher = pattern.matcher(xmlComponent.getName().toLowerCase());
Matcher matcher = pattern.matcher(xmlComponent.getDisplayName().toLowerCase());
if (matcher.find()) {
resultByName.add(new ComponentHit(xmlComponent, matcher.start()));
continue;
@@ -643,7 +643,7 @@ public final class TalendEditorPaletteFactory {
private static void addDelegateComponents(IComponentsFactory compFac, Collection<IComponent> componentSet,
String lowerCasedKeyword) {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IUnifiedComponentService.class)) {
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault().getService(
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(
IUnifiedComponentService.class);
service.filterUnifiedComponentForPalette(compFac, componentSet, lowerCasedKeyword);
@@ -730,13 +730,12 @@ public final class TalendEditorPaletteFactory {
return null;
}
IComponent delegateComponent = UnifiedComponentUtil.getDelegateComponent(component);
String name = component.getName();
String filter = null;
if (delegateComponent != component) {
// emf component name
filter = component.getName();
name = UnifiedComponentUtil.getComponentDisplayNameForPalette(delegateComponent, filter);
}
String name = UnifiedComponentUtil.getComponentDisplayNameForPalette(delegateComponent, filter);
ImageDescriptor imageSmall = delegateComponent.getIcon16();
IPreferenceStore store = DesignerPlugin.getDefault().getPreferenceStore();
ImageDescriptor imageLarge;

View File

@@ -19,15 +19,21 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.jdt.internal.ui.JavaPlugin;
import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor;
import org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer;
import org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy;
import org.eclipse.jdt.internal.ui.text.JavaReconciler;
import org.eclipse.jdt.ui.actions.IJavaEditorActionDefinitionIds;
import org.eclipse.jdt.ui.text.IJavaPartitions;
import org.eclipse.jdt.ui.text.JavaSourceViewerConfiguration;
import org.eclipse.jdt.ui.text.JavaTextTools;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.FindReplaceDocumentAdapter;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.Region;
import org.eclipse.jface.text.source.IOverviewRuler;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.jface.text.source.IVerticalRuler;
import org.eclipse.jface.text.source.SourceViewerConfiguration;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.FileEditorInput;
import org.talend.commons.exception.SystemException;
@@ -297,5 +303,41 @@ public class TalendJavaEditor extends CompilationUnitEditor implements ISyntaxCh
super.initializeDragAndDrop(viewer);
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor#createJavaSourceViewer(org.eclipse.swt.widgets.
* Composite, org.eclipse.jface.text.source.IVerticalRuler, org.eclipse.jface.text.source.IOverviewRuler, boolean,
* int, org.eclipse.jface.preference.IPreferenceStore)
*/
@Override
protected ISourceViewer createJavaSourceViewer(Composite parent, IVerticalRuler verticalRuler, IOverviewRuler overviewRuler,
boolean isOverviewRulerVisible, int styles, IPreferenceStore store) {
return new TalendAdaptedSourceViewer(parent, verticalRuler, overviewRuler, isOverviewRulerVisible, styles, store);
}
@SuppressWarnings("restriction")
protected class TalendAdaptedSourceViewer extends AdaptedSourceViewer {
public TalendAdaptedSourceViewer(Composite parent, IVerticalRuler verticalRuler, IOverviewRuler overviewRuler,
boolean showAnnotationsOverview, int styles, IPreferenceStore store) {
super(parent, verticalRuler, overviewRuler, showAnnotationsOverview, styles, store);
}
@Override
public void configure(SourceViewerConfiguration configuration) {
super.configure(configuration);
if (fReconciler == null) {
JavaCompositeReconcilingStrategy strategy = new JavaCompositeReconcilingStrategy(this, TalendJavaEditor.this,
configuration.getConfiguredDocumentPartitioning(this));
JavaReconciler reconciler = new JavaReconciler(TalendJavaEditor.this, strategy, false);
reconciler.setIsAllowedToModifyDocument(false);
reconciler.setDelay(500);
fReconciler = reconciler;
fReconciler.install(this);
}
}
}
}

View File

@@ -624,9 +624,11 @@ public class ChangeMetadataCommand extends Command {
setTableMAPPING();
if (!internal) {
if (!oldOutputMetadata.sameMetadataAs(newOutputMetadata, IMetadataColumn.OPTIONS_NONE)) {
updateColumnList(oldOutputMetadata, newOutputMetadata);
((Process) node.getProcess()).checkProcess();
}
}
refreshMetadataChanged();
}

View File

@@ -516,7 +516,7 @@ public class Node extends Element implements IGraphicalNode {
private void init(IComponent newComponent) {
this.component = UnifiedComponentUtil.getEmfComponent(this, newComponent);
this.label = component.getName();
this.label = component.getDisplayName();
updateComponentStatusIfNeeded(true);
IPreferenceStore store = DesignerPlugin.getDefault().getPreferenceStore();
@@ -1179,6 +1179,12 @@ public class Node extends Element implements IGraphicalNode {
if (useConn != null) {
connParam = this.getElementParameter("CONNECTION"); //$NON-NLS-1$
}
boolean isGeneric = this.getComponent().getComponentType() == EComponentType.GENERIC;
if(isGeneric && labelToParse != null) {
labelToParse = labelToParse.replaceAll("__TABLE__", "__tableSelection.tablename__"); //$NON-NLS-1$ //$NON-NLS-2$
}
if (useConn != null && connParam != null && Boolean.TRUE.equals(useConn.getValue())) {
String connName = (String) connParam.getValue();

View File

@@ -29,6 +29,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.ArrayUtils;
@@ -123,7 +124,9 @@ import org.talend.core.model.update.IUpdateManager;
import org.talend.core.model.utils.TalendTextUtils;
import org.talend.core.repository.model.ProxyRepositoryFactory;
import org.talend.core.repository.utils.ConvertJobsUtil;
import org.talend.core.repository.utils.ProjectHelper;
import org.talend.core.repository.utils.XmiResourceManager;
import org.talend.core.runtime.process.TalendProcessArgumentConstant;
import org.talend.core.runtime.repository.item.ItemProductKeys;
import org.talend.core.runtime.util.ItemDateParser;
import org.talend.core.service.IScdComponentService;
@@ -184,7 +187,6 @@ import org.talend.designer.core.utils.DetectContextVarsUtils;
import org.talend.designer.core.utils.JavaProcessUtil;
import org.talend.designer.core.utils.JobSettingVersionUtil;
import org.talend.designer.core.utils.UnifiedComponentUtil;
import org.talend.designer.core.utils.UpdateParameterUtils;
import org.talend.designer.core.utils.ValidationRulesUtil;
import org.talend.designer.runprocess.IRunProcessService;
import org.talend.designer.runprocess.ItemCacheManager;
@@ -1079,7 +1081,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
ElementParameterType pType;
boolean isJoblet = false;
if (param.getElement() instanceof INode && PluginChecker.isJobLetPluginLoaded()) {
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(
IJobletProviderService service = GlobalServiceRegister.getDefault().getService(
IJobletProviderService.class);
if (service != null && service.isJobletComponent((INode) param.getElement())) {
isJoblet = true;
@@ -1399,11 +1401,6 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
}
}
}
for (IElementParameter param : elemParam.getElementParameters()) {
UpdateParameterUtils.setDefaultValues(param, elemParam);
}
}
protected boolean noNeedSetValue(IElementParameter param, String paraValue) {
@@ -1819,23 +1816,36 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
routinesDependencies = new ArrayList<RoutinesParameterType>();
}
try {
Project targetProject = new Project(ProjectManager.getInstance().getProject(getProperty()));
IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
Set<IRepositoryViewObject> routines = new HashSet<>();
routines.addAll(factory.getAll(targetProject, ERepositoryObjectType.ROUTINES));
List<Project> referenceProjects = ProjectManager.getInstance().getAllReferencedProjects(targetProject, false);
referenceProjects.stream().forEach(p -> {
try {
routines.addAll(factory.getAll(p, ERepositoryObjectType.ROUTINES));
} catch (PersistenceException e) {
ExceptionHandler.process(e);
}
});
Map<String, String> allRoutinesMap = routines.stream()
.collect(Collectors.toMap(IRepositoryViewObject::getId, IRepositoryViewObject::getLabel));
Iterator<RoutinesParameterType> iterator = routinesDependencies.iterator();
while (iterator.hasNext()) {
RoutinesParameterType routine = iterator.next();
if (!allRoutinesMap.containsKey(routine.getId())) {
iterator.remove();
}
}
List<String> possibleRoutines = new ArrayList<String>();
List<String> routinesToAdd = new ArrayList<String>();
String additionalString = LanguageManager.getCurrentLanguage() == ECodeLanguage.JAVA ? "." : "";
List<String> routinesAlreadySetup = new ArrayList<String>();
for (RoutinesParameterType routine : routinesDependencies) {
routinesAlreadySetup.add(routine.getName());
}
IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
List<IRepositoryViewObject> routines = factory.getAll(ProjectManager.getInstance().getCurrentProject(),
ERepositoryObjectType.ROUTINES);
routines.addAll(factory.getAll(ProjectManager.getInstance().getCurrentProject(), ERepositoryObjectType.PIG_UDF));
for (Project project : ProjectManager.getInstance().getAllReferencedProjects()) {
for (Project project : referenceProjects) {
List<IRepositoryViewObject> refRoutines = factory.getAll(project, ERepositoryObjectType.ROUTINES);
refRoutines.addAll(factory.getAll(project, ERepositoryObjectType.PIG_UDF));
for (IRepositoryViewObject object : refRoutines) {
if (!((RoutineItem) object.getProperty().getItem()).isBuiltIn()) {
if (!possibleRoutines.contains(object.getLabel()) && !routinesAlreadySetup.contains(object.getLabel())) {
@@ -1860,9 +1870,8 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
possibleRoutines.add(object.getLabel());
}
}
for (Project project : ProjectManager.getInstance().getAllReferencedProjects()) {
for (Project project : referenceProjects) {
List<IRepositoryViewObject> refRoutines = factory.getAll(project, ERepositoryObjectType.ROUTINES);
refRoutines.addAll(factory.getAll(project, ERepositoryObjectType.PIG_UDF));
for (IRepositoryViewObject object : refRoutines) {
if (!((RoutineItem) object.getProperty().getItem()).isBuiltIn()) {
if (!possibleRoutines.contains(object.getLabel()) && !routinesAlreadySetup.contains(object.getLabel())) {
@@ -1920,6 +1929,18 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
}
}
//
boolean isLimited = false;
org.talend.core.model.properties.Project currProject = getProject().getEmfProject();
org.talend.core.model.properties.Project project = ProjectManager.getInstance().getProject(this.property);
if (currProject != null && project != null && !currProject.equals(project)) {
int currOrdinal = ProjectHelper.getProjectTypeOrdinal(currProject);
int ordinal = ProjectHelper.getProjectTypeOrdinal(project);
if (currOrdinal > ordinal) {
isLimited = true;
}
}
if (!isLimited) {
for (IRepositoryViewObject object : routines) {
if (routinesToAdd.contains(object.getLabel()) && !routinesAlreadySetup.contains(object.getLabel())) {
RoutinesParameterType routinesParameterType = TalendFileFactory.eINSTANCE.createRoutinesParameterType();
@@ -1928,6 +1949,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
routinesDependencies.add(routinesParameterType);
}
}
}
} catch (PersistenceException e) {
ExceptionHandler.process(e);
}
@@ -2283,7 +2305,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
if (EParameterName.PROCESS_TYPE_VERSION.name().equals(pType.getName())) {
String jobletVersion = pType.getValue();
if (!RelationshipItemBuilder.LATEST_VERSION.equals(jobletVersion)) {
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault()
IJobletProviderService service = GlobalServiceRegister.getDefault()
.getService(IJobletProviderService.class);
if (service != null) {
Property jobletProperty = service.getJobletComponentItem(component);
@@ -2453,7 +2475,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
updateAllMappingTypes();
nc.setNeedLoadLib(false);
if (nc.isJoblet()) {
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(
IJobletProviderService service = GlobalServiceRegister.getDefault().getService(
IJobletProviderService.class);
if (service != null) {
// reload only for stuido ,because joblet can be changed in the job editor
@@ -2467,7 +2489,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
NodeContainer nodeContainer = null;
if (isJunitContainer) {
if (GlobalServiceRegister.getDefault().isServiceRegistered(ITestContainerGEFService.class)) {
ITestContainerGEFService testContainerService = (ITestContainerGEFService) GlobalServiceRegister.getDefault()
ITestContainerGEFService testContainerService = GlobalServiceRegister.getDefault()
.getService(ITestContainerGEFService.class);
if (testContainerService != null) {
nodeContainer = testContainerService.createJunitContainer(node);
@@ -2669,7 +2691,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
}
}
if (GlobalServiceRegister.getDefault().isServiceRegistered(IScdComponentService.class)) {
IScdComponentService service = (IScdComponentService) GlobalServiceRegister.getDefault().getService(
IScdComponentService service = GlobalServiceRegister.getDefault().getService(
IScdComponentService.class);
service.updateOutputMetadata(nc, metadataTable);
}
@@ -2796,7 +2818,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
}
} else {
if (PluginChecker.isJobLetPluginLoaded()) { // bug 12764
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(
IJobletProviderService service = GlobalServiceRegister.getDefault().getService(
IJobletProviderService.class);
if (service != null && service.isJobletComponent(source)) {
continue;
@@ -3322,7 +3344,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
if (node instanceof Node) {
component = ((Node) node).getDelegateComponent();
}
String baseName = component.getOriginalName();
String baseName = component.getDisplayName();
return UniqueNodeNameGenerator.generateUniqueNodeName(baseName, uniqueNodeNameList);
}
@@ -4432,6 +4454,18 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
private void loadAdditionalProperties() {
if (additionalProperties == null) {
additionalProperties = new HashMap<Object, Object>();
try {
if (property.getItem() != null && ERepositoryObjectType.getType(property) != null) {
boolean isRouteProcess = ERepositoryObjectType.getType(property).equals(ERepositoryObjectType.PROCESS_ROUTE);
if (!isRouteProcess && "ROUTE"
.equals(this.property.getAdditionalProperties().get(TalendProcessArgumentConstant.ARG_BUILD_TYPE))) {
this.property.getAdditionalProperties().remove(TalendProcessArgumentConstant.ARG_BUILD_TYPE);
}
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
for (Object key : this.property.getAdditionalProperties().keySet()) {
additionalProperties.put(key, this.property.getAdditionalProperties().get(key));
}
@@ -4563,6 +4597,9 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
}
private void saveJobletNode(AbstractJobletContainer jobletContainer) {
if (CommonsPlugin.isHeadless()) {
return;
}
INode jobletNode = jobletContainer.getNode();
IProcess jobletProcess = jobletNode.getComponent().getProcess();
if (jobletProcess == null) {
@@ -4572,7 +4609,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
Item item = ((IProcess2) jobletProcess).getProperty().getItem();
if (item instanceof JobletProcessItem) {
JobletProcessItem jobletItem = ((JobletProcessItem) item);
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(
IJobletProviderService service = GlobalServiceRegister.getDefault().getService(
IJobletProviderService.class);
if (service != null) {
service.saveJobletNode(jobletItem, jobletContainer);
@@ -4621,7 +4658,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
IJobletProviderService jobletService = null;
if (PluginChecker.isJobLetPluginLoaded()) {
jobletService = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(IJobletProviderService.class);
jobletService = GlobalServiceRegister.getDefault().getService(IJobletProviderService.class);
for (INode node : getGraphicalNodes()) {
if (jobletService.isJobletComponent(node)) {
listRoutines.addAll(getJobletRoutines(jobletService, node));

View File

@@ -115,6 +115,7 @@ import org.talend.core.ui.ICDCProviderService;
import org.talend.core.ui.IJobletProviderService;
import org.talend.core.ui.component.ComponentsFactoryProvider;
import org.talend.cwm.helper.SAPBWTableHelper;
import org.talend.designer.core.DesignerPlugin;
import org.talend.designer.core.i18n.Messages;
import org.talend.designer.core.model.components.EParameterName;
import org.talend.designer.core.model.components.ElementParameter;
@@ -126,6 +127,7 @@ import org.talend.designer.core.model.utils.emf.talendfile.impl.ContextTypeImpl;
import org.talend.designer.core.ui.editor.nodes.Node;
import org.talend.designer.core.ui.editor.update.UpdateCheckResult;
import org.talend.designer.core.ui.editor.update.UpdateManagerUtils;
import org.talend.designer.core.ui.preferences.TalendDesignerPrefConstants;
import org.talend.designer.core.utils.ConnectionUtil;
import org.talend.designer.core.utils.SAPParametersUtils;
import org.talend.metadata.managment.ui.utils.ConnectionContextHelper;
@@ -308,6 +310,10 @@ public class ProcessUpdateManager extends AbstractUpdateManager {
}
}
} else {
Boolean propagate = DesignerPlugin.getDefault().getPreferenceStore().getBoolean(TalendDesignerPrefConstants.PROPAGATE_CONTEXT);
if(!propagate) {
return contextResults;
}
// only handle added groups
Set<String> contextSourceChecked = new HashSet<String>();
Set<String> processContextGroups = new HashSet<String>();
@@ -415,8 +421,6 @@ public class ProcessUpdateManager extends AbstractUpdateManager {
Map<ContextItem, Set<String>> existedParams = new HashMap<ContextItem, Set<String>>();
List<String> contextItemGroupNames = new ArrayList<String>();
for (IContext context : contextManager.getListContext()) {
for (IContextParameter param : context.getContextParameterList()) {
if (!param.isBuiltIn()) {
@@ -440,14 +444,6 @@ public class ProcessUpdateManager extends AbstractUpdateManager {
boolean builtin = true;
if (contextItem != null) {
if (contextItem instanceof ContextItem) {
contextItemGroupNames.clear();
EList<?> contextGroups = ((ContextItem) contextItem).getContext();
for (Object contextGroup : contextGroups) {
if (contextGroup instanceof ContextTypeImpl) {
String name = ((ContextTypeImpl) contextGroup).getName();
contextItemGroupNames.add(name);
}
}
final ContextType contextType = ContextUtils.getContextTypeByName((ContextItem) contextItem,
context.getName(), true);
if (contextType != null) {
@@ -459,10 +455,8 @@ public class ProcessUpdateManager extends AbstractUpdateManager {
existedParams.put(repositoryContext, new HashSet<String>());
}
existedParams.get(repositoryContext).add(paramName);
String jobContextGroupName = context.getName();
boolean contains = contextItemGroupNames.contains(jobContextGroupName);
if (contains && (onlySimpleShow || !ContextUtils.samePropertiesForContextParameter(param,
contextParameterType))) {
if (onlySimpleShow || !ContextUtils.samePropertiesForContextParameter(param,
contextParameterType)) {
unsameMap.add(contextItem, paramName);
}
builtin = false;
@@ -596,10 +590,14 @@ public class ProcessUpdateManager extends AbstractUpdateManager {
if (newParametersMap.get(contextItem) == null) {
newParametersMap.put(contextItem, new HashSet<String>());
}
// To avoid the case: serval contexts contain more than one same name parameters, but we only can add
// one of them
IContext processContext = ((JobContextManager) contextManager).getDefaultContext();
if (processContext.getContextParameter(parameterType.getName()) == null) {
newParametersMap.get(contextItem).add(parameterType.getName());
}
}
}
}
}

View File

@@ -247,7 +247,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
if (obj instanceof RepositoryNode) {
RepositoryNode sourceNode = (RepositoryNode) obj;
if (PluginChecker.isCDCPluginLoaded()) {
ICDCProviderService service = (ICDCProviderService) GlobalServiceRegister.getDefault().getService(
ICDCProviderService service = GlobalServiceRegister.getDefault().getService(
ICDCProviderService.class);
if (service != null && (service.isSubscriberTableNode(sourceNode) || service.isSystemSubscriberTable(sourceNode))) {
@@ -260,7 +260,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
}
IOozieService oozieService = null;
if (GlobalServiceRegister.getDefault().isServiceRegistered(IOozieService.class)) {
oozieService = (IOozieService) GlobalServiceRegister.getDefault().getService(IOozieService.class);
oozieService = GlobalServiceRegister.getDefault().getService(IOozieService.class);
}
if (oozieService != null && oozieService.isOozieNode(sourceNode)) {
return false;
@@ -268,7 +268,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
ISAPProviderService sapService = null;
if (GlobalServiceRegister.getDefault().isServiceRegistered(ISAPProviderService.class)) {
sapService = (ISAPProviderService) GlobalServiceRegister.getDefault().getService(ISAPProviderService.class);
sapService = GlobalServiceRegister.getDefault().getService(ISAPProviderService.class);
}
if (sapService != null && sapService.isSAPNode(sourceNode)) {
return false;
@@ -1051,7 +1051,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
Item item = sourceNode.getObject().getProperty().getItem();
if (GlobalServiceRegister.getDefault().isServiceRegistered(ITestContainerProviderService.class)) {
ITestContainerProviderService testContainerService = (ITestContainerProviderService) GlobalServiceRegister
ITestContainerProviderService testContainerService = GlobalServiceRegister
.getDefault().getService(ITestContainerProviderService.class);
if (testContainerService != null && testContainerService.isTestContainerItem(item)) {
continue;
@@ -1971,7 +1971,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
// special handle hbase to support tpigLoad
String hbaseName = EDatabaseTypeName.HBASE.getDisplayName().toUpperCase();
if (rcSetting != null && (hbaseName).equals(rcSetting.toString())) {
IComponentsService service = (IComponentsService) GlobalServiceRegister.getDefault().getService(
IComponentsService service = GlobalServiceRegister.getDefault().getService(
IComponentsService.class);
String componentProductname = null;
Collection<IComponent> components = service.getComponentsFactory().readComponents();
@@ -2125,7 +2125,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
EConnectionType connectionType = EConnectionType.FLOW_MAIN;
if (GlobalServiceRegister.getDefault().isServiceRegistered(ICamelDesignerCoreService.class)) {
ICamelDesignerCoreService camelService = (ICamelDesignerCoreService) GlobalServiceRegister.getDefault()
ICamelDesignerCoreService camelService = GlobalServiceRegister.getDefault()
.getService(ICamelDesignerCoreService.class);
if (camelService.isRouteBuilderNode(node)) {
connectionType = camelService.getTargetConnectionType(node);
@@ -2143,7 +2143,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
// FIXME perhaps, this is not good fix, need check it later
// bug 21411
if (PluginChecker.isJobLetPluginLoaded()) {
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(
IJobletProviderService service = GlobalServiceRegister.getDefault().getService(
IJobletProviderService.class);
if (service != null && service.isJobletComponent(targetConnection.getTarget())) {
if (targetConnection.getTarget() instanceof Node) {
@@ -2277,7 +2277,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
private boolean isLock(JobletContainerPart part) {
INode jobletNode = ((JobletContainer) part.getModel()).getNode();
if (PluginChecker.isJobLetPluginLoaded()) {
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(
IJobletProviderService service = GlobalServiceRegister.getDefault().getService(
IJobletProviderService.class);
if (service != null) {
return service.isLock(jobletNode);
@@ -2292,7 +2292,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
Node jobletNode = ((JobletContainer) part.getModel()).getNode();
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
if (PluginChecker.isJobLetPluginLoaded()) {
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(
IJobletProviderService service = GlobalServiceRegister.getDefault().getService(
IJobletProviderService.class);
if (service != null) {
openEditor = (AbstractMultiPageTalendEditor) service.openJobletEditor(jobletNode, page);
@@ -2332,7 +2332,7 @@ class ComponentChooseDialog extends ListDialog {
if (UnifiedComponentUtil.isDelegateComponent(component) && typeName != null) {
return component.getName() + "(" + typeName + ")";
}
return component.getName();
return component.getDisplayName();
}
/*

View File

@@ -266,6 +266,9 @@ public class TextController extends AbstractElementPropertySectionController {
* @param value
*/
private void checkTextError(IElementParameter param, Text labelText, Object value) {
if (elem instanceof Node) {
labelText.setToolTipText(VARIABLE_TOOLTIP + param.getVariableName());
}
// Only for job settings View.
// job settings extra (feature 2710)
if (param.getCategory() == EComponentCategory.STATSANDLOGS || param.getCategory() == EComponentCategory.EXTRA) {

View File

@@ -19,6 +19,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.emf.common.util.EList;
import org.eclipse.gef.commands.Command;
import org.eclipse.swt.widgets.Display;
@@ -36,6 +37,7 @@ import org.talend.core.model.process.IContextManager;
import org.talend.core.model.process.IContextParameter;
import org.talend.core.model.process.IProcess2;
import org.talend.core.model.properties.ContextItem;
import org.talend.core.model.properties.Item;
import org.talend.core.model.update.EUpdateItemType;
import org.talend.core.model.update.EUpdateResult;
import org.talend.core.model.update.UpdateResult;
@@ -86,15 +88,16 @@ public class UpdateContextParameterCommand extends Command {
if (result == null) {
return;
}
List<String> contextItemGroupNames = new ArrayList<String>();
Map<String, ContextType> repoContextMap = new HashMap<String, ContextType>();
String repoDefaultContextName = null;
if (result.getParameter() != null) {
if (result.getParameter() instanceof ContextItem) {
contextItemGroupNames.clear();
EList<?> contextGroups = ((ContextItem) result.getParameter()).getContext();
repoDefaultContextName = ((ContextItem) result.getParameter()).getDefaultContext();
for (Object contextGroup : contextGroups) {
if (contextGroup instanceof ContextTypeImpl) {
String name = ((ContextTypeImpl) contextGroup).getName();
contextItemGroupNames.add(name);
repoContextMap.put(name, ((ContextTypeImpl) contextGroup));
}
}
}
@@ -137,13 +140,19 @@ public class UpdateContextParameterCommand extends Command {
}
break;
case UPDATE:
if (contextItemGroupNames.contains(context.getName())) {
String sourceContextName = null;
if (repoContextMap.containsKey(context.getName())) {
sourceContextName = context.getName();
} else {
sourceContextName = repoDefaultContextName;
}
if (sourceContextName != null) {
item = (ContextItem) result.getParameter();
if (item != null && item.getProperty().getId().equals(param.getSource())
&& result.isChecked()) {
ContextUtils.updateParameterFromRepository(item, param, context.getName());
ContextUtils.updateParameterFromRepository(item, param, sourceContextName);
} else {
param.setSource(IContextParameter.BUILT_IN);
}
@@ -201,6 +210,30 @@ public class UpdateContextParameterCommand extends Command {
continue;
}
param = (JobContextParameter) contextParam.clone();
final Item contextItem = ContextUtils.getRepositoryContextItemById(param.getSource());
if (contextItem != null) {
if (contextItem instanceof ContextItem) {
String defaultContextName = ((ContextItem) contextItem).getDefaultContext();
ContextTypeImpl defaultContext = null;
EList<?> contextGroups = ((ContextItem) contextItem).getContext();
for (Object contextGroup : contextGroups) {
if (contextGroup instanceof ContextTypeImpl) {
String conName = ((ContextTypeImpl) contextGroup).getName();
if (StringUtils.equals(defaultContextName, conName)) {
defaultContext = ((ContextTypeImpl) contextGroup);
break;
}
}
}
if (defaultContext != null) {
final ContextParameterType conParamType = ContextUtils
.getContextParameterTypeByName(defaultContext, param.getName());
if (conParamType != null) {
ContextUtils.updateParameter(conParamType, param);
}
}
}
}
param.setContext(newContext);
newParamList.add(param);
}

View File

@@ -65,6 +65,9 @@ public class PerformancePreferencePage extends FieldEditorPreferencePage impleme
addField(new BooleanFieldEditor(TalendDesignerPrefConstants.CHECK_ONLY_LAST_VERSION,
Messages.getString("PerformancePreferencePage.checkVersion"), //$NON-NLS-1$
getFieldEditorParent()));
addField(new BooleanFieldEditor(TalendDesignerPrefConstants.PROPAGATE_CONTEXT,
Messages.getString("PerformancePreferencePage.propagateContext"), //$NON-NLS-1$
getFieldEditorParent()));
addField(new BooleanFieldEditor(TalendDesignerPrefConstants.PROPAGATE_CONTEXT_VARIABLE,
Messages.getString("PerformancePreferencePage.addOrDeleteVariable"), //$NON-NLS-1$
getFieldEditorParent()));
@@ -101,6 +104,9 @@ public class PerformancePreferencePage extends FieldEditorPreferencePage impleme
addField(new BooleanFieldEditor(TalendDesignerPrefConstants.CHECK_ONLY_LAST_VERSION,
Messages.getString("PerformancePreferencePage.checkVersion"), //$NON-NLS-1$
getFieldEditorParent()));
addField(new BooleanFieldEditor(TalendDesignerPrefConstants.PROPAGATE_CONTEXT,
Messages.getString("PerformancePreferencePage.propagateContext"), //$NON-NLS-1$
getFieldEditorParent()));
addField(new BooleanFieldEditor(TalendDesignerPrefConstants.PROPAGATE_CONTEXT_VARIABLE,
Messages.getString("PerformancePreferencePage.addOrDeleteVariable"), //$NON-NLS-1$
getFieldEditorParent()));

View File

@@ -68,6 +68,8 @@ public class TalendDesignerPrefConstants {
public static final String DUPLICATE_TESTCASE = "duplicateTestCases "; //$NON-NLS-1$
public static final String PROPAGATE_CONTEXT = "propagateContext"; //$NON-NLS-1$
public static final String SCHEMA_OPTIONS = "schemaOptions"; //$NON-NLS-1$
public static final String VIEW_OPTIONS = "viewOptions"; //$NON-NLS-1$

View File

@@ -151,9 +151,14 @@ public class BigDataJobUtil {
for (IElementParameter pt : parameters) {
if (pt.getName().equals("DISTRIBUTION")) { //$NON-NLS-1$
String value = String.valueOf(pt.getValue());
if ("MICROSOFT_HD_INSIGHT".equals(value) //$NON-NLS-1$
|| "GOOGLE_CLOUD_DATAPROC".equals(value) //$NON-NLS-1$
|| "CLOUDERA_ALTUS".equals(value) || "DATABRICKS".equals(value) || "QUBOLE".equals(value)) { //$NON-NLS-1$
return true;
}
}
}
if (isSparkWithYarnClusterMode()) {
return true;
}

View File

@@ -436,7 +436,9 @@ public class JavaProcessUtil {
if (var.equals(contextPara.getName())) {
String value =
context.getContextParameter(contextPara.getName()).getValue();
if (StringUtils.isBlank(value)) {
continue;
}
if (curParam.getName().equals(EParameterName.DRIVER_JAR.getName())
&& value.contains(";")) { //$NON-NLS-1$
String[] jars = value.split(";"); //$NON-NLS-1$

View File

@@ -49,8 +49,7 @@ public class UnifiedComponentUtil {
if (elementParameter != null && elementParameter.getValue() != null) {
String emfCompName = String.valueOf(elementParameter.getValue());
String paletteType = component.getPaletteType();
IComponentsService compService = (IComponentsService) GlobalServiceRegister.getDefault()
.getService(IComponentsService.class);
IComponentsService compService = GlobalServiceRegister.getDefault().getService(IComponentsService.class);
IComponent emfComponent = compService.getComponentsFactory().get(emfCompName, paletteType);
if (emfComponent != null) {
return emfComponent;
@@ -64,8 +63,7 @@ public class UnifiedComponentUtil {
public static boolean isDelegateComponent(IComponent component) {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IUnifiedComponentService.class)) {
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
.getService(IUnifiedComponentService.class);
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
if (service.isDelegateComponent(component)) {
return true;
}
@@ -75,8 +73,7 @@ public class UnifiedComponentUtil {
public static IComponent getDelegateComponent(IComponent component) {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IUnifiedComponentService.class)) {
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
.getService(IUnifiedComponentService.class);
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
return service.getDelegateComponent(component);
}
return component;
@@ -84,8 +81,7 @@ public class UnifiedComponentUtil {
public static IComponent getDelegateComponent(String componentName, String paletteType) {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IUnifiedComponentService.class)) {
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
.getService(IUnifiedComponentService.class);
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
return service.getDelegateComponent(componentName, paletteType);
}
return null;
@@ -94,8 +90,7 @@ public class UnifiedComponentUtil {
public static void createParameters(INode node, List<IElementParameter> listParams, IComponent delegateComp,
IComponent emfComp) {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IUnifiedComponentService.class)) {
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
.getService(IUnifiedComponentService.class);
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
service.createParameters(node, listParams, delegateComp, emfComp);
}
}
@@ -104,8 +99,7 @@ public class UnifiedComponentUtil {
List<? extends IElementParameter> oldParms, List<IMetadataTable> oldMetadataTables,
List<INodeConnector> oldConnectors) {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IUnifiedComponentService.class)) {
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
.getService(IUnifiedComponentService.class);
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
service.switchComponent(node, delegateComponent, oldEmfComponent, oldParms, oldMetadataTables, oldConnectors);
}
@@ -114,8 +108,7 @@ public class UnifiedComponentUtil {
public static List<IComponent> filterUnifiedComponent(RepositoryComponentSetting setting, List<IComponent> componentList) {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IUnifiedComponentService.class)) {
List<IComponent> filtedList = new ArrayList<IComponent>();
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
.getService(IUnifiedComponentService.class);
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
IComponentsHandler componentsHandler = ComponentsFactoryProvider.getInstance().getComponentsHandler();
filtedList.addAll(componentList);
for (IComponent component : componentList) {
@@ -149,12 +142,10 @@ public class UnifiedComponentUtil {
public static IComponent getEmfComponent(IComponentName setting, IComponent selectedComponent) {
if (isDelegateComponent(selectedComponent)) {
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
.getService(IUnifiedComponentService.class);
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
String paletteType = selectedComponent.getPaletteType();
String emfCompName = service.getUnifiedComponetName4DndFromRepository(setting, selectedComponent);
IComponentsService compService = (IComponentsService) GlobalServiceRegister.getDefault()
.getService(IComponentsService.class);
IComponentsService compService = GlobalServiceRegister.getDefault().getService(IComponentsService.class);
IComponent emfComponent = compService.getComponentsFactory().get(emfCompName, paletteType);
if (emfComponent != null) {
return emfComponent;
@@ -167,8 +158,7 @@ public class UnifiedComponentUtil {
public static String getUnifiedComponentDisplayName(IComponent delegateComponent, String emfComponent) {
if (isDelegateComponent(delegateComponent)) {
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
.getService(IUnifiedComponentService.class);
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
return service.getUnifiedCompDisplayName(delegateComponent, emfComponent);
}
return delegateComponent.getName();
@@ -194,17 +184,15 @@ public class UnifiedComponentUtil {
public static String getComponentDisplayNameForPalette(IComponent delegateComponent, String keyWord) {
if (isDelegateComponent(delegateComponent)) {
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
.getService(IUnifiedComponentService.class);
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
return service.getComponentDisplayNameForPalette(delegateComponent, keyWord);
}
return delegateComponent.getName();
return delegateComponent.getDisplayName();
}
public static IComponent getUnifiedComponentByFilter(IComponent delegateComponent, String filter) {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IUnifiedComponentService.class)) {
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
.getService(IUnifiedComponentService.class);
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
return service.getUnifiedComponentByFilter(delegateComponent, filter);
}
return null;

View File

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

View File

@@ -465,7 +465,9 @@ public class DbMapComponent extends AbstractMapComponent {
}
if (externalData != null) {
// rename metadata column name
List<ExternalDbMapTable> tables = new ArrayList<ExternalDbMapTable>(externalData.getInputTables());
List<ExternalDbMapTable> tables = new ArrayList<ExternalDbMapTable>();
List<ExternalDbMapTable> inputTables = new ArrayList<ExternalDbMapTable>(externalData.getInputTables());
tables.addAll(inputTables);
tables.addAll(externalData.getOutputTables());
ExternalDbMapTable tableFound = null;
for (ExternalDbMapTable table : tables) {
@@ -482,12 +484,24 @@ public class DbMapComponent extends AbstractMapComponent {
}
}
List<String> alias = new ArrayList<String>();
alias.add(conectionName);
for(ExternalDbMapTable table : inputTables) {
if (table.getTableName().equals(conectionName)) {
if(table.getAlias() != null) {
alias.add(table.getAlias());
}
}
}
// it is necessary to update expressions only if renamed column come from input table
for(String connName : alias) {
if (tableFound != null && externalData.getInputTables().indexOf(tableFound) != -1) {
TableEntryLocation oldLocation = new TableEntryLocation(conectionName, oldColumnName);
TableEntryLocation newLocation = new TableEntryLocation(conectionName, newColumnName);
TableEntryLocation oldLocation = new TableEntryLocation(connName, oldColumnName);
TableEntryLocation newLocation = new TableEntryLocation(connName, newColumnName);
replaceLocationsInAllExpressions(oldLocation, newLocation, false);
}
}
}
}

View File

@@ -1325,6 +1325,7 @@ public abstract class DbGenerationManager {
protected String initExpression(DbMapComponent component, ExternalDbMapEntry dbMapEntry) {
String quote = getQuote(component);
String quto_mark = TalendQuoteUtils.QUOTATION_MARK;
String expression = dbMapEntry.getExpression();
if (expression != null) {
List<Map<String, String>> itemNameList = null;
@@ -1349,7 +1350,7 @@ public abstract class DbGenerationManager {
itemNameList = mapParser2.parseInTableEntryLocations(expression);
}
String quoParser = "[\\\\]?\\" + quote; //$NON-NLS-1$
String quto_markParser = "[\\\\]?\\" + quto_mark; //$NON-NLS-1$
for (Map<String, String> itemNamemap : itemNameList) {
Set<Entry<String, String>> set = itemNamemap.entrySet();
Iterator<Entry<String, String>> ite = set.iterator();
@@ -1415,16 +1416,12 @@ public abstract class DbGenerationManager {
}
if (expression.trim().equals(tableValue + "." + oriName)) {
expression = tableValue + "." + getColumnName(iconn, oriName, quote);
if(TalendQuoteUtils.QUOTATION_MARK.equals(quote)){
expression = expression.replaceAll(quoParser,"\\\\" +quote); //$NON-NLS-1$
}
expression = expression.replaceAll(quto_markParser,"\\\\" +quto_mark); //$NON-NLS-1$
continue;
}
if (expression.trim().equals(originaltableName + "." + oriName)) {
expression = originaltableName + "." + getColumnName(iconn, oriName, quote);
if(TalendQuoteUtils.QUOTATION_MARK.equals(quote)){
expression = expression.replaceAll(quoParser,"\\\\" +quote); //$NON-NLS-1$
}
expression = expression.replaceAll(quto_markParser,"\\\\" +quto_mark); //$NON-NLS-1$
continue;
}
// if it is temp delived table, use label to generate sql
@@ -1438,9 +1435,7 @@ public abstract class DbGenerationManager {
}
expression = expression.replaceFirst(tableValue + "\\." + co.getLabel(), //$NON-NLS-1$
tableValue + "\\." + oriName); //$NON-NLS-1$
if(TalendQuoteUtils.QUOTATION_MARK.equals(quote)){
expression = replaceAuotes(expression, quoParser, quote);
}
expression = replaceAuotes(expression, quto_markParser, quto_mark);
}
}

View File

@@ -12,7 +12,6 @@
// ============================================================================
package org.talend.designer.dbmap.model.table;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -101,7 +100,6 @@ public class InputTable extends AbstractInOutTable {
}
}
ArrayList<IMetadataColumn> columnsToRemove = new ArrayList<IMetadataColumn>();
for (IMetadataColumn column : columns) {
InputColumnTableEntry inputEntry = (InputColumnTableEntry) getNewTableEntry(column);
ExternalDbMapEntry externalMapperTableEntry = nameToPerTabEntry.get(inputEntry.getMetadataColumn().getLabel());
@@ -110,13 +108,8 @@ public class InputTable extends AbstractInOutTable {
fillInputEntry(inputEntry, externalMapperTableEntry);
nameToPerTabEntry.remove(externalMapperTableEntry.getName());
}
if (externalMapperTableEntry != null || !isAliasTable) {
dataMapTableEntries.add(inputEntry);
} else {
columnsToRemove.add(column);
}
}
columns.removeAll(columnsToRemove);
// create unmatching entries
for (ExternalDbMapEntry perTableEntry : nameToPerTabEntry.values()) {

View File

@@ -300,6 +300,10 @@ public class MapperUI {
if (outputsTablesView.size() > 0) {
uiManager.selectDataMapTableView(outputsTablesView.get(0), true, false);
}
for (DataMapTableView view : outputsTablesView) {
view.getTableViewerCreatorForColumns().getTableViewer().refresh();
}
}
private void resizeNotMinimizedTablesAtExpandedSize(final Display display) {

View File

@@ -12,6 +12,8 @@
// ============================================================================
package org.talend.designer.dbmap.ui.tabs;
import java.util.List;
import org.eclipse.gef.commands.CommandStack;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.swt.SWT;
@@ -23,12 +25,19 @@ import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.talend.commons.ui.swt.advanced.dataeditor.control.ExtendedPushButton;
import org.talend.commons.ui.swt.colorstyledtext.UnnotifiableColorStyledText;
import org.talend.commons.ui.swt.extended.table.ExtendedButtonEvent;
import org.talend.commons.ui.swt.extended.table.IExtendedButtonListener;
import org.talend.core.CorePlugin;
import org.talend.core.ui.metadata.editor.MetadataTableEditorView;
import org.talend.core.ui.metadata.editor.MetadataToolbarEditorView;
import org.talend.designer.dbmap.MapperMain;
import org.talend.designer.dbmap.i18n.Messages;
import org.talend.designer.dbmap.managers.MapperManager;
import org.talend.designer.dbmap.model.table.InputTable;
import org.talend.designer.dbmap.model.table.OutputTable;
import org.talend.designer.dbmap.ui.visualmap.table.DataMapTableView;
/**
* DOC amaumont class global comment. Detailled comment <br/>
@@ -58,6 +67,10 @@ public class TabFolderEditors extends CTabFolder {
private String dbmsId;
private List<ExtendedPushButton> inputToolBarButtons;
private List<ExtendedPushButton> outputToolBarButtons;
public TabFolderEditors(Composite parent, int style, MapperManager mapperManager, String dbmsId) {
super(parent, style);
tabFolderEditors = this;
@@ -144,6 +157,8 @@ public class TabFolderEditors extends CTabFolder {
inputMetaEditor.initGraphicComponents();
inputMetaEditor.getExtendedTableViewer().setCommandStack(commandStack);
addListenersToInputButtons();
outputMetaEditor = new MetadataTableEditorView(inOutMetaEditorContainer, SWT.BORDER);
outputMetaEditor.setCurrentDbms(dbmsId);
outputMetaEditor.setShowDbTypeColumn(true, false, true);
@@ -152,6 +167,46 @@ public class TabFolderEditors extends CTabFolder {
outputMetaEditor.setShowPatternColumn(false);
outputMetaEditor.initGraphicComponents();
outputMetaEditor.getExtendedTableViewer().setCommandStack(commandStack);
addListenersToOutputButtons();
}
private void addListenersToInputButtons() {
MetadataToolbarEditorView toolBar = inputMetaEditor.getToolBar();
inputToolBarButtons = toolBar.getButtons();
IExtendedButtonListener afterCommandListener = new IExtendedButtonListener() {
public void handleEvent(ExtendedButtonEvent event) {
List<InputTable> inputTablesList = mapperManager.getInputTables();
for (InputTable inputTable : inputTablesList) {
DataMapTableView view = mapperManager.retrieveIDataMapTableView(inputTable);
view.getTableViewerCreatorForColumns().getTableViewer().refresh();
}
}
};
for (ExtendedPushButton extendedPushButton : inputToolBarButtons) {
extendedPushButton.addListener(afterCommandListener, false);
}
}
private void addListenersToOutputButtons() {
MetadataToolbarEditorView toolBar = outputMetaEditor.getToolBar();
outputToolBarButtons = toolBar.getButtons();
IExtendedButtonListener afterCommandListener = new IExtendedButtonListener() {
public void handleEvent(ExtendedButtonEvent event) {
List<OutputTable> outputTablesList = mapperManager.getOutputTables();
for (OutputTable outputTable : outputTablesList) {
DataMapTableView view = mapperManager.retrieveIDataMapTableView(outputTable);
view.getTableViewerCreatorForColumns().getTableViewer().refresh();
}
}
};
for (ExtendedPushButton extendedPushButton : outputToolBarButtons) {
extendedPushButton.addListener(afterCommandListener, false);
}
}
private StyledText createStyledText(CTabItem item) {

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.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>7.2.1-SNAPSHOT</version>
<version>7.2.1</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.mapper.advanced</artifactId>

View File

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

View File

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

View File

@@ -52,6 +52,14 @@
</includes>
</fileSet>
<fileSet><!-- add context resources -->
<directory>${resources.path}</directory>
<outputDirectory>${file.separator}</outputDirectory>
<includes>
<include>${talend.job.path}/**</include>
</includes>
</fileSet>
<fileSet> <!-- add provided-lib -->
<directory>${current.bundle.resources.dir}/provided-lib</directory>
<outputDirectory>lib</outputDirectory>

View File

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

View File

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

View File

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

View File

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

View File

@@ -743,6 +743,11 @@ public class DefaultRunProcessService implements IRunProcessService {
return TalendJavaProjectManager.getTalendJobJavaProject(property);
}
@Override
public IFolder getCodeSrcFolder(ERepositoryObjectType type, String projectTechName) {
return new AggregatorPomsHelper(projectTechName).getCodeSrcFolder(type);
}
@Override
public ITalendProcessJavaProject getTempJavaProject() {
return TalendJavaProjectManager.getTempJavaProject();
@@ -842,6 +847,8 @@ public class DefaultRunProcessService implements IRunProcessService {
if (ProcessUtils.isRequiredBeans(null, refProject)) {
installRefCodeProject(ERepositoryObjectType.valueOf("BEANS"), refHelper, monitor); //$NON-NLS-1$
}
deleteRefProjects(refProject, refHelper);
}
private void installRefCodeProject(ERepositoryObjectType codeType, AggregatorPomsHelper refHelper, IProgressMonitor monitor)
@@ -857,6 +864,28 @@ public class DefaultRunProcessService implements IRunProcessService {
argumentsMap.put(TalendProcessArgumentConstant.ARG_GOAL, TalendMavenConstants.GOAL_INSTALL);
argumentsMap.put(TalendProcessArgumentConstant.ARG_PROGRAM_ARGUMENTS, TalendMavenConstants.ARG_MAIN_SKIP);
codeProject.buildModules(monitor, null, argumentsMap);
}
}
private void deleteRefProjects(Project refProject, AggregatorPomsHelper refHelper) throws Exception {
IProgressMonitor monitor = new NullProgressMonitor();
deleteRefProject(ERepositoryObjectType.ROUTINES, refHelper, monitor);
deleteRefProject(ERepositoryObjectType.PIG_UDF, refHelper, monitor);
deleteRefProject(ERepositoryObjectType.valueOf("BEANS"), refHelper, monitor); //$NON-NLS-1$
}
private void deleteRefProject(ERepositoryObjectType codeType, AggregatorPomsHelper refHelper, IProgressMonitor monitor)
throws Exception, CoreException {
if (!refHelper.getProjectRootPom().exists()) {
return;
}
String projectTechName = refHelper.getProjectTechName();
ITalendProcessJavaProject codeProject = TalendJavaProjectManager.getExistingTalendCodeProject(codeType, projectTechName);
if (codeProject != null) {
codeProject.getProject().delete(false, true, monitor);
TalendJavaProjectManager.removeFromCodeJavaProjects(codeType, projectTechName);
}
@@ -893,17 +922,23 @@ public class DefaultRunProcessService implements IRunProcessService {
if (info.equals(mainJobInfo)) {
continue;
}
childPoms.add(info.getPomFile());
// copy source code to the main project
IFile codeFile = info.getCodeFile();
IPath refPath = codeFile.getProjectRelativePath();
IFolder targetFolder = mainProject.getFolder(refPath.removeLastSegments(1));
if (!targetFolder.exists()) {
targetFolder.create(true, false, progressMonitor);
}
if (codeFile.getLocation().removeLastSegments(1).equals(targetFolder.getLocation())) {
continue;
}
FilesUtils.copyDirectory(new File(codeFile.getLocation().toPortableString()),
new File(targetFolder.getLocation().toPortableString()));
childPoms.add(info.getPomFile());
}
PomUtil.updateMainJobDependencies(mainJobInfo.getPomFile(), childPoms, childJobDependencies, progressMonitor);

View File

@@ -15,6 +15,7 @@ package org.talend.designer.runprocess;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -31,7 +32,6 @@ import org.talend.commons.exception.CommonExceptionHandler;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.exception.PersistenceException;
import org.talend.commons.exception.SystemException;
import org.talend.commons.ui.runtime.exception.MessageBoxExceptionHandler;
import org.talend.core.CorePlugin;
import org.talend.core.model.process.IContainerEntry;
import org.talend.core.model.process.IProcess;
@@ -67,9 +67,10 @@ public class JobErrorsChecker {
}
try {
Item item = null;
IProxyRepositoryFactory proxyRepositoryFactory = CorePlugin.getDefault().getRepositoryService()
.getProxyRepositoryFactory();
ITalendSynchronizer synchronizer = CorePlugin.getDefault().getCodeGeneratorService().createRoutineSynchronizer();
IProxyRepositoryFactory proxyRepositoryFactory =
CorePlugin.getDefault().getRepositoryService().getProxyRepositoryFactory();
ITalendSynchronizer synchronizer =
CorePlugin.getDefault().getCodeGeneratorService().createRoutineSynchronizer();
Set<String> jobIds = new HashSet<String>();
HashSet<JobInfo> jobInfos = new HashSet<>();
@@ -94,13 +95,14 @@ public class JobErrorsChecker {
}
jobIds.add(item.getProperty().getId());
// Property property = process.getProperty();
Problems.addJobRoutineFile(sourceFile, ProblemType.JOB, item, true);
}
if (!CommonsPlugin.isHeadless()) {
List<IRepositoryViewObject> routinesObjects = proxyRepositoryFactory.getAll(ERepositoryObjectType.ROUTINES, false);
Set<String> dependentRoutines = LastGenerationInfo.getInstance().getRoutinesNeededWithSubjobPerJob(
LastGenerationInfo.getInstance().getLastMainJob().getJobId(),
List<IRepositoryViewObject> routinesObjects =
proxyRepositoryFactory.getAll(ERepositoryObjectType.ROUTINES, false);
Set<String> dependentRoutines = LastGenerationInfo
.getInstance()
.getRoutinesNeededWithSubjobPerJob(LastGenerationInfo.getInstance().getLastMainJob().getJobId(),
LastGenerationInfo.getInstance().getLastMainJob().getJobVersion());
if (routinesObjects != null) {
for (IRepositoryViewObject obj : routinesObjects) {
@@ -153,11 +155,11 @@ public class JobErrorsChecker {
public static boolean checkExportErrors(IStructuredSelection selection, boolean isJob) {
if (!selection.isEmpty()) {
final ITalendSynchronizer synchronizer = CorePlugin.getDefault().getCodeGeneratorService()
.createRoutineSynchronizer();
final ITalendSynchronizer synchronizer =
CorePlugin.getDefault().getCodeGeneratorService().createRoutineSynchronizer();
Set<String> jobIds = new HashSet<String>();
List<RepositoryNode> nodes = selection.toList();
List<RepositoryNode> nodes = extractNodes(selection);
if (nodes.size() > 1) {
// in case it's a multiple export, only check the status of the latest job to export
for (RepositoryNode node : nodes) {
@@ -189,22 +191,35 @@ public class JobErrorsChecker {
}
if (ret) {
if (isJob) {
throw new ProcessorException(Messages.getString("JobErrorsChecker_compile_errors") + '\n' + //$NON-NLS-1$
Messages.getString("JobErrorsChecker_compile_error_content", item.getProperty() //$NON-NLS-1$
.getLabel()) + '\n' + message);
throw new ProcessorException(
Messages.getString("JobErrorsChecker_compile_errors") + '\n' + //$NON-NLS-1$
Messages
.getString("JobErrorsChecker_compile_error_content", //$NON-NLS-1$
item.getProperty().getLabel())
+ '\n' + message);
} else {
throw new ProcessorException(Messages.getString("CamelJobErrorsChecker_compile_errors") + '\n' + //$NON-NLS-1$
Messages.getString("CamelJobErrorsChecker_compile_error_content", item.getProperty() //$NON-NLS-1$
.getLabel()) + '\n' + message);
throw new ProcessorException(
Messages.getString("CamelJobErrorsChecker_compile_errors") + '\n' + //$NON-NLS-1$
Messages
.getString("CamelJobErrorsChecker_compile_error_content", //$NON-NLS-1$
item.getProperty().getLabel())
+ '\n' + message);
}
}
jobIds.add(item.getProperty().getId());
Problems.addRoutineFile(sourceFile, ProblemType.JOB, item.getProperty().getLabel(), item.getProperty()
.getVersion(), true);
Problems
.addRoutineFile(sourceFile, ProblemType.JOB, item.getProperty().getLabel(),
item.getProperty().getVersion(), true);
} catch (Exception e) {
MessageBoxExceptionHandler.process(e);
CommonExceptionHandler.process(e);
if (CommonsPlugin.isHeadless()) {
// [TESB-8953] avoid SWT invoked and also throw Exception let Command Executor to have
// detailed
// trace in command status.
throw new RuntimeException(e);
}
return true;
}
@@ -214,13 +229,12 @@ public class JobErrorsChecker {
try {
checkLastGenerationHasCompilationError(true);
} catch (Exception e) {
if (CommonsPlugin.isHeadless()) {
CommonExceptionHandler.process(e);
if (CommonsPlugin.isHeadless()) {
// [TESB-8953] avoid SWT invoked and also throw Exception let Command Executor to have detailed
// trace in command status.
throw new RuntimeException(e);
}
MessageBoxExceptionHandler.process(e);
return true;
}
}
@@ -249,7 +263,12 @@ public class JobErrorsChecker {
}
}
} catch (Exception e) {
MessageBoxExceptionHandler.process(e);
CommonExceptionHandler.process(e);
if (CommonsPlugin.isHeadless()) {
// [TESB-8953] avoid SWT invoked and also throw Exception let Command Executor to have detailed
// trace in command status.
throw new RuntimeException(e);
}
return true;
}
@@ -264,9 +283,10 @@ public class JobErrorsChecker {
boolean hasError = false;
boolean isJob = true;
Item item = null;
final IProxyRepositoryFactory proxyRepositoryFactory = CorePlugin.getDefault().getRepositoryService()
.getProxyRepositoryFactory();
final ITalendSynchronizer synchronizer = CorePlugin.getDefault().getCodeGeneratorService().createRoutineSynchronizer();
final IProxyRepositoryFactory proxyRepositoryFactory =
CorePlugin.getDefault().getRepositoryService().getProxyRepositoryFactory();
final ITalendSynchronizer synchronizer =
CorePlugin.getDefault().getCodeGeneratorService().createRoutineSynchronizer();
Integer line = null;
String errorMessage = null;
try {
@@ -299,7 +319,7 @@ public class JobErrorsChecker {
// one job
final IResource[] members = file.getParent().members();
for (IResource member : members) {
if (member instanceof IFile && "java".equals(member.getFileExtension())) {
if (member instanceof IFile && "java".equals(member.getFileExtension())) { //$NON-NLS-1$
IMarker[] markers = ((IFile) member).findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_ONE);
for (IMarker marker : markers) {
Integer lineNr = (Integer) marker.getAttribute(IMarker.LINE_NUMBER);
@@ -322,7 +342,8 @@ public class JobErrorsChecker {
}
}
if (updateProblemsView) {
Problems.addRoutineFile(file, ProblemType.JOB, item.getProperty().getLabel(),
Problems
.addRoutineFile(file, ProblemType.JOB, item.getProperty().getLabel(),
item.getProperty().getVersion(), true);
}
if (hasError) {
@@ -335,17 +356,17 @@ public class JobErrorsChecker {
}
if (hasError && item != null) {
if (isJob) {
throw new ProcessorException(Messages.getString("JobErrorsChecker_compile_errors") + " " + '\n' + //$NON-NLS-1$
Messages.getString("JobErrorsChecker_compile_error_message", item.getProperty().getLabel()) + '\n' //$NON-NLS-1$
+ Messages.getString("JobErrorsChecker_compile_error_line") + ':' + ' ' + line + '\n' //$NON-NLS-1$
+ Messages.getString("JobErrorsChecker_compile_error_detailmessage") + ':' + ' ' + errorMessage + '\n' //$NON-NLS-1$
+ Messages.getString("JobErrorsChecker_compile_error_jvmmessage")); //$NON-NLS-1$
throw new ProcessorException(Messages.getString("JobErrorsChecker_compile_errors") + ' ' + '\n' + //$NON-NLS-1$
Messages.getString("JobErrorsChecker_compile_error_message", item.getProperty().getLabel()) //$NON-NLS-1$
+ '\n' + Messages.getString("JobErrorsChecker_compile_error_line") + ':' + ' ' + line + '\n' //$NON-NLS-1$
+ Messages.getString("JobErrorsChecker_compile_error_detailmessage") + ':' + ' ' + errorMessage //$NON-NLS-1$
+ '\n' + Messages.getString("JobErrorsChecker_compile_error_jvmmessage")); //$NON-NLS-1$
} else {
throw new ProcessorException(Messages.getString("CamelJobErrorsChecker_compile_errors") + " " + '\n' + //$NON-NLS-1$
Messages.getString("JobErrorsChecker_compile_error_message", item.getProperty().getLabel()) + '\n' //$NON-NLS-1$
+ Messages.getString("JobErrorsChecker_compile_error_line") + ':' + ' ' + line + '\n' //$NON-NLS-1$
+ Messages.getString("JobErrorsChecker_compile_error_detailmessage") + ':' + ' ' + errorMessage + '\n' //$NON-NLS-1$
+ Messages.getString("JobErrorsChecker_compile_error_jvmmessage")); //$NON-NLS-1$
throw new ProcessorException(Messages.getString("CamelJobErrorsChecker_compile_errors") + ' ' + '\n' + //$NON-NLS-1$
Messages.getString("JobErrorsChecker_compile_error_message", item.getProperty().getLabel()) //$NON-NLS-1$
+ '\n' + Messages.getString("JobErrorsChecker_compile_error_line") + ':' + ' ' + line + '\n' //$NON-NLS-1$
+ Messages.getString("JobErrorsChecker_compile_error_detailmessage") + ':' + ' ' + errorMessage //$NON-NLS-1$
+ '\n' + Messages.getString("JobErrorsChecker_compile_error_jvmmessage")); //$NON-NLS-1$
}
}
@@ -356,6 +377,7 @@ public class JobErrorsChecker {
}
private static void checkRoutinesCompilationError() throws ProcessorException {
if(LastGenerationInfo.getInstance() == null || LastGenerationInfo.getInstance().getLastMainJob() == null) {
return;
}
@@ -368,25 +390,28 @@ public class JobErrorsChecker {
for (Problem p : errors) {
if (p instanceof TalendProblem) {
TalendProblem talendProblem = (TalendProblem) p;
if (talendProblem.getType() == ProblemType.ROUTINE && dependentRoutines.contains(talendProblem.getJavaUnitName())) {
if (talendProblem.getType() == ProblemType.ROUTINE
&& dependentRoutines.contains(talendProblem.getJavaUnitName())) {
int line = talendProblem.getLineNumber();
String errorMessage = talendProblem.getDescription();
throw new ProcessorException(Messages.getString(
"JobErrorsChecker_routines_compile_errors", talendProblem.getJavaUnitName()) + '\n'//$NON-NLS-1$
+ Messages.getString("JobErrorsChecker_compile_error_line") + ':' + ' ' + line + '\n' //$NON-NLS-1$
+ Messages.getString("JobErrorsChecker_compile_error_detailmessage") + ':' + ' ' + errorMessage); //$NON-NLS-1$
throw new ProcessorException(Messages
.getString("JobErrorsChecker_routines_compile_errors", talendProblem.getJavaUnitName()) //$NON-NLS-1$
+ '\n' + Messages.getString("JobErrorsChecker_compile_error_line") + ':' + ' ' + line + '\n' //$NON-NLS-1$
+ Messages.getString("JobErrorsChecker_compile_error_detailmessage") + ':' + ' ' //$NON-NLS-1$
+ errorMessage);
}
} else {
// for now not to check components errors when building jobs in studio/commandline
// throw new ProcessorException(Messages.getString("JobErrorsChecker_jobDesign_errors", p.getType().getTypeName(), //$NON-NLS-1$
// throw new ProcessorException(Messages.getString("JobErrorsChecker_jobDesign_errors",
// p.getType().getTypeName(), //$NON-NLS-1$
// p.getJobInfo().getJobName(), p.getComponentName(), p.getDescription()));
}
}
// if can't find the routines problem, try to check the file directly(mainly for commandline)
try {
final ITalendSynchronizer synchronizer = CorePlugin.getDefault().getCodeGeneratorService()
.createRoutineSynchronizer();
final ITalendSynchronizer synchronizer =
CorePlugin.getDefault().getCodeGeneratorService().createRoutineSynchronizer();
IProxyRepositoryFactory factory = CorePlugin.getDefault().getProxyRepositoryFactory();
List<IRepositoryViewObject> routinesObjects = factory.getAll(ERepositoryObjectType.ROUTINES, false);
if (routinesObjects != null) {
@@ -407,10 +432,12 @@ public class JobErrorsChecker {
if (lineNr != null && message != null && severity != null && start != null && end != null) {
switch (severity) {
case IMarker.SEVERITY_ERROR:
throw new ProcessorException(
Messages.getString("JobErrorsChecker_routines_compile_errors", property.getLabel()) + '\n'//$NON-NLS-1$
+ Messages.getString("JobErrorsChecker_compile_error_line") + ':' + ' ' + lineNr + '\n' //$NON-NLS-1$
+ Messages.getString("JobErrorsChecker_compile_error_detailmessage") + ':' + ' ' + message); //$NON-NLS-1$
throw new ProcessorException(Messages
.getString("JobErrorsChecker_routines_compile_errors", property.getLabel()) //$NON-NLS-1$
+ '\n' + Messages.getString("JobErrorsChecker_compile_error_line") + ':' + ' ' //$NON-NLS-1$
+ lineNr + '\n'
+ Messages.getString("JobErrorsChecker_compile_error_detailmessage") //$NON-NLS-1$
+ ':' + ' ' + message);
default:
break;
}
@@ -427,7 +454,6 @@ public class JobErrorsChecker {
}
}
public static void checkShadowFileError(IFile file) throws ProcessorException {
try {
IMarker[] markers = file.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_ONE);
@@ -454,7 +480,8 @@ public class JobErrorsChecker {
}
protected static void checkSubJobMultipleVersionsError() throws ProcessorException {
if(LastGenerationInfo.getInstance() == null || LastGenerationInfo.getInstance().getLastGeneratedjobs() == null) {
if (LastGenerationInfo.getInstance() == null
|| LastGenerationInfo.getInstance().getLastGeneratedjobs() == null) {
return;
}
Set<JobInfo> jobInfos = LastGenerationInfo.getInstance().getLastGeneratedjobs();
@@ -483,4 +510,14 @@ public class JobErrorsChecker {
}
}
private static List<RepositoryNode> extractNodes(IStructuredSelection selection) {
List<RepositoryNode> nodes = new ArrayList<>();
for (Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {
Object o = iterator.next();
if (o instanceof RepositoryNode)
nodes.add((RepositoryNode) o);
}
return nodes;
}
}

View File

@@ -427,6 +427,11 @@ public class RunProcessService implements IRunProcessService {
return delegateService.getTalendJobJavaProject(property);
}
@Override
public IFolder getCodeSrcFolder(ERepositoryObjectType type, String projectTechName) {
return delegateService.getCodeSrcFolder(type, projectTechName);
}
@Override
public ITalendProcessJavaProject getTempJavaProject() {
return delegateService.getTempJavaProject();

View File

@@ -95,6 +95,7 @@ import org.talend.commons.exception.SystemException;
import org.talend.commons.ui.runtime.exception.RuntimeExceptionHandler;
import org.talend.commons.utils.generation.JavaUtils;
import org.talend.commons.utils.resource.FileExtensions;
import org.talend.commons.utils.system.EnvironmentUtils;
import org.talend.core.CorePlugin;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.PluginChecker;
@@ -153,6 +154,7 @@ import org.talend.designer.runprocess.prefs.RunProcessPrefsConstants;
import org.talend.designer.runprocess.utils.JobVMArgumentsUtil;
import org.talend.repository.ProjectManager;
import org.talend.repository.constants.BuildJobConstants;
import org.talend.repository.utils.EmfModelUtils;
import org.talend.repository.utils.EsbConfigUtils;
import org.talend.utils.io.FilesUtils;
@@ -273,7 +275,7 @@ public class JavaProcessor extends AbstractJavaProcessor implements IJavaBreakpo
}
private boolean isGuessSchemaJob(Property property) {
return "ID".equals(property.getId()) && "Mock_job_for_Guess_schema".equals(property.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$
return property != null && "ID".equals(property.getId()) && "Mock_job_for_Guess_schema".equals(property.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$
}
@Override
@@ -366,16 +368,39 @@ public class JavaProcessor extends AbstractJavaProcessor implements IJavaBreakpo
outputFolder = tProcessJavaProject.getTestOutputFolder();
} else {
srcFolder = tProcessJavaProject.getSrcFolder();
boolean needsToHaveContextInsideJar = true;
boolean needContextInJar = false;
if (property != null && property.getItem() instanceof ProcessItem) {
needsToHaveContextInsideJar = !new BigDataJobUtil(process).needsToHaveContextInsideJar();
if (process != null) {
needContextInJar = new BigDataJobUtil(process).needsToHaveContextInsideJar();
if (ProcessorUtilities.getMainJobInfo() != null) {
if (ProcessorUtilities.getMainJobInfo().getProcess() != null) {
if (ProcessorUtilities.isEsbJob(ProcessorUtilities.getMainJobInfo().getProcess(), true)
|| "CAMEL".equals(ProcessorUtilities.getMainJobInfo().getProcess().getComponentsType())) {
if (property.getItem() instanceof ProcessItem) {
if (!needContextInJar) {
if (null != EmfModelUtils.getComponentByName((ProcessItem) property.getItem(), "tRunJob", "cTalendJob")) {
needContextInJar = false;
} else {
if (ProcessorUtilities.isEsbJob(process, true)) {
needContextInJar = false;
} else {
needContextInJar = true;
}
}
}
} else if (property.getItem().eClass().getClassifierID() == 4) {
// CamelPropertiesPackage Line 516 int ROUTELET_PROCESS_ITEM = 4;
needContextInJar = true;
}
}
}
}
}
if (ProcessorUtilities.isExportConfig() && property != null && needsToHaveContextInsideJar) {
resourcesFolder = tProcessJavaProject.getExternalResourcesFolder();
} else {
if (needContextInJar) {
resourcesFolder = tProcessJavaProject.getResourcesFolder();
} else {
resourcesFolder = tProcessJavaProject.getExternalResourcesFolder();
}
outputFolder = tProcessJavaProject.getOutputFolder();
}
@@ -1180,7 +1205,17 @@ public class JavaProcessor extends AbstractJavaProcessor implements IJavaBreakpo
list.addAll(Arrays.asList(cmd2));
return list.toArray(new String[0]);
} else {
return cmd2;
List<String> asList = convertArgsToList(cmd2);
if ((!isExternalUse() && isStandardJob()) || isGuessSchemaJob(property)) {
String localM2Path = "-Dtalend.component.manager.m2.repository="; //$NON-NLS-1$
if (EnvironmentUtils.isWindowsSystem()) {
localM2Path = localM2Path + PomUtil.getLocalRepositoryPath().replaceAll("%20", " "); //$NON-NLS-1$ //$NON-NLS-2$
} else {
localM2Path = localM2Path + PomUtil.getLocalRepositoryPath();
}
asList.add(3, localM2Path);
}
return asList.toArray(new String[0]);
}
}
@@ -1461,19 +1496,20 @@ public class JavaProcessor extends AbstractJavaProcessor implements IJavaBreakpo
break;
}
}
useRelativeClasspath = hasCXFComponent;
IFolder execPath = talendJavaProject.getTargetFolder();
for (ModuleNeeded neededModule : neededModules) {
MavenArtifact artifact = MavenUrlHelper.parseMvnUrl(neededModule.getMavenUri());
String relativeJarPath = JavaProcessorUtilities.getJavaProjectLibFolder2()
.getFile(MavenUrlHelper.generateModuleNameByMavenURI(neededModule.getMavenUri())).getLocation()
.makeRelativeTo(execPath.getLocation())
.toPortableString();
IPath jarPath = JavaProcessorUtilities.getJavaProjectLibFolder2()
.getFile(MavenUrlHelper.generateModuleNameByMavenURI(neededModule.getMavenUri())).getLocation();
String artifactId = artifact.getArtifactId();
boolean hasSapjco3 = "sapjco3".equals(artifactId) && compareSapjco3Version(relativeJarPath) > 0; //$NON-NLS-1$
boolean hasSapjco3 = "sapjco3".equals(artifactId) //$NON-NLS-1$
&& compareSapjco3Version(jarPath.toPortableString()) > 0;
boolean hasSapidoc3 = "sapidoc3".equals(artifactId); //$NON-NLS-1$
useRelativeClasspath = hasCXFComponent || hasSapjco3 || hasSapidoc3;
if (useRelativeClasspath) {
libPath.append(relativeJarPath).append(classPathSeparator);
if (hasCXFComponent) {
libPath.append(jarPath.makeRelativeTo(execPath.getLocation()).toPortableString()).append(classPathSeparator);
} else if (hasSapjco3 || hasSapidoc3) {
libPath.append(jarPath.toPortableString()).append(classPathSeparator);
} else {
libPath.append(PomUtil.getAbsArtifactPathAsCP(artifact)).append(classPathSeparator);
}
@@ -1913,6 +1949,42 @@ public class JavaProcessor extends AbstractJavaProcessor implements IJavaBreakpo
copyEsbConfigFile(esbConfigsSourceFolder, esbConfigsTargetFolder, "oidc.properties"); //$NON-NLS-1$
}
}
try {
ITalendProcessJavaProject tProcessJvaProject = this.getTalendJavaProject();
if (tProcessJvaProject == null) {
return;
}
Item item = property.getItem();
IFolder externalResourcesFolder = tProcessJvaProject.getExternalResourcesFolder();
IFolder resourcesFolder = tProcessJvaProject.getResourcesFolder();
String jobClassPackageFolder = JavaResourcesHelper.getJobClassPackageFolder(item, false);
IPath jobContextFolderPath = new Path(jobClassPackageFolder).append(JavaUtils.JAVA_CONTEXTS_DIRECTORY);
IFolder extResourcePath = externalResourcesFolder.getFolder(jobContextFolderPath);
IFolder resourcesPath = resourcesFolder.getFolder(jobContextFolderPath);
if(!resourcesPath.exists()) {
tProcessJvaProject.createSubFolder(null, resourcesFolder, jobContextFolderPath.toString());
}
resourcesPath.refreshLocal(IResource.DEPTH_INFINITE, null);
for (IResource resource : extResourcePath.members()) {
IFile context = resourcesPath.getFile(resource.getName());
if (context.exists()) {
context.delete(true, null);
}
resource.copy(context.getFullPath(), true, null);
}
resourcesPath.refreshLocal(IResource.DEPTH_INFINITE, null);
} catch (Exception e) {
e.printStackTrace();
}
}
/**

View File

@@ -14,10 +14,12 @@ package org.talend.designer.runprocess.maven;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IResource;
@@ -26,15 +28,20 @@ import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Platform;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.exception.PersistenceException;
import org.talend.commons.ui.runtime.CommonUIPlugin;
import org.talend.commons.utils.generation.JavaUtils;
import org.talend.commons.utils.resource.FileExtensions;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.IESBService;
import org.talend.core.model.process.IProcess;
import org.talend.core.model.process.JobInfo;
import org.talend.core.model.process.ProcessUtils;
import org.talend.core.model.properties.Property;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.model.utils.JavaResourcesHelper;
import org.talend.core.repository.model.ProxyRepositoryFactory;
import org.talend.core.repository.utils.ItemResourceUtil;
import org.talend.core.runtime.process.ITalendProcessJavaProject;
import org.talend.core.runtime.process.LastGenerationInfo;
@@ -58,6 +65,7 @@ import org.talend.designer.runprocess.ProcessorException;
import org.talend.designer.runprocess.ProcessorUtilities;
import org.talend.designer.runprocess.java.JavaProcessor;
import org.talend.repository.i18n.Messages;
import org.talend.repository.model.IProxyRepositoryFactory;
/**
* created by ggu on 2 Feb 2015 Detailled comment
@@ -303,6 +311,30 @@ public class MavenJavaProcessor extends JavaProcessor {
buildTypeName = exportType != null ? exportType.toString() : null;
if (StringUtils.isBlank(buildTypeName) && GlobalServiceRegister.getDefault().isServiceRegistered(IESBService.class)) {
List<IRepositoryViewObject> serviceRepoList = null;
IESBService service = (IESBService) GlobalServiceRegister.getDefault().getService(IESBService.class);
try {
IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
serviceRepoList = factory.getAll(ERepositoryObjectType.valueOf(ERepositoryObjectType.class, "SERVICES"));
for (IRepositoryViewObject serviceItem : serviceRepoList) {
if (service != null) {
List<String> jobIds = service.getSerivceRelatedJobIds(serviceItem.getProperty().getItem());
if (jobIds.contains(itemProperty.getId())) {
buildTypeName = "OSGI";
break;
}
}
}
} catch (PersistenceException e) {
ExceptionHandler.process(e);
}
}
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put(IBuildParametes.ITEM, itemProperty.getItem());
parameters.put(IBuildPomCreatorParameters.PROCESSOR, this);

View File

@@ -96,6 +96,7 @@ import org.talend.core.model.process.IProcess2;
import org.talend.core.model.process.ISubjobContainer;
import org.talend.core.model.process.ReplaceNodesInProcessProvider;
import org.talend.core.model.properties.ConnectionItem;
import org.talend.core.prefs.ITalendCorePrefConstants;
import org.talend.core.ui.CoreUIPlugin;
import org.talend.core.ui.ITestContainerProviderService;
import org.talend.core.ui.branding.IBrandingService;
@@ -1682,12 +1683,12 @@ public class ProcessComposite extends ScrolledComposite implements IDynamicPrope
}
} else if (ProcessMessageManager.PROP_MESSAGE_ADD.equals(propName)
|| ProcessMessageManager.PROP_DEBUG_MESSAGE_ADD.equals(propName)) {
// IProcessMessage psMess = (IProcessMessage) evt.getNewValue();
//
// if (errorMessMap.size() <= CorePlugin.getDefault().getPreferenceStore()
// .getInt(ITalendCorePrefConstants.PREVIEW_LIMIT)) {
// if (!(LanguageManager.getCurrentLanguage().equals(ECodeLanguage.PERL))) {
// getAllErrorMess(psMess);
IProcessMessage psMess = (IProcessMessage) evt.getNewValue();
if (errorMessMap.size() <= CorePlugin.getDefault().getPreferenceStore()
.getInt(ITalendCorePrefConstants.PREVIEW_LIMIT)) {
getAllErrorMess(psMess);
}
// } else {
// addPerlMark(psMess);
// }
@@ -1793,9 +1794,12 @@ public class ProcessComposite extends ScrolledComposite implements IDynamicPrope
}
public void getAllErrorMess(IProcessMessage psMess) {
errorMessMap.putAll(ProcessErrorUtil.getAllErrorMess(psMess, processContext));
HashMap<String, IProcessMessage> result = ProcessErrorUtil.getAllErrorMess(psMess, processContext);
if (result != null) {
errorMessMap.putAll(result);
refreshNode(psMess);
}
}
public void refreshNode(final IProcessMessage psMess) {
Display.getDefault().asyncExec(new Runnable() {

View File

@@ -28,8 +28,9 @@ import org.talend.designer.runprocess.RunProcessContext;
public class ProcessErrorUtil {
public static HashMap<String, IProcessMessage> getAllErrorMess(IProcessMessage psMess, RunProcessContext processContext) {
HashMap<String, IProcessMessage> errorMessMap = new HashMap<String, IProcessMessage>();
HashMap<String, IProcessMessage> errorMessMap = null;
if (psMess.getType().equals(MsgType.STD_ERR)) {
errorMessMap = new HashMap<String, IProcessMessage>();
String mess = psMess.getContent();
String[] linesMess = mess.split("\n");//$NON-NLS-1$
StringBuffer currentMess = new StringBuffer();

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