Compare commits

...

92 Commits

Author SHA1 Message Date
wang wei
7109b98e9b fix(TDI-48203): fix for microservice case (#5526) 2022-08-05 14:56:53 +08:00
jiezhang-tlnd
e779dfec2d chore(TUP-36127)Upgrade commons-configuration to 2.8.0 (#5472)
* chore(TUP-36127)Upgrade commons-configuration to 2.8.0

* move commons-configuration-1.6 to commons-configuration2-2.8.0

* chore(TUP-36127)update in feature
2022-07-28 10:34:43 +08:00
wang wei
e16c7e1af3 fix(TDI-48203): [CVE]: routines.system.JSONObject(Object bean) use reflect to call method invoke, that's dangerous for evil script inject (#5426) 2022-07-27 09:37:32 +08:00
Zhiwei Xue
55aa8236ba fix(TUP-18979):Migration tasks including mapping files (#5452)
* fix(TUP-18979):Migration tasks including mapping files

* fix(TUP-18979):Fix UI import issue (#5457)

* fix(TUP-18979):fix sync mapping file error of job project (#5471)

* fix(TUP-18979):fix junit failure
2022-07-22 16:52:09 +08:00
pyzhou
e381b2f237 fix(TDI-48024): ResumeUtil performance issue (#5458)
* fix(TDI-48024): ResumeUtil performance issue

* NPE
2022-07-19 12:03:07 +08:00
jiezhang-tlnd
44b7aee6d0 add maven-shared-utils.3.3.3 to project templatle (#5467) 2022-07-18 08:53:45 +08:00
jiezhang-tlnd
499759ad39 chore(TUP-35938)CVE: dom4j:dom4j:1.6.1 (#5456) 2022-07-13 20:02:41 +08:00
Laurent BOURGEOIS
cf830accc0 fix(TBD-13998):Issue with Use Kerberos authentication checkbox in tImpalaConnection and tImpalaInput components (#5443) 2022-07-11 15:21:06 +02:00
jiezhang-tlnd
ae4cc4cdfd chore(TUP-35979)Adjust nimbus-jose-jwt-9.3.jar to (#5415)
nimbus-jose-jwt-9.22.jar
2022-06-30 12:08:37 +08:00
jiezhang-tlnd
909a8e4fb7 chore(TUP-35857)CVE: bsh-2.0b4.jar (#5381) 2022-06-30 09:47:42 +08:00
zyuan-talend
59d71296ce fix(TUP-31721): disable the warning in CI mode. (#5410) 2022-06-29 10:32:00 +08:00
bhe-talendbj
b80b862bcd chore(TUP-35849): add classifier support (#5408) (#5412) 2022-06-28 20:17:16 +08:00
Liu Xinquan
ed2b236467 fix(TDQ-20360) snowflake jdbc connection context mode issue (#5390) 2022-06-17 16:38:22 +08:00
Liu Xinquan
152a06856f fix(TDQ-20360) snowflake jdbc connection context mode issue (#5380) 2022-06-17 10:51:54 +08:00
sbliu
258be81901 chore(TUP-35708) upgrade maven-shared-utils to 3.3.3 (#5345) 2022-06-15 17:04:15 +08:00
zshen-talend
8c0bdc29bf fix(TDQ-20442):Split 'handelDQComponents()' so as to handle 2 DQ components(#5358) 2022-06-10 10:29:31 +08:00
bhe-talendbj
e09d3b98eb chore(TDI-47843): update tck connectors to 1.27.10 (#5348) 2022-06-02 19:48:00 +08:00
sbliu
774e01ef34 chore(TUP-35245) upgrade cxf to 3.4.7 (#5258)
* chore(TUP-35245) upgrade cxf to 3.4.7

* chore(TUP-35245) add package export
2022-06-02 09:30:57 +08:00
hzhao-talendbj
5dac1b510a fix(TUP-35310): after installed patch studio can only delete single (#5255) 2022-06-01 17:41:49 +08:00
sbliu
cdcba355d4 chore(TUP-35684) upgrade xmlbeans. (#5338)
* chore(TUP-35684) upgrade xmlbeans.

* chore(TUP-35684) update git ignore
2022-05-31 16:12:50 +08:00
bhe-talendbj
80d00edde3 chore(TUP-35685): upgrade database driver (#5331) 2022-05-31 11:39:00 +08:00
bhe-talendbj
b30b349b9b fix(TUP-35518): fix dropdownlist of context (#5285) 2022-05-26 16:07:19 +08:00
Zhiwei Xue
fc1c8d067b fix(TUP-31233):Routine pom is not updated after installed the required (#5313)
* fix(TUP-31233):Routine pom is not updated after installed the required
jar of user routine

* fix(TUP-31233):Routine pom is not updated after installed the required
jar of user routine
2022-05-25 18:04:53 +08:00
bhe-talendbj
b762239fa2 fix(TUP-35541): replace log4j1 by reload4j (#5291) 2022-05-13 10:38:55 +08:00
jiezhang-tlnd
13d7814fd5 fix(TUP-33047)Help links in Studio (#5259) 2022-05-09 10:38:44 +08:00
Chao MENG
bf855a7bb1 fix(TUP-35048): Job takes about 30-60 minutes to build in Studio (#5223)
* fix(TUP-35048): Job takes about 30-60 minutes to build in Studio
https://jira.talendforge.org/browse/TUP-35048

* fix(TUP-35048): Job takes about 30-60 minutes to build in Studio
https://jira.talendforge.org/browse/TUP-35048

Add junit
2022-05-05 17:28:06 +08:00
bhe-talendbj
f3b2637867 fix(TUP-34109): fix test case (#5270) 2022-05-05 11:44:01 +08:00
Emmanuel GALLOIS
e405558bd4 feat(TDI-47764): bump component-runtime to 1.38.6 (#5186) 2022-05-02 10:31:18 +02:00
Zhiwei Xue
915701e64b fix(TUP-35219):Nullpointer exception with building job on (#5262)
commandline-script mode
2022-04-29 15:00:42 +08:00
Zhiwei Xue
4038574557 fix(TUP-34109):[7.3.1] slow project export compared to studio 6.5.1 (#5203) 2022-04-29 15:00:29 +08:00
bhe-talendbj
69a2741416 feat(TUP-34987): backport (#5237) 2022-04-28 14:13:42 +08:00
bhe-talendbj
e43cc1f85b fix(TUP-28656): Run restclient job get error 'Error: Could not find or (#5190)
load main class' when using jdk11

Co-authored-by: Zhiwei Xue <zwxue@talend.com>
2022-04-26 15:39:26 +08:00
hzhao-talendbj
250ff496ba chore(TUP-35039):CVE: com.fasterxml.jackson (#5220) 2022-04-26 09:38:48 +08:00
Chao MENG
c99b037c7b chore: fix swtbot issue (#5239) 2022-04-19 11:12:46 +08:00
jiezhang-tlnd
810b694e5d add new line break (#5207) 2022-04-12 17:35:19 +08:00
jiezhang-tlnd
7e66cf70d2 remove old jar (#5196) 2022-04-08 10:36:46 +08:00
jiezhang-tlnd
0285fdc191 remove org.apache.log4j (#5189) 2022-04-07 10:44:14 +08:00
Liu Xinquan
59990aa2ca fix(TDQ-20222):Move backward 'handelDQComponents()' to avoid reset (#5176) 2022-04-06 16:13:54 +08:00
jiezhang-tlnd
2eff81da52 fix(TUP-35135)create a new plugin of org.apache.log4j (#5180)
* fix(TUP-35135)create a new plugin of org.apache.log4j

* add org.apache.log4j

* update to 1.2.19
2022-04-02 14:24:24 +08:00
wang wei
13a40cfda7 fix(TDI-47751): upgrade tcompv0 and tck connectors for studio 73 (#5171) 2022-03-30 22:32:12 +08:00
wang wei
e5ada32a75 fix(TDI-47633): CVE: Replace log4j1.x by reload4j or upgrade to log4j2 (#5145) 2022-03-30 18:26:44 +08:00
Zhiwei Xue
cdfd2170ba fix(TUP-35133):Run a job with subjob failed after applied a patch with (#5165)
new version of CI-Builder
2022-03-30 17:40:34 +08:00
jiezhang-tlnd
5a7f0e8fe9 fix(TUP-34954)CVE: Replace log4j1.x by reload4j (#5143)
* fix(TUP-34954)CVE: Replace log4j1.x by reload4j

* updated in HIVE classloader

* exclude log4j from slf4j-log4j12

* replace log4j1

* replace log4j with reload4j

* update maven-repository

* remove bundle type

* remove bundle type
2022-03-30 17:37:11 +08:00
Chao MENG
cacdff8623 fix(TUP-35034): CI - stop the build if custom component is missing (#5152)
* fix(TUP-35034): CI - stop the build if custom component is missing
https://jira.talendforge.org/browse/TUP-35034

* fix(TUP-35034): CI - stop the build if custom component is missing
https://jira.talendforge.org/browse/TUP-35034
2022-03-30 16:10:42 +08:00
bhe-talendbj
e462ba015b feat(TUP-33809): Studio commandline: DetectCVE to Get list of jobs impacted by CVE jars (#5022) (#5098)
* feat(TUP-33809): add detect cve service interface

* feat(TUP-33809): merge cveitem from different distributions

* feat(TUP-33809): add project name to report

* feat(TUP-33809): add columns to report header

* feat(TUP-33809): update report columns

* feat(TUP-33809): update report and cve index column names

* feat(TUP-33809): update usedbyTalend

* feat(TUP-33809): add getproductdate and test case

* feat(TUP-33809): fix test case

* feat(TUP-33809): revert from version changes

* feat(TUP-33809): by default not include fixed is false

* feat(TUP-33809): by default include not fixed is false

* feat(TUP-33809): add cvss colum for report

* feat(TUP-33809): update column name

* feat(TUP-33809): add clone of object
2022-03-30 11:40:21 +08:00
Oleksandr Zhelezniak
8223b8f650 fix(TDI-47651): bump Redshift driver to 1.2.55.1083 (#5131) 2022-03-24 11:02:05 +02:00
kjwang
489c28c19f Fix TUP-34930 Talend Studio 7.3 font color issues (#5102)
Fix TUP-34930 Talend Studio 7.3 font color issues
https://jira.talendforge.org/browse/TUP-34930
2022-03-17 10:30:33 +08:00
Pierre Teyssier
22f764d543 workitem(TUP-34590):improve performance of import items for tuj
backport 7.3
2022-03-06 15:15:12 +08:00
Hongchun Yi
6c48bc0f4e fix(TUP-34593):Cannot connect to Salesforce with password starting with
double-quotes
2022-03-02 12:06:37 +08:00
Hongchun Yi
5256afcd57 fix(TUP-34593):Cannot connect to Salesforce with password starting with
double-quotes
2022-03-02 12:02:51 +08:00
hcyi
38f32f5d5e fix(TUP-34593):Cannot connect to Salesforce with password starting with double-quotes (#5067)
* fix(TUP-34593):Cannot connect to Salesforce with password starting with
double-quotes

* fix(TUP-34593):Cannot connect to Salesforce with password starting with
double-quotes
2022-02-25 17:52:28 +08:00
Jill Yan
43b4b220d5 Revert "APPINT-34310 (#5049)" (#5072)
This reverts commit a046c641b0.
2022-02-25 15:40:40 +08:00
jiezhang-tlnd
c476f7bfbd fix(TUP-34772)CVE: com.h2database:h2:2.0.206 (#5056) 2022-02-24 17:22:17 +08:00
sbliu
448217029f fix(TUP-34769) Error fields for Rejects get dropped from tSalesforceOutput after Sync Columns. (#5060)
fix bug TUP-33497
2022-02-23 17:56:43 +08:00
Jill Yan
a046c641b0 APPINT-34310 (#5049)
Co-authored-by: jillyan <yan955599@gmail.com>
2022-02-22 14:42:22 +08:00
Xilai Dai
982e319f9d (APPINT-33481) fix the missing jetty-all when cHttp as server for MS (#5005) 2022-02-22 10:10:26 +08:00
ypiel
48ab34ef4a fix(TDI-47477): fix ParserUtils for date (#5047) 2022-02-18 10:19:45 +01:00
Jane Ding
b52c6e53e9 fix(TUP-34401):Detect Dependencies is not working (#5033) (#5036)
https://jira.talendforge.org/browse/TUP-34401
2022-02-16 10:34:56 +08:00
sponomarova
ae6b3f729b fix(TBD-13529): java.sql.SQLException: Illegal conversion after applying latest studio patch (#5020) 2022-02-08 11:30:40 +02:00
Jane Ding
185064bf0f fix(TUP-34401):Detect Dependencies is not working (#4964)
https://jira.talendforge.org/browse/TUP-34401
2022-01-30 11:25:11 +08:00
jiezhang-tlnd
7dfd4d8e81 fix(TUP-34483)CVE org.apache.maven.shared maven-shared-utils [0.4,0.1] (#4994)
* fix(TUP-34483)CVE org.apache.maven.shared maven-shared-utils [0.4,0.1]

* fix(TUP-34483)CVE org.apache.maven.shared:maven-shared-utils:[0.4,0.1]
2022-01-30 11:04:22 +08:00
pyzhou
a561e95c43 fix(TDI-47445) Upgrade tck in studio 7.3 (#4997) 2022-01-27 16:28:48 +08:00
jiezhang-tlnd
ea0b76f84c fix(TUP-34390)Wrong file selection dialog title for Export custom (#4988)
settings in Modules view
2022-01-25 10:12:28 +08:00
sbliu
b8a08d2228 chore(TUP-34444): remove unused jar (#4976) 2022-01-24 10:08:36 +08:00
kjwang
c36ca11190 TUP-34282 CVE: log4j-core(1.2-api)-[2-2.16.0) (#4924)
TUP-34282 CVE: log4j-core(1.2-api)-[2-2.16.0)
https://jira.talendforge.org/browse/TUP-34282
2022-01-07 10:01:23 +08:00
cbadillo1603
450cf88fbb fix(TBD-12184):Password field missing for tImpalaRow (#4520)
* Revert "Revert "fix(TBD-12184):Password field missing for tImpalaRow (#4472)" (#4507)"

This reverts commit f7fb174301.

* fix(TBD-12184):Password field missing for tImpalaRow

* fix(TBD-12184):Password field missing for tImpalaRow

* fix(TBD-12184):Password field missing for tImpalaRow

* fix(TBD-12184):Password field missing for tImpalaRow
2022-01-04 11:41:06 +01:00
Zhiwei Xue
273dbaff1d workitem(TUP-34111):slow studio build time for remote execution (#4885) 2021-12-30 16:05:10 +08:00
hzhao-talendbj
6d502306dc fix(TUP-33962): Error in handling default value as NULL (#4875)
* fix(TUP-33962): Error in handling default value as NULL

* fix(TUP-33962): Error in handling default value as NULL

* fix(TUP-33962): Error in handling default value as NULL
2021-12-29 18:32:39 +08:00
jiezhang-tlnd
4f7bd39423 chore(TUP-34027)CVE jackson-mapper(core)-asl-1.9.15-TALEND (#4908) 2021-12-29 16:46:07 +08:00
ypiel
44bfd08c04 chore: bump tck 1.28.5 (#4902) 2021-12-29 11:07:02 +08:00
zyuan-talend
2237c0b071 fix(TUP-33214):complement the tree node sorting logic. (#4905) 2021-12-29 10:19:58 +08:00
Jane Ding
6c77d40d68 fix(TUP-33830):[7.3] ref project compilation error (#4833)
* fix(TUP-33830):[7.3] ref project compilation error
https://jira.talendforge.org/browse/TUP-33830

* fix(TUP-33830):[7.3] ref project compilation error
https://jira.talendforge.org/browse/TUP-33830

* fix(TUP-33830):[7.3] ref project compilation error
https://jira.talendforge.org/browse/TUP-33830

* fix(TUP-33830):[7.3] ref project compilation error
https://jira.talendforge.org/browse/TUP-33830
2021-12-29 10:15:17 +08:00
Emmanuel GALLOIS
0017db5b19 feat(TDI-47278): bump component-runtime to 1.38.4 (#4896) 2021-12-20 14:23:59 +01:00
bhe-talendbj
09adee337e fix(TUP-34105): upgrade log4j2 to 2.16.0 (#4870) (#4871) 2021-12-15 17:30:01 +08:00
bhe-talendbj
b83227af06 fix(TUP-34105): upgrade log4j2 (#4853)
* fix(TUP-34105): upgrade log4j2

* fix(TUP-34105): upgrade log4j2

* fix(TUP-34105): revert to 2.15.0
2021-12-15 10:21:56 +08:00
bhe-talendbj
16586b7bfa feat(TUP-33718): backport (#4823) 2021-12-03 11:17:57 +08:00
Jane Ding
c2ce08daeb fix(TUP-33709):"Failed to create assembly" when compile a BD job with (#4783) (#4802) (#4820)
studio commandline
https://jira.talendforge.org/browse/TUP-33709
2021-12-02 17:30:25 +08:00
kjwang
40c71f6911 TUP-33443 The method tFileInputDelimited_1_onSubJobError(Exception, (#4811)
TUP-33443 The method tFileInputDelimited_1_onSubJobError(Exception,String, Map<String,Object>) is undefined for the type xxxxx
https://jira.talendforge.org/browse/TUP-33443
2021-11-29 10:06:29 +08:00
Emmanuel GALLOIS
776c0725b6 feat(TDI-46838): bump component-runtime to 1.38 (#4648) 2021-11-25 23:45:34 +01:00
sbliu
1228c42ed9 fix(TUP-33497) Bug in tDBOutput component when linking rejects to tMap. (#4773) 2021-11-24 17:10:07 +08:00
wang wei
75df15acaa fix(TDI-46962): tAmazonAuoraOutput compilation errors (#4761) 2021-11-16 10:11:33 +08:00
jiezhang-tlnd
992ae04ae9 Jzhang/73/tup 33498 (#4779)
* chore(TUP-33498)CVE Oauth 2.0 SDK with OpenID Connect extensions in

* CVE Oauth 2.0 SDK with OpenID Connect extensions in
2021-11-12 17:03:07 +08:00
pyzhou
2b8ff4f36a fix(TDI-46992): ResumeUtil throw BufferOverflowException (#4771)
* fix(TDI-46992): ResumeUtil throw BufferOverflowException

* replace variable
2021-11-12 10:00:06 +08:00
pyzhou
30d8840a31 Merge branch 'maintenance/7.3' of https://github.com/Talend/tcommon-studio-se into maintenance/7.3 2021-11-12 09:59:53 +08:00
Jane Ding
3ea2179438 fix(TUP-33617):java.io.OptionalDataException on tAvroInput (#4774)
* fix(TUP-33617):java.io.OptionalDataException on tAvroInput
https://jira.talendforge.org/browse/TUP-33617

* fix(TUP-33617):java.io.OptionalDataException on tAvroInput
https://jira.talendforge.org/browse/TUP-33617
2021-11-10 11:39:16 +08:00
pyzhou
e22daaaedf fix(TDI-46994) Upgrade tck in studio 7.3 (#4769) 2021-11-08 10:13:48 +08:00
pyzhou
571a496303 fix(TDI-46994) Upgrade tck in studio 7.3 2021-11-05 12:31:08 +08:00
hzhao-talendbj
86171f4473 fix(TUP-33485): [tELTMap] Delimited identifiers does not work for (#4716)
Snowflake
2021-10-27 16:38:43 +08:00
jiezhang-tlnd
ebe668a985 chore(TUP-33409)CVE commons-compress[1.7-1.17] (#4712) 2021-10-27 09:19:32 +08:00
Zhiwei Xue
cff7a54f6f fix(TUP-32812):Mvn package fail for route use custom routine jar/custom (#4691)
bean jar.
2021-10-26 14:32:05 +08:00
apoltavtsev
13309d3297 fix(APPINT-33907) Compile error for DemoRESTRoute when run in studio 2021-10-18 17:39:26 +02:00
sponomarova
311c5680d3 feat(TBD-12137): Synapse GA (#4679) 2021-10-15 17:03:29 +03:00
111 changed files with 3908 additions and 1206 deletions

View File

@@ -65,7 +65,7 @@ Module.view.download.external.modules.action.text=Download external modules
Module.view.download.external.modules.action.description=Download external modules
download.external.dialog.title=The following modules are not yet installed. Please download and install all required modules.
download.external.dialog.desciption=List of modules to be downloaded automatically or imported manually.
download.external.dialog.help.url=https://help.talend.com/display/KB/How+to+install+external+modules+in+the+Talend+products
download.external.dialog.help.url=https://document-link.us.cloud.talend.com/ts_ig_install-external-modules?version=73&lang=en&env=prd
AcceptModuleLicensesWizard.title=Download external modules
AcceptModuleLicensesWizardDialog.button.acceptAll=Accept all
AcceptModuleLicensesWizardDialog.cancelConfirmation.title=Confirmation

View File

@@ -1136,7 +1136,7 @@ DatabaseForm.hc.link.none=None
DatabaseForm.hc.link.repository=Repository
DatabaseForm.hc.link.title=Hadoop Cluster
DatabaseForm.checkFileExist=The file {0} is invalid or doesn't exist
DatabaseForm.helpInfo.installDriverLink.url=https://help.talend.com/pages/viewpage.action?pageId=14230347
DatabaseForm.helpInfo.installDriverLink.url=https://document-link.us.cloud.talend.com/ts_ig_install-external-modules?version=73&lang=en&env=prd
DatabaseForm.helpInfo.installDriverLink.label=How to install a driver
SelectorTableForm.toolTip=Not available with this database
FileStep1.modeButText=Read excel2007 file format(xlsx)

View File

@@ -20,7 +20,7 @@
<import plugin="org.apache.servicemix.bundles.avro" version="0.0.0" match="greaterOrEqual"/>
<import plugin="org.junit" version="4.13.2" match="greaterOrEqual"/>
<import plugin="org.slf4j.api" version="0.0.0" match="greaterOrEqual"/>
<import plugin="org.apache.commons.configuration" version="2.0.0" match="greaterOrEqual"/>
<import plugin="org.apache.commons.commons-configuration2" version="2.8.0" match="greaterOrEqual"/>
</requires>
<plugin id="org.talend.daikon" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.daikon.exception" download-size="0" install-size="0" version="0.0.0" unpack="false"/>

View File

@@ -95,11 +95,10 @@
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<type>bundle</type>
</dependency>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>1.2.19</version>
</dependency>
</dependencies>
<build>

View File

@@ -57,6 +57,8 @@ public class CommonsPlugin implements BundleActivator {
// TESB-17856: For commandline builds ESB Micorservice bundle
private static boolean isESBMicorservice = false;
private static Boolean isJunitWorking;
private static ServiceTracker proxyTracker;
public static boolean isWorkbenchCreated() {
@@ -123,6 +125,35 @@ public class CommonsPlugin implements BundleActivator {
return "org.talend.rcp.branding.tuj.product".equals(Platform.getProduct().getId()); //$NON-NLS-1$
}
public static boolean isJunitWorking() {
if (isJunitWorking == null) {
try {
String[] args = Platform.getCommandLineArgs();
String applicationId = null;
for (int i = 0; i < args.length - 1; i++) {
if (args[i].equalsIgnoreCase("-application")) { //$NON-NLS-1$
applicationId = args[i + 1];
}
}
if (applicationId != null
&& (applicationId.equals("org.eclipse.swtbot.eclipse.junit.headless.swtbottestapplication") //$NON-NLS-1$
|| applicationId.equals("org.eclipse.pde.junit.runtime.uitestapplication"))) { //$NON-NLS-1$
isJunitWorking = true;
} else {
isJunitWorking = false;
}
} catch (Throwable e) {
isJunitWorking = false;
}
}
if (isJunitWorking == null) {
isJunitWorking = false;
}
return isJunitWorking;
}
/**
* Answer the file associated with name. This handles the case of running as a plugin and running standalone which
* happens during testing.

View File

@@ -16,7 +16,6 @@ import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Date;
import java.util.Dictionary;
@@ -89,7 +88,6 @@ import org.talend.core.hadoop.BigDataBasicUtil;
import org.talend.core.model.general.ILibrariesService;
import org.talend.core.model.general.ModuleNeeded;
import org.talend.core.model.general.Project;
import org.talend.core.model.metadata.MetadataTalendType;
import org.talend.core.model.metadata.builder.connection.AbstractMetadataObject;
import org.talend.core.model.metadata.builder.connection.MetadataTable;
import org.talend.core.model.migration.IMigrationToolService;
@@ -142,6 +140,7 @@ import org.talend.core.runtime.util.ItemDateParser;
import org.talend.core.runtime.util.SharedStudioUtils;
import org.talend.core.service.ICoreUIService;
import org.talend.core.service.IUpdateService;
import org.talend.core.service.IDetectCVEService;
import org.talend.core.utils.CodesJarResourceCache;
import org.talend.cwm.helper.SubItemHelper;
import org.talend.cwm.helper.TableHelper;
@@ -2240,14 +2239,6 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
TimeMeasurePerformance.step("logOnProject", "Sync components libraries"); //$NON-NLS-1$
}
try {
// for new added mapping file, sync to project mapping folder
MetadataTalendType.syncNewMappingFileToProject();
} catch (SystemException e) {
// ignore
ExceptionHandler.process(e);
}
CodesJarResourceCache.initCodesJarCache();
currentMonitor = subMonitor.newChild(1, SubMonitor.SUPPRESS_NONE);
@@ -2348,17 +2339,6 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
TimeMeasurePerformance.step("logOnProject", "sync log4j"); //$NON-NLS-1$ //$NON-NLS-2$
}
try {
URL url = MetadataTalendType.getProjectForderURLOfMappingsFile();
if (url != null) {
// set the project mappings url
System.setProperty("talend.mappings.url", url.toString()); // $NON-NLS-1$
}
} catch (SystemException e) {
// ignore
ExceptionHandler.process(e);
}
if (runProcessService != null && !isCommandLineLocalRefProject) {
runProcessService.initializeRootPoms(monitor);
@@ -2467,6 +2447,15 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
if (runProcessService != null) {
runProcessService.clearProjectRelatedSettings();
}
// clear detect CVE cache
if (GlobalServiceRegister.getDefault().isServiceRegistered(IDetectCVEService.class)) {
IDetectCVEService detectCVESvc = GlobalServiceRegister.getDefault().getService(IDetectCVEService.class);
if (detectCVESvc != null) {
detectCVESvc.clearCache();
}
}
ReferenceProjectProvider.clearTacReferenceList();
ReferenceProjectProblemManager.getInstance().clearAll();
fullLogonFinished = false;

View File

@@ -1,280 +1,304 @@
<?xml version="1.0"?>
<mapping>
<dbms product="AMAZON_AURORA" id="amazon_aurora_id" label="Mapping AMAZON_AURORA"
default="true">
<dbTypes>
<dbType type="BIGINT" ignorePre="true"/>
<dbType type="BIGINT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="BINARY" ignorePre="true"/>
<dbType type="BIT" ignorePre="true" />
<dbType type="BLOB" ignoreLen="true" ignorePre="true" />
<dbType type="CHAR" defaultLength="200" ignorePre="true"/>
<dbType type="DATE" ignoreLen="true" ignorePre="true" />
<dbType type="DATETIME" ignoreLen="true" ignorePre="true" />
<dbType type="DECIMAL" defaultLength="20" defaultPrecision="10" preBeforelen="false"/>
<dbType type="DOUBLE" defaultLength="20" defaultPrecision="10"/>
<dbType type="DOUBLE UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="ENUM" ignoreLen="true" ignorePre="true" />
<dbType type="FLOAT" defaultPrecision="2"/>
<dbType type="FLOAT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="GEOMETRY" ignoreLen="true" ignorePre="true" />
<dbType type="GEOMETRYCOLLECTION" ignoreLen="true" ignorePre="true" />
<dbType type="INT" ignorePre="true" />
<dbType type="INT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="LINESTRING" ignoreLen="true" ignorePre="true" />
<dbType type="LONGTEXT" ignoreLen="true" ignorePre="true" />
<dbType type="LONGBLOB" ignoreLen="true" ignorePre="true"/>
<dbType type="MEDIUMBLOB" ignoreLen="true" ignorePre="true" />
<dbType type="MEDIUMINT" ignorePre="true" />
<dbType type="MEDIUMINT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="MEDIUMTEXT" ignoreLen="true" ignorePre="true" />
<dbType type="MULTILINESTRING" ignoreLen="true" ignorePre="true" />
<dbType type="MULTIPOINT" ignoreLen="true" ignorePre="true" />
<dbType type="MULTIPOLYGON" ignoreLen="true" ignorePre="true" />
<dbType type="POINT" ignoreLen="true" ignorePre="true" />
<dbType type="POLYGON" ignoreLen="true" ignorePre="true" />
<dbType type="SMALLINT" ignorePre="true" />
<dbType type="SMALLINT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="SET" ignoreLen="true" ignorePre="true" />
<dbType type="TEXT" ignoreLen="true" ignorePre="true" />
<dbType type="TIME" ignoreLen="true" ignorePre="true" />
<dbType type="TIMESTAMP" ignoreLen="true" ignorePre="true" />
<dbType type="TINYBLOB" ignoreLen="true" ignorePre="true" />
<dbType type="TINYINT" ignorePre="true" />
<dbType type="TINYINT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="TINYTEXT" ignoreLen="true" ignorePre="true" />
<dbType type="VARBINARY" ignorePre="true" />
<dbType type="VARCHAR" default="true" defaultLength="100" ignorePre="true"/>
<dbType type="YEAR" ignorePre="true"/>
</dbTypes>
<language name="java">
<talendToDbTypes><!-- Adviced mappings -->
<talendType type="id_List"/>
<talendType type="id_Boolean">
<dbType type="BIT" default="true" />
</talendType>
<talendType type="id_Byte">
<dbType type="TINYINT" default="true" />
<dbType type="BIGINT" />
<dbType type="INT" />
<dbType type="MEDIUMINT" />
<dbType type="SMALLINT" />
</talendType>
<talendType type="id_byte[]">
</talendType>
<talendType type="id_Character">
<dbType type="CHAR" default="true" />
<dbType type="VARCHAR"/>
</talendType>
<talendType type="id_Date">
<dbType type="DATE" />
<dbType type="DATETIME" default="true" />
<dbType type="TIME" />
<dbType type="YEAR" />
<dbType type="TIMESTAMP" />
</talendType>
<talendType type="id_BigDecimal">
<dbType type="DECIMAL" default="true" />
<dbType type="FLOAT"/>
<dbType type="DOUBLE" />
</talendType>
<talendType type="id_Double">
<dbType type="DOUBLE" default="true" />
<dbType type="FLOAT"/>
<dbType type="DECIMAL" />
</talendType>
<talendType type="id_Float">
<dbType type="FLOAT" default="true" />
<dbType type="DOUBLE"/>
<dbType type="DECIMAL" />
</talendType>
<talendType type="id_Integer">
<dbType type="INT" default="true" />
<dbType type="BIGINT" />
</talendType>
<talendType type="id_Long">
<dbType type="BIGINT" default="true" />
</talendType>
<talendType type="id_Object">
<dbType type="BLOB" default="true"/>
<dbType type="ENUM" />
<dbType type="GEOMETRY" />
<dbType type="GEOMETRYCOLLECTION" />
<dbType type="MEDIUMINT" />
<dbType type="LONGBLOB" />
<dbType type="MEDIUMBLOB" />
<dbType type="MULTIPOINT" />
<dbType type="MULTIPOLYGON" />
<dbType type="POINT" />
<dbType type="POLYGON" />
<dbType type="SET" />
<dbType type="TINYBLOB" />
</talendType>
<talendType type="id_Short">
<dbType type="SMALLINT" default="true" />
<dbType type="INT" />
<dbType type="BIGINT"/>
<dbType type="MEDIUMINT" />
</talendType>
<talendType type="id_String">
<dbType type="VARCHAR" default="true" />
<dbType type="LINESTRING" />
<dbType type="LONGTEXT"/>
<dbType type="MEDIUMTEXT" />
<dbType type="MULTILINESTRING" />
<dbType type="TEXT" />
<dbType type="TINYTEXT" />
</talendType>
</talendToDbTypes>
<dbToTalendTypes>
<dbType type="BIGINT">
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="BINARY">
<talendType type="id_Boolean" default="true" />
</dbType>
<dbType type="BIT">
<talendType type="id_Boolean" default="true" />
</dbType>
<dbType type="BLOB">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="CHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="DATE">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="DATETIME">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="DECIMAL">
<talendType type="id_Float"/>
<talendType type="id_Double"/>
<talendType type="id_BigDecimal" default="true"/>
</dbType>
<dbType type="DOUBLE">
<talendType type="id_Double" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="ENUM">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="FLOAT">
<talendType type="id_Float" default="true" />
<talendType type="id_Double"/>
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="GEOMETRY">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="GEOMETRYCOLLECTION">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="INT">
<talendType type="id_Integer" default="true" />
<talendType type="id_Long"/>
</dbType>
<dbType type="LINESTRING">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="LONGTEXT">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="LONGBLOB">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="MEDIUMBLOB">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="MEDIUMINT">
<talendType type="id_Integer" default="true" />
<talendType type="id_Long"/>
</dbType>
<dbType type="MEDIUMTEXT">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="MULTILINESTRING">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="MULTIPOINT">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="MULTIPOLYGON">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="POINT">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="POLYGON">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="SMALLINT">
<talendType type="id_Short" default="true" />
<talendType type="id_Long"/>
<talendType type="id_Integer"/>
</dbType>
<dbType type="SET">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="TEXT">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="TIME">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TIMESTAMP">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TINYBLOB">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="TINYINT">
<talendType type="id_Byte" default="true" />
<talendType type="id_Integer"/>
<talendType type="id_Long"/>
<talendType type="id_Short"/>
</dbType>
<dbType type="TINYTEXT">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="VARBINARY">
</dbType>
<dbType type="VARCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="YEAR">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="BIGINT UNSIGNED" >
</dbType>
<dbType type="DOUBLE UNSIGNED" >
<talendType type="id_Double" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="FLOAT UNSIGNED" >
<talendType type="id_Double" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="INT UNSIGNED" >
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="MEDIUMINT UNSIGNED" >
<talendType type="id_Integer" default="true" />
<talendType type="id_Long" />
</dbType>
<dbType type="SMALLINT UNSIGNED" >
<talendType type="id_Integer" default="true" />
<talendType type="id_Long" />
</dbType>
<dbType type="TINYINT UNSIGNED" >
<talendType type="id_Short" default="true" />
<talendType type="id_Integer" />
<talendType type="id_Long" />
</dbType>
</dbToTalendTypes>
</language>
</dbms>
</mapping>
<?xml version="1.0"?>
<mapping>
<dbms product="AMAZON_AURORA" id="amazon_aurora_id" label="Mapping AMAZON_AURORA"
default="true">
<dbTypes>
<dbType type="BIGINT" ignorePre="true"/>
<dbType type="BIGINT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="BINARY" ignorePre="true"/>
<dbType type="BIT" ignorePre="true" />
<dbType type="BLOB" ignoreLen="true" ignorePre="true" />
<dbType type="CHAR" defaultLength="200" ignorePre="true"/>
<dbType type="DATE" ignoreLen="true" ignorePre="true" />
<dbType type="DATETIME" ignoreLen="true" ignorePre="true" />
<dbType type="DECIMAL" defaultLength="20" defaultPrecision="10" preBeforelen="false"/>
<dbType type="DOUBLE" defaultLength="20" defaultPrecision="10"/>
<dbType type="DOUBLE UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="ENUM" ignoreLen="true" ignorePre="true" />
<dbType type="FLOAT" defaultPrecision="2"/>
<dbType type="FLOAT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="GEOMETRY" ignoreLen="true" ignorePre="true" />
<dbType type="GEOMETRYCOLLECTION" ignoreLen="true" ignorePre="true" />
<dbType type="INT" ignorePre="true" />
<dbType type="INT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="INTEGER" ignorePre="true" />
<dbType type="INTEGER UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="LINESTRING" ignoreLen="true" ignorePre="true" />
<dbType type="LONGTEXT" ignoreLen="true" ignorePre="true" />
<dbType type="LONGBLOB" ignoreLen="true" ignorePre="true"/>
<dbType type="MEDIUMBLOB" ignoreLen="true" ignorePre="true" />
<dbType type="MEDIUMINT" ignorePre="true" />
<dbType type="MEDIUMINT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="MEDIUMTEXT" ignoreLen="true" ignorePre="true" />
<dbType type="MULTILINESTRING" ignoreLen="true" ignorePre="true" />
<dbType type="MULTIPOINT" ignoreLen="true" ignorePre="true" />
<dbType type="MULTIPOLYGON" ignoreLen="true" ignorePre="true" />
<dbType type="POINT" ignoreLen="true" ignorePre="true" />
<dbType type="POLYGON" ignoreLen="true" ignorePre="true" />
<dbType type="SMALLINT" ignorePre="true" />
<dbType type="SMALLINT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="SET" ignoreLen="true" ignorePre="true" />
<dbType type="TEXT" ignoreLen="true" ignorePre="true" />
<dbType type="TIME" ignoreLen="true" ignorePre="true" />
<dbType type="TIMESTAMP" ignoreLen="true" ignorePre="false" />
<dbType type="TINYBLOB" ignoreLen="true" ignorePre="true" />
<dbType type="TINYINT" ignorePre="true" />
<dbType type="TINYINT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="TINYTEXT" ignoreLen="true" ignorePre="true" />
<dbType type="VARBINARY" ignorePre="true" />
<dbType type="VARCHAR" default="true" defaultLength="100" ignorePre="true"/>
<dbType type="YEAR" ignorePre="true"/>
</dbTypes>
<language name="java">
<talendToDbTypes><!-- Adviced mappings -->
<talendType type="id_List"/>
<talendType type="id_Boolean">
<dbType type="BIT" default="true" />
</talendType>
<talendType type="id_Byte">
<dbType type="TINYINT" default="true" />
<dbType type="BIGINT" />
<dbType type="INT" />
<dbType type="MEDIUMINT" />
<dbType type="SMALLINT" />
</talendType>
<talendType type="id_byte[]">
<dbType type="VARBINARY" default="true" />
<dbType type="BINARY" />
<dbType type="BIT" />
<dbType type="BLOB" />
<dbType type="LONGBLOB" />
<dbType type="MEDIUMBLOB" />
<dbType type="TINYBLOB" />
</talendType>
<talendType type="id_Character">
<dbType type="CHAR" default="true" />
<dbType type="VARCHAR"/>
</talendType>
<talendType type="id_Date">
<dbType type="DATE" />
<dbType type="DATETIME" default="true" />
<dbType type="TIME" />
<dbType type="YEAR" />
<dbType type="TIMESTAMP" />
</talendType>
<talendType type="id_BigDecimal">
<dbType type="DECIMAL" default="true" />
<dbType type="FLOAT"/>
<dbType type="DOUBLE" />
</talendType>
<talendType type="id_Double">
<dbType type="DOUBLE" default="true" />
<dbType type="FLOAT"/>
<dbType type="DECIMAL" />
</talendType>
<talendType type="id_Float">
<dbType type="FLOAT" default="true" />
<dbType type="DOUBLE"/>
<dbType type="DECIMAL" />
</talendType>
<talendType type="id_Integer">
<dbType type="INT" default="true" />
<dbType type="BIGINT" />
</talendType>
<talendType type="id_Long">
<dbType type="BIGINT" default="true" />
</talendType>
<talendType type="id_Object">
<dbType type="BLOB" default="true"/>
<dbType type="ENUM" />
<dbType type="GEOMETRY" />
<dbType type="GEOMETRYCOLLECTION" />
<dbType type="MEDIUMINT" />
<dbType type="LONGBLOB" />
<dbType type="MEDIUMBLOB" />
<dbType type="MULTIPOINT" />
<dbType type="MULTIPOLYGON" />
<dbType type="POINT" />
<dbType type="POLYGON" />
<dbType type="SET" />
<dbType type="TINYBLOB" />
</talendType>
<talendType type="id_Short">
<dbType type="SMALLINT" default="true" />
<dbType type="INT" />
<dbType type="BIGINT"/>
<dbType type="MEDIUMINT" />
</talendType>
<talendType type="id_String">
<dbType type="VARCHAR" default="true" />
<dbType type="LINESTRING" />
<dbType type="LONGTEXT"/>
<dbType type="MEDIUMTEXT" />
<dbType type="MULTILINESTRING" />
<dbType type="TEXT" />
<dbType type="TINYTEXT" />
<dbType type="CHAR" />
</talendType>
</talendToDbTypes>
<dbToTalendTypes>
<dbType type="BIGINT">
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="BINARY">
<talendType type="id_byte[]" />
<talendType type="id_Boolean" default="true" />
</dbType>
<dbType type="BIT">
<talendType type="id_byte[]" />
<talendType type="id_Boolean" default="true" />
</dbType>
<dbType type="BLOB">
<talendType type="id_byte[]" default="true" />
<talendType type="id_Object" />
</dbType>
<dbType type="CHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="DATE">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="DATETIME">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="DECIMAL">
<talendType type="id_Float"/>
<talendType type="id_Double"/>
<talendType type="id_BigDecimal" default="true"/>
</dbType>
<dbType type="DOUBLE">
<talendType type="id_Double" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="ENUM">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="FLOAT">
<talendType type="id_Float" default="true" />
<talendType type="id_Double"/>
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="GEOMETRY">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="GEOMETRYCOLLECTION">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="INT">
<talendType type="id_Integer" default="true" />
<talendType type="id_Long"/>
</dbType>
<dbType type="INTEGER">
<talendType type="id_Integer" default="true" />
<talendType type="id_Long"/>
</dbType>
<dbType type="LINESTRING">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="LONGTEXT">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="LONGBLOB">
<talendType type="id_byte[]" default="true" />
<talendType type="id_Object" />
</dbType>
<dbType type="MEDIUMBLOB">
<talendType type="id_byte[]" default="true" />
<talendType type="id_Object" />
</dbType>
<dbType type="MEDIUMINT">
<talendType type="id_Integer" default="true" />
<talendType type="id_Long"/>
</dbType>
<dbType type="MEDIUMTEXT">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="MULTILINESTRING">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="MULTIPOINT">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="MULTIPOLYGON">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="POINT">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="POLYGON">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="SMALLINT">
<talendType type="id_Short" default="true" />
<talendType type="id_Long"/>
<talendType type="id_Integer"/>
</dbType>
<dbType type="SET">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="TEXT">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="TIME">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TIMESTAMP">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TINYBLOB">
<talendType type="id_byte[]" default="true" />
<talendType type="id_Object" />
</dbType>
<dbType type="TINYINT">
<talendType type="id_Byte" default="true" />
<talendType type="id_Integer"/>
<talendType type="id_Long"/>
<talendType type="id_Short"/>
</dbType>
<dbType type="TINYTEXT">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="VARBINARY">
<talendType type="id_byte[]" default="true" />
</dbType>
<dbType type="VARCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="YEAR">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="BIGINT UNSIGNED" >
</dbType>
<dbType type="DOUBLE UNSIGNED" >
<talendType type="id_Double" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="FLOAT UNSIGNED" >
<talendType type="id_Double" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="INT UNSIGNED" >
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="INTEGER UNSIGNED" >
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="MEDIUMINT UNSIGNED" >
<talendType type="id_Integer" default="true" />
<talendType type="id_Long" />
</dbType>
<dbType type="SMALLINT UNSIGNED" >
<talendType type="id_Integer" default="true" />
<talendType type="id_Long" />
</dbType>
<dbType type="TINYINT UNSIGNED" >
<talendType type="id_Short" default="true" />
<talendType type="id_Integer" />
<talendType type="id_Long" />
</dbType>
</dbToTalendTypes>
</language>
</dbms>
</mapping>

View File

@@ -22,7 +22,7 @@
<dbType type="INT" ignorePre="true" />
<dbType type="INT UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="INTEGER" ignorePre="true" />
<dbType type="INTEGER UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="INTEGER UNSIGNED" ignoreLen="true" ignorePre="true" />
<dbType type="LINESTRING" ignoreLen="true" ignorePre="true" />
<dbType type="LONGTEXT" ignoreLen="true" ignorePre="true" />
<dbType type="LONGBLOB" ignoreLen="true" ignorePre="true"/>
@@ -190,9 +190,9 @@
<talendType type="id_Long"/>
</dbType>
<dbType type="INTEGER">
<talendType type="id_Integer" default="true" />
<talendType type="id_Long"/>
</dbType>
<talendType type="id_Integer" default="true" />
<talendType type="id_Long"/>
</dbType>
<dbType type="LINESTRING">
<talendType type="id_String" default="true" />
</dbType>
@@ -282,8 +282,8 @@
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="INTEGER UNSIGNED" >
<talendType type="id_Long" default="true" />
</dbType>
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="MEDIUMINT UNSIGNED" >
<talendType type="id_Integer" default="true" />
<talendType type="id_Long" />

View File

@@ -0,0 +1,238 @@
{
"mapping_AS400.xml": {
"28fe6b6c94e4e486d431873ba556c1c18ae09140": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"3d4845af057220e02773029683a0fd99dee489e5": "a9861e98b581dfdafa7839238710bd930989960a",
"458d597928478f43c94098dfe47d9bb8d07e89e2": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8",
"76a4aa354d986ed5682797337817a8ddbb80ae89": "d568bf814d7b27fc7c63cbd07ea6b4a3b0ad3ff8"
},
"mapping_Access.xml": {
"55d314ed9708263bfcec193abb57a1e25806626e": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"718db25f8e86d6b61284a4ffdc1fd19faffb98a9": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8"
},
"mapping_AmazonAurora.xml": {
"a93c809bdf8e5df8095580e3f23b29658e044302": "ebc9394c2728a3f3850fcbafac4156ef15aab37f",
"ba16c203a8a993e13ebab0da5cccb7a5e1c01e56": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_BigQuery.xml": {
"db723e5b4a38bbc8316593be33ab9d74f57776e6": "e1770847f656589810753c19d420228326462f34",
"e12df204d9f5081971d03c64b43de2456557e02e": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"e9c02d3e9bc3a3649fd33803353e61db6fcd2ea8": "01749151dcc171ebb6457ba872ee352d58a1dfd4"
},
"mapping_Cassandra.xml": {
"20ed188f8824c14852304920cf82ca7119eb1be0": "ab7b23e6c94946ca2358cc0cfd82c4d77a4c5839",
"692353c474569bafd44854b7f7343929beddee83": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"e42bdadd0009e7595773edcc1652f181a8fdf151": "76ed27054255165c23d8c0c8db081a41a50430c9",
"ff005c2bfc47789e5715e949f98bd6d72c934b54": "ebe76b0edd0eda3488527b95f2a6d925d091a408"
},
"mapping_Cassandra22_datastax.xml": {
"2ddd561eac2a04a7b08949c0764c5e76f80c89f5": "b0378fb45ae238b884417db468872341e156f138",
"33b483680a44a8229b09698df3803f5834987f18": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_Cassandra40.xml": {
"e92b373950021eb425db9e3eba8391f98ce7e4a8": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_Cassandra_datastax.xml": {
"3cb6b5cf167fb5ba82b3ebdc602f22ecdacdafb5": "56fad9370b27d03a9636d8368350274480fc2bce",
"ca09b169eee6e6dcfa81f976bd98ef4aae81cdf2": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"e1620c54d6793c6d1885e3e2fcdf242c0e3a4059": "df28e2b92f57ba0486215f334edb649a58788712"
},
"mapping_Databricks_Delta_Lake.xml": {
"d48793d7173ea7d07090f5e683045c3f60cc12c8": "21f5ac777158fc55288af7337737aa675e20bdf3",
"dcbe4533fe16fee70f24702edddec78b81e26463": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_Exasol.xml": {
"21ff2b1a69b7242fa48a1218b0d5f8a6b0ba607e": "a0d36282ff5d6825b206ab6f794d13e048ac2192",
"3768b1e7a941e66f8a70ad7e1a65aa7d2b598daa": "7ef9ede0f988f10489c1f5ffe16ea24d2d14ecdd",
"6babf3080a3baa05bcd8a2815d2f31a0b15e1550": "02a98e53d3b6457272768ce0ae5c82992b403465",
"7de8a81bc2eb7c4da639af148c2c67b5c6de4bc0": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"a728306274b817e8afa0101d3b7621398addc2f3": "b5b116b3758f58e7500058e1805bf93bf5a2f0c1",
"dc2eba14e50ce7c413fb7696355e67d26fe5fb9b": "57bacf1f97951fcf6f650f1afdec35b5ea22638c",
"f670268dfd5a8f80fbdbe6fe4ad668cb6c8f25d6": "ead0fb11f124cf05ad0f7fde21cdedbb3cf2160b"
},
"mapping_Firebird.xml": {
"51a041d0b43678433f6303aebac5f92bfdb7b8a6": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"d504ece6ca9e10e23f5e0f05660e5f49e7d999ff": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8"
},
"mapping_Greenplum.xml": {
"16418522006e4505c7fb7d44c4d06928de20eaf8": "ec04f46618ef0586081fd3b17ad7b85239958194",
"4f3e1b53baca729eef796979e97592c8724a2d91": "caf54e3d2b6c6d685cdcf2a243c28c408a9cd652",
"525a7ca1a48599a840b1feca641ef6a413d7384b": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"c4ed635e67d7d82c24008677f313e17df98f5d08": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8"
},
"mapping_H2.xml": {
"4e3ed630d3133326a0cf4728865b3efa4cbecc63": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8",
"84b0b863c0532f93bffc0ab54d98a449f331e319": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"cb093084dc1dc3f999707a1b9d1474f87bbf6d17": "341b1220b6bc6bf59eef81e97c694d06134bd8a2"
},
"mapping_HSQLDB.xml": {
"0a37e2aec423d0c401aff092e4fda9e01c5dd4ff": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8",
"73af8e3e8646ea58f4cfe60fe4905e90340b3e12": "890a391388725c112ffbbd2dd8b8d267305df4a7",
"98819a80cd8994a02579ea1d9b0992a0b68a5403": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_Hive.xml": {
"0265c6f16ab2c9eea7da660e4e1c8a3ec7bc0ab3": "37ef13c438cda4cd1c3e091d99a00036b328e57f",
"1f5811f41b2836cd7baeb23daef91d2ea313f2c6": "3646a1bcd980a3209501a5c846338823f55d74b2",
"21a44cd9d32a5478a4de61a86b398a9ef80401ac": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"5444fa9a484704d774259430623e0db1495a867f": "ef872732cde37c6c7684dc773641be0b78f5c57c",
"e7f128915578dd29538a7debeb5f47528b5a6e59": "86ba7c19d9300a02dbcb0801852e728acd261132"
},
"mapping_IBMDB2.xml": {
"dc42cf143f3a0f10ad8c280f16ef44ae1f907123": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8",
"f8aea23cc5b48ebb3cdd229be3f66b28890ff4f8": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_Impala.xml": {
"55ed99aa28c989bd5777f41b7c87ed4eb9f245a8": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_Informix.xml": {
"40da9213cf85b1712f38474dea4f2ec3447dfe3c": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"938e41f3719c29248d4f58c303464bbfb50e343a": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8"
},
"mapping_Ingres.xml": {
"811e8bf4e7bc2e6b9c3fcb5f074601a873f15e1d": "15afc1b074c8a6e4aee39c1d5a3347555dbe36a0",
"95873faa81ee3de2eea02efab5c127e6188df796": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8",
"9c5682f564e861e1db3b5184fd40e718e0912a4a": "d51edc7e08871897572c9b1f1cd2d2d2df347dfb"
},
"mapping_Interbase.xml": {
"4d37474d07991154aa0148e7a030c4725d45ef0d": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8",
"71e8386c3e21f726550234c52d3ca50dcfa655de": "d51edc7e08871897572c9b1f1cd2d2d2df347dfb"
},
"mapping_JavaDB.xml": {
"652fd7f2f11fc27903d333e1699cc419804caa66": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"66dbe13a0043798498f37b6e5495bc3aaa8fb90b": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8"
},
"mapping_MSSQL.xml": {
"305eeb294ae8bb07bee7d1e182e431e2e7f6273d": "d7761630e63b399f89eaaeb9e19e775bf1579dde",
"b93c0825ffd799d89608239385d7e4b60de96209": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_MaxDB.xml": {
"586fc7ac94a9abec8a76a587dc6aa0fae0079bf3": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_MicrosoftCrm.xml": {
"e1c5e77e19adea1406e5bb511a1c6adb8b610bfe": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_MicrosoftCrm_odata.xml": {
"1166b9ce6ce163d11a57046db5ee2dc9d5e496df": "e86fd3fd5c3b4ba9ff613155fba014a80c40cf01",
"3f25ced1039b99d1c07b23e3d27cac1562e52a6f": "c1190dfa35e839496745516dbcfeb8a309fa49d0",
"750541f00f3c5da6007623f3514add6dc3417a5f": "54331fa4ec501557eb9c32d434c332cf3d121349",
"9612a2611bd29461dd46fc70f0e2841892f3f096": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_MsOdbc.xml": {
"01561cb7b5630a4a6aed576215ccdb3991d2db52": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8",
"a9c94a6255061e8100b15590da35196464b77d46": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_Mysql.xml": {
"128d7d66eb994a032128949fcbe0c953c158beaa": "956802047d6623ba61e2da68aba2db8f38bca48a",
"522654fad6fa3d008ef386fc9360ae51df910729": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8",
"5dfc7b71e1f6a9fad6ebf47a1d748893c85bbe5e": "341b1220b6bc6bf59eef81e97c694d06134bd8a2",
"894b0d1d2c23c98f2e14920013b82524334dd255": "74b3640e2923d4c60c92042ff03d15b4ac4e9341",
"8cb3d2b06d8a2b12e8673e6e9519f85ec08b35ec": "f22d442cbde13623a1b96c15ea2df8dd1a7d755e",
"a94341e5bd6c4ba0eef57f9d6d3cc6c0006c785b": "ebc9394c2728a3f3850fcbafac4156ef15aab37f",
"d7e74c8e9f8a47ab258472ec43236d2933c70838": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"edc9d1453c8f9ac8548822ff2f90a4defcd02094": "fd4d974c755ced1969b27126844b3f462bca1a52"
},
"mapping_Netezza.xml": {
"0c769aa277190990fb33a918cc57189b9ba6306f": "c8ca64da55ceb677fd97169f6a924ec80f01b2fc",
"0f5e9677f936a5414ce6593229aa47ea5b757276": "3074a57eee1407a413e460ed27e31d48d21d609b",
"b3e25e55f8281cb616b3f549e6a2e5a83d4ad62a": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_Oracle.xml": {
"0407cea7e87144cb601bc9a3f039121feca79b65": "cb6b87dabdc71be0f1db4bdca694bcb61b679c05",
"064d2a5940379346638412dd7f4cb7dbcc30e672": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"26a2295f6401de6e17feb61b261f7fbdfc4d609d": "e7604a488f339028a3cf14ae4031b0fb3fd50bcc",
"9b0306aacec772d9d82be49ab702254ce1e08bea": "912702dc8ea921a34ea0522235db65f8655bf8e9",
"df2537b329d0b09828c281e62208daf379f7b60a": "544faa63bbe63dd070a94c84139c705ac6432314"
},
"mapping_ParAccel.xml": {
"1ba71027d3a60773c7c008143c2146e4db2ef112": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8",
"5085a1e922f77895a2f7c85e2347acfe03034493": "d51edc7e08871897572c9b1f1cd2d2d2df347dfb"
},
"mapping_Postgres.xml": {
"ce8b7f58644b8f7814a5522d172b4192ff89bd4f": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"e1c1f04f95222bcadda336d6a4f0ea07c6ebb08e": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8"
},
"mapping_PostgresPlus.xml": {
"69b7d7f722538a322fb0bf867177d1ce5a0d7ad6": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"f576a7bb0327eeff1fd63a9a09106ae33f3ec90e": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8"
},
"mapping_Redshift.xml": {
"0cc6e153fe35041a009cb222e0276e35ddbc92f1": "2023289b9965fc14b959463ba5050be6aead361a",
"3b941be88a5f13bd8fd905fb1fa5f2a241e89ed9": "915a307b629c7a75bcbedc86267db1e8995b77f3",
"85ba89fdadfca4a2d755856a75e904f6015926a9": "de08533f6561319fc2914181a2705ccd75e29c40",
"8f3eda24c1f413b17b2b8c48695dbd786fa29b6b": "93112768d7eea6df44d92a3efbd4f1dfa20e06b6",
"ab86d7fda94e0b368f739f73994ce2a2147be12d": "0fd3f58b7aa78aaae6fb40d042780bec64da75e6",
"ad0eecc7e9f25c3b904cc11b062a8185456478ee": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_Redshift_new.xml": {
"43085952e178e2c570ab7d2a262278dd2896dd96": "699efe42a33aab3ca0bbaa7a1abee23368e61606"
},
"mapping_SAPHana.xml": {
"1a07a8174468a5a1d55378dd0e21d7c1f9e531bc": "48ea42be6b348a3c993760e7f2c94c58ac08fdae",
"331ae8a035e6b1f2cd722be6411df4ae4a95bb33": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_SQLite.xml": {
"0a97b6e8acf8bd16aa34a3c01707f1e2a9eeff1f": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"b7b7b7c690efacc208316c911571a8513b5ea713": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8"
},
"mapping_SingleStore.xml": {
"9da7d92af5e9b0697436f74fffd190e8af061567": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_Snowflake.xml": {
"d459c6be3786f9358615eaf692a1c7920b4c6e74": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_Sybase.xml": {
"081038547cac8342cf5cadf8bfd02fe4d2929323": "1ff9877dce90e2ef39b267ea60de534796035a95",
"09a0f4dc71ff9a844e1162600409317e92e1ff18": "28534ffb4ae599adec53853776856e82c23c815a",
"4ee2c12f372953e77404481a962b3aca14abadb0": "f02b1b6902098b2da90cde6b22a9a49ec328970a",
"5752dcfa409e903af77587f151d580c68c9e4ac7": "3db0fa1fbed8ae378d52aa8c36b6fed55d184e5b",
"6f4e7913b4b31e8fb4e097690c8b903a58842283": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8",
"7676e2d94473564322ce37cad92b7f8b09751b1b": "1cc6237de63892e097c77637ac8457cf8fefbf6f",
"8bbad7895713f3a399ddb195c40353e18d3e83b9": "984ca27e4ee0177793b2111797700390424cb746",
"bbc091c50a7bd8a8fe630d99a9c2e3f2f878ac88": "67a9b521c9d698b3411fb49410ac61a15f4bc7db",
"d841719dcf79a12d0189301e40c0e9e973a45c4f": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"e103a9671d9bcf360fd2e61ee97f4547d0d52241": "e19031add3dc54bf9d0e731f3a05738af48ebb6d",
"e1c42d74cc0dc3681b5bd45a901a3bedeb53ec68": "75df15acaa5c8d1dcd4a8e855e0df969fdea25d5",
"e30d1f01e88bdaf926855e00d1aef3a37a7eb6e4": "c91dd79086a42dce5417de77bb7ce61c0bd6cbbf",
"ee5d7f5f9510f63c340f87862327b869bf4cb743": "607764748cdbff669d2ccfcbaafdaa0d83598f32"
},
"mapping_Teradata.xml": {
"10ed107c1d66b38d51739ffdd0820db676c42cef": "45dbf10541f6dd32283038bcc5b04b10e305770a",
"55e6a511c2cb39aca11de302a3850eb2d1f6e3a5": "fc652f1cc70f6caa05d5c65e57115f86653f7841",
"ac9ffae887ab4d20d4eca0eddc83163e99507ec8": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"f9b0367424f721cd8029d3540c9a82f39d74a6b4": "c002b50a69b8a0193780e7c0d1788bbd9a5145c3"
},
"mapping_VectorWise.xml": {
"06f86121a9492b3104047691b19718a5d9d49be9": "d51edc7e08871897572c9b1f1cd2d2d2df347dfb",
"edf255202bcfad77ff6f3fac11714891934225c4": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8"
},
"mapping_Vertica.xml": {
"28153eaab1c47b8718ca3c49553ec40b047d2878": "d4655e28a5da3e6a2cc03a1305cc1c2970d8e9b8",
"2ee78d7679d4201ad29adba4cc0a48084f161e25": "eecc481d671d330bfb46406ab2533830c668bf22",
"819be4680c04a7f77c51fc65ebd1d964a714aa78": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"9218d5e7b682513ddf1b891f5f0467ab9938fec3": "341b1220b6bc6bf59eef81e97c694d06134bd8a2",
"d9745a57d9f1b6c638ebd57cd5281be020e0614c": "e8f788c5c260f9b82eaaa88d0402423d86a5680d",
"dec55a19094d1bcc20f12a8888b27460e83c2e67": "3b582b21fc5ac7ccfb05321c7923591433ced716"
},
"mapping_XSD.xml": {
"1ef837521e274c5b93f5f228955204285b3dd28a": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"9c454252343dfe1400d356cbf41bf88e842b4e1e": "c615b3a622e2f6ba8577e812e71977d9f1b1930d"
},
"mapping_dynamodb.xml": {
"891099e88d8074570dc029f9b7d8b04bbc241383": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_ebcdic.xml": {
"b47b25edc9e40d312b548270dbb3f978475be4e7": "7007071c9cf718d34da7d61208ceea7f05de94d0"
},
"mapping_sap.xml": {
"0339bc60ae47e3796c343eee7e2fb1cb1869cefa": "ee49a27e5c3ba3217ab497b1cd4467c088e59f5e",
"1f41a55f6f7f1d6d2118e766daf7e3dbfd77551d": "7007071c9cf718d34da7d61208ceea7f05de94d0",
"64c23be0c363ab703528677c999e4ef707d54497": "27908d5685066221f02cd3890a5319838215eb8b",
"83688cf3134e60d9f5a08b316643a41246717e92": "740c431e0b623cc7d41166588961028ad3efab80",
"9df72b6a1f1a72d9be1a4a7fd428873ad9b75bff": "94804b5e96a71d63a294eb9bcfbbb5290824009f",
"a300fcd290aa65c254c44d683d30a9fa6ae14a2f": "45e5d88e9c49cb87b47413468073c571f60c0117",
"b74c01dff88a52afca5f8c84fbe41d71a34eb6b5": "32832fe0edfbd10d50ed85528481e5c9ca2ec8e0",
"c814f616005e1637ec107dd8c0f269bd69661d2e": "7d07608dceb06f7364b5bb8babc0f6e921fc443a"
},
"mapping_sas.xml": {
"4aeb0deb41f61dbe69e85e780fb1e985c9f3d758": "fd44bfb0ee3fc8288465507b937c53619f43c0ec"
}
}

View File

@@ -116,6 +116,7 @@ public interface ICoreService extends IService {
public String validateValueForDBType(String columnName);
@Deprecated
public void synchronizeMapptingXML(ITalendProcessJavaProject talendJavaProject);
public IPreferenceStore getPreferenceStore();
@@ -124,6 +125,14 @@ public interface ICoreService extends IService {
public IMetadataTable convert(MetadataTable originalTable);
@Deprecated
public void syncMappingsFileFromSystemToProject();
public static ICoreService get() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(ICoreService.class)) {
return GlobalServiceRegister.getDefault().getService(ICoreService.class);
}
return null;
}
}

View File

@@ -21,6 +21,7 @@ import java.util.Set;
import org.eclipse.core.runtime.IProgressMonitor;
import org.talend.core.model.general.ModuleNeeded;
import org.talend.core.model.general.RetrieveResult;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.nexus.ArtifactRepositoryBean;
import org.talend.core.nexus.TalendLibsServerManager;
@@ -77,6 +78,8 @@ public interface ILibraryManagerService extends IService {
public void saveMavenIndex(Map<String, String> libsToMavenUri, IProgressMonitor... monitorWrap);
public void createModulesIndexFromComponentAndExtension(IProgressMonitor... monitorWrap);
public Map<String,String> buildModulesIndexFromComponentAndExtension(IProgressMonitor... monitorWrap);
/**
* DOC ycbai Comment method "retrieve".
@@ -107,6 +110,8 @@ public interface ILibraryManagerService extends IService {
public boolean retrieve(ModuleNeeded module, String pathToStore, boolean showDialog, IProgressMonitor... monitorWrap);
RetrieveResult retrieveModules(ERepositoryObjectType codeType, Set<ModuleNeeded> modulesNeeded, String pathToStore,
boolean showDialog, IProgressMonitor... monitorWrap);
/**
*
* Resolve the jar from custom nexus

View File

@@ -149,7 +149,9 @@ public enum EDatabaseTypeName {
"HBase", "HBase", Boolean.FALSE, "HBASE", EDatabaseSchemaOrCatalogMapping.Sid, EDatabaseSchemaOrCatalogMapping.Column_Family, true), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
MAPRDB(
"MapRDB", "MapRDB", Boolean.FALSE, "MAPRDB", EDatabaseSchemaOrCatalogMapping.Sid, EDatabaseSchemaOrCatalogMapping.Column_Family, true);//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
"MapRDB", "MapRDB", Boolean.FALSE, "MAPRDB", EDatabaseSchemaOrCatalogMapping.Sid, EDatabaseSchemaOrCatalogMapping.Column_Family, true),//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
SNOWFLAKE(
"SNOWFLAKE","SNOWFLAKE",Boolean.TRUE,"SNOWFLAKE",EDatabaseSchemaOrCatalogMapping.None, EDatabaseSchemaOrCatalogMapping.None);
// displayName is used in Java code.
private String displayName;

View File

@@ -214,6 +214,36 @@ public class ConnParameterKeys {
/******************************************/
/*********** Azure Synapse keys ***************/
public static final String CONN_PARA_KEY_SYNAPSE_HOST = "CONN_PARA_KEY_SYNAPSE_HOST"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_SYNAPSE_AUTH_TOKEN = "CONN_PARA_KEY_SYNAPSE_AUTH_TOKEN"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_SYNAPSE_SPARK_POOLS = "CONN_PARA_KEY_SYNAPSE_SPARK_POOLS"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_SYNAPSE_FS_HOSTNAME = "CONN_PARA_KEY_SYNAPSE_FS_HOSTNAME"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_SYNAPSE_FS_CONTAINER = "CONN_PARA_KEY_SYNAPSE_FS_CONTAINER"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_SYNAPSE_FS_USERNAME = "CONN_PARA_KEY_SYNAPSE_FS_USERNAME"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_SYNAPSE_FS_PASSWORD = "CONN_PARA_KEY_SYNAPSE_FS_PASSWORD"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_SYNAPSE_FS_STORAGE = "CONN_PARA_KEY_SYNAPSE_FS_STORAGE"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_SYNAPSE_DEPLOY_BLOB = "CONN_PARA_KEY_SYNAPSE_DEPLOY_BLOB"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_DRIVER_MEMORY = "CONN_PARA_KEY_DRIVER_MEMORY"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_DRIVER_CORES = "CONN_PARA_KEY_DRIVER_CORES"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_EXECUTOR_MEMORY = "CONN_PARA_KEY_EXECUTOR_MEMORY"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_TUNING_PROPERTIES = "CONN_PARA_KEY_TUNING_PROPERTIES"; //$NON-NLS-1$
/******************************************/
/**
* HBase keys.
*/

View File

@@ -58,7 +58,7 @@ public enum EDatabaseVersion4Drivers {
HSQLDB_SERVER(new DbVersion4Drivers(EDatabaseTypeName.HSQLDB_SERVER, "hsqldb.jar")), //$NON-NLS-1$
HSQLDB_WEBSERVER(new DbVersion4Drivers(EDatabaseTypeName.HSQLDB_WEBSERVER, "hsqldb.jar")), //$NON-NLS-1$
H2(new DbVersion4Drivers(EDatabaseTypeName.H2, "h2-1.4.198.jar")), //$NON-NLS-1$
H2(new DbVersion4Drivers(EDatabaseTypeName.H2, "h2-2.1.210.jar")), //$NON-NLS-1$
//
JAVADB_EMBEDED(new DbVersion4Drivers(EDatabaseTypeName.JAVADB_EMBEDED, "derby.jar")), //$NON-NLS-1$
@@ -71,9 +71,10 @@ public enum EDatabaseVersion4Drivers {
INFORMIX(new DbVersion4Drivers(EDatabaseTypeName.INFORMIX, "ifxjdbc.jar")), //$NON-NLS-1$
SAS_9_1(new DbVersion4Drivers(EDatabaseTypeName.SAS, "SAS 9.1", "SAS_9.1", new String[] { "sas.core.jar", //$NON-NLS-1$
"sas.intrnet.javatools.jar", "sas.svc.connection.jar", "org.apache.log4j_1.2.15.v201012070815.jar" })), //$NON-NLS-1$ //$NON-NLS-2$
"sas.intrnet.javatools.jar", "sas.svc.connection.jar", "reload4j-1.2.19.jar" })), //$NON-NLS-1$ //$NON-NLS-2$
SAS_9_2(new DbVersion4Drivers(EDatabaseTypeName.SAS,
"SAS 9.2", "SAS_9.2", new String[] { "sas.core.jar", "sas.security.sspi.jar", "sas.svc.connection.jar", "org.apache.log4j_1.2.15.v201012070815.jar" })), //$NON-NLS-1$ //$NON-NLS-2$
"SAS 9.2", "SAS_9.2", //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "sas.core.jar", "sas.security.sspi.jar", "sas.svc.connection.jar", "reload4j-1.2.19jar" })),
SAPHana(new DbVersion4Drivers(EDatabaseTypeName.SAPHana, "HDB 1.0", "HDB_1_0", "ngdbc.jar")), //$NON-NLS-1$
// MYSQL, add for 9594
MYSQL_8(new DbVersion4Drivers(EDatabaseTypeName.MYSQL, "MySQL 8", "MYSQL_8", "mysql-connector-java-8.0.18.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -85,10 +86,10 @@ public enum EDatabaseVersion4Drivers {
"Microsoft SQL Server 2012", "Microsoft SQL Server 2012", "jtds-1.3.1-patch-20190523.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
MSSQL_PROP(new DbVersion4Drivers(EDatabaseTypeName.MSSQL,
"Microsoft", "MSSQL_PROP", //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "mssql-jdbc.jar", "slf4j-api-1.7.25.jar", "slf4j-log4j12-1.7.25.jar", "adal4j-1.6.5.jar", //$NON-NLS-1$
"commons-lang3-3.10.jar", "commons-codec-1.14.jar", "gson-2.8.6.jar", "oauth2-oidc-sdk-6.5.jar",
"json-smart-2.4.7.jar", "nimbus-jose-jwt-8.11.jar", "javax.mail-1.6.2.jar", "log4j-1.2.17.jar",
"accessors-smart-2.4.7.jar", "asm-9.1.jar" })),
new String[] { "mssql-jdbc.jar", "slf4j-api-1.7.25.jar", "slf4j-log4j12-1.7.25.jar", "adal4j-1.6.7.jar", //$NON-NLS-1$
"commons-lang3-3.10.jar", "commons-codec-1.14.jar", "gson-2.8.6.jar", "oauth2-oidc-sdk-9.7.jar",
"json-smart-2.4.7.jar", "nimbus-jose-jwt-9.22.jar", "javax.mail-1.6.2.jar", "reload4j-1.2.19.jar",
"accessors-smart-2.4.7.jar", "asm-9.1.jar", "content-type-2.1.jar" })),
VERTICA_9(new DbVersion4Drivers(EDatabaseTypeName.VERTICA, "VERTICA 9.X", "VERTICA_9_0", "vertica-jdbc-9.3.1-0.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
VERTICA_7_1_X(new DbVersion4Drivers(EDatabaseTypeName.VERTICA, "VERTICA 7.1.X (Deprecated)", "VERTICA_7_1_X", "vertica-jdbc-7.1.2-0.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -106,12 +107,12 @@ public enum EDatabaseVersion4Drivers {
GREENPLUM_PSQL(new DbVersion4Drivers(EDatabaseTypeName.GREENPLUM,"PostgreSQL", "POSTGRESQL", "postgresql-8.4-703.jdbc4.jar")), //$NON-NLS-1$
GREENPLUM(new DbVersion4Drivers(EDatabaseTypeName.GREENPLUM,"Greenplum", "GREENPLUM", "greenplum-5.1.4.000275.jar")), //$NON-NLS-1$
// PSQL_V10(new DbVersion4Drivers(EDatabaseTypeName.PSQL, "v10", "V10", "postgresql-42.2.5.jar")),
PSQL_V9_X(new DbVersion4Drivers(EDatabaseTypeName.PSQL, "v9 and later", "V9_X", "postgresql-42.2.14.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
PSQL_V9_X(new DbVersion4Drivers(EDatabaseTypeName.PSQL, "v9 and later", "V9_X", "postgresql-42.2.25.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
PSQL_PRIOR_TO_V9(new DbVersion4Drivers(EDatabaseTypeName.PSQL, "Prior to v9", "PRIOR_TO_V9", "postgresql-8.4-703.jdbc4.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
PLUSPSQL_PRIOR_TO_V9(new DbVersion4Drivers(EDatabaseTypeName.PLUSPSQL,
"Prior to v9", "PRIOR_TO_V9", "postgresql-8.4-703.jdbc4.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
PLUSPSQL_V9_X(new DbVersion4Drivers(EDatabaseTypeName.PLUSPSQL, "v9 and later", "V9_X", "postgresql-42.2.14.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
PLUSPSQL_V9_X(new DbVersion4Drivers(EDatabaseTypeName.PLUSPSQL, "v9 and later", "V9_X", "postgresql-42.2.25.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
IBMDB2(new DbVersion4Drivers(EDatabaseTypeName.IBMDB2, new String[] { "db2jcc4.jar", "db2jcc_license_cu.jar", //$NON-NLS-1$ //$NON-NLS-2$
"db2jcc_license_cisuz.jar" })), //$NON-NLS-1$
IBMDB2ZOS(new DbVersion4Drivers(EDatabaseTypeName.IBMDB2ZOS, new String[] { "db2jcc4.jar", "db2jcc_license_cu.jar", //$NON-NLS-1$ //$NON-NLS-2$
@@ -168,9 +169,9 @@ public enum EDatabaseVersion4Drivers {
MAPRDB(new DbVersion4Drivers(EDatabaseTypeName.MAPRDB, new String[] {})),
REDSHIFT(new DbVersion4Drivers(EDatabaseTypeName.REDSHIFT, "redshift", "REDSHIFT", //$NON-NLS-1$ //$NON-NLS-2$
"redshift-jdbc42-no-awssdk-1.2.37.1061.jar")), //$NON-NLS-1$
new String[]{ "redshift-jdbc42-no-awssdk-1.2.55.1083.jar", "antlr4-runtime-4.8-1.jar" })), //$NON-NLS-1$ //$NON-NLS-2$
REDSHIFT_SSO(new DbVersion4Drivers(EDatabaseTypeName.REDSHIFT_SSO, "redshift sso", "REDSHIFT_SSO", //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "redshift-jdbc42-no-awssdk-1.2.37.1061.jar", "aws-java-sdk-1.11.848.jar", "jackson-core-2.10.1.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new String[] { "redshift-jdbc42-no-awssdk-1.2.55.1083.jar", "antlr4-runtime-4.8-1.jar", "aws-java-sdk-1.11.848.jar", "jackson-core-2.10.1.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
"jackson-databind-2.10.1.jar", "jackson-annotations-2.10.1.jar", "httpcore-4.4.11.jar", "httpclient-4.5.9.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$//$NON-NLS-4$
"joda-time-2.8.1.jar", "commons-logging-1.2.jar", "commons-codec-1.11.jar" })), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

View File

@@ -101,23 +101,59 @@ public enum EHadoopProperties {
HD_AZURE_DEPLOYBOLB,
HD_JOB_RESULT_FOLDER,
SYNAPSE_ENDPOINT,
SYNAPSE_TOKEN,
SPARK_POOL_NAME,
SYNAPSE_STORAGE_HOST,
SYNAPSE_STORAGE_CONTAINER,
SYNAPSE_STORAGE_USERNAME,
SYNAPSE_STORAGE_PASSWORD,
DEPLOY_FOLDER,
SPARK_DRIVER_MEM,
SPARK_DRIVER_CORES,
SPARK_EXECUTOR_MEMORY,
QUBOLE_API_TOKEN,
QUBOLE_CLUSTER,
QUBOLE_CLUSTER_LABEL,
QUBOLE_ENDPOINT,
QUBOLE_ENDPOINT_URL,
QUBOLE_S3_ACCESS_KEY,
QUBOLE_S3_SECRET_KEY,
QUBOLE_S3_BUCKET_NAME,
QUBOLE_S3_BUCKET_KEY,
QUBOLE_S3_REGION,
DATABRICKS_ENDPOINT,
DATABRICKS_CLOUD_PROVIDER,
DATABRICKS_RUN_MODE,
DATABRICKS_CLUSTER_ID,
DATABRICKS_TOKEN,
DATABRICKS_DBFS_DEP_FOLDER;
public String getName() {

View File

@@ -34,6 +34,8 @@ public enum EHadoopDistributions {
PIVOTAL_HD("Pivotal HD"), //$NON-NLS-1$
MICROSOFT_HD_INSIGHT("Microsoft HD Insight"), //$NON-NLS-1$
AZURE_SYNAPSE("Azure Synapse Runtime for Apache Spark 3.0"), //$NON-NLS-1$
GOOGLE_CLOUD_DATAPROC("Google Cloud Dataproc"), //$NON-NLS-1$

View File

@@ -0,0 +1,73 @@
// ============================================================================
//
// Copyright (C) 2006-2020 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.hadoop.version;
import java.util.ArrayList;
import java.util.List;
public enum ESynapseStorage {
ADLS_GEN2("ADLS Gen2"); //$NON-NLS-1$
private String displayName;
ESynapseStorage(String displayName) {
this.displayName = displayName;
}
public String getName() {
return name();
}
public String getDisplayName() {
return this.displayName;
}
public static List<String> getAllSynapseStorageDisplayNames() {
return getAllSynapseStorageNames(true);
}
public static List<String> getAllSynapseStorageNames(boolean display) {
List<String> names = new ArrayList<String>();
ESynapseStorage[] values = values();
for (ESynapseStorage storage : values) {
if (display) {
names.add(storage.getDisplayName());
} else {
names.add(storage.getName());
}
}
return names;
}
public static ESynapseStorage getSynapseStoragenByDisplayName(String name) {
return getSynapseStorageByName(name, true);
}
public static ESynapseStorage getSynapseStorageByName(String name, boolean display) {
if (name != null) {
for (ESynapseStorage storage : values()) {
if (display) {
if (name.equalsIgnoreCase(storage.getDisplayName())) {
return storage;
}
} else {
if (name.equalsIgnoreCase(storage.getName())) {
return storage;
}
}
}
}
return null;
}
}

View File

@@ -14,12 +14,14 @@ package org.talend.core.model.general;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.eclipse.core.runtime.Path;
import org.osgi.framework.Version;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.ILibraryManagerService;
import org.talend.core.database.conn.version.DatabaseDriversCache;
@@ -29,6 +31,9 @@ import org.talend.core.runtime.maven.MavenArtifact;
import org.talend.core.runtime.maven.MavenConstants;
import org.talend.core.runtime.maven.MavenUrlHelper;
import org.talend.core.utils.TalendQuoteUtils;
import org.talend.utils.json.JSONException;
import org.talend.utils.json.JSONObject;
import org.talend.utils.json.JSONTokener;
/**
* This bean is use to manage needed moduless (perl) and libraries (java).<br/>
@@ -38,6 +43,10 @@ import org.talend.core.utils.TalendQuoteUtils;
*/
public class ModuleNeeded {
public static final String ATTR_USED_BY_DYNAMIC_DISTRIBUTION = "dynamicDistribution";
public static final String ATTR_DYNAMIC_DISTRIBUTION_VERSION = "distributionVersion";
private String id;
private String context;
@@ -94,8 +103,11 @@ public class ModuleNeeded {
*/
private boolean useReleaseVersion = false;
private Map<String, String> attributes;
ILibraryManagerService libManagerService = (ILibraryManagerService) GlobalServiceRegister.getDefault()
.getService(ILibraryManagerService.class);
/**
* DOC smallet ModuleNeeded class global comment. Detailled comment <br/>
@@ -162,6 +174,10 @@ public class ModuleNeeded {
this.required = required;
this.installURL = installURL;
this.requiredIf = requiredIf;
this.attributes = analyseMessage(informationMsg);
if (!this.attributes.isEmpty()) {
this.informationMsg = "";
}
String name = moduleName;
String uri = mavenUrl;
if (moduleName != null) {
@@ -184,6 +200,32 @@ public class ModuleNeeded {
setMavenUri(uri);
}
private Map<String, String> analyseMessage(String msg) {
Map<String, String> attrMap = new HashMap<>();
if (StringUtils.isBlank(msg) || !msg.startsWith("{") || !msg.endsWith("}")) {
return attrMap;
}
try {
JSONObject jo = new JSONObject(new JSONTokener(msg));
Iterator<String> keys = jo.keys();
keys.forEachRemaining(key -> {
try {
Object object = jo.get(key);
if (object != null) {
attrMap.put(key, object.toString());
}
} catch (JSONException e) {
ExceptionHandler.process(e);
}
});
} catch (Exception e) {
if (Boolean.getBoolean("talend.studio.moduleNeeded.init.debug")) {
ExceptionHandler.process(e);
}
}
return attrMap;
}
@Override
public ModuleNeeded clone() {
ModuleNeeded cloned = new ModuleNeeded(context, moduleName, informationMsg, mrRequired, installURL, requiredIf, mavenUri);
@@ -212,6 +254,7 @@ public class ModuleNeeded {
cloned.requiredIf = requiredIf;
cloned.status = status;
cloned.useReleaseVersion = useReleaseVersion;
cloned.attributes = attributes;
return cloned;
}
@@ -671,6 +714,10 @@ public class ModuleNeeded {
}
}
public boolean usedByDynamicDistribution() {
return Boolean.valueOf(attributes.get(ATTR_USED_BY_DYNAMIC_DISTRIBUTION));
}
public boolean isDynamic() {
return this.dynamic;
}
@@ -709,5 +756,12 @@ public class ModuleNeeded {
public void setUseReleaseVersion(boolean useReleaseVersion) {
this.useReleaseVersion = useReleaseVersion;
}
public String getDynamicDistributionVersion() {
return attributes.get(ATTR_DYNAMIC_DISTRIBUTION_VERSION);
}
public void setDynamicDistributionVersion(String distribution) {
attributes.put(ATTR_DYNAMIC_DISTRIBUTION_VERSION, distribution);
}
}

View File

@@ -0,0 +1,42 @@
// ============================================================================
//
// Copyright (C) 2006-2022 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.model.general;
import java.util.HashSet;
import java.util.Set;
public class RetrieveResult {
private boolean allResolved;
private Set<ModuleNeeded> resovledModules = new HashSet<>();
private Set<ModuleNeeded> unresolvedModules = new HashSet<>();
public boolean isAllResolved() {
return allResolved;
}
public void setAllResolved(boolean allResolved) {
this.allResolved = allResolved;
}
public Set<ModuleNeeded> getResovledModules() {
return resovledModules;
}
public Set<ModuleNeeded> getUnresolvedModules() {
return unresolvedModules;
}
}

View File

@@ -69,6 +69,8 @@ public interface IMetadataTable {
public boolean sameMetadataAs(IMetadataTable other, int options);
public boolean sameMetadataAs(List<IMetadataColumn> otherMetadataTableColumns, int options);
public void sortCustomColumns();
public boolean isReadOnly();

View File

@@ -252,8 +252,13 @@ public class MetadataTable implements IMetadataTable, Cloneable {
if (!(input instanceof IMetadataTable)) {
return false;
}
List<IMetadataColumn> thisColumnListWithUnselected = this.getListColumns(true);
List<IMetadataColumn> inputColumnListWithUnselected = input.getListColumns(true);
return sameMetadataAs(inputColumnListWithUnselected, options);
}
@Override
public boolean sameMetadataAs(List<IMetadataColumn> inputColumnListWithUnselected, int options) {
List<IMetadataColumn> thisColumnListWithUnselected = this.getListColumns(true);
if (thisColumnListWithUnselected == null) {
if (inputColumnListWithUnselected != null) {
return false;

View File

@@ -16,6 +16,7 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -24,18 +25,20 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang.StringUtils;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ProjectScope;
import org.eclipse.core.runtime.CoreException;
@@ -46,9 +49,9 @@ import org.eclipse.core.runtime.Platform;
import org.osgi.framework.Bundle;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.exception.SystemException;
import org.talend.commons.runtime.xml.XmlUtil;
import org.talend.commons.utils.io.FilesUtils;
import org.talend.commons.utils.workbench.resources.ResourceUtils;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.ICoreService;
import org.talend.core.database.EDatabaseTypeName;
import org.talend.core.language.ECodeLanguage;
import org.talend.core.language.LanguageManager;
@@ -59,6 +62,8 @@ import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.core.runtime.i18n.Messages;
import org.talend.core.utils.TalendQuoteUtils;
import org.talend.repository.ProjectManager;
import org.talend.repository.model.RepositoryConstants;
import org.talend.utils.json.JSONObject;
import org.talend.utils.xml.XmlUtils;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
@@ -75,14 +80,13 @@ import org.xml.sax.SAXException;
*/
public final class MetadataTalendType {
/**
*
*/
public static final String INTERNAL_MAPPINGS_FOLDER = "mappings"; //$NON-NLS-1$
public static final String PROJECT_MAPPING_FOLDER = ".settings/mappings"; //$NON-NLS-1$
public static final String UPDATED_MAPPING_FILES = "updated.mapping.files"; //$NON-NLS-1$
public static final String FILE_MAPPING_REVISION = "mapping_revision.json"; //$NON-NLS-1$
public static final String MAPPING_FILE_PATTERN = "^mapping_.*\\.xml$"; //$NON-NLS-1$
private static ECodeLanguage codeLanguage;
@@ -459,13 +463,14 @@ public final class MetadataTalendType {
return list;
}
public static URL getSystemForderURLOfMappingsFile() throws SystemException {
public static URL getSystemFolderURLOfMappingsFile() throws SystemException {
String dirPath = "/" + INTERNAL_MAPPINGS_FOLDER; //$NON-NLS-1$
URL url = null;
Path filePath = new Path(dirPath);
Bundle b = Platform.getBundle(CoreRuntimePlugin.PLUGIN_ID);
if (b != null) {
try {
// Enumeration<URL> entries = b.findEntries(dirPath, "mapping_*.xml", false);
url = FileLocator.toFileURL(FileLocator.find(b, filePath, null));
} catch (IOException e) {
throw new SystemException(e);
@@ -474,46 +479,169 @@ public final class MetadataTalendType {
return url;
}
public static URL getProjectForderURLOfMappingsFile() throws SystemException {
public static URL getProjectFolderURLOfMappingsFile() throws SystemException {
try {
String dirPath = "/" + INTERNAL_MAPPINGS_FOLDER; //$NON-NLS-1$
IProject project = ResourceUtils.getProject(ProjectManager.getInstance().getCurrentProject());
IPath settingPath = new ProjectScope(project).getLocation();
IPath mappingPath = settingPath.append(dirPath);
File mappingFolder = mappingPath.toFile();
if (!mappingFolder.exists() || mappingFolder.listFiles().length < 1) {
ICoreService service = null;
if (GlobalServiceRegister.getDefault().isServiceRegistered(ICoreService.class)) {
service = GlobalServiceRegister.getDefault().getService(ICoreService.class);
service.syncMappingsFileFromSystemToProject();
}
}
return mappingFolder.toURL();
File mappingFolder = settingPath.append(dirPath).toFile();
return mappingFolder.toURI().toURL();
} catch (Exception e) {
throw new SystemException(e);
}
}
private static String getSha1OfFile(File file) {
String sha1 = null;
FileInputStream fileInputStream = null;
public static URL getProjectTempMappingFolder() {
try {
fileInputStream = new FileInputStream(file);
sha1 = DigestUtils.shaHex(fileInputStream);
IProject project = ResourceUtils.getProject(ProjectManager.getInstance().getCurrentProject());
File folder = ResourceUtils
.getFolder(project, RepositoryConstants.TEMP_DIRECTORY + "/" + INTERNAL_MAPPINGS_FOLDER, false).getLocation()
.toFile();
syncMappingFiles(folder, false);
return folder.toURI().toURL();
} catch (Exception e) {
ExceptionHandler.process(e);
} finally {
if (fileInputStream != null) {
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace(); // Just print the exception for debug.
return null;
}
}
public static void syncMappingFiles(File target, boolean rename) {
if (!target.exists()) {
target.mkdir();
}
File[] arr = target.listFiles(f -> f.getName().matches(MAPPING_FILE_PATTERN));
if (arr == null) {
arr = new File[0];
}
try {
Map<String, File> targetFileMap = Stream.of(arr).collect(Collectors.toMap(File::getName, Function.identity()));
Map<String, File> workingFileMap = getWorkingMappingFiles().stream()
.collect(Collectors.toMap(f -> getTargetName(f, rename), Function.identity(), (f1, f2) -> f1));
targetFileMap.entrySet().stream().filter(entry -> !workingFileMap.containsKey(entry.getKey()))
.forEach(entry -> entry.getValue().delete());
for (Entry<String, File> entry : workingFileMap.entrySet()) {
String targetName = entry.getKey();
File workingMappingFile = entry.getValue();
boolean needUpdate = false;
File targetMappingFile = targetFileMap.get(targetName);
if (targetMappingFile == null) {
targetMappingFile = new File(target, targetName);
needUpdate = true;
} else if (!getSha1OfFile(workingMappingFile).equals(getSha1OfFile(targetMappingFile))) {
needUpdate = true;
}
if (needUpdate) {
if (targetMappingFile.exists()) {
targetMappingFile.delete();
}
FilesUtils.copyFile(workingMappingFile, targetMappingFile);
}
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
return sha1;
}
public static String getTargetName(File file, boolean rename) {
String targetName = file.getName();
if (!rename) {
return targetName;
}
try {
DocumentBuilderFactory documentBuilderFactory = XmlUtils.getSecureDocumentBuilderFactory();
DocumentBuilder analyser = documentBuilderFactory.newDocumentBuilder();
Document document = analyser.parse(file);
NodeList dbmsNodes = document.getElementsByTagName("dbms"); //$NON-NLS-1$
String dbmsIdValue = "";
for (int iDbms = 0; iDbms < dbmsNodes.getLength(); iDbms++) {
Node dbmsNode = dbmsNodes.item(iDbms);
NamedNodeMap dbmsAttributes = dbmsNode.getAttributes();
dbmsIdValue = dbmsAttributes.getNamedItem("id").getNodeValue(); //$NON-NLS-1$
}
if (dbmsIdValue != null && !"".equals(dbmsIdValue)) {
final String[] fileNameSplit = targetName.split("_");
String idA = "_id";
String idB = "id_";
final int indexA = dbmsIdValue.indexOf(idA);
final int indexB = dbmsIdValue.indexOf(idB);
String secondeName = "";
if (indexA > 0) {
secondeName = dbmsIdValue.substring(0, dbmsIdValue.length() - idA.length());
} else if (indexB == 0) {
secondeName = dbmsIdValue.substring(idB.length(), dbmsIdValue.length());
} else if (indexA == -1 && indexB == -1) {
secondeName = dbmsIdValue;
}
if (secondeName != null && !"".equals(secondeName)) {
targetName = fileNameSplit[0] + "_" + secondeName.toLowerCase() + XmlUtil.FILE_XML_SUFFIX;
}
}
} catch (ParserConfigurationException e) {
ExceptionHandler.process(e);
} catch (SAXException e) {
ExceptionHandler.process(e);
} catch (IOException e) {
ExceptionHandler.process(e);
}
return targetName;
}
public static JSONObject getRevisionObject() {
try {
File revisonFile = new File(MetadataTalendType.getSystemFolderURLOfMappingsFile().getFile(),
MetadataTalendType.FILE_MAPPING_REVISION);
String jsonStr = new String(Files.readAllBytes(revisonFile.toPath()));
return new JSONObject(jsonStr);
} catch (Exception e) {
ExceptionHandler.process(e);
}
return new JSONObject();
}
public static boolean restoreMappingFiles() throws Exception {
List<File> toDelete = new ArrayList<>();
JSONObject revision = getRevisionObject();
File projectMappingFolder = new File(getProjectFolderURLOfMappingsFile().getFile());
if (projectMappingFolder.exists()) {
File[] projectMappingFiles = projectMappingFolder.listFiles(f -> f.getName().matches(MAPPING_FILE_PATTERN));
if (projectMappingFiles != null) {
for (File file : projectMappingFiles) {
if (revision.has(file.getName())) {
String sha1 = MetadataTalendType.getSha1OfFile(file);
if (revision.getJSONObject(file.getName()).has(sha1)) {
toDelete.add(file);
}
}
}
}
File xsd = new File(projectMappingFolder, "mapping_validate.xsd"); //$NON-NLS-1$
if (xsd.exists()) {
xsd.delete();
}
}
toDelete.forEach(File::delete);
return !toDelete.isEmpty();
}
public static String getSha1OfFile(File file) {
try {
String text = new String(Files.readAllBytes(file.toPath()));
return getSha1OfText(text);
} catch (IOException e) {
ExceptionHandler.process(e);
}
return null;
}
public static String getSha1OfText(String text) {
text = text.replace("\r\n", "\n"); //$NON-NLS-1$ //$NON-NLS-2$
return DigestUtils.sha1Hex(text);
}
public static void copyFile(File in, IFile out) throws CoreException, IOException {
FileInputStream fis = new FileInputStream(in);
if (out.exists()) {
@@ -524,49 +652,6 @@ public final class MetadataTalendType {
fis.close();
}
public static void syncNewMappingFileToProject() throws SystemException {
try {
File sysMappingFiles = new File(MetadataTalendType.getSystemForderURLOfMappingsFile().getPath());
IFolder projectMappingFolder = ResourceUtils.getProject(ProjectManager.getInstance().getCurrentProject())
.getFolder(MetadataTalendType.PROJECT_MAPPING_FOLDER);
File projectMappingFiles = new File(projectMappingFolder.getLocationURI());
if (!sysMappingFiles.exists() || !projectMappingFiles.exists()) {
return;
}
for (File sysMapping : sysMappingFiles.listFiles()) {
IFile projectMapping = projectMappingFolder.getFile(sysMapping.getName());
if (projectMapping.exists() && StringUtils.equals(sysMapping.getName(), "mapping_Greenplum.xml")) {
String sha1OfFile = DigestUtils.shaHex(projectMapping.getContents());
String shalOfOldSystem = "8431f19215dacb3caa126778ae695954552cce2a";
if (StringUtils.equals(sha1OfFile, shalOfOldSystem)) {
copyFile(sysMapping, projectMapping);
}
}
if (!projectMapping.exists()) {
FileInputStream fis = null;
try {
fis = new FileInputStream(sysMapping);
projectMapping.create(fis, true, null);
} catch (CoreException coreExc) {
throw new SystemException(coreExc);
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException ioExc) {
throw new SystemException(ioExc);
}
}
}
}
}
} catch (Exception e) {
throw new SystemException(e);
}
}
/**
*
* Load db types and mapping with the current activated language (Java, Perl, ...).
@@ -574,20 +659,38 @@ public final class MetadataTalendType {
* @throws SystemException
*/
public static void loadCommonMappings() throws SystemException {
URL url = getProjectForderURLOfMappingsFile();
File dir = new File(url.getPath());
metadataMappingFiles = new ArrayList<File>();
dbmsSet.clear();
if (dir.isDirectory()) {
File[] files = dir.listFiles();
for (File file : files) {
if (file.getName().matches("^mapping_.*\\.xml$")) { //$NON-NLS-1$
loadMapping(file);
metadataMappingFiles.add(file);
}
}
for (File file : getWorkingMappingFiles()) {
loadMapping(file);
metadataMappingFiles.add(file);
}
}
public static List<File> getWorkingMappingFiles() throws SystemException {
File projectMappingFolder = new File(getProjectFolderURLOfMappingsFile().getFile());
File[] projectMappingFiles = projectMappingFolder.listFiles(f -> f.getName().matches(MAPPING_FILE_PATTERN));
File systemMappingFolder = new File(getSystemFolderURLOfMappingsFile().getFile());
File[] systemMappingFiles = systemMappingFolder.listFiles(f -> f.getName().matches(MAPPING_FILE_PATTERN));
if (projectMappingFiles == null || projectMappingFiles.length == 0) {
return Arrays.asList(systemMappingFiles);
}
List<File> workingMappingFiles = new ArrayList<>();
Map<String, File> projectMappingFilesMap = Stream.of(projectMappingFiles)
.collect(Collectors.toMap(File::getName, Function.identity()));
workingMappingFiles.addAll(projectMappingFilesMap.values());
Stream.of(systemMappingFiles).filter(f -> !projectMappingFilesMap.containsKey(f.getName()))
.forEach(f -> workingMappingFiles.add(f));
return workingMappingFiles;
}
public static String getSha1OfSystemMappingFile(String fileName) {
try {
return getSha1OfFile(new File(getSystemFolderURLOfMappingsFile().getFile(), fileName));
} catch (SystemException e) {
ExceptionHandler.process(e);
return null;
}
}
private static void loadMapping(File file) throws SystemException {

View File

@@ -139,4 +139,8 @@ public enum EParameterFieldType {
}
return TEXT; // Default Value
}
public static boolean isPassword(EParameterFieldType type) {
return EParameterFieldType.PASSWORD.equals(type) || EParameterFieldType.LICENSEKEY.equals(type);
}
}

View File

@@ -58,6 +58,11 @@ public interface IProcess extends IElement {
public static final String SCREEN_OFFSET_Y = "SCREEN_OFFSET_Y"; //$NON-NLS-1$
public static final String PROP_ERR_ON_COMPONENT_MISSING = "error.on.component.missing";
public static final boolean ERR_ON_COMPONENT_MISSING = Boolean
.valueOf(System.getProperty(PROP_ERR_ON_COMPONENT_MISSING, Boolean.TRUE.toString()));
public String getName();
public String getId();

View File

@@ -1086,6 +1086,18 @@ public final class ProcessUtils {
}
}
}
if ("cHttp".equals(node.getComponentName())) {
for (Object elementParameter : node.getElementParameter()) {
ElementParameterType elementParameterType = (ElementParameterType)elementParameter;
String name = elementParameterType.getName();
String value = elementParameterType.getValue();
if ("SERVER".equals(name) && (value != null && "true".equals(value.toString()))) {
return true;
}
}
}
}
return false;

View File

@@ -2023,8 +2023,8 @@ public abstract class RepositoryUpdateManager {
};
repositoryUpdateManager.checkAddContextGroup = detectAddContextGroup;
repositoryUpdateManager.isConfigContextGroup = repositoryContextManager.isConfigContextGroup();
if (repositoryContextManager != null) {
repositoryUpdateManager.isConfigContextGroup = repositoryContextManager.isConfigContextGroup();
// add for bug 9119 context group
Map<ContextItem, List<IContext>> repositoryContextGroupMap = new HashMap<ContextItem, List<IContext>>();
List<IContext> addGroupContext = repositoryContextManager.getAddGroupContext();

View File

@@ -310,8 +310,8 @@ public enum UpdateManagerProviderDetector {
Item item = node.getObject().getProperty().getItem();
List<Relation> allRelations = new ArrayList<Relation>();
if (node.getObject() != null) {
List<Relation> relations = RelationshipItemBuilder.getInstance().getItemsRelatedTo(item.getProperty().getId(),
RelationshipItemBuilder.LATEST_VERSION, RelationshipItemBuilder.PROPERTY_RELATION);
List<Relation> relations = RelationshipItemBuilder.getInstance().getItemsHaveRelationWith(item.getProperty().getId(),
RelationshipItemBuilder.LATEST_VERSION);
if (relations != null && relations.size() > 0) {
allRelations.addAll(relations);
}

View File

@@ -12,6 +12,11 @@
// ============================================================================
package org.talend.core.runtime.services;
import java.util.List;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jdt.core.IClasspathEntry;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.IService;
import org.talend.core.model.properties.RoutineItem;
@@ -25,6 +30,10 @@ public interface IDesignerMavenService extends IService {
void updateCodeJarMavenProject(CodesJarInfo info, boolean needReSync) throws Exception;
void enableMavenNature(IProgressMonitor monitor, IProject project);
void addProjectClasspathEntry(IProgressMonitor monitor, IProject project, List<IClasspathEntry> entries);
public static IDesignerMavenService get() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IDesignerMavenService.class)) {
return GlobalServiceRegister.getDefault().getService(IDesignerMavenService.class);

View File

@@ -463,6 +463,8 @@ public final class TalendQuoteUtils {
return QUOTATION_MARK;
case H2:
return QUOTATION_ESC_MARK;
case SNOWFLAKE:
return QUOTATION_MARK;
// case JAVADB_DERBYCLIENT:
// return QUOTATION_MARK;
// case JAVADB_JCCJDBC:

View File

@@ -133,7 +133,7 @@ public interface IRunProcessService extends IService {
public void updateLibraries(Set<ModuleNeeded> jobModuleList, IProcess process, Set<ModuleNeeded> alreadyRetrievedModules)
throws ProcessorException;
public void updateLibraries(Item routineItem);
public boolean updateLibraries(Item routineItem);
public void refreshView();
@@ -234,6 +234,8 @@ public interface IRunProcessService extends IService {
void clearProjectRelatedSettings();
void clearAllBuildCaches();
void batchDeleteAllVersionTalendJobProject(List<String> idList);
boolean isExportConfig();

View File

@@ -636,6 +636,7 @@ public class ContextNebulaGridComposite extends AbstractContextTabEditComposite
visibleItemCount = 20;
}
contextsCombo.setVisibleItemCount(visibleItemCount);
contextsCombo.getParent().getParent().pack();
}
private void checkContextGroupSource() {

View File

@@ -337,7 +337,6 @@ public class ContextTreeTable {
private void attachCheckColumnTip(NatTable nt) {
DefaultToolTip toolTip = new ContextNatTableToolTip(nt);
toolTip.setBackgroundColor(natTable.getDisplay().getSystemColor(7));
toolTip.setPopupDelay(500);
toolTip.activate();
toolTip.setShift(new Point(10, 10));

View File

@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry exported="true" kind="lib" path="lib/log4j-api-2.12.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/log4j-core-2.12.1.jar"/>
<classpathentry kind="src" path="src/main/java/"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="lib/log4j-api-2.17.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/log4j-core-2.17.1.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/main/java/"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@@ -55,6 +55,6 @@ Export-Package: org.talend.core,
org.talend.core.views,
org.talend.designer.runprocess
Import-Package: org.apache.commons.collections4.map
Bundle-ClassPath: lib/log4j-api-2.12.1.jar,
lib/log4j-core-2.12.1.jar,
.
Bundle-ClassPath: .,
lib/log4j-api-2.17.1.jar,
lib/log4j-core-2.17.1.jar

View File

@@ -13,7 +13,7 @@
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.12.1</version>
<version>2.17.1</version>
</dependency>
</dependencies>
<build>

View File

@@ -12,20 +12,10 @@
// ============================================================================
package org.talend.core;
import java.io.File;
import java.io.FileInputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.net.URL;
import java.util.List;
import java.util.Map;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.log4j.Logger;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
@@ -40,15 +30,12 @@ import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.exception.LoginException;
import org.talend.commons.exception.PersistenceException;
import org.talend.commons.exception.SystemException;
import org.talend.commons.runtime.xml.XmlUtil;
import org.talend.commons.ui.runtime.image.OverlayImageProvider;
import org.talend.commons.utils.generation.JavaUtils;
import org.talend.commons.utils.workbench.resources.ResourceUtils;
import org.talend.core.model.general.LibraryInfo;
import org.talend.core.model.general.Project;
import org.talend.core.model.metadata.ColumnNameChanged;
import org.talend.core.model.metadata.IMetadataTable;
import org.talend.core.model.metadata.MetadataTalendType;
import org.talend.core.model.metadata.MetadataToolHelper;
import org.talend.core.model.metadata.QueryUtil;
import org.talend.core.model.metadata.builder.ConvertionHelper;
@@ -74,16 +61,9 @@ import org.talend.designer.codegen.ITalendSynchronizer;
import org.talend.designer.core.IDesignerCoreService;
import org.talend.designer.core.model.utils.emf.talendfile.NodeType;
import org.talend.designer.runprocess.IRunProcessService;
import org.talend.designer.runprocess.ProcessorUtilities;
import org.talend.repository.ProjectManager;
import org.talend.repository.RepositoryWorkUnit;
import org.talend.repository.model.RepositoryConstants;
import org.talend.utils.xml.XmlUtils;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
/**
* DOC Administrator class global comment. Detailled comment
@@ -354,121 +334,15 @@ public class CoreService implements ICoreService {
}
@Override
@Deprecated
public void synchronizeMapptingXML(ITalendProcessJavaProject talendJavaProject) {
try {
if (talendJavaProject == null) {
return;
}
URL url = MetadataTalendType.getProjectForderURLOfMappingsFile();
if (url != null) {
// set the project mappings url
System.setProperty(ProcessorUtilities.PROP_MAPPINGS_URL, url.toString()); //$NON-NLS-1$
IFolder xmlMappingFolder = talendJavaProject.getResourceSubFolder(null, JavaUtils.JAVA_XML_MAPPING);
File mappingSource = new File(url.getPath());
FilenameFilter filter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if (XmlUtil.isXMLFile(name)) {
return true;
}
return false;
}
};
for (File file : mappingSource.listFiles(filter)) {
String targetName = getTargetName(file);
IFile targetFile = xmlMappingFolder.getFile(targetName);
copyFile(file, targetFile);
}
}
} catch (CoreException e) {
ExceptionHandler.process(e);
} catch (IOException e) {
ExceptionHandler.process(e);
} catch (SystemException e) {
ExceptionHandler.process(e);
}
//
}
@Override
@Deprecated
public void syncMappingsFileFromSystemToProject() {
RepositoryWorkUnit workUnit = new RepositoryWorkUnit("Sync mapping files from system to project") { //$NON-NLS-1$
@Override
protected void run() throws LoginException, PersistenceException {
try {
File sysMappingfolder = new File(MetadataTalendType.getSystemForderURLOfMappingsFile().getPath());
IFolder projectMappingFolder = ResourceUtils.getProject(ProjectManager.getInstance().getCurrentProject())
.getFolder(MetadataTalendType.PROJECT_MAPPING_FOLDER);
if (!projectMappingFolder.exists()) {
projectMappingFolder.create(true, true, null);
}
for (File in : sysMappingfolder.listFiles()) {
IFile out = projectMappingFolder.getFile(in.getName());
copyFile(in, out);
}
} catch (SystemException | CoreException | IOException e) {
ExceptionHandler.process(e);
}
}
};
workUnit.setAvoidUnloadResources(true);
ProxyRepositoryFactory.getInstance().executeRepositoryWorkUnit(workUnit);
}
public String getTargetName(File file) {
String targetName = file.getName();
try {
DocumentBuilderFactory documentBuilderFactory = XmlUtils.getSecureDocumentBuilderFactory();
DocumentBuilder analyser = documentBuilderFactory.newDocumentBuilder();
Document document = analyser.parse(file);
NodeList dbmsNodes = document.getElementsByTagName("dbms"); //$NON-NLS-1$
String dbmsIdValue = "";
for (int iDbms = 0; iDbms < dbmsNodes.getLength(); iDbms++) {
Node dbmsNode = dbmsNodes.item(iDbms);
NamedNodeMap dbmsAttributes = dbmsNode.getAttributes();
dbmsIdValue = dbmsAttributes.getNamedItem("id").getNodeValue(); //$NON-NLS-1$
}
if (dbmsIdValue != null && !"".equals(dbmsIdValue)) {
final String[] fileNameSplit = targetName.split("_");
String idA = "_id";
String idB = "id_";
final int indexA = dbmsIdValue.indexOf(idA);
final int indexB = dbmsIdValue.indexOf(idB);
String secondeName = "";
if (indexA > 0) {
secondeName = dbmsIdValue.substring(0, dbmsIdValue.length() - idA.length());
} else if (indexB == 0) {
secondeName = dbmsIdValue.substring(idB.length(), dbmsIdValue.length());
} else if (indexA == -1 && indexB == -1) {
secondeName = dbmsIdValue;
}
if (secondeName != null && !"".equals(secondeName)) {
targetName = fileNameSplit[0] + "_" + secondeName.toLowerCase() + XmlUtil.FILE_XML_SUFFIX;
}
}
} catch (ParserConfigurationException e) {
ExceptionHandler.process(e);
} catch (SAXException e) {
ExceptionHandler.process(e);
} catch (IOException e) {
ExceptionHandler.process(e);
}
return targetName;
}
public void copyFile(File in, IFile out) throws CoreException, IOException {
FileInputStream fis = new FileInputStream(in);
if (out.exists()) {
out.setContents(fis, true, false, null);
} else {
out.create(fis, true, null);
}
fis.close();
//
}
@Override

View File

@@ -46,6 +46,7 @@ import org.apache.logging.log4j.core.config.builder.api.RootLoggerComponentBuild
import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IWorkspaceDescription;
@@ -56,19 +57,20 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.emf.common.util.EList;
import org.eclipse.jdt.core.IClasspathAttribute;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.ui.IEditorPart;
import org.talend.commons.CommonsPlugin;
import org.talend.commons.exception.CommonExceptionHandler;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.exception.PersistenceException;
import org.talend.commons.runtime.model.repository.ERepositoryStatus;
import org.talend.commons.runtime.utils.io.FileCopyUtils;
import org.talend.commons.utils.PasswordEncryptUtil;
import org.talend.commons.utils.generation.JavaUtils;
import org.talend.commons.utils.time.TimeMeasure;
import org.talend.core.CorePlugin;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.ICoreService;
import org.talend.core.ITDQItemService;
import org.talend.core.PluginChecker;
import org.talend.core.context.Context;
@@ -98,6 +100,7 @@ import org.talend.core.model.process.JobInfo;
import org.talend.core.model.process.ProcessUtils;
import org.talend.core.model.process.ReplaceNodesInProcessProvider;
import org.talend.core.model.properties.Item;
import org.talend.core.model.properties.JobletProcessItem;
import org.talend.core.model.properties.ProcessItem;
import org.talend.core.model.properties.Property;
import org.talend.core.model.relationship.RelationshipItemBuilder;
@@ -111,14 +114,13 @@ import org.talend.core.model.routines.CodesJarInfo;
import org.talend.core.model.routines.RoutinesUtil;
import org.talend.core.model.utils.JavaResourcesHelper;
import org.talend.core.repository.model.ProxyRepositoryFactory;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.core.runtime.maven.MavenConstants;
import org.talend.core.runtime.process.ITalendProcessJavaProject;
import org.talend.core.runtime.process.LastGenerationInfo;
import org.talend.core.runtime.process.TalendProcessArgumentConstant;
import org.talend.core.runtime.process.TalendProcessOptionConstants;
import org.talend.core.runtime.projectsetting.ProjectPreferenceManager;
import org.talend.core.runtime.repository.build.BuildExportManager;
import org.talend.core.runtime.services.IDesignerMavenService;
import org.talend.core.service.IResourcesDependenciesService;
import org.talend.core.services.ICoreTisService;
import org.talend.core.services.ISVNProviderService;
@@ -147,8 +149,6 @@ public class ProcessorUtilities {
private static Logger log = Logger.getLogger(ProcessorUtilities.class);
public static final String PROP_MAPPINGS_URL = "talend.mappings.url"; //$NON-NLS-1$
/**
* For generating code in CI without param -pl
*/
@@ -702,6 +702,7 @@ public class ProcessorUtilities {
processor.setArguments(argumentsMap);
handelDQComponents(selectedProcessItem, currentProcess);
// generate the code of the father after the childrens
// so the code won't have any error during the check, and it will help to check
// if the generation is really needed.
@@ -717,6 +718,8 @@ public class ProcessorUtilities {
*/
generateBuildInfo(jobInfo, progressMonitor, isMainJob, currentProcess, currentJobName, processor, option);
checkNeedExportItemsForDQ(currentProcess);
copyDependenciedResources(currentProcess, progressMonitor);
return processor;
@@ -738,30 +741,10 @@ public class ProcessorUtilities {
boolean hasDynamicMetadata = hasMetadataDynamic(currentProcess, jobInfo);
LastGenerationInfo.getInstance().setUseDynamic(jobInfo.getJobId(), jobInfo.getJobVersion(), hasDynamicMetadata);
if (hasDynamicMetadata) {
try {
URL url = MetadataTalendType.getProjectForderURLOfMappingsFile();
if (url != null) {
// set the project mappings url
System.setProperty(ProcessorUtilities.PROP_MAPPINGS_URL, url.toString()); // $NON-NLS-1$
IFolder xmlMappingFolder = jobInfo.getProcessor().getTalendJavaProject().getResourceSubFolder(null,
JavaUtils.JAVA_XML_MAPPING);
ProjectPreferenceManager manager = CoreRuntimePlugin.getInstance().getProjectPreferenceManager();
boolean updated = manager.getBoolean(MetadataTalendType.UPDATED_MAPPING_FILES);
if ((xmlMappingFolder.members().length == 0 || updated)
&& GlobalServiceRegister.getDefault().isServiceRegistered(ICoreService.class)) {
ICoreService coreService =
GlobalServiceRegister.getDefault().getService(ICoreService.class);
coreService.synchronizeMapptingXML(jobInfo.getProcessor().getTalendJavaProject());
// reset
if (updated) {
manager.setValue(MetadataTalendType.UPDATED_MAPPING_FILES, false);
manager.save();
}
}
}
} catch (Exception e) {
ExceptionHandler.process(e);
ITalendProcessJavaProject talendJavaProject = jobInfo.getProcessor().getTalendJavaProject();
if (talendJavaProject != null) {
IFolder xmlMappingFolder = talendJavaProject.getResourceSubFolder(null, JavaUtils.JAVA_XML_MAPPING);
MetadataTalendType.syncMappingFiles(xmlMappingFolder.getLocation().toFile(), true);
}
}
}
@@ -1262,6 +1245,8 @@ public class ProcessorUtilities {
generateBuildInfo(jobInfo, progressMonitor, isMainJob, currentProcess, currentJobName, processor, option);
TimeMeasure.step(idTimer, "generateBuildInfo");
checkNeedExportItemsForDQ(currentProcess);
copyDependenciedResources(currentProcess, progressMonitor);
return processor;
@@ -1275,39 +1260,6 @@ public class ProcessorUtilities {
}
}
private static void syncContextResourcesForParentJob(IProcess currentProcess, IProgressMonitor progressMonitor) {
ITalendProcessJavaProject processJavaProject = mainJobInfo.getProcessor().getTalendJavaProject();
final IFolder mainResourcesFolder = processJavaProject.getExternalResourcesFolder();
final File targetFolder = mainResourcesFolder.getLocation().toFile();
final Set<JobInfo> dependenciesItems = mainJobInfo.getProcessor().getBuildChildrenJobs();
final IRunProcessService runProcessService = (IRunProcessService) GlobalServiceRegister.getDefault().getService(
IRunProcessService.class);
List<ProcessItem> dependenciesItemsFiltered = dependenciesItems.stream().filter(jobInfo -> !jobInfo.isJoblet())
.map(JobInfo::getProcessItem).collect(Collectors.toList());
if (dependenciesItemsFiltered.size() > 0) {
dependenciesItemsFiltered.forEach(item -> {
ITalendProcessJavaProject childJavaProject = runProcessService.getTalendJobJavaProject(item.getProperty());
if (childJavaProject != null) {
final IFolder childResourcesFolder = childJavaProject.getExternalResourcesFolder();
if (childResourcesFolder.exists()) {
FileCopyUtils.syncFolder(childResourcesFolder.getLocation().toFile(), targetFolder, false);
}
}
});
try {
mainResourcesFolder.refreshLocal(IResource.DEPTH_INFINITE, progressMonitor);
} catch (CoreException e) {
ExceptionHandler.process(e);
}
}
}
private static Set<ModuleNeeded> getAllJobTestcaseModules(ProcessItem selectedProcessItem) {
Set<ModuleNeeded> neededLibraries = new HashSet<>();
if (GlobalServiceRegister.getDefault().isServiceRegistered(ITestContainerProviderService.class)) {
@@ -1382,10 +1334,34 @@ public class ProcessorUtilities {
}
/**
*
* Specail operation for DQ components:
* - For tdqReportRun, set 'needExportItemsForDQ'to true so as the item folder can be exported
* - For tRuleSurvivorship, copy the current item's drools file from 'workspace/metadata/survivorship' to '.Java/src/resources'
* if the job includes tdqReportRun, set 'needExportItemsForDQ'to true so as the item folder can be exported
*
* @param processItem
* @param currentProcess
*/
private static void checkNeedExportItemsForDQ(IProcess currentProcess) {
if (GlobalServiceRegister.getDefault().isServiceRegistered(ITDQItemService.class)) {
ITDQItemService tdqItemService =
GlobalServiceRegister.getDefault().getService(ITDQItemService.class);
// TDQ-19637 if it includes 'tDqReportRun',must export item folder
if (tdqItemService != null && !needExportItemsForDQ) {
for (INode node : currentProcess.getGeneratingNodes()) {
String componentName = node.getComponent().getName();
if ("tDqReportRun".equals(componentName)) {
needExportItemsForDQ = true;
break;
}
}
}
}
}
/**
*
* Specail operation for DQ components:
* - For tRuleSurvivorship, copy the current item's drools file from 'workspace/metadata/survivorship' to
* '.Java/src/resources'
*
* @param processItem
*/
private static void handelDQComponents(ProcessItem processItem,IProcess currentProcess) {
@@ -1400,17 +1376,7 @@ public class ProcessorUtilities {
return;
}
try {
// TDQ-19637 if it includes 'tDqReportRun',must export item folder
if (!needExportItemsForDQ) {
for (INode node : currentProcess.getGeneratingNodes()) {
String componentName = node.getComponent().getName();
if ("tDqReportRun".equals(componentName)) {
needExportItemsForDQ = true;
break;
}
}
}
/* 1.TDQ-12474 copy the "metadata/survivorship/rulePackage" to ".Java/src/main/resources/". so that it will be
/* 1.TDQ-12474 copy the "metadata/survivorship/rulePackage" to ".Java/src/main/resources/". so that it will be
used by maven command 'include-survivorship-rules' to export.
2.TDQ-14308 current drools file in 'src/resourcesmetadata/survivorship/' should be included to job jar.
*/
@@ -1514,7 +1480,6 @@ public class ProcessorUtilities {
}
}
}
syncContextResourcesForParentJob(currentProcess, progressMonitor);
}
/**
@@ -1570,6 +1535,7 @@ public class ProcessorUtilities {
}
jobInfo.setProcessItem(null);
if (!BitwiseOptionUtils.containOption(option, GENERATE_MAIN_ONLY)) {
List<JobInfo> firstSubjobs = new ArrayList<JobInfo>();
// handle subjob in joblet. see bug 004937: tRunJob in a Joblet
for (INode node : currentProcess.getGeneratingNodes()) {
String componentName = node.getComponent().getName();
@@ -1658,6 +1624,8 @@ public class ProcessorUtilities {
if (!BitwiseOptionUtils.containOption(option, GENERATE_WITH_FIRST_CHILD)) {
currentProcess.setNeedRegenerateCode(true);
} else {
firstSubjobs.add(subJobInfo);
}
}
@@ -1666,6 +1634,9 @@ public class ProcessorUtilities {
}
}
}
if (BitwiseOptionUtils.containOption(option, GENERATE_WITH_FIRST_CHILD)) {
handleGenerateFirstChildOnlyClasspath(progressMonitor, jobInfo, firstSubjobs);
}
}
}
@@ -1675,6 +1646,32 @@ public class ProcessorUtilities {
jobInfo.setIncludeESBFlag(includeESBFlag);
}
private static void handleGenerateFirstChildOnlyClasspath(IProgressMonitor progressMonitor, JobInfo jobInfo,
List<JobInfo> subjobInfoList) {
IDesignerMavenService mavenService = IDesignerMavenService.get();
if (mavenService == null || jobInfo == null || subjobInfoList.isEmpty()) {
return;
}
List<IClasspathEntry> classpathEntries = new ArrayList<IClasspathEntry>();
for (JobInfo subJobInfo : subjobInfoList) {
if (subJobInfo.getProcessor() != null) {
IProject codeProject = subJobInfo.getProcessor().getCodeProject();
if (codeProject != null) {
mavenService.enableMavenNature(progressMonitor, codeProject);
IClasspathEntry classpathEntry = JavaCore.newSourceEntry(codeProject.getFullPath(), new IPath[0],
new IPath[0], null, new IClasspathAttribute[] {});
classpathEntries.add(classpathEntry);
}
}
}
if (jobInfo.getProcessor() != null) {
IProject codeProject = jobInfo.getProcessor().getCodeProject();
if (codeProject != null) {
mavenService.addProjectClasspathEntry(progressMonitor, codeProject, classpathEntries);
}
}
}
static void setGenerationInfoWithChildrenJob(INode node, JobInfo jobInfo, final JobInfo subJobInfo) {
final LastGenerationInfo generationInfo = LastGenerationInfo.getInstance();
@@ -2048,7 +2045,7 @@ public class ProcessorUtilities {
}
public static IProcessor generateCode(IProcess process, IContext context, boolean statistics, boolean trace,
boolean properties, int option) throws ProcessorException {
boolean properties, int option, IProgressMonitor progressMonitor) throws ProcessorException {
// added by nma, to refresh routines when generating code in SVN mode. 10225.
ISVNProviderService service = null;
if (PluginChecker.isSVNProviderPluginLoaded()) {
@@ -2060,8 +2057,7 @@ public class ProcessorUtilities {
// achen modify to fix 0006107
JobInfo jobInfo = new JobInfo(process, context);
resetBuildFlagsAndCaches();
IProcessor genCode = generateCode(jobInfo, context.getName(), statistics, trace, properties, option,
new NullProgressMonitor());
IProcessor genCode = generateCode(jobInfo, context.getName(), statistics, trace, properties, option, progressMonitor);
resetBuildFlagsAndCaches();
return genCode;
}
@@ -2519,6 +2515,13 @@ public class ProcessorUtilities {
ExceptionHandler.process(e);
}
}
// TUP-35219 avoid resource unload
if (property != null && property.getItem() != null
&& property.getItem() instanceof JobletProcessItem) {
((JobletProcessItem) property.getItem()).getJobletProcess();
}
JobInfo jobInfo = new JobInfo(property, jobletProcess.getDefaultContext());
if (!jobInfos.contains(jobInfo)) {
jobInfos.add(jobInfo);

View File

@@ -23,6 +23,10 @@
<groupId>org.apache.maven</groupId>
<artifactId>maven-compat</artifactId>
</exclusion>
<exclusion>
<groupId>org.beanshell</groupId>
<artifactId>bsh</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>

View File

@@ -97,7 +97,18 @@
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>3.8.1</version>
<exclusions>
<exclusion>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-utils</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-utils</artifactId>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>

View File

@@ -19,6 +19,10 @@
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-utils</artifactId>
</exclusion>
</exclusions>
</dependency>

View File

@@ -14,6 +14,17 @@
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>3.8.1</version>
<exclusions>
<exclusion>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-utils</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-utils</artifactId>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>org.eclipse.tycho</groupId>

View File

@@ -34,6 +34,17 @@
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>3.8.1</version>
<exclusions>
<exclusion>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-utils</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-utils</artifactId>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
@@ -127,6 +138,11 @@
<artifactId>commons-compress</artifactId>
<version>1.21</version>
</dependency>
<dependency>
<groupId>org.apache-extras.beanshell</groupId>
<artifactId>bsh</artifactId>
<version>2.0b6</version>
</dependency>
</dependencies>
<build>
<plugins>

View File

@@ -14,22 +14,22 @@
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.12.1</version>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.12.1</version>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.12.1</version>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>2.12.1</version>
<version>2.17.1</version>
</dependency>
</dependencies>
<build>
@@ -55,4 +55,4 @@
</plugin>
</plugins>
</build>
</project>
</project>

View File

@@ -20,7 +20,7 @@
<module>zip/pom.xml</module>
</modules>
<properties>
<m2.fasterxml.jackson.version>2.11.4</m2.fasterxml.jackson.version>
<jackson-codehaus.version>1.9.15-TALEND</jackson-codehaus.version>
<m2.fasterxml.jackson.version>2.13.2</m2.fasterxml.jackson.version>
<jackson-codehaus.version>1.9.16-TALEND</jackson-codehaus.version>
</properties>
</project>

View File

@@ -10,7 +10,7 @@
<artifactId>studio-tacokit-dependencies</artifactId>
<packaging>pom</packaging>
<properties>
<tacokit.components.version>1.26.0</tacokit.components.version>
<tacokit.components.version>1.27.10</tacokit.components.version>
</properties>
<repositories>
<repository>

View File

@@ -9,12 +9,14 @@
</parent>
<artifactId>studio-tcompv1-dependencies</artifactId>
<packaging>pom</packaging>
<properties>
<tcomp.version>1.37.0</tcomp.version>
<tcomp.version>1.38.6</tcomp.version>
<slf4j.version>1.7.32</slf4j.version>
<log4j2.version>2.17.1</log4j2.version>
<reload4j.version>1.2.19</reload4j.version>
</properties>
<repositories>
<repository>
<id>talend_open</id>
@@ -57,9 +59,49 @@
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</repository>
</repositories>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jul</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.talend.sdk.component</groupId>
<artifactId>component-runtime</artifactId>
@@ -69,7 +111,7 @@
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.talend.sdk.component</groupId>
@@ -100,6 +142,17 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>${reload4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
@@ -112,7 +165,7 @@
<version>1.14</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>

View File

@@ -33,7 +33,7 @@
<artifactItem>
<groupId>org.talend.studio</groupId>
<artifactId>studio-maven-repository</artifactId>
<version>7.3.1.v20210907</version>
<version>7.3.1.v20220325</version>
<type>zip</type>
<overWrite>true</overWrite>
<outputDirectory>${project.basedir}/../repository</outputDirectory>

View File

@@ -20,7 +20,11 @@
<phase>generate-sources</phase>
<configuration>
<tasks>
<zip destfile="${basedir}/../repository/maven_repository.zip" basedir="${basedir}/../tmp/" />
<zip destfile="${basedir}/../repository/maven_repository.zip" basedir="${basedir}/../tmp/" >
<fileset dir="${basedir}/../tmp/">
<exclude name="repository/dom4j/dom4j/1.6.1/**" />
</fileset>
</zip>
<delete dir="${basedir}/../tmp/" />
</tasks>
</configuration>

View File

@@ -125,6 +125,11 @@
<artifactId>plexus-io</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-utils</artifactId>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
@@ -184,6 +189,11 @@
<artifactId>plexus-utils</artifactId>
<version>3.0.24</version>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-utils</artifactId>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
@@ -206,6 +216,11 @@
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-utils</artifactId>
<version>3.3.3</version>
</dependency>
</dependencies>
</plugin>
<plugin>

View File

@@ -12,11 +12,17 @@
// ============================================================================
package org.talend.designer.maven;
import java.util.List;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jdt.core.IClasspathEntry;
import org.talend.core.model.properties.RoutineItem;
import org.talend.core.model.routines.CodesJarInfo;
import org.talend.core.runtime.services.IDesignerMavenService;
import org.talend.designer.maven.tools.CodesJarM2CacheManager;
import org.talend.designer.maven.utils.CodesJarMavenUtil;
import org.talend.designer.maven.utils.MavenProjectUtils;
public class DesignerMavenService implements IDesignerMavenService {
@@ -35,4 +41,14 @@ public class DesignerMavenService implements IDesignerMavenService {
CodesJarM2CacheManager.updateCodesJarProject(info, needReSync);
}
@Override
public void enableMavenNature(IProgressMonitor monitor, IProject project) {
MavenProjectUtils.enableMavenNature(monitor, project);
}
@Override
public void addProjectClasspathEntry(IProgressMonitor monitor, IProject project, List<IClasspathEntry> entries) {
MavenProjectUtils.addProjectClasspathEntry(monitor, project, entries);
}
}

View File

@@ -14,6 +14,7 @@ package org.talend.designer.maven.tools;
import static org.talend.designer.maven.model.TalendJavaProjectConstants.*;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.nio.file.Paths;
import java.util.ArrayList;
@@ -24,6 +25,7 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -33,6 +35,7 @@ import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.apache.maven.model.Activation;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.Profile;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
@@ -54,6 +57,7 @@ import org.eclipse.m2e.core.MavenPlugin;
import org.eclipse.swt.widgets.Display;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.exception.PersistenceException;
import org.talend.commons.utils.MojoType;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.IESBService;
import org.talend.core.ILibraryManagerService;
@@ -75,6 +79,7 @@ import org.talend.core.model.routines.CodesJarInfo;
import org.talend.core.repository.model.ProxyRepositoryFactory;
import org.talend.core.repository.utils.ItemResourceUtil;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.core.runtime.maven.MavenArtifact;
import org.talend.core.runtime.maven.MavenConstants;
import org.talend.core.runtime.maven.MavenUrlHelper;
import org.talend.core.runtime.process.ITalendProcessJavaProject;
@@ -142,8 +147,7 @@ public class AggregatorPomsHelper {
public void installRootPom(boolean force) throws Exception {
IFile pomFile = getProjectRootPom();
if (pomFile.exists()) {
Model model = MavenPlugin.getMaven().readModel(pomFile.getLocation().toFile());
if (force || !isPomInstalled(model.getGroupId(), model.getArtifactId(), model.getVersion())) {
if (force || needInstallRootPom(pomFile)) {
MavenPomCommandLauncher launcher =
new MavenPomCommandLauncher(pomFile, TalendMavenConstants.GOAL_INSTALL);
Map<String, Object> argumentsMap = new HashMap<>();
@@ -155,9 +159,40 @@ public class AggregatorPomsHelper {
}
}
public boolean isPomInstalled(String groupId, String artifactId, String version) {
String mvnUrl = MavenUrlHelper.generateMvnUrl(groupId, artifactId, version, MavenConstants.PACKAGING_POM, null);
return PomUtil.isAvailable(mvnUrl);
public boolean needInstallRootPom(IFile pomFile) {
try {
Model model = MavenPlugin.getMaven().readModel(pomFile.getLocation().toFile());
String mvnUrl = MavenUrlHelper.generateMvnUrl(model.getGroupId(), model.getArtifactId(), model.getVersion(),
MavenConstants.PACKAGING_POM, null);
MavenArtifact artifact = MavenUrlHelper.parseMvnUrl(mvnUrl);
if (artifact != null) {
String artifactPath = PomUtil.getAbsArtifactPath(artifact);
if (artifactPath == null) {
return true;
}
Model installedModel = MavenPlugin.getMaven().readModel(new File(artifactPath));
// check ci-builder
String currentCIBuilderVersion = model.getBuild().getPlugins().stream()
.filter(p -> p.getArtifactId().equals(MojoType.CI_BUILDER.getArtifactId())).findFirst().get()
.getVersion();
String installedCIBuilderVersion = installedModel.getBuild().getPlugins().stream()
.filter(p -> p.getArtifactId().equals(MojoType.CI_BUILDER.getArtifactId())).findFirst().get()
.getVersion();
if (!currentCIBuilderVersion.equals(installedCIBuilderVersion)) {
return true;
}
// check signer
String currentSignerVersion = model.getProperties().getProperty(MojoType.SIGNER.getVersionKey());
String installedSignerVersion = installedModel.getProperties().getProperty(MojoType.SIGNER.getVersionKey());
if (!currentSignerVersion.equals(installedSignerVersion)) {
return true;
}
}
} catch (Exception e) {
ExceptionHandler.process(e);
return true;
}
return false;
}
public IFolder getProjectPomsFolder() {
@@ -179,31 +214,36 @@ public class AggregatorPomsHelper {
@Override
protected void run() {
Project currentProject = ProjectManager.getInstance().getCurrentProject();
try {
for (ERepositoryObjectType codeType : ERepositoryObjectType.getAllTypesOfCodes()) {
ITalendProcessJavaProject codeProject = getCodesProject(codeType);
if (ERepositoryObjectType.ROUTINES == codeType) {
PomUtil.checkExistingLog4j2Dependencies4RoutinePom(projectTechName, codeProject.getProjectPom());
}
if (ignoreM2Cache || CodeM2CacheManager.needUpdateCodeProject(currentProject, codeType)) {
updateCodeProjectPom(monitor, codeType, codeProject.getProjectPom());
MavenProjectUtils.updateMavenProject(monitor, codeProject.getProject());
buildAndInstallCodesProject(monitor, codeType, true, forceBuild);
CodeM2CacheManager.updateCodeProjectCache(currentProject, codeType);
} else if (buildIfNoUpdate) {
buildAndInstallCodesProject(monitor, codeType, false, true);
}
updateCodeProject(monitor, codeType, forceBuild, ignoreM2Cache, buildIfNoUpdate);
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
};
workUnit.setAvoidUnloadResources(true);
ProxyRepositoryFactory.getInstance().executeRepositoryWorkUnit(workUnit);
}
public void updateCodeProject(IProgressMonitor monitor, ERepositoryObjectType codeType, boolean forceBuild, boolean ignoreM2Cache,
boolean buildIfNoUpdate) throws Exception, CoreException {
Project currentProject = ProjectManager.getInstance().getCurrentProject();
ITalendProcessJavaProject codeProject = getCodesProject(codeType);
if (ERepositoryObjectType.ROUTINES == codeType) {
PomUtil.checkExistingLog4j2Dependencies4RoutinePom(projectTechName, codeProject.getProjectPom());
}
if (ignoreM2Cache || CodeM2CacheManager.needUpdateCodeProject(currentProject, codeType)) {
updateCodeProjectPom(monitor, codeType, codeProject.getProjectPom());
MavenProjectUtils.updateMavenProject(monitor, codeProject.getProject());
buildAndInstallCodesProject(monitor, codeType, true, forceBuild);
CodeM2CacheManager.updateCodeProjectCache(currentProject, codeType);
} else if (buildIfNoUpdate) {
buildAndInstallCodesProject(monitor, codeType, false, true);
}
}
public void updateCodeProjectPom(IProgressMonitor monitor, ERepositoryObjectType type, IFile pomFile)
throws Exception {
if (type != null) {
@@ -894,7 +934,7 @@ public class AggregatorPomsHelper {
} else {
model.getModules().addAll(collectRefProjectModules(null));
}
boolean isCIMode = false;
Boolean isCIMode = false;
if (IRunProcessService.get() != null) {
isCIMode = IRunProcessService.get().isCIMode();
}
@@ -909,15 +949,10 @@ public class AggregatorPomsHelper {
// codes pom
monitor.subTask("Synchronize code poms"); //$NON-NLS-1$
if (isCIMode) {
System.setProperty("ignore.ci.mode", Boolean.TRUE.toString());
updateCodeProjects(monitor, true, true);
System.setProperty("ignore.ci.mode", Boolean.FALSE.toString());
} else {
updateCodeProjects(monitor, true, true);
}
System.setProperty("ignore.ci.mode", isCIMode.toString());
updateCodeProjects(monitor, true, true);
CodesJarM2CacheManager.updateCodesJarProject(monitor, true, true, true);
System.setProperty("ignore.ci.mode", Boolean.FALSE.toString());
monitor.worked(1);
if (monitor.isCanceled()) {
@@ -981,6 +1016,8 @@ public class AggregatorPomsHelper {
updateCodeProjectPom(monitor, codeType, codeProject.getProjectPom());
}
}
CodesJarResourceCache.getAllCodesJars().stream().filter(CodesJarInfo::isInCurrentMainProject)
.forEach(info -> CodesJarM2CacheManager.updateCodesJarProjectPom(monitor, info));
}
monitor.done();

View File

@@ -324,7 +324,8 @@ public class BuildCacheManager {
Parent parent = new Parent();
parent.setGroupId(PomIdsHelper.getProjectGroupId());
parent.setArtifactId(PomIdsHelper.getProjectArtifactId());
parent.setVersion(PomIdsHelper.getProjectVersion());
parent.setVersion(PomIdsHelper.getProjectVersion());
parent.setRelativePath(".");
model.setParent(parent);
PomUtil.savePom(null, model, pomFile);
}

View File

@@ -97,16 +97,19 @@ public class ProcessorDependenciesManager {
if (uniqueDependencies.contains(mavenUri)) {
continue; // must be same GAV, avoid the different other attrs for modules
}
Object object = module.getExtraAttributes().get("ROUTINE_EXCLUDE");
if (object != null && Boolean.valueOf(object.toString())) {
continue;
}
uniqueDependencies.add(mavenUri);
Dependency dependency = PomUtil.createModuleDependency(mavenUri);
if (dependency != null) {
((SortableDependency) dependency).setAssemblyOptional(optional);
if (module.isExcludeDependencies()) {
Exclusion exclusion = new Exclusion();
exclusion.setGroupId("*"); //$NON-NLS-1$
exclusion.setArtifactId("*"); //$NON-NLS-1$
dependency.addExclusion(exclusion);
}
Exclusion exclusion = new Exclusion();
exclusion.setGroupId("*"); //$NON-NLS-1$
exclusion.setArtifactId("*"); //$NON-NLS-1$
dependency.addExclusion(exclusion);
neededDependencies.add(dependency);
}
}

View File

@@ -927,7 +927,6 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom {
IMaven maven = MavenPlugin.getMaven();
ArtifactRepository repository = maven.getLocalRepository();
boolean isDIJob = ERepositoryObjectType.getItemType(getJobProcessor().getProperty().getItem()) == ERepositoryObjectType.PROCESS;
for (Dependency dependency : duplicateDependencies) {
if (((SortableDependency) dependency).isAssemblyOptional()) {
continue;
@@ -938,7 +937,7 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom {
sourceLocation = path.toString();
boolean latestVersionOrLowerVersionInChildJob = isLatestVersionOrLowerVersionInChildJob(parentJobDependencies, childJobDependencies, duplicateLibs, dependency);
if (isDIJob && !latestVersionOrLowerVersionInChildJob && !new File(sourceLocation).exists()) {
if (!latestVersionOrLowerVersionInChildJob && !new File(sourceLocation).exists()) {
CommonExceptionHandler.warn("Job dependency [" + sourceLocation + "] does not exist!");
continue;
}

View File

@@ -14,6 +14,7 @@ package org.talend.designer.maven.utils;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -145,6 +146,23 @@ public class MavenProjectUtils {
}
}
public static void addProjectClasspathEntry(IProgressMonitor monitor, IProject project, List<IClasspathEntry> entries) {
try {
Set<IClasspathEntry> classpathentries = new LinkedHashSet<IClasspathEntry>();
IJavaProject javaProject = JavaCore.create(project);
IClasspathEntry[] rawClasspathEntries = javaProject.getRawClasspath();
for (IClasspathEntry entry : rawClasspathEntries) {
classpathentries.add(entry);
}
classpathentries.addAll(entries);
rawClasspathEntries = classpathentries.toArray(new IClasspathEntry[] {});
javaProject.setRawClasspath(rawClasspathEntries, monitor);
javaProject.setOutputLocation(project.getFolder(MavenSystemFolders.JAVA.getOutputPath()).getFullPath(), monitor);
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
/**
* Clear compliance settings from project, and set them into Eclipse compliance settings

View File

@@ -1,35 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry exported="true" kind="lib" path="lib/txw2-2.3.4.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jakarta.xml.ws-api-2.3.3.jar"/>
<classpathentry exported="true" kind="lib" path="lib/wsdl4j-1.6.3.jar"/>
<classpathentry exported="true" kind="lib" path="lib/istack-commons-runtime-3.0.12.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jaxb-runtime-2.3.4.jar"/>
<classpathentry exported="true" kind="lib" path="lib/woodstox-core-6.2.6.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-core-3.4.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-bindings-soap-3.4.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-bindings-xml-3.4.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-databinding-jaxb-3.4.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-features-clustering-3.4.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-frontend-jaxrs-3.4.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-frontend-jaxws-3.4.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-frontend-simple-3.4.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-rs-client-3.4.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-security-3.4.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-security-saml-3.4.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-transports-http-3.4.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-ws-addr-3.4.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-wsdl-3.4.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-ws-policy-3.4.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-ws-security-3.4.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jakarta.activation-1.2.2.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-wsdl-3.3.10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jakarta.activation-api-1.2.2.jar"/>
<classpathentry exported="true" kind="lib" path="lib/woodstox-core-6.2.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jakarta.annotation-api-1.3.5.jar"/>
<classpathentry exported="true" kind="lib" path="lib/stax2-api-4.2.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/neethi-3.1.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jakarta.ws.rs-api-2.1.6.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-core-3.3.10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-bindings-xml-3.3.10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-frontend-jaxrs-3.3.10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-rs-client-3.3.10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-transports-http-3.3.10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-bindings-soap-3.3.10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-databinding-jaxb-3.3.10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-features-clustering-3.3.10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-frontend-jaxws-3.3.10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-frontend-simple-3.3.10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-security-3.3.10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-security-saml-3.3.10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-ws-addr-3.3.10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-ws-policy-3.3.10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cxf-rt-ws-security-3.3.10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/javax.ws.rs-api-2.0-m10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jakarta.xml.bind-api-2.3.3.jar"/>
<classpathentry exported="true" kind="lib" path="lib/xmlschema-core-2.2.5.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jaxb-runtime-2.3.3.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jakarta.jws-api-2.1.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/istack-commons-runtime-3.0.11.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jakarta.xml.soap-api-1.4.2.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

View File

@@ -5,66 +5,39 @@ Bundle-SymbolicName: org.talend.libraries.apache.cxf;singleton:=true
Bundle-Version: 7.3.1.qualifier
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .,
lib/cxf-core-3.4.7.jar,
lib/cxf-rt-bindings-soap-3.4.7.jar,
lib/cxf-rt-bindings-xml-3.4.7.jar,
lib/cxf-rt-databinding-jaxb-3.4.7.jar,
lib/cxf-rt-features-clustering-3.4.7.jar,
lib/cxf-rt-frontend-jaxrs-3.4.7.jar,
lib/cxf-rt-frontend-jaxws-3.4.7.jar,
lib/cxf-rt-frontend-simple-3.4.7.jar,
lib/cxf-rt-rs-client-3.4.7.jar,
lib/cxf-rt-security-3.4.7.jar,
lib/cxf-rt-security-saml-3.4.7.jar,
lib/cxf-rt-transports-http-3.4.7.jar,
lib/cxf-rt-ws-addr-3.4.7.jar,
lib/cxf-rt-wsdl-3.4.7.jar,
lib/cxf-rt-ws-security-3.4.7.jar,
lib/cxf-rt-ws-policy-3.4.7.jar,
lib/istack-commons-runtime-3.0.12.jar,
lib/jakarta.activation-1.2.2.jar,
lib/jakarta.activation-api-1.2.2.jar,
lib/jakarta.annotation-api-1.3.5.jar,
lib/jakarta.jws-api-2.1.0.jar,
lib/jakarta.ws.rs-api-2.1.6.jar,
lib/jakarta.xml.bind-api-2.3.3.jar,
lib/jakarta.xml.soap-api-1.4.2.jar,
lib/jakarta.xml.ws-api-2.3.3.jar,
lib/jaxb-runtime-2.3.4.jar,
lib/neethi-3.1.1.jar,
lib/stax2-api-4.2.1.jar,
lib/javax.activation-1.2.0.jar,
lib/cxf-core-3.3.10.jar,
lib/cxf-rt-bindings-xml-3.3.10.jar,
lib/cxf-rt-frontend-jaxrs-3.3.10.jar,
lib/cxf-rt-rs-client-3.3.10.jar,
lib/cxf-rt-transports-http-3.3.10.jar,
lib/cxf-rt-wsdl-3.3.10.jar,
lib/cxf-rt-bindings-soap-3.3.10.jar,
lib/cxf-rt-databinding-jaxb-3.3.10.jar,
lib/cxf-rt-features-clustering-3.3.10.jar,
lib/cxf-rt-frontend-jaxws-3.3.10.jar,
lib/cxf-rt-frontend-simple-3.3.10.jar,
lib/cxf-rt-security-3.3.10.jar,
lib/cxf-rt-security-saml-3.3.10.jar,
lib/cxf-rt-ws-addr-3.3.10.jar,
lib/cxf-rt-ws-policy-3.3.10.jar,
lib/cxf-rt-ws-security-3.3.10.jar,
lib/jakarta.ws.rs-api-2.1.6.jar,
lib/jakarta.annotation-api-1.3.5.jar,
lib/woodstox-core-6.2.1.jar,
lib/jakarta.xml.bind-api-2.3.3.jar,
lib/jakarta.activation-api-1.2.2.jar,
lib/jakarta.activation-1.2.2.jar,
lib/javax.ws.rs-api-2.0-m10.jar,
lib/txw2-2.3.4.jar,
lib/xmlschema-core-2.2.5.jar,
lib/jaxb-runtime-2.3.3.jar,
lib/jakarta.jws-api-2.1.0.jar,
lib/istack-commons-runtime-3.0.11.jar,
lib/jakarta.xml.soap-api-1.4.2.jar
Export-Package: com.sun.istack,
com.sun.istack.localization,
com.sun.istack.logging,
com.sun.xml.bind,
com.sun.xml.bind.annotation,
com.sun.xml.bind.api,
com.sun.xml.bind.api.impl,
com.sun.xml.bind.marshaller,
com.sun.xml.bind.unmarshaller,
com.sun.xml.bind.util,
com.sun.xml.bind.v2,
com.sun.xml.bind.v2.bytecode,
com.sun.xml.bind.v2.model.annotation,
com.sun.xml.bind.v2.model.core,
com.sun.xml.bind.v2.model.impl,
com.sun.xml.bind.v2.model.nav,
com.sun.xml.bind.v2.model.runtime,
com.sun.xml.bind.v2.model.util,
com.sun.xml.bind.v2.runtime,
com.sun.xml.bind.v2.runtime.output,
com.sun.xml.bind.v2.runtime.property,
com.sun.xml.bind.v2.runtime.reflect,
com.sun.xml.bind.v2.runtime.reflect.opt,
com.sun.xml.bind.v2.runtime.unmarshaller,
com.sun.xml.bind.v2.schemagen,
com.sun.xml.bind.v2.schemagen.episode,
com.sun.xml.bind.v2.schemagen.xmlschema,
com.sun.xml.bind.v2.util,
javax.jws,
lib/woodstox-core-6.2.6.jar,
lib/wsdl4j-1.6.3.jar
Export-Package: javax.jws,
javax.ws.rs,
javax.ws.rs.client,
javax.ws.rs.container,
@@ -76,6 +49,15 @@ Export-Package: com.sun.istack,
javax.xml.bind.attachment,
javax.xml.bind.helpers,
javax.xml.bind.util,
javax.xml.soap,
javax.xml.ws,
javax.xml.ws.handler,
javax.xml.ws.handler.soap,
javax.xml.ws.http,
javax.xml.ws.soap,
javax.xml.ws.spi,
javax.xml.ws.spi.http,
javax.xml.ws.wsaddressing,
org.apache.cxf,
org.apache.cxf.annotations,
org.apache.cxf.attachment,
@@ -192,7 +174,6 @@ Export-Package: com.sun.istack,
org.apache.cxf.wsdl11,
org.apache.neethi,
org.apache.neethi.builders,
javax.xml.ws,
org.talend.libraries.apache.cxf
Require-Bundle: javax.wsdl;bundle-version="1.6.2",
org.apache.log4j,

View File

@@ -10,6 +10,10 @@
<artifactId>org.talend.libraries.apache.cxf</artifactId>
<packaging>eclipse-plugin</packaging>
<properties>
<cxf.version>3.4.7</cxf.version>
</properties>
<repositories>
<repository>
<id>talend-update</id>
@@ -21,83 +25,88 @@
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-core</artifactId>
<version>3.3.10</version>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-bindings-xml</artifactId>
<version>3.3.10</version>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>3.3.10</version>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-client</artifactId>
<version>3.3.10</version>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.3.10</version>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-wsdl</artifactId>
<version>3.3.10</version>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-bindings-soap</artifactId>
<version>3.3.10</version>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-databinding-jaxb</artifactId>
<version>3.3.10</version>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-features-clustering</artifactId>
<version>3.3.10</version>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.3.10</version>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-simple</artifactId>
<version>3.3.10</version>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-security</artifactId>
<version>3.3.10</version>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-security-saml</artifactId>
<version>3.3.10</version>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-ws-addr</artifactId>
<version>3.3.10</version>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-ws-policy</artifactId>
<version>3.3.10</version>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-ws-security</artifactId>
<version>3.3.10</version>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>com.sun.istack</groupId>
<artifactId>istack-commons-runtime</artifactId>
<version>3.0.12</version>
</dependency>
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>jakarta.activation</artifactId>
@@ -108,15 +117,40 @@
<artifactId>jakarta.activation-api</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
<version>1.3.5</version>
</dependency>
<dependency>
<groupId>jakarta.jws</groupId>
<artifactId>jakarta.jws-api</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>jakarta.ws.rs</groupId>
<artifactId>jakarta.ws.rs-api</artifactId>
<version>2.1.6</version>
</dependency>
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
<version>1.3.5</version>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>jakarta.xml.soap</groupId>
<artifactId>jakarta.xml.soap-api</artifactId>
<version>1.4.2</version>
</dependency>
<dependency>
<groupId>jakarta.xml.ws</groupId>
<artifactId>jakarta.xml.ws-api</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.4</version>
</dependency>
<dependency>
<groupId>org.apache.neethi</groupId>
@@ -129,14 +163,14 @@
<version>4.2.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.woodstox</groupId>
<artifactId>woodstox-core</artifactId>
<version>6.2.1</version>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>txw2</artifactId>
<version>2.3.4</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0-m10</version>
<groupId>com.fasterxml.woodstox</groupId>
<artifactId>woodstox-core</artifactId>
<version>6.2.6</version>
</dependency>
<dependency>
<groupId>org.apache.ws.xmlschema</groupId>
@@ -144,29 +178,9 @@
<version>2.2.5</version>
</dependency>
<dependency>
<groupId>jakarta.jws</groupId>
<artifactId>jakarta.jws-api</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>com.sun.istack</groupId>
<artifactId>istack-commons-runtime</artifactId>
<version>3.0.11</version>
</dependency>
<dependency>
<groupId>jakarta.xml.soap</groupId>
<artifactId>jakarta.xml.soap-api</artifactId>
<version>1.4.2</version>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.6.3</version>
</dependency>
</dependencies>
<build>
@@ -194,6 +208,7 @@
<goal>copy-dependencies</goal>
</goals>
<configuration>
<includeScope>runtime</includeScope>
<excludeTypes>pom</excludeTypes>
<excludeTransitive>true</excludeTransitive>
<outputDirectory>${project.basedir}/lib</outputDirectory>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="lib/xmlbeans-2.3.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/xmlbeans-3.1.0.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="output" path="bin"/>

View File

@@ -22,9 +22,6 @@ Export-Package: org.apache.xmlbeans,
org.apache.xmlbeans.impl.jam.provider,
org.apache.xmlbeans.impl.jam.visitor,
org.apache.xmlbeans.impl.jam.xml,
org.apache.xmlbeans.impl.piccolo.io,
org.apache.xmlbeans.impl.piccolo.util,
org.apache.xmlbeans.impl.piccolo.xml,
org.apache.xmlbeans.impl.regex,
org.apache.xmlbeans.impl.richParser,
org.apache.xmlbeans.impl.schema,
@@ -51,8 +48,6 @@ Export-Package: org.apache.xmlbeans,
org.apache.xmlbeans.xml.stream,
org.apache.xmlbeans.xml.stream.events,
org.apache.xmlbeans.xml.stream.utils,
org.w3c.dom,
repackage,
schemaorg_apache_xmlbeans.system.sXMLCONFIG,
schemaorg_apache_xmlbeans.system.sXMLLANG,
schemaorg_apache_xmlbeans.system.sXMLSCHEMA,

View File

@@ -1,4 +1,3 @@
xmlschema-core-2.0.1.jar
xmlbeans-2.3.0.jar
xmlbeans-2.6.0.jar
xmlbeans-3.1.0.jar
xercesImpl-2.12.0.jar

View File

@@ -26,16 +26,6 @@
<configuration>
<outputDirectory>${project.basedir}/lib</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.3.0</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.6.0</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="lib/xmlbeans-3.1.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/xml-apis.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
@@ -7,6 +8,5 @@
<classpathentry exported="true" kind="lib" path="lib/apache-mime4j-0.6.jar"/>
<classpathentry exported="true" kind="lib" path="lib/castor-1.0.3.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jakarta-oro-2.0.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/xmlbeans-2.3.0.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@@ -8,8 +8,8 @@ Bundle-ClassPath: .,
lib/apache-mime4j-0.6.jar,
lib/castor-1.0.3.jar,
lib/jakarta-oro-2.0.8.jar,
lib/xmlbeans-2.3.0.jar,
lib/xml-apis.jar
lib/xml-apis.jar,
lib/xmlbeans-3.1.0.jar
Bundle-Vendor: .Talend SA.
Require-Bundle: org.apache.log4j;resolution:=optional,
org.talend.libraries.apache.common;visibility:=reexport,
@@ -63,9 +63,6 @@ Export-Package:
org.apache.xmlbeans.impl.jam.provider,
org.apache.xmlbeans.impl.jam.visitor,
org.apache.xmlbeans.impl.jam.xml,
org.apache.xmlbeans.impl.piccolo.io,
org.apache.xmlbeans.impl.piccolo.util,
org.apache.xmlbeans.impl.piccolo.xml,
org.apache.xmlbeans.impl.regex,
org.apache.xmlbeans.impl.richParser,
org.apache.xmlbeans.impl.schema,

View File

@@ -3,7 +3,8 @@ bin.includes = META-INF/,\
.,\
licences/,\
lib/,\
lib/xml-apis.jar
lib/xml-apis.jar,\
lib/xmlbeans-3.1.0.jar
bin.excludes = libs_not_used/commons-betwixt-0.8.jar,\
libs_not_used/commons-digester-1.7.jar,\
libs_not_used/commons-discovery-0.2.jar,\

View File

@@ -10,20 +10,26 @@
<artifactId>org.talend.libraries.apache</artifactId>
<packaging>eclipse-plugin</packaging>
<properties>
<log4j.version>1.2.17</log4j.version>
<reload4j.version>1.2.19</reload4j.version>
<slf4j.version>1.7.25</slf4j.version>
<log4j2.version>2.12.1</log4j2.version>
<log4j2.version>2.17.1</log4j2.version>
</properties>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>${reload4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
@@ -70,6 +76,11 @@
<artifactId>log4j-1.2-api</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
<build>
<plugins>
@@ -88,7 +99,7 @@
<excludeTypes>pom</excludeTypes>
<excludeTransitive>true</excludeTransitive>
<outputDirectory>${project.basedir}/lib</outputDirectory>
<includeGroupIds>log4j,org.slf4j,org.apache.logging.log4j</includeGroupIds>
<includeGroupIds>ch.qos.reload4j,org.slf4j,org.apache.xmlbeans,org.apache.logging.log4j</includeGroupIds>
</configuration>
</execution>
</executions>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="lib/h2-1.4.198.jar"/>
<classpathentry kind="lib" kind="lib" path="lib/h2-2.1.210.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@@ -4,7 +4,7 @@ Bundle-Name: H2
Bundle-SymbolicName: org.talend.libraries.jdbc.h2
Bundle-Version: 7.3.1.qualifier
Bundle-ClassPath: .,
lib/h2-1.4.198.jar
lib/h2-2.1.210.jar
Export-Package: org.h2,
org.h2.api;uses:="org.h2.command.ddl,org.h2.table",
org.h2.bnf;uses:="org.h2.server.web",
@@ -35,7 +35,6 @@ Export-Package: org.h2,
org.h2.value,
org.h2.util",
org.h2.compress,
org.h2.constant,
org.h2.constraint;
uses:="org.h2.expression,
org.h2.result,

View File

@@ -1,4 +1,4 @@
output.. = bin/
bin.includes = META-INF/,\
.,\
lib/h2-1.4.198.jar
lib/h2-2.1.210.jar

View File

@@ -28,7 +28,7 @@
<artifactItem>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.198</version>
<version>2.1.210</version>
</artifactItem>
</artifactItems>
</configuration>

View File

@@ -69,7 +69,7 @@ Module.view.download.external.modules.action.text=Download external modules
Module.view.download.external.modules.action.description=Download external modules
download.external.dialog.title=The following modules are not yet installed. Please download and install all required modules.
download.external.dialog.desciption=List of modules to be downloaded automatically or imported manually.
download.external.dialog.help.url=https://help.talend.com/display/KB/How+to+install+external+modules+in+the+Talend+products
download.external.dialog.help.url=https://document-link.us.cloud.talend.com/ts_ig_install-external-modules?version=73&lang=en&env=prd
download.external.dialog.warning=Warning
download.external.dialog.message=Select at least one module not installed.
Module.view.sharelibsAction.title=Share libraries

View File

@@ -49,7 +49,7 @@ public class ExportCustomSettingsAction extends Action {
public void run() {
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
FileDialog dialog = new FileDialog(shell, SWT.SAVE);
dialog.setText(Messages.getString("ImportCustomSettingsAction.title"));
dialog.setText(Messages.getString("ExportCustomSettingsAction.title"));
String selectedFile = dialog.open();
if (selectedFile != null) {
CustomUriManager.getInstance().exportSettings(dialog.getFilterPath(), dialog.getFileName());

View File

@@ -57,12 +57,32 @@ public class JDBCUtil {
throw new RuntimeException("Null value in non-Nullable column");
}
/**
* getDate can be called with the resultSet having either a java.sql.Timestamp or a java.sql.Date
* the double try implementation is not something im proud of, but having two methods would require
* a huge refactoring that in the end is the same as doing that
* @param rs
* @param index
* @return java.util.Date converted from java.sql.Timestamp/Date
* @throws java.sql.SQLException
*/
public static Date getDate(ResultSet rs, int index) throws java.sql.SQLException {
if(rs.getTimestamp(index) != null) {
return new Date(rs.getTimestamp(index).getTime());
Date result = null;
try {
if(rs.getTimestamp(index) != null) {
result = new Date(rs.getTimestamp(index).getTime());
return result;
}
} catch (java.sql.SQLException e) {
}
return null;
try {
if(rs.getDate(index) != null) {
result = new Date(rs.getDate(index).getTime());
return result;
}
} catch (java.sql.SQLException e) {
}
return result;
}
//decrease the get method call number

View File

@@ -243,10 +243,39 @@ public class JSONObject {
*
* @param bean An object that has getter methods that should be used to make a JSONObject.
*/
@Deprecated
public JSONObject(Object bean) {
this();
populateMap(bean);
}
/**
* Construct a JSONObject from an Object using bean getters. It reflects on all of the public methods of the object.
* For each of the methods with no parameters and a name starting with <code>"get"</code> or <code>"is"</code>
* followed by an uppercase letter, the method is invoked, and a key and the value returned from the getter method
* are put into the new JSONObject.
*
* The key is formed by removing the <code>"get"</code> or <code>"is"</code> prefix. If the second remaining
* character is not upper case, then the first character is converted to lower case.
*
* For example, if an object has a method named <code>"getName"</code>, and if the result of calling
* <code>object.getName()</code> is <code>"Larry Fine"</code>, then the JSONObject will contain
* <code>"name": "Larry Fine"</code>.
*
* @param bean An object that has getter methods that should be used to make a JSONObject.
* @param expectedClass Bean must be the instance of this class, for safe to avoid evil script inject
*/
public JSONObject(Object bean, Class<?> expectedClass) {
this();
Class<?> clazz = bean.getClass();
if((clazz == expectedClass) || (expectedClass!=null && expectedClass.isAssignableFrom(clazz))) {
populateMap(bean);
return;
}
throw new JSONException("expectedClass doesn't match the bean or is null");
}
/**
* Construct a JSONObject from an Object, using reflection to find the public members. The resulting JSONObject's

View File

@@ -313,10 +313,13 @@ public class ParserUtils {
*/
public static java.util.Date parseTo_Date(String dateString, String pattern) {
// check the parameter for supporting " ","2007-09-13"," 2007-09-13 "
if (dateString != null) {
dateString = dateString.trim();
}
if (dateString == null || dateString.length() == 0) {
return null;
}
dateString = dateString.trim();
if (pattern == null) {
pattern = Constant.dateDefaultPattern;
}

View File

@@ -105,7 +105,7 @@ public class ResumeUtil {
csvWriter.write("stackTrace");// stackTrace
csvWriter.write("dynamicData");// dynamicData
csvWriter.endRecord();
csvWriter.flush();
csvWriter.flush(true);
}
// shared
sharedWriterMap.put(this.root_pid, this.csvWriter);
@@ -171,7 +171,7 @@ public class ResumeUtil {
csvWriter.write(item.stackTrace);// stackTrace
csvWriter.write(item.dynamicData);// dynamicData--->it is the 17th field. @see:feature:11296
csvWriter.endRecord();
csvWriter.flush();
csvWriter.flush(false);
fileLock.release();
}
// for test the order
@@ -193,6 +193,12 @@ public class ResumeUtil {
}
}
}
public void flush() {
if(csvWriter != null) {
csvWriter.flush(true);
}
}
// Util: invoke target check point
@Deprecated
@@ -353,13 +359,12 @@ public class ResumeUtil {
String str = out.toString();
return str;
}
// to support encrypt the password in the resume
public static String convertToJsonText(Object context, List<String> parametersToEncrypt) {
public static String convertToJsonText(Object context, Class<?> expectedClass, List<String> parametersToEncrypt) {
String jsonText = "";
try {
JSONObject firstNode = new JSONObject();
JSONObject secondNode = new JSONObject(context);
JSONObject secondNode = new JSONObject(context, expectedClass);
if (parametersToEncrypt != null) {
for (String parameterToEncrypt : parametersToEncrypt) {
if (secondNode.isNull(parameterToEncrypt)) {
@@ -379,9 +384,15 @@ public class ResumeUtil {
return jsonText;
}
// to support encrypt the password in the resume
@Deprecated
public static String convertToJsonText(Object context, List<String> parametersToEncrypt) {
return convertToJsonText(context, context == null ? null : context.getClass(), parametersToEncrypt);
}
// Util: convert the context variable to json style text.
// feature:11296
// @Deprecated
@Deprecated
public static String convertToJsonText(Object context) {
return convertToJsonText(context, null);
}
@@ -459,6 +470,8 @@ public class ResumeUtil {
USER_DEF_LOG,
JOB_ENDED;
}
/**
* this class is reference with CsvWriter.
@@ -502,10 +515,15 @@ public class ResumeUtil {
// sun.security.action.GetPropertyAction("line.separator"));
private String lineSeparator = System.getProperty("line.separator");
private int capibility = 2 << 22; //8M
private int FLUSH_FACTOR = 6 *1024 *1024; //6M
public SimpleCsvWriter(FileChannel channel) {
this.channel = channel;
buf = ByteBuffer.allocate(2<<14);//32k buffer size
buf = ByteBuffer.allocate(capibility);
}
/**
@@ -530,8 +548,13 @@ public class ResumeUtil {
} else {// support double mode
content = replace(content, "" + TextQualifier, "" + TextQualifier + TextQualifier);
}
byte[] contentByte = content.getBytes();
if(contentByte.length > capibility - buf.position()) {
flush(true);
}
buf.put(content.getBytes());
buf.put(contentByte);
buf.put(TextQualifier.getBytes());
@@ -553,18 +576,20 @@ public class ResumeUtil {
/**
* flush
*/
public void flush() {
try {
((Buffer) buf).flip();
channel.position(channel.size());
while(buf.hasRemaining()) {
channel.write(buf);
public void flush(boolean force) {
if(force || buf.position() > FLUSH_FACTOR) {
try {
((Buffer) buf).flip();
channel.position(channel.size());
while(buf.hasRemaining()) {
channel.write(buf);
}
channel.force(true);
((Buffer) buf).clear();
} catch (IOException e) {
e.printStackTrace();
}
channel.force(true);
((Buffer) buf).clear();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**

View File

@@ -69,7 +69,6 @@ import org.talend.core.model.general.ModuleNeeded;
import org.talend.core.model.general.ModuleNeeded.ELibraryInstallStatus;
import org.talend.core.model.general.Project;
import org.talend.core.model.process.IProcess;
import org.talend.core.model.process.ProcessUtils;
import org.talend.core.model.properties.Item;
import org.talend.core.model.properties.JobletProcessItem;
import org.talend.core.model.properties.ProcessItem;
@@ -141,7 +140,7 @@ public class ModulesNeededProvider {
private static volatile boolean installModuleForRountine = false;
private static Set<ModuleNeeded> modulesForRountine = new HashSet<>();
private static Set<ModuleNeeded> missingModulesForRountine = new HashSet<>();
private static List<ModuleNeeded> systemModules = null;
@@ -383,12 +382,18 @@ public class ModulesNeededProvider {
}
public static void collectModuleNeeded(String context, IMPORTType importType, List<ModuleNeeded> importNeedsList) {
List<ModuleNeeded> importModuleFromExtension = ExtensionModuleManager.getInstance().getModuleNeededForComponent(context,
importType);
collectModuleNeeded(context, importType, importNeedsList, null);
}
public static void collectModuleNeeded(String context, IMPORTType importType, List<ModuleNeeded> importNeedsList, String distribution) {
List<ModuleNeeded> importModuleFromExtension = ExtensionModuleManager.getInstance().getModuleNeededForComponent(context, importType);
boolean foundModule = importModuleFromExtension.size() > 0;
if (!foundModule) { // If cannot find the jar from extension point then do it like before.
createModuleNeededForComponent(context, importType, importNeedsList);
createModuleNeededForComponent(context, importType, importNeedsList, distribution);
} else {
if (!StringUtils.isEmpty(distribution)) {
importModuleFromExtension.forEach(m -> m.setDynamicDistributionVersion(distribution));
}
importNeedsList.addAll(importModuleFromExtension);
}
}
@@ -403,6 +408,10 @@ public class ModulesNeededProvider {
}
public static void createModuleNeededForComponent(String context, IMPORTType importType, List<ModuleNeeded> importNeedsList) {
createModuleNeededForComponent(context, importType, importNeedsList, null);
}
public static void createModuleNeededForComponent(String context, IMPORTType importType, List<ModuleNeeded> importNeedsList, String distribution) {
if (importType.getMODULE() == null) {
if (importType.getMODULEGROUP() != null) {
CommonExceptionHandler.warn("Missing module group definition: " + importType.getMODULEGROUP());
@@ -421,6 +430,9 @@ public class ModulesNeededProvider {
moduleNeeded.setMrRequired(importType.isMRREQUIRED());
moduleNeeded.setShow(importType.isSHOW());
moduleNeeded.setModuleLocaion(importType.getUrlPath());
if (!StringUtils.isEmpty(distribution)) {
moduleNeeded.setDynamicDistributionVersion(distribution);
}
importNeedsList.add(moduleNeeded);
}
@@ -501,6 +513,7 @@ public class ModulesNeededProvider {
/**
* @deprecated
*/
@Deprecated
public static List<ModuleNeeded> getModulesNeededForJobs() {
IProxyRepositoryFactory repositoryFactory = repositoryService.getProxyRepositoryFactory();
List<ModuleNeeded> importNeedsList = new ArrayList<ModuleNeeded>();
@@ -719,6 +732,7 @@ public class ModulesNeededProvider {
if (!isRequired) {
toAdd.getExtraAttributes().put("IS_OSGI_EXCLUDED", Boolean.TRUE);
if ("RoutineItem".equals(item.eClass().getName())) {
toAdd.getExtraAttributes().put("ROUTINE_EXCLUDE", Boolean.TRUE);
toAdd.setExcluded(true);
}
}
@@ -820,6 +834,8 @@ public class ModulesNeededProvider {
IMPORTType importType = ComponentFactory.eINSTANCE.createIMPORTType();
importType.setMODULEGROUP("esb-java-11-group");
importType.setREQUIRED(true);
collectModuleNeeded("tRESTClient", importType, importNeedsListForRoutes);
}
/**
@@ -1187,30 +1203,37 @@ public class ModulesNeededProvider {
return mvnPath;
}
private static void checkInstallStatus(Collection<ModuleNeeded> importNeedsList) {
static void checkInstallStatus(Collection<ModuleNeeded> importNeedsList) {
if (!importNeedsList.isEmpty()) {
for (ModuleNeeded mod : importNeedsList) {
if (ELibraryInstallStatus.INSTALLED != mod.getStatus()) {
installModuleForRountine = true;
if (ELibraryInstallStatus.NOT_INSTALLED == mod.getStatus()) {
missingModulesForRountine.add(mod);
}
}
modulesForRountine.addAll(importNeedsList);
}
}
public static boolean installModuleForRoutineOrBeans() {
if (!installModuleForRountine) {
for (ModuleNeeded mod : missingModulesForRountine) {
if (ELibraryInstallStatus.NOT_INSTALLED != mod.getStatus()) {
installModuleForRountine = true;
break;
}
}
}
return installModuleForRountine;
}
public static void setInstallModuleForRoutineOrBeans() {
boolean allSet = true;
for (ModuleNeeded mod : modulesForRountine) {
if (ELibraryInstallStatus.INSTALLED != mod.getStatus()) {
allSet = false;
installModuleForRountine = false;
Iterator<ModuleNeeded> iterator = missingModulesForRountine.iterator();
while (iterator.hasNext()) {
ModuleNeeded mod = iterator.next();
if (ELibraryInstallStatus.NOT_INSTALLED != mod.getStatus()) {
iterator.remove();
}
}
if (allSet) {
installModuleForRountine = false;
}
}
}

View File

@@ -15,8 +15,12 @@ package org.talend.librariesmanager.model.service;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.eclipse.emf.common.util.URI;
@@ -45,6 +49,17 @@ public class LibrariesIndexManager {
private static final String MAVEN_INDEX = "MavenUriIndex.xml";
private static final Set<String> EXCLUDED_INDEX_EXT = new HashSet<String>();
static {
EXCLUDED_INDEX_EXT.add(".javajet");
EXCLUDED_INDEX_EXT.add(".xml");
EXCLUDED_INDEX_EXT.add(".png");
EXCLUDED_INDEX_EXT.add(".gif");
EXCLUDED_INDEX_EXT.add(".properties");
}
private LibrariesIndexManager() {
loadIndexResources();
}
@@ -91,6 +106,9 @@ public class LibrariesIndexManager {
}
public void saveStudioIndexResource() {
Set<String> ignoredKeys = studioLibIndex.getJarsToRelativePath().stream().map(entry -> entry.getKey())
.filter(k -> ingoredIndex(k)).collect(Collectors.toSet());
ignoredKeys.forEach(k -> studioLibIndex.getJarsToRelativePath().removeKey(k));
saveResource(studioLibIndex, LIBRARIES_INDEX);
}
@@ -162,4 +180,13 @@ public class LibrariesIndexManager {
return null;
}
private static boolean ingoredIndex(String key) {
for (String ext : EXCLUDED_INDEX_EXT) {
if (StringUtils.endsWith(key, ext)) {
return true;
}
}
return false;
}
}

View File

@@ -64,6 +64,7 @@ import org.talend.core.model.general.ILibrariesService.IChangedLibrariesListener
import org.talend.core.model.general.ModuleNeeded;
import org.talend.core.model.general.ModuleNeeded.ELibraryInstallStatus;
import org.talend.core.model.general.ModuleStatusProvider;
import org.talend.core.model.general.RetrieveResult;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.nexus.ArtifactRepositoryBean;
import org.talend.core.nexus.NexusConstants;
@@ -372,6 +373,10 @@ public class LocalLibraryManager implements ILibraryManagerService, IChangedLibr
.process(new Exception(getClass().getSimpleName() + " resolve " + module.getModuleName() + " failed !"));
}
try {
// try maven uri first
if (jarFile == null) {
jarFile = getJarFile(module.getMavenUri());
}
// try the jar name if can't get jar with uri.
if (jarFile == null) {
jarFile = getJarFile(jarNeeded);
@@ -383,7 +388,10 @@ public class LocalLibraryManager implements ILibraryManagerService, IChangedLibr
ILibraryManagerUIService libUiService = GlobalServiceRegister.getDefault()
.getService(ILibraryManagerUIService.class);
libUiService.installModules(new String[] { jarNeeded });
// libUiService.installModules(new String[] { jarNeeded });
List<ModuleNeeded> moduleList = new ArrayList<ModuleNeeded>();
moduleList.add(module);
libUiService.installModules(moduleList);
}
jarFile = retrieveJarFromLocal(module);
if (jarFile == null) {
@@ -702,8 +710,15 @@ public class LocalLibraryManager implements ILibraryManagerService, IChangedLibr
@Override
public boolean retrieve(ERepositoryObjectType codeType, Set<ModuleNeeded> modulesNeeded, String pathToStore,
boolean showDialog, IProgressMonitor... monitorWrap) {
return retrieveModules(codeType, modulesNeeded, pathToStore, showDialog, monitorWrap).isAllResolved();
}
@Override
public RetrieveResult retrieveModules(ERepositoryObjectType codeType, Set<ModuleNeeded> modulesNeeded, String pathToStore,
boolean showDialog, IProgressMonitor... monitorWrap) {
RetrieveResult result = new RetrieveResult();
if (modulesNeeded == null || modulesNeeded.size() == 0) {
return false;
return result;
}
Set<ModuleNeeded> jarNotFound = new HashSet<>();
boolean allIsOK = true;
@@ -726,8 +741,10 @@ public class LocalLibraryManager implements ILibraryManagerService, IChangedLibr
if (!retrieve(jar, pathToStore, false, false)) {
jarNotFound.add(jar);
allIsOK = false;
result.getUnresolvedModules().add(jar);
} else {
needResetModulesNeeded = true;
result.getResovledModules().add(jar);
}
}
if (needResetModulesNeeded) {
@@ -744,8 +761,8 @@ public class LocalLibraryManager implements ILibraryManagerService, IChangedLibr
}
}
}
return allIsOK;
result.setAllResolved(allIsOK);
return result;
}
@Override
@@ -1035,6 +1052,9 @@ public class LocalLibraryManager implements ILibraryManagerService, IChangedLibr
if (localMavenUri == null) {
localMavenUri = mvnUriStatusKey.replace("mvn:", "mvn:" + MavenConstants.LOCAL_RESOLUTION_URL + "!"); //$NON-NLS-1$ //$NON-NLS-2$
}
if (!isResolveAllowed(localMavenUri)) {
return null;
}
try {
File resolvedJar = TalendMavenResolver.resolve(localMavenUri);
if (resolvedJar != null) {
@@ -1253,6 +1273,10 @@ public class LocalLibraryManager implements ILibraryManagerService, IChangedLibr
@Override
public void createModulesIndexFromComponentAndExtension(IProgressMonitor... monitorWrap) {
buildModulesIndexFromComponentAndExtension(monitorWrap);
}
public Map<String, String> buildModulesIndexFromComponentAndExtension(IProgressMonitor... monitorWrap) {
// key: moduleName, value: platformURL
Map<String, String> platformURLMap = new HashMap<>();
// key: moduleName, value: mvn uri
@@ -1294,11 +1318,11 @@ public class LocalLibraryManager implements ILibraryManagerService, IChangedLibr
saveMavenIndex(mavenURIMap, monitorWrap);
savePlatfromURLIndex(platformURLMap, monitorWrap);
if (service != null) {
deployLibsFromCustomComponents(service, platformURLMap);
}
return mavenURIMap;
}
/**
@@ -1330,7 +1354,7 @@ public class LocalLibraryManager implements ILibraryManagerService, IChangedLibr
if (path.equals(moduleLocation)) {
continue;
} else {
if (CommonsPlugin.isDebugMode()) {
if (CommonsPlugin.isDebugMode() && !CommonsPlugin.isHeadless()) {
CommonExceptionHandler
.warn(name + " is duplicated, locations:" + path + " and:" + moduleLocation);
}

View File

@@ -510,10 +510,12 @@ InegerCellEditorListener.NumeralMessage=Input value invalid
MetadataTalendTypeEditor.button.edit=E&dit
MetadataTalendTypeEditor.button.export=E&xport Mapping
MetadataTalendTypeEditor.button.import=I&mport Mapping
MetadataTalendTypeEditor.button.restore=R&estore
MetadataTalendTypeEditor.column1.Name=Metadata Mapping File
MetadataTalendTypeEditor.editMappingDialog.title=Edit Mapping File
MetadataTalendTypeEditor.error.message=Error Message
MetadataTalendTypeEditor.fileIsImported=This file is already imported.
MetadataTalendTypeEditor.fileOverwrite=This file already exists. Do you want to overwrite it?
MetadataTalendTypeEditor.fileIsInvalid=The imported metadata file is not valid.
MetadataTalendTypeEditor.fileNameStartRule=File name must start with 'mapping_'.
ContextModeSelectPage.contextModes=Create a new context or reuse the existing one

View File

@@ -12,16 +12,23 @@
// ============================================================================
package org.talend.metadata.managment.ui.editor;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IStatus;
@@ -33,6 +40,7 @@ import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.preference.FieldEditor;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.DoubleClickEvent;
@@ -61,19 +69,16 @@ import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.osgi.framework.Bundle;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.exception.LoginException;
import org.talend.commons.exception.PersistenceException;
import org.talend.commons.exception.SystemException;
import org.talend.commons.utils.io.FilesUtils;
import org.talend.commons.utils.workbench.resources.ResourceUtils;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.ICoreService;
import org.talend.core.model.metadata.Dbms;
import org.talend.core.model.metadata.MetadataTalendType;
import org.talend.core.model.utils.ResourceModelHelper;
import org.talend.core.model.utils.XSDValidater;
import org.talend.core.repository.model.ProxyRepositoryFactory;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.core.runtime.projectsetting.ProjectPreferenceManager;
import org.talend.metadata.managment.ui.MetadataManagmentUiPlugin;
import org.talend.metadata.managment.ui.dialog.MappingFileCheckViewerDialog;
import org.talend.metadata.managment.ui.i18n.Messages;
@@ -131,6 +136,16 @@ public class MetadataTalendTypeEditor extends FieldEditor {
IDocument fileContent;
FileType type;
boolean isDeleted;
}
enum FileType {
USER_DEFINED,
SYSTEM_DEFAULT,
USER_EXTERNAL,
}
/**
@@ -141,7 +156,7 @@ public class MetadataTalendTypeEditor extends FieldEditor {
*/
class TmpFilesManager {
// store the editing tempertory files
// store the editing temporary files
private List<FileInfo> tmpFiles = new ArrayList<FileInfo>();
TmpFilesManager() {
@@ -149,13 +164,30 @@ public class MetadataTalendTypeEditor extends FieldEditor {
}
private void init() {
List<File> files = MetadataTalendType.getMetadataMappingFiles();
tmpFiles.clear();
for (File file : files) {
FileInfo info = new FileInfo();
info.file = file;
info.fileName = file.getName();
this.addFile(info);
try {
tmpFiles.clear();
java.nio.file.Path systemMappingPath = new File(MetadataTalendType.getSystemFolderURLOfMappingsFile().getFile())
.toPath();
Map<String, File> systemFileMap = Stream
.of(systemMappingPath.toFile()
.listFiles(f -> f.getName().matches(MetadataTalendType.MAPPING_FILE_PATTERN)))
.collect(Collectors.toMap(File::getName, Function.identity()));
List<File> files = MetadataTalendType.getMetadataMappingFiles();
for (File file : files) {
FileInfo info = new FileInfo();
info.file = file;
info.fileName = file.getName();
if (file.toPath().startsWith(systemMappingPath)) {
info.type = FileType.SYSTEM_DEFAULT;
} else if (systemFileMap.containsKey(file.getName())) {
info.type = FileType.USER_DEFINED;
} else {
info.type = FileType.USER_EXTERNAL;
}
this.addFile(info);
}
} catch (SystemException e) {
ExceptionHandler.process(e);
}
}
@@ -163,8 +195,9 @@ public class MetadataTalendTypeEditor extends FieldEditor {
tmpFiles.add(file);
}
List<FileInfo> getTempFiles() {
return tmpFiles;
List<FileInfo> getTempFiles(boolean includeDeleted) {
return tmpFiles.stream().filter(f -> includeDeleted || !f.isDeleted || FileType.SYSTEM_DEFAULT == f.type)
.sorted((f1, f2) -> f1.fileName.compareTo(f2.fileName)).collect(Collectors.toList());
}
boolean contains(String fileName) {
@@ -176,15 +209,6 @@ public class MetadataTalendTypeEditor extends FieldEditor {
return false;
}
boolean contains(File file) {
for (FileInfo info : tmpFiles) {
if (info.file.equals(file)) {
return true;
}
}
return false;
}
void remove(FileInfo file) {
tmpFiles.remove(file);
}
@@ -297,8 +321,29 @@ public class MetadataTalendTypeEditor extends FieldEditor {
sourceViewerDialog.setDocument(fileSelected.file);
}
if (sourceViewerDialog.open() == IDialogConstants.OK_ID) {
System.out.println(sourceViewerDialog.getDocument().get());
fileSelected.fileContent = sourceViewerDialog.getDocument();
System.out.println(sourceViewerDialog.getResult());
try {
File systemFile = new File(MetadataTalendType.getSystemFolderURLOfMappingsFile().getFile(),
fileSelected.fileName);
if (systemFile.exists()) {
String currentSha1 = MetadataTalendType.getSha1OfText(sourceViewerDialog.getDocument().get());
String systemSha1 = MetadataTalendType.getSha1OfFile(systemFile);
if (currentSha1 != null && currentSha1.equals(systemSha1)) {
fileSelected.type = FileType.SYSTEM_DEFAULT;
fileSelected.file = systemFile;
setControlEnable(removeButton, false);
} else {
fileSelected.type = FileType.USER_DEFINED;
fileSelected.file = new File(MetadataTalendType.getProjectFolderURLOfMappingsFile().getFile(),
fileSelected.fileName);
setControlEnable(removeButton, true);
}
}
fileSelected.fileContent = sourceViewerDialog.getDocument();
fileSelected.isDeleted = false;
} catch (SystemException e) {
ExceptionHandler.process(e);
}
}
}
@@ -382,7 +427,16 @@ public class MetadataTalendTypeEditor extends FieldEditor {
*/
protected void removeItem() {
FileInfo info = getSelection();
tmpFileManager.remove(info);
info.isDeleted = true;
if (FileType.USER_DEFINED == info.type) {
try {
info.type = FileType.SYSTEM_DEFAULT;
info.file = new File(MetadataTalendType.getSystemFolderURLOfMappingsFile().getFile(), info.fileName);
info.fileContent = null;
} catch (SystemException e) {
ExceptionHandler.process(e);
}
}
refreshViewer();
}
@@ -413,16 +467,21 @@ public class MetadataTalendTypeEditor extends FieldEditor {
}
private void exportItem() {
File existing = getSelection().file;
FileInfo selectedFileInfo = getSelection();
FileDialog dia = new FileDialog(getShell(), SWT.SAVE);
dia.setFileName(existing.getName());
dia.setFileName(selectedFileInfo.fileName);
dia.setFilterExtensions(new String[] { "*.xml" }); //$NON-NLS-1$
String destination = dia.open();
if (destination == null) {
return;
}
File destinationFile = new File(destination);
try {
FilesUtils.copyFile(existing, new File(destination));
if (selectedFileInfo.fileContent != null) {
Files.write(destinationFile.toPath(), selectedFileInfo.fileContent.get().getBytes());
} else {
FilesUtils.copyFile(selectedFileInfo.file, destinationFile);
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
@@ -472,17 +531,39 @@ public class MetadataTalendTypeEditor extends FieldEditor {
private void importItem() {
setPresentsDefaultValue(false);
File input = getNewInputObject();
if (input != null) {
FileInfo fileInfo = new FileInfo();
fileInfo.file = input;
fileInfo.fileName = input.getName();
tmpFileManager.addFile(fileInfo);
Optional<FileInfo> optional = tmpFileManager.getTempFiles(true).stream()
.filter(f -> f.fileName.equals(input.getName())).findAny();
if (optional.isPresent()) {
FileInfo tmpFileInfo = optional.get();
try {
String content = new String(Files.readAllBytes(input.toPath()));
if (FileType.SYSTEM_DEFAULT == tmpFileInfo.type) {
String systemSha1 = MetadataTalendType.getSha1OfSystemMappingFile(tmpFileInfo.fileName);
String inputSha1 = MetadataTalendType.getSha1OfText(content);
if (inputSha1.equals(systemSha1)) {
return;
}
tmpFileInfo.type = FileType.USER_DEFINED;
}
tmpFileInfo.fileContent = new Document(content);
tmpFileInfo.isDeleted = false;
} catch (IOException e) {
ExceptionHandler.process(e);
}
} else {
FileInfo fileInfo = new FileInfo();
fileInfo.file = input;
fileInfo.fileName = input.getName();
fileInfo.type = FileType.USER_EXTERNAL;
tmpFileManager.addFile(fileInfo);
}
refreshViewer();
}
}
private void refreshViewer() {
viewer.setInput(tmpFileManager.getTempFiles(false));
viewer.refresh();
selectionChanged();
}
@@ -497,11 +578,11 @@ public class MetadataTalendTypeEditor extends FieldEditor {
}
File xmlFile = new File(fileName);
if (tmpFileManager.contains(xmlFile.getName())) {
MessageDialog
.openWarning(
boolean confirm = MessageDialog.openConfirm(
shell,
Messages.getString("MetadataTalendTypeEditor.error.message"), Messages.getString("MetadataTalendTypeEditor.fileIsImported")); //$NON-NLS-1$ //$NON-NLS-2$
return null;
Messages.getString("MetadataTalendTypeEditor.confirmTitle"), //$NON-NLS-1$
Messages.getString("MetadataTalendTypeEditor.fileOverwrite")); //$NON-NLS-1$
return confirm ? xmlFile : null;
}
if (!xmlFile.getName().startsWith("mapping_")) { //$NON-NLS-1$
@@ -536,13 +617,21 @@ public class MetadataTalendTypeEditor extends FieldEditor {
boolean selected = !viewer.getSelection().isEmpty();
setControlEnable(exportButton, selected);
setControlEnable(editButton, selected);
setControlEnable(removeButton, selected);
boolean removeEnable = selected;
StructuredSelection select = (StructuredSelection) viewer.getSelection();
if (select != null) {
FileInfo info = (FileInfo) select.getFirstElement();
if (info != null) {
String buttonText = null;
if (FileType.USER_DEFINED == info.type || FileType.SYSTEM_DEFAULT == info.type) {
buttonText = Messages.getString("MetadataTalendTypeEditor.button.restore"); //$NON-NLS-1$
} else if (FileType.USER_EXTERNAL == info.type) {
buttonText = JFaceResources.getString("ListEditor.remove"); //$NON-NLS-1$
}
removeButton.setText(buttonText);
removeEnable = FileType.SYSTEM_DEFAULT != info.type;
String id = null;
String infoName = info.fileName;
for (Dbms allDbm : allDbms) {
@@ -553,6 +642,7 @@ public class MetadataTalendTypeEditor extends FieldEditor {
setSelectId(id);
}
}
setControlEnable(removeButton, removeEnable);
}
protected void setControlEnable(Control control, boolean enable) {
@@ -569,13 +659,31 @@ public class MetadataTalendTypeEditor extends FieldEditor {
Messages.getString("MetadataTalendTypeEditor.confirmTitle"), //$NON-NLS-1$
Messages.getString("MetadataTalendTypeEditor.confirmMessage")); //$NON-NLS-1$
if (confirm) {
ICoreService coreService = null;
if (GlobalServiceRegister.getDefault().isServiceRegistered(ICoreService.class)) {
coreService = GlobalServiceRegister.getDefault().getService(ICoreService.class);
coreService.syncMappingsFileFromSystemToProject();
tmpFileManager.reload();
}
RepositoryWorkUnit workUnit = new RepositoryWorkUnit("Restore mapping files") { //$NON-NLS-1$
@Override
protected void run() throws LoginException, PersistenceException {
try {
File[] projectMappingFiles = new File(MetadataTalendType.getProjectFolderURLOfMappingsFile().getFile())
.listFiles();
if (projectMappingFiles != null) {
Set<String> systemFileNames = Stream
.of(new File(MetadataTalendType.getSystemFolderURLOfMappingsFile().getFile())
.listFiles(f -> f.getName().matches(MetadataTalendType.MAPPING_FILE_PATTERN)))
.map(File::getName).collect(Collectors.toSet());
Stream.of(projectMappingFiles).filter(f -> systemFileNames.contains(f.getName()))
.forEach(File::delete);
}
} catch (SystemException e) {
ExceptionHandler.process(e);
}
}
};
workUnit.setAvoidUnloadResources(true);
ProxyRepositoryFactory.getInstance().executeRepositoryWorkUnit(workUnit);
tmpFileManager.reload();
super.load();
viewer.refresh();
}
}
@@ -586,7 +694,7 @@ public class MetadataTalendTypeEditor extends FieldEditor {
*/
@Override
protected void doLoad() {
viewer.setInput(tmpFileManager.getTempFiles());
viewer.setInput(tmpFileManager.getTempFiles(false));
}
/**
@@ -595,7 +703,7 @@ public class MetadataTalendTypeEditor extends FieldEditor {
* DOC YeXiaowei Comment method "forceLoad".
*/
public void forceLoad() {
viewer.setInput(tmpFileManager.getTempFiles());
viewer.setInput(tmpFileManager.getTempFiles(false));
}
/**
@@ -635,98 +743,44 @@ public class MetadataTalendTypeEditor extends FieldEditor {
}
boolean needReload = false;
List<FileInfo> tempFiles = tmpFileManager.getTempFiles();
List<File> realFiles = MetadataTalendType.getMetadataMappingFiles();
// delete the removed files
for (File file : realFiles) {
if (!tmpFileManager.contains(file.getName())) {
IFile iFile = mappingFolder.getFile(file.getName());
List<FileInfo> tmpFiles = tmpFileManager.getTempFiles(true);
for (FileInfo info : tmpFiles) {
IFile file = mappingFolder.getFile(info.fileName);
if (FileType.SYSTEM_DEFAULT == info.type || info.isDeleted) {
try {
iFile.delete(true, null);
needReload = true;
if (file.exists()) {
file.delete(true, null);
needReload = true;
}
} catch (CoreException e) {
ExceptionHandler.process(e);
}
continue;
}
}
// add the new files;
for (FileInfo newFile : tempFiles) {
if (!realFiles.contains(newFile.file)) {
if (FileType.USER_DEFINED == info.type || FileType.USER_EXTERNAL == info.type) {
try {
importFileIntoTalend(newFile.file);
byte[] newContent = info.fileContent == null ? Files.readAllBytes(info.file.toPath())
: info.fileContent.get().getBytes();
InputStream inputStream = new ByteArrayInputStream(newContent);
if (file.exists()) {
file.setContents(inputStream, true, false, null);
} else {
if (!mappingFolder.exists()) {
ResourceUtils.createFolder(mappingFolder);
}
file.create(inputStream, true, null);
}
needReload = true;
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
}
// for editing files
for (FileInfo tempFile : tempFiles) {
for (File realFile : realFiles) {
if (realFile.equals(tempFile.file)) {
if (tempFile.fileContent != null) {
try {
updateFileContent(realFile, tempFile.fileContent.get());
needReload = true;
break;
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
}
}
}
try {
mappingFolder.refreshLocal(IResource.DEPTH_ONE, null);
} catch (CoreException e) {
ExceptionHandler.process(e);
}
if (needReload) {
tmpFileManager.reload();
ProjectPreferenceManager manager = CoreRuntimePlugin.getInstance().getProjectPreferenceManager();
manager.setValue(MetadataTalendType.UPDATED_MAPPING_FILES, true);
manager.save();
}
}
/**
* bqian Comment method "updateFileContent".
*
* @param realFile
* @param string
*/
private void updateFileContent(File realFile, String string) throws Exception {
FileWriter fw = null;
try {
fw = new FileWriter(realFile);
fw.write(string);
fw.flush();
} finally {
fw.close();
}
}
/**
* Import the selected file into talend.
*
* @param xmlFile
* @throws SystemException
*/
private File importFileIntoTalend(File xmlFile) throws IOException, SystemException {
String fileName = xmlFile.getName();
URL url = MetadataTalendType.getProjectForderURLOfMappingsFile();
File targetFile = new File(url.getPath(), fileName);
FilesUtils.copyFile(xmlFile, targetFile);
return targetFile;
}
/*
* (non-Javadoc) Method declared on FieldEditor.
*/

View File

@@ -89,6 +89,20 @@ public class ExtendedNodeConnectionContextUtils {
KeyAzuresUser,
KeyAzurePassword,
KeyAzureDeployBlob,
// Azure Synapse param
SynapseHostName,
SynapseAuthToken,
SynapseSparkPools,
SynapseFsHostName,
SynapseFsContainer,
SynapseFsUserName,
SynapseFsPassword,
SynapseDeployBlob,
SynapseDriverMemory,
SynapseDriverCores,
SynapseExecutorMemory,
UseTuningProperties,
// Hcatalog param
HCatalogHostName,

View File

@@ -22,6 +22,7 @@ import org.talend.core.model.metadata.builder.connection.Connection;
import org.talend.core.model.utils.ContextParameterUtils;
import org.talend.core.runtime.evaluator.AbstractPropertyValueEvaluator;
import org.talend.core.runtime.maven.MavenUrlHelper;
import org.talend.core.runtime.util.GenericTypeUtils;
import org.talend.core.utils.TalendQuoteUtils;
import org.talend.daikon.properties.property.Property;
import org.talend.designer.core.model.utils.emf.talendfile.ContextType;
@@ -84,6 +85,13 @@ public class MetadataContextPropertyValueEvaluator extends AbstractPropertyValue
}
}
if (GenericTypeUtils.isStringType(property)) {
String val = String.valueOf(storedValue);
if (property.isFlag(Property.Flags.ENCRYPT)) {
return val;
}
}
return getTypedValue(property, currentStoredValue, storedValue);
}

View File

@@ -14,15 +14,15 @@
<!-- Seems those 3 are not useful -->
<classloader
index="HIVE:HORTONWORKS:HDP_1_0:EMBEDDED"
libraries="hive-hbase-handler-0.9.0.jar;hbase-0.92.0.jar;hadoop-core-1.0.3.jar;commons-logging-1.0.4.jar;datanucleus-api-jdo-3.0.7.jar;datanucleus-core-3.0.9.jar;datanucleus-rdbms-3.0.8.jar;hive-builtins-0.9.0.jar;hive-exec-0.9.0_hdp.jar;hive-jdbc-0.9.0_hdp.jar;hive-metastore-0.9.0_hdp.jar;hive-service-0.9.0_hdp.jar;libfb303-0.7.0.jar;libthrift-0.7.0.jar;commons-lang-2.4.jar;antlr-runtime-3.0.1.jar;commons-dbcp-1.4.jar;commons-pool-1.5.4.jar;derby-10.4.2.0.jar;commons-configuration-1.6.jar;jdo2-api-2.3-ec.jar;log4j-1.2.17.jar;slf4j-api-1.6.1.jar;slf4j-log4j12-1.6.1.jar;jackson-core-asl-1.8.8.jar;jackson-mapper-asl-1.8.8.jar">
libraries="hive-hbase-handler-0.9.0.jar;hbase-0.92.0.jar;hadoop-core-1.0.3.jar;commons-logging-1.0.4.jar;datanucleus-api-jdo-3.0.7.jar;datanucleus-core-3.0.9.jar;datanucleus-rdbms-3.0.8.jar;hive-builtins-0.9.0.jar;hive-exec-0.9.0_hdp.jar;hive-jdbc-0.9.0_hdp.jar;hive-metastore-0.9.0_hdp.jar;hive-service-0.9.0_hdp.jar;libfb303-0.7.0.jar;libthrift-0.7.0.jar;commons-lang-2.4.jar;antlr-runtime-3.0.1.jar;commons-dbcp-1.4.jar;commons-pool-1.5.4.jar;derby-10.4.2.0.jar;commons-configuration2-2.8.0.jar;jdo2-api-2.3-ec.jar;reload4j-1.2.19.jar;slf4j-api-1.6.1.jar;slf4j-log4j12-1.6.1.jar;jackson-core-asl-1.8.8.jar;jackson-mapper-asl-1.8.8.jar">
</classloader>
<classloader
index="HIVE:CLOUDERA:Cloudera_CDH3:STANDALONE"
libraries="hadoop-core-0.20.203.0.jar;log4j-1.2.17.jar;hive-exec-0.7.1.jar;hive-jdbc-0.7.1.jar;hive-metastore-0.7.1.jar;hive-service-0.7.1.jar;libfb303.jar;slf4j-api-1.6.1.jar;slf4j-log4j12-1.6.1.jar;commons-logging-1.1.1.jar;commons-logging-api-1.0.4.jar">
libraries="hadoop-core-0.20.203.0.jar;reload4j-1.2.19.jar;hive-exec-0.7.1.jar;hive-jdbc-0.7.1.jar;hive-metastore-0.7.1.jar;hive-service-0.7.1.jar;libfb303.jar;slf4j-api-1.6.1.jar;slf4j-log4j12-1.6.1.jar;commons-logging-1.1.1.jar;commons-logging-api-1.0.4.jar">
</classloader>
<classloader
index="HIVE:AMAZON_EMR:MapR_EMR:STANDALONE"
libraries="hadoop-core-0.20.203.0.jar;log4j-1.2.17.jar;hive-exec-0.7.1.jar;hive-jdbc-0.7.1.jar;hive-metastore-0.7.1.jar;hive-service-0.7.1.jar;libfb303.jar;slf4j-api-1.6.1.jar;slf4j-log4j12-1.6.1.jar;commons-logging-1.1.1.jar;commons-logging-api-1.0.4.jar">
libraries="hadoop-core-0.20.203.0.jar;reload4j-1.2.19.jar;hive-exec-0.7.1.jar;hive-jdbc-0.7.1.jar;hive-metastore-0.7.1.jar;hive-service-0.7.1.jar;libfb303.jar;slf4j-api-1.6.1.jar;slf4j-log4j12-1.6.1.jar;commons-logging-1.1.1.jar;commons-logging-api-1.0.4.jar">
</classloader>
<!-- -->
<classloader
@@ -40,8 +40,8 @@
context="PostgresPlus wizard"
language="java"
message="wizard for PostgresPlus"
mvn_uri="mvn:org.postgresql/postgresql/42.2.14"
name="postgresql-42.2.14.jar"
mvn_uri="mvn:org.postgresql/postgresql/42.2.25"
name="postgresql-42.2.25.jar"
required="true">
</libraryNeeded>
<libraryNeeded

View File

@@ -83,7 +83,6 @@ import org.talend.core.utils.TalendQuoteUtils;
import org.talend.designer.core.IDesignerCoreService;
import org.talend.metadata.managment.connection.manager.HiveConnectionManager;
import org.talend.metadata.managment.hive.EmbeddedHiveDataBaseMetadata;
import org.talend.metadata.managment.utils.MetadataConnectionUtils;
import org.talend.repository.ProjectManager;
import org.talend.utils.exceptions.MissingDriverException;
import org.talend.utils.sql.ConnectionUtils;
@@ -1076,8 +1075,10 @@ public class ExtractMetaDataUtils {
}
}
} else {
if (driverJarPathArg.startsWith(MavenUrlHelper.MVN_PROTOCOL)) {
setDriverPath(librairesManagerService, jarPathList, driverJarPathArg);
if (TalendQuoteUtils.removeQuotesIfExist(driverJarPathArg)
.startsWith(MavenUrlHelper.MVN_PROTOCOL)) {
setDriverPath(librairesManagerService, jarPathList,
TalendQuoteUtils.removeQuotesIfExist(driverJarPathArg));
} else {
String jarName = librairesManagerService.getJarNameFromMavenuri(driverJarPathArg);
if (jarName == null) {
@@ -1453,10 +1454,6 @@ public class ExtractMetaDataUtils {
if (StringUtils.isEmpty(defautVal)) {
return;
}
if (defautVal.trim().equals("NULL")) {
initialValue.setBody("");
return;
}
defautVal = defautVal.trim();
boolean defaultValueIsFunction = false;
List<String> functions = getAllDBFuctions(dbMetaData);
@@ -1474,12 +1471,45 @@ public class ExtractMetaDataUtils {
defautVal = TalendQuoteUtils.addQuotes(defautVal, TalendQuoteUtils.SINGLE_QUOTE);
}
} else {
defautVal = TalendQuoteUtils.addSingleQuotesIfNotExist(defautVal);
defautVal = adaptForDBs(defautVal,dbMetaData);
if(!defautVal.trim().equalsIgnoreCase("NULL")) {
defautVal = TalendQuoteUtils.addSingleQuotesIfNotExist(defautVal);
}
}
}
initialValue.setBody(defautVal);
}
/*
* add special code for different DBs as they may have special return value if set default NULL. (for now only add mysql/oracle/mssql , could add more later if customer requests)
*/
private String adaptForDBs(String defaultVal,DatabaseMetaData dbMetaData) {
String dbType= "";
try {
String type = dbMetaData.getDatabaseProductName();
if(type != null) {
dbType = type;
}
} catch (SQLException e) {
log.error(e.getMessage());
}
if(EDatabaseTypeName.MYSQL.getDisplayName().equalsIgnoreCase(dbType)) {
if("NULL".equalsIgnoreCase(defaultVal)) {
defaultVal = TalendQuoteUtils.addSingleQuotesIfNotExist(defaultVal);
}
}else if(EDatabaseTypeName.ORACLE_OCI.getProduct().equalsIgnoreCase(dbType)) {
//oracle do nothing for now
}else if(EDatabaseTypeName.MSSQL.getDisplayName().equalsIgnoreCase(dbType)) {
defaultVal = removeBracketsIfExist(defaultVal);
}
return defaultVal;
}
private String removeBracketsIfExist(String value) {
if (StringUtils.isNotEmpty(value)&&value.startsWith("(") && value.endsWith(")")) {
value= value.substring(1,value.length()-1);
}
return value;
}
public String getSchema() {
return schema;
}

View File

@@ -12,6 +12,7 @@
// ============================================================================
package org.talend.metadata.managment.connection.manager;
import java.security.PrivilegedExceptionAction;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.SQLException;
@@ -26,6 +27,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.talend.commons.exception.CommonExceptionHandler;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.classloader.ClassLoaderFactory;
import org.talend.core.classloader.DynamicClassLoader;
@@ -58,21 +60,34 @@ public class ImpalaConnectionManager extends DataBaseConnectionManager {
return manager;
}
public void checkConnection(IMetadataConnection metadataConn) throws ClassNotFoundException, InstantiationException,
IllegalAccessException, SQLException {
public void checkConnection(IMetadataConnection metadataConn) throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {
createConnection(metadataConn);
}
public Connection createConnection(final IMetadataConnection metadataConn) throws ClassNotFoundException,
InstantiationException, IllegalAccessException, SQLException {
public Connection createConnection(final IMetadataConnection metadataConn) throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {
FutureTask<Connection> futureTask = new FutureTask<Connection>(new Callable<Connection>() {
@Override
public Connection call() throws Exception {
Connection conn = null;
if( !("".equals( metadataConn.getPassword() ) || "\"\"".equals( metadataConn.getPassword() )) ) {
String url = metadataConn.getUrl().replace(";auth=noSasl", "");
if (url.startsWith("jdbc:hive2") && !url.contains(";user=")) {
url = url + ";user=" + metadataConn.getUsername() + ";password=" + metadataConn.getPassword();
} else if (!url.contains(";AuthMech=3;UID=")) {
url = url + ";AuthMech=3;UID=" + metadataConn.getUsername() + ";PWD=" + metadataConn.getPassword();
}
metadataConn.setUrl(url);
}
String connURL = metadataConn.getUrl();
String username = metadataConn.getUsername();
String password = metadataConn.getPassword();
// 1. Get class loader.
ClassLoader currClassLoader = Thread.currentThread().getContextClassLoader();
ClassLoader impalaClassLoader = getClassLoader(metadataConn);
@@ -82,35 +97,43 @@ public class ImpalaConnectionManager extends DataBaseConnectionManager {
String driverClass = EDatabase4DriverClassName.IMPALA.getDriverClass();
Map<String, Object> otherParametersMap = metadataConn.getOtherParameters();
Object userGroupInformation = null;
boolean useKerberos = false;
boolean useKeytab = false;
if (otherParametersMap != null) {
if (Boolean.valueOf((String) otherParametersMap.get(ConnParameterKeys.CONN_PARA_KEY_USE_KRB))) {
if (Boolean.valueOf((String) metadataConn.getParameter(ConnParameterKeys.CONN_PARA_KEY_USEKEYTAB))) {
// driver
Object driverObj = otherParametersMap.get(ConnParameterKeys.IMPALA_DRIVER);
String driverType = null;
if (driverObj != null) {
driverType = String.valueOf(driverObj);
}
useKerberos = Boolean.valueOf((String) otherParametersMap.get(ConnParameterKeys.CONN_PARA_KEY_USE_KRB));
if (useKerberos) {
// Set hadoop.security.authentication to Kerberos
Object conf = Class.forName("org.apache.hadoop.conf.Configuration", true, impalaClassLoader) //$NON-NLS-1$
.newInstance();
EHadoopConfProperties.AUTHENTICATION.set(conf, "KERBEROS"); //$NON-NLS-1$
ReflectionUtils.invokeStaticMethod("org.apache.hadoop.security.UserGroupInformation", //$NON-NLS-1$
impalaClassLoader, "setConfiguration", new Object[] { conf }); //$NON-NLS-1$
useKeytab = Boolean.valueOf((String) metadataConn.getParameter(ConnParameterKeys.CONN_PARA_KEY_USEKEYTAB));
if (useKeytab) {
// Login user using keytab
String principal = (String) metadataConn
.getParameter(ConnParameterKeys.CONN_PARA_KEY_KEYTAB_PRINCIPAL);
String keytabPath = (String) metadataConn.getParameter(ConnParameterKeys.CONN_PARA_KEY_KEYTAB);
try {
ReflectionUtils.invokeStaticMethod("org.apache.hadoop.security.UserGroupInformation", //$NON-NLS-1$
impalaClassLoader, "loginUserFromKeytab", new String[] { principal, keytabPath });
userGroupInformation = ReflectionUtils.invokeStaticMethod("org.apache.hadoop.security.UserGroupInformation", //$NON-NLS-1$
impalaClassLoader, "loginUserFromKeytabAndReturnUGI", new String[] { principal, keytabPath }); //$NON-NLS-1$
} catch (Exception e) {
throw new SQLException(e);
}
} else {
Object conf = Class.forName("org.apache.hadoop.conf.Configuration", true, impalaClassLoader) //$NON-NLS-1$
.newInstance();
EHadoopConfProperties.AUTHENTICATION.set(conf, "KERBEROS"); //$NON-NLS-1$
ReflectionUtils.invokeStaticMethod("org.apache.hadoop.security.UserGroupInformation", //$NON-NLS-1$
impalaClassLoader, "setConfiguration", new Object[] { conf }); //$NON-NLS-1$
}
}
IHadoopDistributionService hadoopService = getHadoopDistributionService();
if ((hadoopService != null)) {
// driver
Object driverObj = otherParametersMap.get(ConnParameterKeys.IMPALA_DRIVER);
String driverType = null;
String impalaDriver = null;
if (driverObj != null) {
driverType = String.valueOf(driverObj);
}
// distribution
Object distObj = otherParametersMap.get(ConnParameterKeys.CONN_PARA_KEY_IMPALA_DISTRIBUTION);
String distribution = null;
@@ -147,9 +170,25 @@ public class ImpalaConnectionManager extends DataBaseConnectionManager {
Properties info = new Properties();
username = username != null ? username : ""; //$NON-NLS-1$
password = password != null ? password : "";//$NON-NLS-1$
info.setProperty("user", username);//$NON-NLS-1$
info.setProperty("password", password);//$NON-NLS-1$
conn = hiveDriver.connect(connURL, info);
if (!useKeytab) {
conn = hiveDriver.connect(connURL, info);
} else {
PrivilegedExceptionAction<Object> privilegedExceptionAction = new java.security.PrivilegedExceptionAction<Object>() {
@Override
public Object run() {
java.sql.Connection con = null;
try {
con = hiveDriver.connect(connURL, info);
} catch (java.sql.SQLException e) {
CommonExceptionHandler.process(e);
}
return con;
}
};
conn = (Connection) ReflectionUtils.invokeMethod(userGroupInformation, "doAs", new Object[] {privilegedExceptionAction}, PrivilegedExceptionAction.class ); //$NON-NLS-1$
}
} finally {
Thread.currentThread().setContextClassLoader(currClassLoader);
}
@@ -221,7 +260,7 @@ public class ImpalaConnectionManager extends DataBaseConnectionManager {
private IHadoopDistributionService getHadoopDistributionService() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IHadoopDistributionService.class)) {
return (IHadoopDistributionService) GlobalServiceRegister.getDefault().getService(IHadoopDistributionService.class);
return GlobalServiceRegister.getDefault().getService(IHadoopDistributionService.class);
}
return null;
}

View File

@@ -576,6 +576,16 @@ public class MetadataConnectionUtils {
return false;
}
public static boolean isH2(DatabaseMetaData connectionMetadata) throws SQLException {
if (connectionMetadata.getDriverName() != null && connectionMetadata.getDatabaseProductName() != null) {
if (EDatabaseTypeName.H2.getDbType().equalsIgnoreCase(connectionMetadata.getDatabaseProductName().trim())) {
return true;
}
}
return false;
}
public static boolean isSybase16SA(IMetadataConnection connectionMetadata) throws SQLException {
boolean isSybase16SA = false;
if(connectionMetadata!=null) {

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="jst.java"/>
<fixed facet="jst.utility"/>
<installed facet="jst.utility" version="1.0"/>
<installed facet="jst.java" version="5.0"/>
</faceted-project>

View File

@@ -654,8 +654,9 @@ public class ImportExportHandlersManager {
importItemRecordsWithRelations(monitor, resManager, checkedItemRecords, overwrite,
allImportItemRecords, destinationPath);
RelationshipItemBuilder.getInstance().buildAndSaveIndex();
if (!CommonsPlugin.isTUJTest()) {
RelationshipItemBuilder.getInstance().buildAndSaveIndex();
}
} catch (Exception e) {
if (Platform.inDebugMode()) {
ExceptionHandler.process(e);

View File

@@ -1006,7 +1006,7 @@ DatabaseForm.genaralJDBC.mappingFileAlert=Mapping File must be specified
DatabaseForm.hc.link.none=None
DatabaseForm.hc.link.repository=Repository
DatabaseForm.hc.link.title=Hadoop Cluster
DatabaseForm.helpInfo.installDriverLink.url=https://help.talend.com/pages/viewpage.action?pageId=14230347
DatabaseForm.helpInfo.installDriverLink.url=https://document-link.us.cloud.talend.com/ts_ig_install-external-modules?version=73&lang=en&env=prd
DatabaseForm.helpInfo.installDriverLink.label=How to install a driver
DatabaseTableFilterForm.allSynonyms=All synonyms
DatabaseTableFilterForm.edit=Edit...

View File

@@ -4495,6 +4495,20 @@ public class DatabaseForm extends AbstractForm {
};
} else if (isImpalaDBConnSelected()) {
final IMetadataConnection metadataConn = ConvertionHelper.convert(connectionItem.getConnection(), true);
if( !("".equals(metadataConn.getPassword()) || "\"\"".equals(metadataConn.getPassword())) ) {
String url = metadataConn.getUrl().replace(";auth=noSasl", "");
if (url.startsWith("jdbc:hive2")) {
url = url + ";user=" + metadataConn.getUsername() + ";password=" + metadataConn.getPassword();
} else {
url = url + ";AuthMech=3;UID=" + metadataConn.getUsername() + ";PWD=" + metadataConn.getPassword();
}
metadataConn.setUrl(url);
}
checkingDialog = new AProgressMonitorDialogWithCancel<Boolean>(getShell()) {
@Override
@@ -8695,7 +8709,7 @@ public class DatabaseForm extends AbstractForm {
hiveVersion == null ? null : hiveVersion.getVersion(), false);
if (impalaDriverDisplay != null && impalaDriverDisplay.length == 0) {
// hive2 by default
impalaDriverCombo.getCombo().setItems(EImpalaDriver.HIVE2.getDisplayName());
impalaDriverCombo.getCombo().setItems(EImpalaDriver.HIVE2.getDisplayName().split("\n"));
} else {
impalaDriverCombo.getCombo().setItems(impalaDriverDisplay);
}

View File

@@ -15,6 +15,7 @@ package org.talend.repository.viewer.ui.provider;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.runtime.IPath;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.StructuredViewer;
@@ -24,6 +25,7 @@ import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.swt.widgets.Composite;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.utils.RepositoryManagerHelper;
import org.talend.core.repository.model.ProjectRepositoryNode;
@@ -31,6 +33,7 @@ import org.talend.core.repository.ui.utils.RecombineRepositoryNodeUtil;
import org.talend.core.repository.ui.view.RepositoryLabelProvider;
import org.talend.repository.model.IRepositoryNode;
import org.talend.repository.model.IRepositoryNode.ENodeType;
import org.talend.repository.model.IRepositoryService;
import org.talend.repository.model.RepositoryNode;
import org.talend.repository.model.nodes.IProjectRepositoryNode;
import org.talend.repository.navigator.RepoViewCommonNavigator;
@@ -107,6 +110,8 @@ public class RepositoryViewerProvider extends AbstractViewerProvider {
sorter = viewer.getSorter();
}
final ViewerSorter viewerSorter = sorter;
IRepositoryService service = (IRepositoryService) GlobalServiceRegister.getDefault()
.getService(IRepositoryService.class);
// TDI-20528
// treeViewer.setSorter(sorter);
treeViewer.setSorter(new TreePathViewerSorter() {
@@ -127,7 +132,35 @@ public class RepositoryViewerProvider extends AbstractViewerProvider {
// do special for simple folder,TDI-20528
if (node1.getType() == IRepositoryNode.ENodeType.SIMPLE_FOLDER
|| node2.getType() == IRepositoryNode.ENodeType.SIMPLE_FOLDER) {
return e1.toString().compareTo(e2.toString());
int ret = e1.toString().compareTo(e2.toString());
// TUP-33214:sort between leaf node and embedded folder node. should return positive integer
// when leaf node is in prefix folder of folder node instead of comparing the string simply.
if (node1.getType() != IRepositoryNode.ENodeType.SIMPLE_FOLDER) {
IRepositoryNode parent = node1.getParent();
if (parent != null && parent.getType() != IRepositoryNode.ENodeType.SIMPLE_FOLDER) {
ret = 1;
}
if (parent != null && parent.getType() == IRepositoryNode.ENodeType.SIMPLE_FOLDER) {
IPath path1 = service.getRepositoryPath(parent);
IPath path2 = service.getRepositoryPath(node2);
if (path1 != null && (path1.isPrefixOf(path2) || path1.equals(path2))) {
ret = 1;
}
}
} else if (node2.getType() != IRepositoryNode.ENodeType.SIMPLE_FOLDER) {
IRepositoryNode parent = node2.getParent();
if (parent != null && parent.getType() != IRepositoryNode.ENodeType.SIMPLE_FOLDER) {
ret = -1;
}
if (parent != null && parent.getType() == IRepositoryNode.ENodeType.SIMPLE_FOLDER) {
IPath path2 = service.getRepositoryPath(parent);
IPath path1 = service.getRepositoryPath(node1);
if (path2 != null && (path2.equals(path1) || path2.isPrefixOf(path1))) {
ret = -1;
}
}
}
return ret;
} else if (viewerSorter != null) {
if (viewerSorter instanceof TreePathViewerSorter) {
if (!node1.isInitialized() && !node2.isInitialized()) {

View File

@@ -18,6 +18,8 @@ import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -253,8 +255,9 @@ public class UpdateTools {
dropList.addAll(list);
});
// collect from drop.bundle.info
dropBundles.forEach((b, v) -> plugins.stream().filter(f -> f.getName().contains(b + "_" + v))
.forEach(f -> dropList.add(f.getAbsolutePath())));
dropBundles.forEach((b,vs) -> {
Arrays.asList(vs.split("\\|")).forEach(v -> plugins.stream().filter(f -> f.getName().contains(b + "_"+v)).forEach(f -> dropList.add(f.getAbsolutePath())));
});
File dropFile = new File(pluginFolderFile, "droplist");
if (!dropFile.exists()) {
dropFile.createNewFile();
@@ -291,5 +294,4 @@ public class UpdateTools {
}
return !file.delete();
}
}

View File

@@ -31,10 +31,10 @@
<version>1.9.12</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>1.2.19</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
@@ -54,6 +54,12 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.10</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>

View File

@@ -38,10 +38,9 @@
<version>1.9.12</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<type>bundle</type>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
<version>1.2.19</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
@@ -72,6 +71,12 @@
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.10</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>

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