Compare commits
28 Commits
dgrygorenk
...
patch/TPS-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d9d2715416 | ||
|
|
b0f6c747d4 | ||
|
|
7ea110dc3c | ||
|
|
fcad4148f5 | ||
|
|
ebe98a4d67 | ||
|
|
cd23062e30 | ||
|
|
5990df09b0 | ||
|
|
4f5b39d2da | ||
|
|
c9c9d4df22 | ||
|
|
9f4d4fc832 | ||
|
|
cc93b9959b | ||
|
|
94e2442e11 | ||
|
|
079ce620ab | ||
|
|
535af6359e | ||
|
|
0544da1147 | ||
|
|
bdb27eaf55 | ||
|
|
c4b9def853 | ||
|
|
9b31f616f7 | ||
|
|
3c8552e58c | ||
|
|
81f603037b | ||
|
|
3c9ff7e553 | ||
|
|
6611515bd6 | ||
|
|
66dfb4f0bf | ||
|
|
75b74d2c17 | ||
|
|
92e5a0801d | ||
|
|
62ce41a0e9 | ||
|
|
aa9c2b08b9 | ||
|
|
37c58a98cd |
@@ -2,39 +2,110 @@
|
||||
version: 7.2.1
|
||||
module: https://talend.poolparty.biz/coretaxonomy/42
|
||||
product:
|
||||
- https://talend.poolparty.biz/coretaxonomy/23
|
||||
- https://talend.poolparty.biz/coretaxonomy/183
|
||||
|
||||
---
|
||||
|
||||
# TPS-4124
|
||||
# TPS-3495 <!-- mandatory -->
|
||||
|
||||
| Info | Value |
|
||||
| ---------------- | ---------------- |
|
||||
| Patch Name | Patch\_20200615\_TPS-4124\_v1-7.2.1 |
|
||||
| Release Date | 2020-06-15 |
|
||||
| Target Version | 20190620\_1446-V7.2.1 |
|
||||
| Patch Name | Patch_20191017_TPS-3495_v1-7.2.1 |
|
||||
| Release Date | 2019-10-17 |
|
||||
| Target Version | 20190620\_1446-7.2.1 |
|
||||
| Product affected | Talend Studio |
|
||||
|
||||
## Introduction
|
||||
## Introduction <!-- mandatory -->
|
||||
|
||||
This is a self-contained patch.
|
||||
This patch is cumulative. It includes all previous generally available patches for Talend Studio 7.2.1.
|
||||
|
||||
**NOTE**: For information on how to obtain this patch, reach out to your Support contact at Talend.
|
||||
**NOTE**: To download this patch, liaise with your Support contact at Talend.
|
||||
|
||||
## Fixed issues
|
||||
## Fixed issues <!-- mandatory -->
|
||||
|
||||
This patch contains the following fixes:
|
||||
|
||||
- TPS-4124 [7.2.1] ClassCastException with tLibraryLoad's Dynamics Libs in Java 11 (TDI-44305)
|
||||
- TPS-3495 [7.2.1] [tck:ADLSgen2] Short term solution for columns selector (TDI-43010)
|
||||
|
||||
## Prerequisites
|
||||
This patch also includes the following patches:
|
||||
- TPS-3489 [7.2.1] Build error with tRunJob on a spark job (TUP-24784)
|
||||
- TPS-3476 [7.2.1] [20191018] Spark job fails on databricks when 'trim all' option is selected in the advanced settings of tFileInputDelimited component (TBD-9334)
|
||||
- TPS-3460 [7.2.1] [20191101] "Invalid signature file digest for Manifest main attributes" Error with HD Insight Cluster (TBD-9289)
|
||||
- TPS-3421 [7.2.1] Following TDI-42674, update dependency for Redshift database metadata (TUP-23960)
|
||||
- TPS-3401 [7.2.1] JDBCInput component not working as expected when values as provided using context (TUP-24392)
|
||||
- TPS-3449 [7.2.1] Route persists error even after resolving the issue(TESB-26300)
|
||||
- TPS-3459 [7.2.1] Change Databricks API calls for Databricks 5.4 (TBD-9316)
|
||||
- TPS-3413 [7.2.1] Default Context environment appended after migrating to 7.2.1 (TUP-24355)
|
||||
- TPS-3429 [7.2.1][20190919] - ES6 support on tMatchIndex/tMatchIndexPredict (TDQ-16220)
|
||||
- TPS-3336 [7.2.1] Improve Tck integration/installation/update in 7.2.1 (TUP-23106,TUP-23967,TUP-23264,TUP-23536,TUP-24226,TUP-24084)
|
||||
- TPS-3402 [7.2.1] Build silently fails if Route calls a Routelet of different versions (TESB-26578)
|
||||
- TPS-3422 [7.2.1] "java.lang.NoClassDefFoundError: org/talend/repository/services/model/services/ServiceItem" in studio(TESB-26856)
|
||||
- TPS-3386 [7.2.1] Path in Textbox of "To archive file" is incomplete when building job (TUP-22646)
|
||||
- TPS-3389 [7.2.1] Projects are switched to read only mode while reconnecting the session (TUP-24272)
|
||||
- TPS-3387 [7.2.1] keyword "__TABLE__" not working for tJDBCxxxx components (TUP-24326)
|
||||
- TPS-3406 [7.2.1] [Azure] Add Azure datacenter part of the studio connection
|
||||
- TPS-3359 [7.2.1] JDBC metadata connection for Redshift when exported as context, unable to retrieve schema (TUP-24232)
|
||||
- TPS-3323 [7.2.1] Error with cSplitter and jsonpath langage (TESB-26549)
|
||||
- TPS-3383 [7.2.1] Jobs with tWindow not compiling in Spark Streaming Jobs - Studio 7.2.1 (TBD-9096)
|
||||
- TPS-3374 [7.2.1] ERROR when Job in MDM project calling Job in Reference DI project:import routines.DataQuality cannot be resolved (TUP-23743)
|
||||
- TPS-3291 [7.2.1] Rest Dataservice with Microservice build type fails with error LoggerFactory is not a Logback (TESB-26574)
|
||||
- TPS-3303 [7.2.1] ESB - Docker Support for Microservices - CI Part (TESB-24597)
|
||||
- TPS-3340 [7.2.1] Problem with Data Service Rest publishing (maven plugin) (TESB-26711)
|
||||
- TPS-3334 [7.2.1] Snowflake components issue with cloud licence (TUP-24130)
|
||||
- TPS-3243 [7.2.1] Backporting the support of Databricks 5.x and ADLS Gen 2 (TBD-7856) + Spark Batch fixes (TBD-8836, TBD-8850) + Configurable poll interval for Databricks job status (TBD-9006)
|
||||
- TPS-3294 [7.2.1] Change security encryption of nexus (TUP-23087)
|
||||
- TPS-3318 [7.2.1] Issue with nexus setup with cloud (TUP-24046)
|
||||
- TPS-3287 [7.2.1] Cannot add more than 5 columns in tAggregateRow (TBD-8860)
|
||||
- TPS-3273 [7.2.1] Error in calling spark job from trunjob job inside standard job (TUP-23950)
|
||||
- TPS-3249 [7.2.1] Regression caused by TUP-21532 for ESB use case using tRunJob (TUP-23755)
|
||||
- TPS-3263 [7.2.1] Studio changes in column order are not saved (no propagate changes dialog) (TUP-23809)
|
||||
- TPS-3268 [7.2.1] ClassNotFoundException of the class of the job called by tRunJob in Routes (TESB-26048)
|
||||
- TPS-3269 [7.2.1] [Java 11] Failures when publishing to cloud using CI (maven plugin) (TESB-26461)
|
||||
- TPS-3270 [7.2.1] Duplicated libraries in private & import packages of the build manifest file (TESB-26293)
|
||||
|
||||
## Prerequisites <!-- mandatory -->
|
||||
|
||||
Consider the following requirements for your system:
|
||||
|
||||
- Talend Studio 7.2.1 must be installed.
|
||||
- To make TPS-3340 or TPS-3269 totally work, please replace the cloudpublisher-maven-plugin-7.2.1.jar into "{Studio_Home}/configuration/.m2/repository/org/talend/ci/cloudpublisher-maven-plugin/7.2.1" from "repository/org/talend/ci/cloudpublisher-maven-plugin/7.2.1" in patch zip.
|
||||
- To make TPS-3243 or TPS-3459
|
||||
- In the "{Studio_Home}/configuration/config.ini" file, add the following entry:
|
||||
,org.talend.hadoop.distribution.dbr540@start
|
||||
- Clean the libraries installed on the Databricks cluster. To do this,
|
||||
1. On the cluster side, click the "Libraries" tab and then select the check box to select all the libraries.
|
||||
2. Click "Uninstall".
|
||||
3. Restart the cluster.
|
||||
- To make TPS-3269 totally work, please replace the cloudpublisher-maven-plugin-7.2.1.jar into "{Studio_Home}/configuration/.m2/repository/org/talend/ci/cloudpublisher-maven-plugin/7.2.1" from "repository/org/talend/ci/cloudpublisher-maven-plugin/7.2.1" in patch zip.
|
||||
- To make TPS-3429 totally work when installing the patch using Commandline, Before starting the studio, need to delete the folder Configuration/org.eclipse.osgi
|
||||
|
||||
## Installation
|
||||
## Installation <!-- mandatory -->
|
||||
|
||||
### Installing the patch using Software update
|
||||
<!--
|
||||
- Detailed installation steps for the customer.
|
||||
- If any files need to be backed up before installation, it should be mentioned in this section.
|
||||
- Two scenarios need to be considered for the installation:
|
||||
1. The customer has not yet installed any patch before => provide instructions for this
|
||||
2. The customer had installed one previous cumulative patch => provide instructions for this
|
||||
-->
|
||||
|
||||
### Installing the patch for Cloud Studio
|
||||
|
||||
- If you want to fetch license from cloud Azure - USA West (for TPS-3406)
|
||||
|
||||
1) Open "{your_patch_zip}/plugins".
|
||||
|
||||
2) Open "{Studio_home}/configuration/org.talend.configurator/bundles.info".
|
||||
|
||||
3) CHANGE the version of org.talend.license.gui and org.talend.license.gui.talend in bundles.info(in the last two lines) TO the version of the jars in plugins.
|
||||
|
||||
Example:
|
||||
|
||||
The jars in plugin folder of the patch zip are "org.talend.license.gui_7.2.1.20190909_1200_patch.jar" and "org.talend.license.gui.talend_7.2.1.20190909_1200_patch.jar",
|
||||
MODIFY them in bundles.info file to "org.talend.license.gui,7.2.1.20190909_1200_patch,plugins/org.talend.license.gui_7.2.1.20190909_1200_patch.jar,4,false" and
|
||||
"org.talend.license.gui.talend,7.2.1.20190909_1200_patch,plugins/org.talend.license.gui.talend_7.2.1.20190909_1200_patch.jar,4,false"
|
||||
|
||||
### Installing the patch using Software update <!-- if applicable -->
|
||||
|
||||
1) Logon TAC and switch to Configuration->Software Update, then enter the correct values and save referring to the documentation: https://help.talend.com/reader/f7Em9WV_cPm2RRywucSN0Q/j9x5iXV~vyxMlUafnDejaQ
|
||||
|
||||
@@ -42,25 +113,16 @@ Consider the following requirements for your system:
|
||||
|
||||
3) On Studio Side: Logon Studio with remote mode, on the logon page the Update button is displayed: click this button to install the patch.
|
||||
|
||||
### Installing the patch using Talend Studio
|
||||
### Installing the patch using Talend Studio <!-- if applicable -->
|
||||
|
||||
1) Create a folder named "patches" under your studio installer directory and copy the patch .zip file to this folder.
|
||||
|
||||
2) Restart your studio: a window pops up, then click OK to install the patch, or restart the commandline and the patch will be installed automatically.
|
||||
|
||||
### Installing the patch using Commandline
|
||||
### Installing the patch using Commandline <!-- if applicable -->
|
||||
|
||||
Execute the following commands:
|
||||
|
||||
1. Talend-Studio-win-x86_64.exe -nosplash -application org.talend.commandline.CommandLine -consoleLog -data commandline-workspace startServer -p 8002 --talendDebug
|
||||
2. initRemote {tac_url} -ul {TAC login username} -up {TAC login password}
|
||||
3. checkAndUpdate -tu {TAC login username} -tup {TAC login password}
|
||||
|
||||
## Uninstallation
|
||||
Backup the Affected files list below. Uninstall the patch by restore the backup files.
|
||||
|
||||
## Affected files for this patch
|
||||
|
||||
The following files are installed by this patch:
|
||||
|
||||
- {Talend\_Studio\_path}/plugins/org.talend.designer.components.localprovider\_7.2.1.20190614\_0309/components/tLibraryLoad/tLibraryLoad\_begin.javajet
|
||||
@@ -221,10 +221,9 @@
|
||||
}
|
||||
|
||||
String query_<%=cid%> = <%=query%>;
|
||||
String dataset = query_<%=cid%>.substring(query_<%=cid%>.indexOf("from") + 4, query_<%=cid%>.indexOf(".")).trim();
|
||||
String temp_table = "temp_" + dataset + java.util.UUID.randomUUID().toString().replaceAll("-", "")
|
||||
+ "<%=cid%>".toLowerCase().replaceAll("[^a-z0-9]", "0").replaceAll("^[^a-z]", "a")
|
||||
+ Integer.toHexString(java.util.concurrent.ThreadLocalRandom.current().nextInt());
|
||||
<% if(isLog4jEnabled) { %>
|
||||
log.info("<%=cid%> - query " + <%=query%>);
|
||||
<% } %>
|
||||
|
||||
com.google.cloud.bigquery.BigQuery bigquery_<%=cid%> = com.google.cloud.bigquery.BigQueryOptions.newBuilder()
|
||||
.setCredentials(credentials_<%=cid%>)
|
||||
@@ -233,25 +232,55 @@
|
||||
.getService();
|
||||
|
||||
com.google.cloud.bigquery.QueryJobConfiguration.Builder queryConfiguration_<%=cid%> = com.google.cloud.bigquery.QueryJobConfiguration.newBuilder(<%=query%>).setUseLegacySql(<%=useLegacySql%>);
|
||||
|
||||
<%
|
||||
if (resultSizeType.equals("LARGE") || resultSizeType.equals("AUTO")) {
|
||||
%>
|
||||
queryConfiguration_<%=cid%>.setDestinationTable(com.google.cloud.bigquery.TableId.of(dataset, temp_table)).setAllowLargeResults(true);
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
com.google.cloud.bigquery.JobId jobId_<%=cid%> = com.google.cloud.bigquery.JobId.of(java.util.UUID.randomUUID().toString());
|
||||
com.google.cloud.bigquery.Job job_<%=cid%> = bigquery_<%=cid%>.create(com.google.cloud.bigquery.JobInfo.newBuilder(queryConfiguration_<%=cid%>.build()).setJobId(jobId_<%=cid%>).build());
|
||||
|
||||
<%
|
||||
if(isLog4jEnabled){
|
||||
%>
|
||||
<%if (resultSizeType.equals("LARGE") || resultSizeType.equals("AUTO")) {%>
|
||||
|
||||
com.google.cloud.bigquery.QueryJobConfiguration jobConfDryRun_<%=cid%> = queryConfiguration_<%=cid%> .setDryRun(true).build();
|
||||
com.google.cloud.bigquery.Job jobDryRun_<%=cid%> = bigquery_<%=cid%>.create(com.google.cloud.bigquery.JobInfo.of(jobConfDryRun_<%=cid%>));
|
||||
|
||||
String queryLocation_<%=cid%> =jobDryRun_<%=cid%>.getJobId().getLocation();
|
||||
String location_<%=cid%> = queryLocation_<%=cid%> == null ? "US" : queryLocation_<%=cid%>;
|
||||
String tempDataset_<%=cid%> = java.util.UUID.randomUUID().toString().replaceAll("-", "")
|
||||
+ Integer.toHexString(java.util.concurrent.ThreadLocalRandom.current().nextInt())
|
||||
+ Integer.toHexString(java.util.concurrent.ThreadLocalRandom.current().nextInt());
|
||||
String tempTable_<%=cid%> = java.util.UUID.randomUUID().toString().replaceAll("-", "")
|
||||
+ Integer.toHexString(java.util.concurrent.ThreadLocalRandom.current().nextInt())
|
||||
+ Integer.toHexString(java.util.concurrent.ThreadLocalRandom.current().nextInt());
|
||||
<% if(isLog4jEnabled){ %>
|
||||
log.info("<%=cid%> - query location :" + queryLocation_<%=cid%>);
|
||||
log.info("<%=cid%> - temporary dataset location :" + location_<%=cid%>);
|
||||
log.info("<%=cid%> - temporary Dataset name : " + tempDataset_<%=cid%>);
|
||||
log.info("<%=cid%> - temporary table name : " + tempTable_<%=cid%>);
|
||||
<% } %>
|
||||
|
||||
com.google.cloud.bigquery.DatasetInfo datasetInfo_<%=cid%> = com.google.cloud.bigquery.DatasetInfo.newBuilder(tempDataset_<%=cid%>).setLocation(location_<%=cid%>).build();
|
||||
com.google.cloud.bigquery.Dataset dataset_<%=cid%> = bigquery_<%=cid%> .create(datasetInfo_<%=cid%>);
|
||||
|
||||
queryConfiguration_<%=cid%>
|
||||
.setDryRun(false)
|
||||
.setAllowLargeResults(true)
|
||||
.setDestinationTable(com.google.cloud.bigquery.TableId.of(tempDataset_<%=cid%>, tempTable_<%=cid%>));
|
||||
|
||||
com.google.cloud.bigquery.JobId jobId_<%=cid%> = com.google.cloud.bigquery.JobId
|
||||
.newBuilder().setProject(<%=projectId%>)
|
||||
.setJob(java.util.UUID.randomUUID().toString())
|
||||
.setLocation(location_<%=cid%>)
|
||||
.build();
|
||||
|
||||
<% if(isLog4jEnabled){ %>
|
||||
log.info("<%=cid%> - job location : " + jobId_<%=cid%>.getLocation());
|
||||
<% } %>
|
||||
<% } else { %>
|
||||
com.google.cloud.bigquery.JobId jobId_<%=cid%> = com.google.cloud.bigquery.JobId.of(<%=projectId%>,java.util.UUID.randomUUID().toString());
|
||||
|
||||
<% } %>
|
||||
com.google.cloud.bigquery.Job job_<%=cid%> = bigquery_<%=cid%>.create(com.google.cloud.bigquery.JobInfo.newBuilder(queryConfiguration_<%=cid%>.build()).setJobId(jobId_<%=cid%>).build());
|
||||
|
||||
|
||||
<% if(isLog4jEnabled) { %>
|
||||
log.info("<%=cid%> - Sending job " + jobId_<%=cid%> + " with query: " + <%=query%>);
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<% } %>
|
||||
|
||||
job_<%=cid%> = job_<%=cid%>.waitFor();
|
||||
|
||||
if (job_<%=cid%> == null) {
|
||||
@@ -260,13 +289,9 @@
|
||||
throw new RuntimeException(job_<%=cid%>.getStatus().getError().toString());
|
||||
}
|
||||
|
||||
<%
|
||||
if(isLog4jEnabled){
|
||||
%>
|
||||
<% if(isLog4jEnabled) { %>
|
||||
log.info("<%=cid%> - Job " + jobId_<%=cid%> + " finished successfully.");
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<% } %>
|
||||
com.google.cloud.bigquery.TableResult result_<%=cid%> = job_<%=cid%>.getQueryResults();
|
||||
long nb_line_<%=cid%> = 0;
|
||||
<%
|
||||
|
||||
@@ -10,7 +10,10 @@ imports="
|
||||
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
|
||||
INode node = (INode)codeGenArgument.getArgument();
|
||||
String cid = node.getUniqueName();
|
||||
String authMode = ElementParameterParser.getValue(node,"__AUTH_MODE__");
|
||||
String authMode = ElementParameterParser.getValue(node,"__AUTH_MODE__");
|
||||
String projectId = ElementParameterParser.getValue(node,"__PROJECT_ID__");
|
||||
String resultSizeType = ElementParameterParser.getValue(node,"__RESULT_SIZE__");
|
||||
|
||||
if (authMode.equals("OAUTH")) {
|
||||
%>
|
||||
}
|
||||
@@ -24,7 +27,10 @@ imports="
|
||||
} else if (authMode.equals("SERVICEACCOUNT")) {
|
||||
%>
|
||||
}
|
||||
bigquery_<%=cid%>.delete(com.google.cloud.bigquery.TableId.of(dataset, temp_table));
|
||||
<% if (resultSizeType.equals("LARGE") || resultSizeType.equals("AUTO")) { %>
|
||||
com.google.cloud.bigquery.DatasetId datasetId_<%=cid%> = com.google.cloud.bigquery.DatasetId.of(<%=projectId%>, tempDataset_<%=cid%>);
|
||||
bigquery_<%=cid%>.delete(datasetId_<%=cid%>, com.google.cloud.bigquery.BigQuery.DatasetDeleteOption.deleteContents());
|
||||
<% }%>
|
||||
<%
|
||||
} else {
|
||||
throw new IllegalArgumentException("authentication mode should be either \"SERVICEACCOUNT\" or \"OAUTH\", but it is " + authMode);
|
||||
|
||||
@@ -17,19 +17,17 @@
|
||||
|
||||
<% if(hotLibs!=null&&hotLibs.size() > 0){%>
|
||||
|
||||
String[] libPaths_<%=cid %> = new String[] { <% for(Map<String, String> item : hotLibs) {%> <%=item.get("LIBPATH") %>, <%}%> };
|
||||
java.net.URLClassLoader sysloader_<%=cid %> = (java.net.URLClassLoader) ClassLoader.getSystemClassLoader();
|
||||
java.lang.reflect.Method method_<%=cid %> = java.net.URLClassLoader.class.getDeclaredMethod("addURL", new Class[] { java.net.URL.class });
|
||||
method_<%=cid %>.setAccessible(true);
|
||||
|
||||
java.util.List<java.net.URL> libURL_<%=cid %> = new java.util.ArrayList<>();
|
||||
|
||||
for(String lib_<%=cid %>:libPaths_<%=cid %>) {
|
||||
String[] libPaths_<%=cid %> = new String[] { <% for(Map<String, String> item : hotLibs){%> <%=item.get("LIBPATH") %>, <%}%> };
|
||||
for(String lib_<%=cid %>:libPaths_<%=cid %> ){
|
||||
String separator_<%=cid %> = System.getProperty("path.separator");
|
||||
String[] jarFiles_<%=cid %> = lib_<%=cid %>.split(separator_<%=cid %>);
|
||||
for(String jarFile_<%=cid %> : jarFiles_<%=cid %>) {
|
||||
libURL_<%=cid %>.add( new java.io.File(jarFile_<%=cid %>).toURI().toURL() );
|
||||
for(String jarFile_<%=cid %>:jarFiles_<%=cid %>){
|
||||
method_<%=cid %>.invoke(sysloader_<%=cid %>, new Object[] { new java.io.File(jarFile_<%=cid %>).toURL() });
|
||||
}
|
||||
}
|
||||
java.net.URL[] libURLArray_<%=cid %> = libURL_<%=cid %>.toArray(new java.net.URL[] {});
|
||||
ClassLoader threadClassLoader_<%=cid %> = Thread.currentThread().getContextClassLoader();
|
||||
java.net.URLClassLoader newthreadClassLoader_<%=cid %> = new java.net.URLClassLoader(libURLArray_<%=cid %>, threadClassLoader_<%=cid %>);
|
||||
Thread.currentThread().setContextClassLoader(newthreadClassLoader_<%=cid %>);
|
||||
|
||||
<%}%>
|
||||
|
||||
@@ -16,6 +16,7 @@ import java.beans.PropertyChangeEvent;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
||||
import org.eclipse.gef.commands.Command;
|
||||
import org.eclipse.swt.SWT;
|
||||
@@ -126,7 +127,9 @@ public class ButtonController extends AbstractElementPropertySectionController {
|
||||
continue;
|
||||
}
|
||||
for(String path : listString){
|
||||
jars.add(GenericTableUtils.getDriverJarPath(path));
|
||||
if (!StringUtils.isBlank(path)) {
|
||||
jars.add(GenericTableUtils.getDriverJarPath(path));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -736,6 +736,7 @@ PerformancePreferencePage.generateCode=Generate code when opening the job
|
||||
PerformancePreferencePage.checkVersion=Check only the last version when updating jobs or joblets
|
||||
PerformancePreferencePage.addOrDeleteVariable=Propagate add/delete variable changes in repository contexts
|
||||
PerformancePreferencePage.ActivedTimeoutSetting=Activate the timeout for database connection.
|
||||
PerformancePreferencePage.propagateContext=Propagate add context groups in repository contexts
|
||||
PerformancePreferencePage.ConnectionTimeout=Connection timeout (seconds)
|
||||
PerformancePreferencePage.HBaseOrMaprDBScanLimit=HBase/MapR-DB scan limit (for retrieving schema)
|
||||
PerformancePreferencePage.HBaseOrMaprDBScanLimitTip=If set it by zero, will be same as deactiving the limit.
|
||||
|
||||
@@ -607,7 +607,7 @@ public final class TalendEditorPaletteFactory {
|
||||
while (iter.hasNext()) {
|
||||
IComponent xmlComponent = iter.next();
|
||||
|
||||
Matcher matcher = pattern.matcher(xmlComponent.getName().toLowerCase());
|
||||
Matcher matcher = pattern.matcher(xmlComponent.getDisplayName().toLowerCase());
|
||||
if (matcher.find()) {
|
||||
resultByName.add(new ComponentHit(xmlComponent, matcher.start()));
|
||||
continue;
|
||||
@@ -643,7 +643,7 @@ public final class TalendEditorPaletteFactory {
|
||||
private static void addDelegateComponents(IComponentsFactory compFac, Collection<IComponent> componentSet,
|
||||
String lowerCasedKeyword) {
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(IUnifiedComponentService.class)) {
|
||||
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault().getService(
|
||||
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(
|
||||
IUnifiedComponentService.class);
|
||||
service.filterUnifiedComponentForPalette(compFac, componentSet, lowerCasedKeyword);
|
||||
|
||||
@@ -730,13 +730,12 @@ public final class TalendEditorPaletteFactory {
|
||||
return null;
|
||||
}
|
||||
IComponent delegateComponent = UnifiedComponentUtil.getDelegateComponent(component);
|
||||
String name = component.getName();
|
||||
String filter = null;
|
||||
if (delegateComponent != component) {
|
||||
// emf component name
|
||||
filter = component.getName();
|
||||
name = UnifiedComponentUtil.getComponentDisplayNameForPalette(delegateComponent, filter);
|
||||
}
|
||||
String name = UnifiedComponentUtil.getComponentDisplayNameForPalette(delegateComponent, filter);
|
||||
ImageDescriptor imageSmall = delegateComponent.getIcon16();
|
||||
IPreferenceStore store = DesignerPlugin.getDefault().getPreferenceStore();
|
||||
ImageDescriptor imageLarge;
|
||||
|
||||
@@ -624,8 +624,10 @@ public class ChangeMetadataCommand extends Command {
|
||||
setTableMAPPING();
|
||||
|
||||
if (!internal) {
|
||||
updateColumnList(oldOutputMetadata, newOutputMetadata);
|
||||
((Process) node.getProcess()).checkProcess();
|
||||
if (!oldOutputMetadata.sameMetadataAs(newOutputMetadata, IMetadataColumn.OPTIONS_NONE)) {
|
||||
updateColumnList(oldOutputMetadata, newOutputMetadata);
|
||||
((Process) node.getProcess()).checkProcess();
|
||||
}
|
||||
}
|
||||
refreshMetadataChanged();
|
||||
}
|
||||
|
||||
@@ -516,7 +516,7 @@ public class Node extends Element implements IGraphicalNode {
|
||||
|
||||
private void init(IComponent newComponent) {
|
||||
this.component = UnifiedComponentUtil.getEmfComponent(this, newComponent);
|
||||
this.label = component.getName();
|
||||
this.label = component.getDisplayName();
|
||||
updateComponentStatusIfNeeded(true);
|
||||
IPreferenceStore store = DesignerPlugin.getDefault().getPreferenceStore();
|
||||
|
||||
@@ -1179,6 +1179,12 @@ public class Node extends Element implements IGraphicalNode {
|
||||
if (useConn != null) {
|
||||
connParam = this.getElementParameter("CONNECTION"); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
boolean isGeneric = this.getComponent().getComponentType() == EComponentType.GENERIC;
|
||||
if(isGeneric && labelToParse != null) {
|
||||
labelToParse = labelToParse.replaceAll("__TABLE__", "__tableSelection.tablename__"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
}
|
||||
|
||||
if (useConn != null && connParam != null && Boolean.TRUE.equals(useConn.getValue())) {
|
||||
|
||||
String connName = (String) connParam.getValue();
|
||||
|
||||
@@ -123,6 +123,7 @@ import org.talend.core.model.update.IUpdateManager;
|
||||
import org.talend.core.model.utils.TalendTextUtils;
|
||||
import org.talend.core.repository.model.ProxyRepositoryFactory;
|
||||
import org.talend.core.repository.utils.ConvertJobsUtil;
|
||||
import org.talend.core.repository.utils.ProjectHelper;
|
||||
import org.talend.core.repository.utils.XmiResourceManager;
|
||||
import org.talend.core.runtime.repository.item.ItemProductKeys;
|
||||
import org.talend.core.runtime.util.ItemDateParser;
|
||||
@@ -1079,7 +1080,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
|
||||
ElementParameterType pType;
|
||||
boolean isJoblet = false;
|
||||
if (param.getElement() instanceof INode && PluginChecker.isJobLetPluginLoaded()) {
|
||||
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(
|
||||
IJobletProviderService service = GlobalServiceRegister.getDefault().getService(
|
||||
IJobletProviderService.class);
|
||||
if (service != null && service.isJobletComponent((INode) param.getElement())) {
|
||||
isJoblet = true;
|
||||
@@ -1920,12 +1921,25 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
|
||||
}
|
||||
}
|
||||
|
||||
for (IRepositoryViewObject object : routines) {
|
||||
if (routinesToAdd.contains(object.getLabel()) && !routinesAlreadySetup.contains(object.getLabel())) {
|
||||
RoutinesParameterType routinesParameterType = TalendFileFactory.eINSTANCE.createRoutinesParameterType();
|
||||
routinesParameterType.setId(object.getId());
|
||||
routinesParameterType.setName(object.getLabel());
|
||||
routinesDependencies.add(routinesParameterType);
|
||||
//
|
||||
boolean isLimited = false;
|
||||
org.talend.core.model.properties.Project currProject = getProject().getEmfProject();
|
||||
org.talend.core.model.properties.Project project = ProjectManager.getInstance().getProject(this.property);
|
||||
if (currProject != null && project != null && !currProject.equals(project)) {
|
||||
int currOrdinal = ProjectHelper.getProjectTypeOrdinal(currProject);
|
||||
int ordinal = ProjectHelper.getProjectTypeOrdinal(project);
|
||||
if (currOrdinal > ordinal) {
|
||||
isLimited = true;
|
||||
}
|
||||
}
|
||||
if (!isLimited) {
|
||||
for (IRepositoryViewObject object : routines) {
|
||||
if (routinesToAdd.contains(object.getLabel()) && !routinesAlreadySetup.contains(object.getLabel())) {
|
||||
RoutinesParameterType routinesParameterType = TalendFileFactory.eINSTANCE.createRoutinesParameterType();
|
||||
routinesParameterType.setId(object.getId());
|
||||
routinesParameterType.setName(object.getLabel());
|
||||
routinesDependencies.add(routinesParameterType);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (PersistenceException e) {
|
||||
@@ -2283,7 +2297,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
|
||||
if (EParameterName.PROCESS_TYPE_VERSION.name().equals(pType.getName())) {
|
||||
String jobletVersion = pType.getValue();
|
||||
if (!RelationshipItemBuilder.LATEST_VERSION.equals(jobletVersion)) {
|
||||
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault()
|
||||
IJobletProviderService service = GlobalServiceRegister.getDefault()
|
||||
.getService(IJobletProviderService.class);
|
||||
if (service != null) {
|
||||
Property jobletProperty = service.getJobletComponentItem(component);
|
||||
@@ -2453,7 +2467,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
|
||||
updateAllMappingTypes();
|
||||
nc.setNeedLoadLib(false);
|
||||
if (nc.isJoblet()) {
|
||||
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(
|
||||
IJobletProviderService service = GlobalServiceRegister.getDefault().getService(
|
||||
IJobletProviderService.class);
|
||||
if (service != null) {
|
||||
// reload only for stuido ,because joblet can be changed in the job editor
|
||||
@@ -2467,7 +2481,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
|
||||
NodeContainer nodeContainer = null;
|
||||
if (isJunitContainer) {
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(ITestContainerGEFService.class)) {
|
||||
ITestContainerGEFService testContainerService = (ITestContainerGEFService) GlobalServiceRegister.getDefault()
|
||||
ITestContainerGEFService testContainerService = GlobalServiceRegister.getDefault()
|
||||
.getService(ITestContainerGEFService.class);
|
||||
if (testContainerService != null) {
|
||||
nodeContainer = testContainerService.createJunitContainer(node);
|
||||
@@ -2669,7 +2683,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
|
||||
}
|
||||
}
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(IScdComponentService.class)) {
|
||||
IScdComponentService service = (IScdComponentService) GlobalServiceRegister.getDefault().getService(
|
||||
IScdComponentService service = GlobalServiceRegister.getDefault().getService(
|
||||
IScdComponentService.class);
|
||||
service.updateOutputMetadata(nc, metadataTable);
|
||||
}
|
||||
@@ -2796,7 +2810,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
|
||||
}
|
||||
} else {
|
||||
if (PluginChecker.isJobLetPluginLoaded()) { // bug 12764
|
||||
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(
|
||||
IJobletProviderService service = GlobalServiceRegister.getDefault().getService(
|
||||
IJobletProviderService.class);
|
||||
if (service != null && service.isJobletComponent(source)) {
|
||||
continue;
|
||||
@@ -3322,7 +3336,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
|
||||
if (node instanceof Node) {
|
||||
component = ((Node) node).getDelegateComponent();
|
||||
}
|
||||
String baseName = component.getOriginalName();
|
||||
String baseName = component.getDisplayName();
|
||||
return UniqueNodeNameGenerator.generateUniqueNodeName(baseName, uniqueNodeNameList);
|
||||
}
|
||||
|
||||
@@ -4572,7 +4586,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
|
||||
Item item = ((IProcess2) jobletProcess).getProperty().getItem();
|
||||
if (item instanceof JobletProcessItem) {
|
||||
JobletProcessItem jobletItem = ((JobletProcessItem) item);
|
||||
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(
|
||||
IJobletProviderService service = GlobalServiceRegister.getDefault().getService(
|
||||
IJobletProviderService.class);
|
||||
if (service != null) {
|
||||
service.saveJobletNode(jobletItem, jobletContainer);
|
||||
@@ -4621,7 +4635,7 @@ public class Process extends Element implements IProcess2, IGEFProcess, ILastVer
|
||||
|
||||
IJobletProviderService jobletService = null;
|
||||
if (PluginChecker.isJobLetPluginLoaded()) {
|
||||
jobletService = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(IJobletProviderService.class);
|
||||
jobletService = GlobalServiceRegister.getDefault().getService(IJobletProviderService.class);
|
||||
for (INode node : getGraphicalNodes()) {
|
||||
if (jobletService.isJobletComponent(node)) {
|
||||
listRoutines.addAll(getJobletRoutines(jobletService, node));
|
||||
|
||||
@@ -115,6 +115,7 @@ import org.talend.core.ui.ICDCProviderService;
|
||||
import org.talend.core.ui.IJobletProviderService;
|
||||
import org.talend.core.ui.component.ComponentsFactoryProvider;
|
||||
import org.talend.cwm.helper.SAPBWTableHelper;
|
||||
import org.talend.designer.core.DesignerPlugin;
|
||||
import org.talend.designer.core.i18n.Messages;
|
||||
import org.talend.designer.core.model.components.EParameterName;
|
||||
import org.talend.designer.core.model.components.ElementParameter;
|
||||
@@ -126,6 +127,7 @@ import org.talend.designer.core.model.utils.emf.talendfile.impl.ContextTypeImpl;
|
||||
import org.talend.designer.core.ui.editor.nodes.Node;
|
||||
import org.talend.designer.core.ui.editor.update.UpdateCheckResult;
|
||||
import org.talend.designer.core.ui.editor.update.UpdateManagerUtils;
|
||||
import org.talend.designer.core.ui.preferences.TalendDesignerPrefConstants;
|
||||
import org.talend.designer.core.utils.ConnectionUtil;
|
||||
import org.talend.designer.core.utils.SAPParametersUtils;
|
||||
import org.talend.metadata.managment.ui.utils.ConnectionContextHelper;
|
||||
@@ -308,6 +310,10 @@ public class ProcessUpdateManager extends AbstractUpdateManager {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Boolean propagate = DesignerPlugin.getDefault().getPreferenceStore().getBoolean(TalendDesignerPrefConstants.PROPAGATE_CONTEXT);
|
||||
if(!propagate) {
|
||||
return contextResults;
|
||||
}
|
||||
// only handle added groups
|
||||
Set<String> contextSourceChecked = new HashSet<String>();
|
||||
Set<String> processContextGroups = new HashSet<String>();
|
||||
|
||||
@@ -247,7 +247,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
|
||||
if (obj instanceof RepositoryNode) {
|
||||
RepositoryNode sourceNode = (RepositoryNode) obj;
|
||||
if (PluginChecker.isCDCPluginLoaded()) {
|
||||
ICDCProviderService service = (ICDCProviderService) GlobalServiceRegister.getDefault().getService(
|
||||
ICDCProviderService service = GlobalServiceRegister.getDefault().getService(
|
||||
ICDCProviderService.class);
|
||||
|
||||
if (service != null && (service.isSubscriberTableNode(sourceNode) || service.isSystemSubscriberTable(sourceNode))) {
|
||||
@@ -260,7 +260,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
|
||||
}
|
||||
IOozieService oozieService = null;
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(IOozieService.class)) {
|
||||
oozieService = (IOozieService) GlobalServiceRegister.getDefault().getService(IOozieService.class);
|
||||
oozieService = GlobalServiceRegister.getDefault().getService(IOozieService.class);
|
||||
}
|
||||
if (oozieService != null && oozieService.isOozieNode(sourceNode)) {
|
||||
return false;
|
||||
@@ -268,7 +268,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
|
||||
|
||||
ISAPProviderService sapService = null;
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(ISAPProviderService.class)) {
|
||||
sapService = (ISAPProviderService) GlobalServiceRegister.getDefault().getService(ISAPProviderService.class);
|
||||
sapService = GlobalServiceRegister.getDefault().getService(ISAPProviderService.class);
|
||||
}
|
||||
if (sapService != null && sapService.isSAPNode(sourceNode)) {
|
||||
return false;
|
||||
@@ -1051,7 +1051,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
|
||||
Item item = sourceNode.getObject().getProperty().getItem();
|
||||
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(ITestContainerProviderService.class)) {
|
||||
ITestContainerProviderService testContainerService = (ITestContainerProviderService) GlobalServiceRegister
|
||||
ITestContainerProviderService testContainerService = GlobalServiceRegister
|
||||
.getDefault().getService(ITestContainerProviderService.class);
|
||||
if (testContainerService != null && testContainerService.isTestContainerItem(item)) {
|
||||
continue;
|
||||
@@ -1971,7 +1971,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
|
||||
// special handle hbase to support tpigLoad
|
||||
String hbaseName = EDatabaseTypeName.HBASE.getDisplayName().toUpperCase();
|
||||
if (rcSetting != null && (hbaseName).equals(rcSetting.toString())) {
|
||||
IComponentsService service = (IComponentsService) GlobalServiceRegister.getDefault().getService(
|
||||
IComponentsService service = GlobalServiceRegister.getDefault().getService(
|
||||
IComponentsService.class);
|
||||
String componentProductname = null;
|
||||
Collection<IComponent> components = service.getComponentsFactory().readComponents();
|
||||
@@ -2125,7 +2125,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
|
||||
|
||||
EConnectionType connectionType = EConnectionType.FLOW_MAIN;
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(ICamelDesignerCoreService.class)) {
|
||||
ICamelDesignerCoreService camelService = (ICamelDesignerCoreService) GlobalServiceRegister.getDefault()
|
||||
ICamelDesignerCoreService camelService = GlobalServiceRegister.getDefault()
|
||||
.getService(ICamelDesignerCoreService.class);
|
||||
if (camelService.isRouteBuilderNode(node)) {
|
||||
connectionType = camelService.getTargetConnectionType(node);
|
||||
@@ -2143,7 +2143,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
|
||||
// FIXME perhaps, this is not good fix, need check it later
|
||||
// bug 21411
|
||||
if (PluginChecker.isJobLetPluginLoaded()) {
|
||||
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(
|
||||
IJobletProviderService service = GlobalServiceRegister.getDefault().getService(
|
||||
IJobletProviderService.class);
|
||||
if (service != null && service.isJobletComponent(targetConnection.getTarget())) {
|
||||
if (targetConnection.getTarget() instanceof Node) {
|
||||
@@ -2277,7 +2277,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
|
||||
private boolean isLock(JobletContainerPart part) {
|
||||
INode jobletNode = ((JobletContainer) part.getModel()).getNode();
|
||||
if (PluginChecker.isJobLetPluginLoaded()) {
|
||||
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(
|
||||
IJobletProviderService service = GlobalServiceRegister.getDefault().getService(
|
||||
IJobletProviderService.class);
|
||||
if (service != null) {
|
||||
return service.isLock(jobletNode);
|
||||
@@ -2292,7 +2292,7 @@ public class TalendEditorDropTargetListener extends TemplateTransferDropTargetLi
|
||||
Node jobletNode = ((JobletContainer) part.getModel()).getNode();
|
||||
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
|
||||
if (PluginChecker.isJobLetPluginLoaded()) {
|
||||
IJobletProviderService service = (IJobletProviderService) GlobalServiceRegister.getDefault().getService(
|
||||
IJobletProviderService service = GlobalServiceRegister.getDefault().getService(
|
||||
IJobletProviderService.class);
|
||||
if (service != null) {
|
||||
openEditor = (AbstractMultiPageTalendEditor) service.openJobletEditor(jobletNode, page);
|
||||
@@ -2332,7 +2332,7 @@ class ComponentChooseDialog extends ListDialog {
|
||||
if (UnifiedComponentUtil.isDelegateComponent(component) && typeName != null) {
|
||||
return component.getName() + "(" + typeName + ")";
|
||||
}
|
||||
return component.getName();
|
||||
return component.getDisplayName();
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -133,7 +133,7 @@ public class DesignerPreferencePage extends FieldEditorPreferencePage implements
|
||||
Messages.getString("DesignerPreferencePage.duplicateTestCases"), getFieldEditorParent()); //$NON-NLS-1$
|
||||
addField(duplicateTestCases);
|
||||
}
|
||||
|
||||
|
||||
DirectoryFieldEditor compDefaultFileDir = new DirectoryFieldEditor(TalendDesignerPrefConstants.COMP_DEFAULT_FILE_DIR,
|
||||
Messages.getString("DesignerPreferencePage.defaultFilePathDirectory"), getFieldEditorParent()) {
|
||||
|
||||
|
||||
@@ -65,6 +65,9 @@ public class PerformancePreferencePage extends FieldEditorPreferencePage impleme
|
||||
addField(new BooleanFieldEditor(TalendDesignerPrefConstants.CHECK_ONLY_LAST_VERSION,
|
||||
Messages.getString("PerformancePreferencePage.checkVersion"), //$NON-NLS-1$
|
||||
getFieldEditorParent()));
|
||||
addField(new BooleanFieldEditor(TalendDesignerPrefConstants.PROPAGATE_CONTEXT,
|
||||
Messages.getString("PerformancePreferencePage.propagateContext"), //$NON-NLS-1$
|
||||
getFieldEditorParent()));
|
||||
addField(new BooleanFieldEditor(TalendDesignerPrefConstants.PROPAGATE_CONTEXT_VARIABLE,
|
||||
Messages.getString("PerformancePreferencePage.addOrDeleteVariable"), //$NON-NLS-1$
|
||||
getFieldEditorParent()));
|
||||
@@ -101,6 +104,9 @@ public class PerformancePreferencePage extends FieldEditorPreferencePage impleme
|
||||
addField(new BooleanFieldEditor(TalendDesignerPrefConstants.CHECK_ONLY_LAST_VERSION,
|
||||
Messages.getString("PerformancePreferencePage.checkVersion"), //$NON-NLS-1$
|
||||
getFieldEditorParent()));
|
||||
addField(new BooleanFieldEditor(TalendDesignerPrefConstants.PROPAGATE_CONTEXT,
|
||||
Messages.getString("PerformancePreferencePage.propagateContext"), //$NON-NLS-1$
|
||||
getFieldEditorParent()));
|
||||
addField(new BooleanFieldEditor(TalendDesignerPrefConstants.PROPAGATE_CONTEXT_VARIABLE,
|
||||
Messages.getString("PerformancePreferencePage.addOrDeleteVariable"), //$NON-NLS-1$
|
||||
getFieldEditorParent()));
|
||||
|
||||
@@ -67,6 +67,8 @@ public class TalendDesignerPrefConstants {
|
||||
public static final String EDITOR_LINESTYLE = "editorLineStyle "; //$NON-NLS-1$
|
||||
|
||||
public static final String DUPLICATE_TESTCASE = "duplicateTestCases "; //$NON-NLS-1$
|
||||
|
||||
public static final String PROPAGATE_CONTEXT = "propagateContext"; //$NON-NLS-1$
|
||||
|
||||
public static final String SCHEMA_OPTIONS = "schemaOptions"; //$NON-NLS-1$
|
||||
|
||||
|
||||
@@ -436,7 +436,9 @@ public class JavaProcessUtil {
|
||||
if (var.equals(contextPara.getName())) {
|
||||
String value =
|
||||
context.getContextParameter(contextPara.getName()).getValue();
|
||||
|
||||
if (StringUtils.isBlank(value)) {
|
||||
continue;
|
||||
}
|
||||
if (curParam.getName().equals(EParameterName.DRIVER_JAR.getName())
|
||||
&& value.contains(";")) { //$NON-NLS-1$
|
||||
String[] jars = value.split(";"); //$NON-NLS-1$
|
||||
|
||||
@@ -49,8 +49,7 @@ public class UnifiedComponentUtil {
|
||||
if (elementParameter != null && elementParameter.getValue() != null) {
|
||||
String emfCompName = String.valueOf(elementParameter.getValue());
|
||||
String paletteType = component.getPaletteType();
|
||||
IComponentsService compService = (IComponentsService) GlobalServiceRegister.getDefault()
|
||||
.getService(IComponentsService.class);
|
||||
IComponentsService compService = GlobalServiceRegister.getDefault().getService(IComponentsService.class);
|
||||
IComponent emfComponent = compService.getComponentsFactory().get(emfCompName, paletteType);
|
||||
if (emfComponent != null) {
|
||||
return emfComponent;
|
||||
@@ -64,8 +63,7 @@ public class UnifiedComponentUtil {
|
||||
|
||||
public static boolean isDelegateComponent(IComponent component) {
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(IUnifiedComponentService.class)) {
|
||||
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
|
||||
.getService(IUnifiedComponentService.class);
|
||||
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
|
||||
if (service.isDelegateComponent(component)) {
|
||||
return true;
|
||||
}
|
||||
@@ -75,8 +73,7 @@ public class UnifiedComponentUtil {
|
||||
|
||||
public static IComponent getDelegateComponent(IComponent component) {
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(IUnifiedComponentService.class)) {
|
||||
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
|
||||
.getService(IUnifiedComponentService.class);
|
||||
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
|
||||
return service.getDelegateComponent(component);
|
||||
}
|
||||
return component;
|
||||
@@ -84,8 +81,7 @@ public class UnifiedComponentUtil {
|
||||
|
||||
public static IComponent getDelegateComponent(String componentName, String paletteType) {
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(IUnifiedComponentService.class)) {
|
||||
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
|
||||
.getService(IUnifiedComponentService.class);
|
||||
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
|
||||
return service.getDelegateComponent(componentName, paletteType);
|
||||
}
|
||||
return null;
|
||||
@@ -94,8 +90,7 @@ public class UnifiedComponentUtil {
|
||||
public static void createParameters(INode node, List<IElementParameter> listParams, IComponent delegateComp,
|
||||
IComponent emfComp) {
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(IUnifiedComponentService.class)) {
|
||||
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
|
||||
.getService(IUnifiedComponentService.class);
|
||||
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
|
||||
service.createParameters(node, listParams, delegateComp, emfComp);
|
||||
}
|
||||
}
|
||||
@@ -104,8 +99,7 @@ public class UnifiedComponentUtil {
|
||||
List<? extends IElementParameter> oldParms, List<IMetadataTable> oldMetadataTables,
|
||||
List<INodeConnector> oldConnectors) {
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(IUnifiedComponentService.class)) {
|
||||
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
|
||||
.getService(IUnifiedComponentService.class);
|
||||
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
|
||||
service.switchComponent(node, delegateComponent, oldEmfComponent, oldParms, oldMetadataTables, oldConnectors);
|
||||
}
|
||||
|
||||
@@ -114,8 +108,7 @@ public class UnifiedComponentUtil {
|
||||
public static List<IComponent> filterUnifiedComponent(RepositoryComponentSetting setting, List<IComponent> componentList) {
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(IUnifiedComponentService.class)) {
|
||||
List<IComponent> filtedList = new ArrayList<IComponent>();
|
||||
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
|
||||
.getService(IUnifiedComponentService.class);
|
||||
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
|
||||
IComponentsHandler componentsHandler = ComponentsFactoryProvider.getInstance().getComponentsHandler();
|
||||
filtedList.addAll(componentList);
|
||||
for (IComponent component : componentList) {
|
||||
@@ -149,12 +142,10 @@ public class UnifiedComponentUtil {
|
||||
|
||||
public static IComponent getEmfComponent(IComponentName setting, IComponent selectedComponent) {
|
||||
if (isDelegateComponent(selectedComponent)) {
|
||||
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
|
||||
.getService(IUnifiedComponentService.class);
|
||||
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
|
||||
String paletteType = selectedComponent.getPaletteType();
|
||||
String emfCompName = service.getUnifiedComponetName4DndFromRepository(setting, selectedComponent);
|
||||
IComponentsService compService = (IComponentsService) GlobalServiceRegister.getDefault()
|
||||
.getService(IComponentsService.class);
|
||||
IComponentsService compService = GlobalServiceRegister.getDefault().getService(IComponentsService.class);
|
||||
IComponent emfComponent = compService.getComponentsFactory().get(emfCompName, paletteType);
|
||||
if (emfComponent != null) {
|
||||
return emfComponent;
|
||||
@@ -167,8 +158,7 @@ public class UnifiedComponentUtil {
|
||||
|
||||
public static String getUnifiedComponentDisplayName(IComponent delegateComponent, String emfComponent) {
|
||||
if (isDelegateComponent(delegateComponent)) {
|
||||
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
|
||||
.getService(IUnifiedComponentService.class);
|
||||
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
|
||||
return service.getUnifiedCompDisplayName(delegateComponent, emfComponent);
|
||||
}
|
||||
return delegateComponent.getName();
|
||||
@@ -194,17 +184,15 @@ public class UnifiedComponentUtil {
|
||||
|
||||
public static String getComponentDisplayNameForPalette(IComponent delegateComponent, String keyWord) {
|
||||
if (isDelegateComponent(delegateComponent)) {
|
||||
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
|
||||
.getService(IUnifiedComponentService.class);
|
||||
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
|
||||
return service.getComponentDisplayNameForPalette(delegateComponent, keyWord);
|
||||
}
|
||||
return delegateComponent.getName();
|
||||
return delegateComponent.getDisplayName();
|
||||
}
|
||||
|
||||
public static IComponent getUnifiedComponentByFilter(IComponent delegateComponent, String filter) {
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(IUnifiedComponentService.class)) {
|
||||
IUnifiedComponentService service = (IUnifiedComponentService) GlobalServiceRegister.getDefault()
|
||||
.getService(IUnifiedComponentService.class);
|
||||
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);
|
||||
return service.getUnifiedComponentByFilter(delegateComponent, filter);
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -51,6 +51,14 @@
|
||||
<include>${talend.job.path}/**</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
|
||||
<fileSet><!-- add context resources -->
|
||||
<directory>${resources.path}</directory>
|
||||
<outputDirectory>${file.separator}</outputDirectory>
|
||||
<includes>
|
||||
<include>${talend.job.path}/**</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
|
||||
<fileSet> <!-- add provided-lib -->
|
||||
<directory>${current.bundle.resources.dir}/provided-lib</directory>
|
||||
|
||||
@@ -15,6 +15,7 @@ package org.talend.designer.runprocess;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
@@ -31,7 +32,6 @@ import org.talend.commons.exception.CommonExceptionHandler;
|
||||
import org.talend.commons.exception.ExceptionHandler;
|
||||
import org.talend.commons.exception.PersistenceException;
|
||||
import org.talend.commons.exception.SystemException;
|
||||
import org.talend.commons.ui.runtime.exception.MessageBoxExceptionHandler;
|
||||
import org.talend.core.CorePlugin;
|
||||
import org.talend.core.model.process.IContainerEntry;
|
||||
import org.talend.core.model.process.IProcess;
|
||||
@@ -67,9 +67,10 @@ public class JobErrorsChecker {
|
||||
}
|
||||
try {
|
||||
Item item = null;
|
||||
IProxyRepositoryFactory proxyRepositoryFactory = CorePlugin.getDefault().getRepositoryService()
|
||||
.getProxyRepositoryFactory();
|
||||
ITalendSynchronizer synchronizer = CorePlugin.getDefault().getCodeGeneratorService().createRoutineSynchronizer();
|
||||
IProxyRepositoryFactory proxyRepositoryFactory =
|
||||
CorePlugin.getDefault().getRepositoryService().getProxyRepositoryFactory();
|
||||
ITalendSynchronizer synchronizer =
|
||||
CorePlugin.getDefault().getCodeGeneratorService().createRoutineSynchronizer();
|
||||
|
||||
Set<String> jobIds = new HashSet<String>();
|
||||
HashSet<JobInfo> jobInfos = new HashSet<>();
|
||||
@@ -94,14 +95,15 @@ public class JobErrorsChecker {
|
||||
}
|
||||
jobIds.add(item.getProperty().getId());
|
||||
|
||||
// Property property = process.getProperty();
|
||||
Problems.addJobRoutineFile(sourceFile, ProblemType.JOB, item, true);
|
||||
}
|
||||
if (!CommonsPlugin.isHeadless()) {
|
||||
List<IRepositoryViewObject> routinesObjects = proxyRepositoryFactory.getAll(ERepositoryObjectType.ROUTINES, false);
|
||||
Set<String> dependentRoutines = LastGenerationInfo.getInstance().getRoutinesNeededWithSubjobPerJob(
|
||||
LastGenerationInfo.getInstance().getLastMainJob().getJobId(),
|
||||
LastGenerationInfo.getInstance().getLastMainJob().getJobVersion());
|
||||
List<IRepositoryViewObject> routinesObjects =
|
||||
proxyRepositoryFactory.getAll(ERepositoryObjectType.ROUTINES, false);
|
||||
Set<String> dependentRoutines = LastGenerationInfo
|
||||
.getInstance()
|
||||
.getRoutinesNeededWithSubjobPerJob(LastGenerationInfo.getInstance().getLastMainJob().getJobId(),
|
||||
LastGenerationInfo.getInstance().getLastMainJob().getJobVersion());
|
||||
if (routinesObjects != null) {
|
||||
for (IRepositoryViewObject obj : routinesObjects) {
|
||||
Property property = obj.getProperty();
|
||||
@@ -110,7 +112,7 @@ public class JobErrorsChecker {
|
||||
IFile routineFile = synchronizer.getFile(routinesitem);
|
||||
Problems.addJobRoutineFile(routineFile, ProblemType.ROUTINE, routinesitem, true);
|
||||
} else {
|
||||
Problems.clearAllComliationError(property.getLabel());
|
||||
Problems.clearAllComliationError(property.getLabel());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -153,11 +155,11 @@ public class JobErrorsChecker {
|
||||
|
||||
public static boolean checkExportErrors(IStructuredSelection selection, boolean isJob) {
|
||||
if (!selection.isEmpty()) {
|
||||
final ITalendSynchronizer synchronizer = CorePlugin.getDefault().getCodeGeneratorService()
|
||||
.createRoutineSynchronizer();
|
||||
final ITalendSynchronizer synchronizer =
|
||||
CorePlugin.getDefault().getCodeGeneratorService().createRoutineSynchronizer();
|
||||
Set<String> jobIds = new HashSet<String>();
|
||||
|
||||
List<RepositoryNode> nodes = selection.toList();
|
||||
List<RepositoryNode> nodes = extractNodes(selection);
|
||||
if (nodes.size() > 1) {
|
||||
// in case it's a multiple export, only check the status of the latest job to export
|
||||
for (RepositoryNode node : nodes) {
|
||||
@@ -189,22 +191,35 @@ public class JobErrorsChecker {
|
||||
}
|
||||
if (ret) {
|
||||
if (isJob) {
|
||||
throw new ProcessorException(Messages.getString("JobErrorsChecker_compile_errors") + '\n' + //$NON-NLS-1$
|
||||
Messages.getString("JobErrorsChecker_compile_error_content", item.getProperty() //$NON-NLS-1$
|
||||
.getLabel()) + '\n' + message);
|
||||
throw new ProcessorException(
|
||||
Messages.getString("JobErrorsChecker_compile_errors") + '\n' + //$NON-NLS-1$
|
||||
Messages
|
||||
.getString("JobErrorsChecker_compile_error_content", //$NON-NLS-1$
|
||||
item.getProperty().getLabel())
|
||||
+ '\n' + message);
|
||||
} else {
|
||||
throw new ProcessorException(Messages.getString("CamelJobErrorsChecker_compile_errors") + '\n' + //$NON-NLS-1$
|
||||
Messages.getString("CamelJobErrorsChecker_compile_error_content", item.getProperty() //$NON-NLS-1$
|
||||
.getLabel()) + '\n' + message);
|
||||
throw new ProcessorException(
|
||||
Messages.getString("CamelJobErrorsChecker_compile_errors") + '\n' + //$NON-NLS-1$
|
||||
Messages
|
||||
.getString("CamelJobErrorsChecker_compile_error_content", //$NON-NLS-1$
|
||||
item.getProperty().getLabel())
|
||||
+ '\n' + message);
|
||||
}
|
||||
}
|
||||
|
||||
jobIds.add(item.getProperty().getId());
|
||||
|
||||
Problems.addRoutineFile(sourceFile, ProblemType.JOB, item.getProperty().getLabel(), item.getProperty()
|
||||
.getVersion(), true);
|
||||
Problems
|
||||
.addRoutineFile(sourceFile, ProblemType.JOB, item.getProperty().getLabel(),
|
||||
item.getProperty().getVersion(), true);
|
||||
} catch (Exception e) {
|
||||
MessageBoxExceptionHandler.process(e);
|
||||
CommonExceptionHandler.process(e);
|
||||
if (CommonsPlugin.isHeadless()) {
|
||||
// [TESB-8953] avoid SWT invoked and also throw Exception let Command Executor to have
|
||||
// detailed
|
||||
// trace in command status.
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -214,13 +229,12 @@ public class JobErrorsChecker {
|
||||
try {
|
||||
checkLastGenerationHasCompilationError(true);
|
||||
} catch (Exception e) {
|
||||
CommonExceptionHandler.process(e);
|
||||
if (CommonsPlugin.isHeadless()) {
|
||||
CommonExceptionHandler.process(e);
|
||||
// [TESB-8953] avoid SWT invoked and also throw Exception let Command Executor to have detailed
|
||||
// trace in command status.
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
MessageBoxExceptionHandler.process(e);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -249,7 +263,12 @@ public class JobErrorsChecker {
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
MessageBoxExceptionHandler.process(e);
|
||||
CommonExceptionHandler.process(e);
|
||||
if (CommonsPlugin.isHeadless()) {
|
||||
// [TESB-8953] avoid SWT invoked and also throw Exception let Command Executor to have detailed
|
||||
// trace in command status.
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -264,9 +283,10 @@ public class JobErrorsChecker {
|
||||
boolean hasError = false;
|
||||
boolean isJob = true;
|
||||
Item item = null;
|
||||
final IProxyRepositoryFactory proxyRepositoryFactory = CorePlugin.getDefault().getRepositoryService()
|
||||
.getProxyRepositoryFactory();
|
||||
final ITalendSynchronizer synchronizer = CorePlugin.getDefault().getCodeGeneratorService().createRoutineSynchronizer();
|
||||
final IProxyRepositoryFactory proxyRepositoryFactory =
|
||||
CorePlugin.getDefault().getRepositoryService().getProxyRepositoryFactory();
|
||||
final ITalendSynchronizer synchronizer =
|
||||
CorePlugin.getDefault().getCodeGeneratorService().createRoutineSynchronizer();
|
||||
Integer line = null;
|
||||
String errorMessage = null;
|
||||
try {
|
||||
@@ -299,7 +319,7 @@ public class JobErrorsChecker {
|
||||
// one job
|
||||
final IResource[] members = file.getParent().members();
|
||||
for (IResource member : members) {
|
||||
if (member instanceof IFile && "java".equals(member.getFileExtension())) {
|
||||
if (member instanceof IFile && "java".equals(member.getFileExtension())) { //$NON-NLS-1$
|
||||
IMarker[] markers = ((IFile) member).findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_ONE);
|
||||
for (IMarker marker : markers) {
|
||||
Integer lineNr = (Integer) marker.getAttribute(IMarker.LINE_NUMBER);
|
||||
@@ -322,8 +342,9 @@ public class JobErrorsChecker {
|
||||
}
|
||||
}
|
||||
if (updateProblemsView) {
|
||||
Problems.addRoutineFile(file, ProblemType.JOB, item.getProperty().getLabel(),
|
||||
item.getProperty().getVersion(), true);
|
||||
Problems
|
||||
.addRoutineFile(file, ProblemType.JOB, item.getProperty().getLabel(),
|
||||
item.getProperty().getVersion(), true);
|
||||
}
|
||||
if (hasError) {
|
||||
break;
|
||||
@@ -335,17 +356,17 @@ public class JobErrorsChecker {
|
||||
}
|
||||
if (hasError && item != null) {
|
||||
if (isJob) {
|
||||
throw new ProcessorException(Messages.getString("JobErrorsChecker_compile_errors") + " " + '\n' + //$NON-NLS-1$
|
||||
Messages.getString("JobErrorsChecker_compile_error_message", item.getProperty().getLabel()) + '\n' //$NON-NLS-1$
|
||||
+ Messages.getString("JobErrorsChecker_compile_error_line") + ':' + ' ' + line + '\n' //$NON-NLS-1$
|
||||
+ Messages.getString("JobErrorsChecker_compile_error_detailmessage") + ':' + ' ' + errorMessage + '\n' //$NON-NLS-1$
|
||||
+ Messages.getString("JobErrorsChecker_compile_error_jvmmessage")); //$NON-NLS-1$
|
||||
throw new ProcessorException(Messages.getString("JobErrorsChecker_compile_errors") + ' ' + '\n' + //$NON-NLS-1$
|
||||
Messages.getString("JobErrorsChecker_compile_error_message", item.getProperty().getLabel()) //$NON-NLS-1$
|
||||
+ '\n' + Messages.getString("JobErrorsChecker_compile_error_line") + ':' + ' ' + line + '\n' //$NON-NLS-1$
|
||||
+ Messages.getString("JobErrorsChecker_compile_error_detailmessage") + ':' + ' ' + errorMessage //$NON-NLS-1$
|
||||
+ '\n' + Messages.getString("JobErrorsChecker_compile_error_jvmmessage")); //$NON-NLS-1$
|
||||
} else {
|
||||
throw new ProcessorException(Messages.getString("CamelJobErrorsChecker_compile_errors") + " " + '\n' + //$NON-NLS-1$
|
||||
Messages.getString("JobErrorsChecker_compile_error_message", item.getProperty().getLabel()) + '\n' //$NON-NLS-1$
|
||||
+ Messages.getString("JobErrorsChecker_compile_error_line") + ':' + ' ' + line + '\n' //$NON-NLS-1$
|
||||
+ Messages.getString("JobErrorsChecker_compile_error_detailmessage") + ':' + ' ' + errorMessage + '\n' //$NON-NLS-1$
|
||||
+ Messages.getString("JobErrorsChecker_compile_error_jvmmessage")); //$NON-NLS-1$
|
||||
throw new ProcessorException(Messages.getString("CamelJobErrorsChecker_compile_errors") + ' ' + '\n' + //$NON-NLS-1$
|
||||
Messages.getString("JobErrorsChecker_compile_error_message", item.getProperty().getLabel()) //$NON-NLS-1$
|
||||
+ '\n' + Messages.getString("JobErrorsChecker_compile_error_line") + ':' + ' ' + line + '\n' //$NON-NLS-1$
|
||||
+ Messages.getString("JobErrorsChecker_compile_error_detailmessage") + ':' + ' ' + errorMessage //$NON-NLS-1$
|
||||
+ '\n' + Messages.getString("JobErrorsChecker_compile_error_jvmmessage")); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
|
||||
@@ -356,6 +377,7 @@ public class JobErrorsChecker {
|
||||
}
|
||||
|
||||
private static void checkRoutinesCompilationError() throws ProcessorException {
|
||||
|
||||
if(LastGenerationInfo.getInstance() == null || LastGenerationInfo.getInstance().getLastMainJob() == null) {
|
||||
return;
|
||||
}
|
||||
@@ -368,32 +390,35 @@ public class JobErrorsChecker {
|
||||
for (Problem p : errors) {
|
||||
if (p instanceof TalendProblem) {
|
||||
TalendProblem talendProblem = (TalendProblem) p;
|
||||
if (talendProblem.getType() == ProblemType.ROUTINE && dependentRoutines.contains(talendProblem.getJavaUnitName())) {
|
||||
if (talendProblem.getType() == ProblemType.ROUTINE
|
||||
&& dependentRoutines.contains(talendProblem.getJavaUnitName())) {
|
||||
int line = talendProblem.getLineNumber();
|
||||
String errorMessage = talendProblem.getDescription();
|
||||
throw new ProcessorException(Messages.getString(
|
||||
"JobErrorsChecker_routines_compile_errors", talendProblem.getJavaUnitName()) + '\n'//$NON-NLS-1$
|
||||
+ Messages.getString("JobErrorsChecker_compile_error_line") + ':' + ' ' + line + '\n' //$NON-NLS-1$
|
||||
+ Messages.getString("JobErrorsChecker_compile_error_detailmessage") + ':' + ' ' + errorMessage); //$NON-NLS-1$
|
||||
throw new ProcessorException(Messages
|
||||
.getString("JobErrorsChecker_routines_compile_errors", talendProblem.getJavaUnitName()) //$NON-NLS-1$
|
||||
+ '\n' + Messages.getString("JobErrorsChecker_compile_error_line") + ':' + ' ' + line + '\n' //$NON-NLS-1$
|
||||
+ Messages.getString("JobErrorsChecker_compile_error_detailmessage") + ':' + ' ' //$NON-NLS-1$
|
||||
+ errorMessage);
|
||||
}
|
||||
} else {
|
||||
// for now not to check components errors when building jobs in studio/commandline
|
||||
// throw new ProcessorException(Messages.getString("JobErrorsChecker_jobDesign_errors", p.getType().getTypeName(), //$NON-NLS-1$
|
||||
// p.getJobInfo().getJobName(), p.getComponentName(), p.getDescription()));
|
||||
// throw new ProcessorException(Messages.getString("JobErrorsChecker_jobDesign_errors",
|
||||
// p.getType().getTypeName(), //$NON-NLS-1$
|
||||
// p.getJobInfo().getJobName(), p.getComponentName(), p.getDescription()));
|
||||
}
|
||||
}
|
||||
|
||||
// if can't find the routines problem, try to check the file directly(mainly for commandline)
|
||||
try {
|
||||
final ITalendSynchronizer synchronizer = CorePlugin.getDefault().getCodeGeneratorService()
|
||||
.createRoutineSynchronizer();
|
||||
final ITalendSynchronizer synchronizer =
|
||||
CorePlugin.getDefault().getCodeGeneratorService().createRoutineSynchronizer();
|
||||
IProxyRepositoryFactory factory = CorePlugin.getDefault().getProxyRepositoryFactory();
|
||||
List<IRepositoryViewObject> routinesObjects = factory.getAll(ERepositoryObjectType.ROUTINES, false);
|
||||
if (routinesObjects != null) {
|
||||
for (IRepositoryViewObject obj : routinesObjects) {
|
||||
Property property = obj.getProperty();
|
||||
if (!dependentRoutines.contains(property.getLabel())) {
|
||||
continue;
|
||||
continue;
|
||||
}
|
||||
Item routinesitem = property.getItem();
|
||||
IFile routinesFile = synchronizer.getFile(routinesitem);
|
||||
@@ -407,10 +432,12 @@ public class JobErrorsChecker {
|
||||
if (lineNr != null && message != null && severity != null && start != null && end != null) {
|
||||
switch (severity) {
|
||||
case IMarker.SEVERITY_ERROR:
|
||||
throw new ProcessorException(
|
||||
Messages.getString("JobErrorsChecker_routines_compile_errors", property.getLabel()) + '\n'//$NON-NLS-1$
|
||||
+ Messages.getString("JobErrorsChecker_compile_error_line") + ':' + ' ' + lineNr + '\n' //$NON-NLS-1$
|
||||
+ Messages.getString("JobErrorsChecker_compile_error_detailmessage") + ':' + ' ' + message); //$NON-NLS-1$
|
||||
throw new ProcessorException(Messages
|
||||
.getString("JobErrorsChecker_routines_compile_errors", property.getLabel()) //$NON-NLS-1$
|
||||
+ '\n' + Messages.getString("JobErrorsChecker_compile_error_line") + ':' + ' ' //$NON-NLS-1$
|
||||
+ lineNr + '\n'
|
||||
+ Messages.getString("JobErrorsChecker_compile_error_detailmessage") //$NON-NLS-1$
|
||||
+ ':' + ' ' + message);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -427,7 +454,6 @@ public class JobErrorsChecker {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void checkShadowFileError(IFile file) throws ProcessorException {
|
||||
try {
|
||||
IMarker[] markers = file.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_ONE);
|
||||
@@ -454,9 +480,10 @@ public class JobErrorsChecker {
|
||||
}
|
||||
|
||||
protected static void checkSubJobMultipleVersionsError() throws ProcessorException {
|
||||
if(LastGenerationInfo.getInstance() == null || LastGenerationInfo.getInstance().getLastGeneratedjobs() == null) {
|
||||
return;
|
||||
}
|
||||
if (LastGenerationInfo.getInstance() == null
|
||||
|| LastGenerationInfo.getInstance().getLastGeneratedjobs() == null) {
|
||||
return;
|
||||
}
|
||||
Set<JobInfo> jobInfos = LastGenerationInfo.getInstance().getLastGeneratedjobs();
|
||||
Map<String, Set<String>> jobInfoMap = new HashMap<>();
|
||||
for (JobInfo jobInfo : jobInfos) {
|
||||
@@ -483,4 +510,14 @@ public class JobErrorsChecker {
|
||||
}
|
||||
}
|
||||
|
||||
private static List<RepositoryNode> extractNodes(IStructuredSelection selection) {
|
||||
List<RepositoryNode> nodes = new ArrayList<>();
|
||||
for (Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {
|
||||
Object o = iterator.next();
|
||||
if (o instanceof RepositoryNode)
|
||||
nodes.add((RepositoryNode) o);
|
||||
}
|
||||
return nodes;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -95,6 +95,7 @@ import org.talend.commons.exception.SystemException;
|
||||
import org.talend.commons.ui.runtime.exception.RuntimeExceptionHandler;
|
||||
import org.talend.commons.utils.generation.JavaUtils;
|
||||
import org.talend.commons.utils.resource.FileExtensions;
|
||||
import org.talend.commons.utils.system.EnvironmentUtils;
|
||||
import org.talend.core.CorePlugin;
|
||||
import org.talend.core.GlobalServiceRegister;
|
||||
import org.talend.core.PluginChecker;
|
||||
@@ -273,7 +274,7 @@ public class JavaProcessor extends AbstractJavaProcessor implements IJavaBreakpo
|
||||
}
|
||||
|
||||
private boolean isGuessSchemaJob(Property property) {
|
||||
return "ID".equals(property.getId()) && "Mock_job_for_Guess_schema".equals(property.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
return property != null && "ID".equals(property.getId()) && "Mock_job_for_Guess_schema".equals(property.getLabel()); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1180,7 +1181,17 @@ public class JavaProcessor extends AbstractJavaProcessor implements IJavaBreakpo
|
||||
list.addAll(Arrays.asList(cmd2));
|
||||
return list.toArray(new String[0]);
|
||||
} else {
|
||||
return cmd2;
|
||||
List<String> asList = convertArgsToList(cmd2);
|
||||
if ((!isExternalUse() && isStandardJob()) || isGuessSchemaJob(property)) {
|
||||
String localM2Path = "-Dtalend.component.manager.m2.repository="; //$NON-NLS-1$
|
||||
if (EnvironmentUtils.isWindowsSystem()) {
|
||||
localM2Path = localM2Path + PomUtil.getLocalRepositoryPath().replaceAll("%20", " "); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
} else {
|
||||
localM2Path = localM2Path + PomUtil.getLocalRepositoryPath();
|
||||
}
|
||||
asList.add(3, localM2Path);
|
||||
}
|
||||
return asList.toArray(new String[0]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1914,6 +1925,42 @@ public class JavaProcessor extends AbstractJavaProcessor implements IJavaBreakpo
|
||||
copyEsbConfigFile(esbConfigsSourceFolder, esbConfigsTargetFolder, "oidc.properties"); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
ITalendProcessJavaProject tProcessJvaProject = this.getTalendJavaProject();
|
||||
if (tProcessJvaProject == null) {
|
||||
return;
|
||||
}
|
||||
Item item = property.getItem();
|
||||
IFolder externalResourcesFolder = tProcessJvaProject.getExternalResourcesFolder();
|
||||
IFolder resourcesFolder = tProcessJvaProject.getResourcesFolder();
|
||||
String jobClassPackageFolder = JavaResourcesHelper.getJobClassPackageFolder(item, false);
|
||||
IPath jobContextFolderPath = new Path(jobClassPackageFolder).append(JavaUtils.JAVA_CONTEXTS_DIRECTORY);
|
||||
|
||||
IFolder extResourcePath = externalResourcesFolder.getFolder(jobContextFolderPath);
|
||||
IFolder resourcesPath = resourcesFolder.getFolder(jobContextFolderPath);
|
||||
|
||||
if(!resourcesPath.exists()) {
|
||||
tProcessJvaProject.createSubFolder(null, resourcesFolder, jobContextFolderPath.toString());
|
||||
}
|
||||
|
||||
resourcesPath.refreshLocal(IResource.DEPTH_INFINITE, null);
|
||||
|
||||
for (IResource resource : extResourcePath.members()) {
|
||||
IFile context = resourcesPath.getFile(resource.getName());
|
||||
|
||||
if (context.exists()) {
|
||||
context.delete(true, null);
|
||||
}
|
||||
resource.copy(context.getFullPath(), true, null);
|
||||
}
|
||||
|
||||
resourcesPath.refreshLocal(IResource.DEPTH_INFINITE, null);
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -14,10 +14,12 @@ package org.talend.designer.runprocess.maven;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.resources.IFolder;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
@@ -26,15 +28,20 @@ import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
import org.talend.commons.exception.ExceptionHandler;
|
||||
import org.talend.commons.exception.PersistenceException;
|
||||
import org.talend.commons.ui.runtime.CommonUIPlugin;
|
||||
import org.talend.commons.utils.generation.JavaUtils;
|
||||
import org.talend.commons.utils.resource.FileExtensions;
|
||||
import org.talend.core.GlobalServiceRegister;
|
||||
import org.talend.core.IESBService;
|
||||
import org.talend.core.model.process.IProcess;
|
||||
import org.talend.core.model.process.JobInfo;
|
||||
import org.talend.core.model.process.ProcessUtils;
|
||||
import org.talend.core.model.properties.Property;
|
||||
import org.talend.core.model.repository.ERepositoryObjectType;
|
||||
import org.talend.core.model.repository.IRepositoryViewObject;
|
||||
import org.talend.core.model.utils.JavaResourcesHelper;
|
||||
import org.talend.core.repository.model.ProxyRepositoryFactory;
|
||||
import org.talend.core.repository.utils.ItemResourceUtil;
|
||||
import org.talend.core.runtime.process.ITalendProcessJavaProject;
|
||||
import org.talend.core.runtime.process.LastGenerationInfo;
|
||||
@@ -58,6 +65,7 @@ import org.talend.designer.runprocess.ProcessorException;
|
||||
import org.talend.designer.runprocess.ProcessorUtilities;
|
||||
import org.talend.designer.runprocess.java.JavaProcessor;
|
||||
import org.talend.repository.i18n.Messages;
|
||||
import org.talend.repository.model.IProxyRepositoryFactory;
|
||||
|
||||
/**
|
||||
* created by ggu on 2 Feb 2015 Detailled comment
|
||||
@@ -303,6 +311,30 @@ public class MavenJavaProcessor extends JavaProcessor {
|
||||
|
||||
buildTypeName = exportType != null ? exportType.toString() : null;
|
||||
|
||||
if (StringUtils.isBlank(buildTypeName) && GlobalServiceRegister.getDefault().isServiceRegistered(IESBService.class)) {
|
||||
List<IRepositoryViewObject> serviceRepoList = null;
|
||||
|
||||
IESBService service = (IESBService) GlobalServiceRegister.getDefault().getService(IESBService.class);
|
||||
|
||||
try {
|
||||
IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
|
||||
serviceRepoList = factory.getAll(ERepositoryObjectType.valueOf(ERepositoryObjectType.class, "SERVICES"));
|
||||
|
||||
for (IRepositoryViewObject serviceItem : serviceRepoList) {
|
||||
if (service != null) {
|
||||
List<String> jobIds = service.getSerivceRelatedJobIds(serviceItem.getProperty().getItem());
|
||||
if (jobIds.contains(itemProperty.getId())) {
|
||||
buildTypeName = "OSGI";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} catch (PersistenceException e) {
|
||||
ExceptionHandler.process(e);
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, Object> parameters = new HashMap<String, Object>();
|
||||
parameters.put(IBuildParametes.ITEM, itemProperty.getItem());
|
||||
parameters.put(IBuildPomCreatorParameters.PROCESSOR, this);
|
||||
|
||||
@@ -577,10 +577,11 @@ LoginProjectPage.previous=Previous
|
||||
LoginProjectPage.finish=Finish
|
||||
LoginProjectPage.remote=Remote
|
||||
LoginProjectPage.remote.talend=Remote TAC
|
||||
LoginProjectPage.cloud.us=Cloud US
|
||||
LoginProjectPage.cloud.eu=Cloud EU
|
||||
LoginProjectPage.cloud.apac=Cloud APAC
|
||||
LoginProjectPage.cloud.custom=Cloud Custom
|
||||
LoginProjectPage.cloud.aws_us=AWS - USA East
|
||||
LoginProjectPage.cloud.aws_eu=AWS - Europe
|
||||
LoginProjectPage.cloud.aws_apac=AWS - Asia Pacific
|
||||
LoginProjectPage.cloud.usa_west=Azure - USA West
|
||||
LoginProjectPage.cloud.cloud_custom=Cloud - Custom
|
||||
LoginProjectPage.local=Local
|
||||
LoginProjectPage.restart=Restart
|
||||
LoginProjectPage.update=Update
|
||||
|
||||
@@ -241,16 +241,18 @@ public class LoginHelper {
|
||||
}
|
||||
|
||||
/**
|
||||
* if the connection is Cloud US/EU/APAC/Custom
|
||||
* if the connection is AWS – USA East/AWS – Europe/AWS – Asia Pacific/Azure – USA West/Cloud – Custom
|
||||
*
|
||||
* @param connectionBean
|
||||
* @return true if connection is Cloud US or Cloud EU or Cloud APAC or Cloud Custom
|
||||
* @return true if connection is USA East or AWS – Europe or AWS – Asia Pacific or Azure – USA West or Cloud –
|
||||
* Custom
|
||||
*/
|
||||
public static boolean isCloudConnection(ConnectionBean connectionBean) {
|
||||
if (connectionBean == null) {
|
||||
return false;
|
||||
}
|
||||
return isCloudUSConnection(connectionBean) || isCloudEUConnection(connectionBean) || isCloudAPACConnection(connectionBean)
|
||||
return isCloudUSConnection(connectionBean) || isCloudUSWestConnection(connectionBean)
|
||||
|| isCloudEUConnection(connectionBean) || isCloudAPACConnection(connectionBean)
|
||||
|| isCloudCustomConnection(connectionBean);
|
||||
}
|
||||
|
||||
@@ -275,6 +277,13 @@ public class LoginHelper {
|
||||
return RepositoryConstants.REPOSITORY_CLOUD_APAC_ID.equals(connectionBean.getRepositoryId());
|
||||
}
|
||||
|
||||
public static boolean isCloudUSWestConnection(ConnectionBean connectionBean) {
|
||||
if (connectionBean == null) {
|
||||
return false;
|
||||
}
|
||||
return RepositoryConstants.REPOSITORY_CLOUD_US_WEST_ID.equals(connectionBean.getRepositoryId());
|
||||
}
|
||||
|
||||
public static boolean isCloudCustomConnection(ConnectionBean connectionBean) {
|
||||
if (connectionBean == null) {
|
||||
return false;
|
||||
@@ -284,7 +293,7 @@ public class LoginHelper {
|
||||
|
||||
public static boolean isCloudRepository(String repositoryId) {
|
||||
return isCloudUSRepository(repositoryId) || isCloudEURepository(repositoryId) || isCloudAPACRepository(repositoryId)
|
||||
|| isCloudCustomRepository(repositoryId);
|
||||
|| isCloudCustomRepository(repositoryId) || isCloudUSWestRepository(repositoryId);
|
||||
}
|
||||
|
||||
public static boolean isCloudUSRepository(String repositoryId) {
|
||||
@@ -299,6 +308,10 @@ public class LoginHelper {
|
||||
return RepositoryConstants.REPOSITORY_CLOUD_APAC_ID.equals(repositoryId);
|
||||
}
|
||||
|
||||
public static boolean isCloudUSWestRepository(String repositoryId) {
|
||||
return RepositoryConstants.REPOSITORY_CLOUD_US_WEST_ID.equals(repositoryId);
|
||||
}
|
||||
|
||||
public static boolean isCloudCustomRepository(String repositoryId) {
|
||||
return RepositoryConstants.REPOSITORY_CLOUD_CUSTOM_ID.equals(repositoryId);
|
||||
}
|
||||
|
||||
@@ -2088,13 +2088,15 @@ public class LoginProjectPage extends AbstractLoginActionPage {
|
||||
}
|
||||
connectionName = connectionName + " (" + remoteLabel; //$NON-NLS-1$
|
||||
} else if (LoginHelper.isCloudUSConnection(prj)) {
|
||||
connectionName = connectionName + " (" + Messages.getString("LoginProjectPage.cloud.us"); //$NON-NLS-1$//$NON-NLS-2$
|
||||
connectionName = connectionName + " (" + Messages.getString("LoginProjectPage.cloud.aws_us"); //$NON-NLS-1$//$NON-NLS-2$
|
||||
} else if (LoginHelper.isCloudEUConnection(prj)) {
|
||||
connectionName = connectionName + " (" + Messages.getString("LoginProjectPage.cloud.eu"); //$NON-NLS-1$//$NON-NLS-2$
|
||||
connectionName = connectionName + " (" + Messages.getString("LoginProjectPage.cloud.aws_eu"); //$NON-NLS-1$//$NON-NLS-2$
|
||||
} else if (LoginHelper.isCloudAPACConnection(prj)) {
|
||||
connectionName = connectionName + " (" + Messages.getString("LoginProjectPage.cloud.apac"); //$NON-NLS-1$//$NON-NLS-2$
|
||||
connectionName = connectionName + " (" + Messages.getString("LoginProjectPage.cloud.aws_apac"); //$NON-NLS-1$//$NON-NLS-2$
|
||||
} else if (LoginHelper.isCloudUSWestConnection(prj)) {
|
||||
connectionName = connectionName + " (" + Messages.getString("LoginProjectPage.cloud.usa_west"); //$NON-NLS-1$//$NON-NLS-2$
|
||||
} else if (LoginHelper.isCloudCustomConnection(prj)) {
|
||||
connectionName = connectionName + " (" + Messages.getString("LoginProjectPage.cloud.custom"); //$NON-NLS-1$//$NON-NLS-2$
|
||||
connectionName = connectionName + " (" + Messages.getString("LoginProjectPage.cloud.cloud_custom"); //$NON-NLS-1$//$NON-NLS-2$
|
||||
} else {
|
||||
connectionName = connectionName + " (" + Messages.getString("LoginProjectPage.local"); //$NON-NLS-1$//$NON-NLS-2$
|
||||
}
|
||||
|
||||
@@ -270,6 +270,7 @@ public class JavaJobScriptsExportWSWizardPage extends JavaJobScriptsExportWizard
|
||||
data.widthHint = SIZING_TEXT_FIELD_WIDTH;
|
||||
destinationNameField.setLayoutData(data);
|
||||
destinationNameField.setFont(font);
|
||||
destinationNameField.setTextDirection(SWT.RIGHT_TO_LEFT);
|
||||
BidiUtils.applyBidiProcessing(destinationNameField, "file"); //$NON-NLS-1$
|
||||
|
||||
// destination browse button
|
||||
@@ -904,8 +905,9 @@ public class JavaJobScriptsExportWSWizardPage extends JavaJobScriptsExportWizard
|
||||
addDestinationItem(directoryNames[i]);
|
||||
}
|
||||
}
|
||||
String sepa = java.io.File.separator;
|
||||
setDestinationValue(
|
||||
directoryNames[0].substring(0, (directoryNames[0].lastIndexOf("\\") + 1)) + fileName);//$NON-NLS-1$
|
||||
directoryNames[0].substring(0, (directoryNames[0].lastIndexOf(sepa) + 1)) + fileName);// $NON-NLS-1$
|
||||
} else {
|
||||
setDefaultDestination();
|
||||
}
|
||||
@@ -981,7 +983,7 @@ public class JavaJobScriptsExportWSWizardPage extends JavaJobScriptsExportWizard
|
||||
}
|
||||
}
|
||||
setDestinationValue(
|
||||
directoryNames[0].substring(0, (directoryNames[0].lastIndexOf("\\") + 1)) + fileName);//$NON-NLS-1$
|
||||
directoryNames[0].substring(0, (directoryNames[0].lastIndexOf(File.separator) + 1)) + fileName);// $NON-NLS-1$
|
||||
} else {
|
||||
setDefaultDestination();
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@ package org.talend.repository.ui.wizards.exportjob.handler;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -36,7 +35,6 @@ import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.talend.commons.exception.ExceptionHandler;
|
||||
import org.talend.core.model.properties.ProcessItem;
|
||||
import org.talend.core.runtime.process.TalendProcessArgumentConstant;
|
||||
import org.talend.designer.maven.launch.MavenPomCommandLauncher;
|
||||
import org.talend.designer.maven.model.MavenSystemFolders;
|
||||
import org.talend.designer.maven.model.TalendMavenConstants;
|
||||
@@ -161,7 +159,7 @@ public class BuildOSGiBundleHandler extends BuildJobHandler {
|
||||
fileExtension = esbExportType;
|
||||
}
|
||||
|
||||
if (fileExtension.equals(file.getFileExtension()) && file.getName().contains("bundle")) {
|
||||
if (fileExtension.equals(file.getFileExtension())) {
|
||||
bundleFile = file;
|
||||
break;
|
||||
}
|
||||
@@ -174,6 +172,7 @@ public class BuildOSGiBundleHandler extends BuildJobHandler {
|
||||
}
|
||||
|
||||
private void setFileContent(InputStream inputStream, IFile file, IProgressMonitor monitor) throws CoreException {
|
||||
file.refreshLocal(IResource.DEPTH_ZERO, monitor);
|
||||
if (file.exists()) {
|
||||
file.setContents(inputStream, 0, monitor);
|
||||
} else {
|
||||
|
||||
@@ -26,7 +26,6 @@ import org.talend.core.runtime.repository.build.BuildExportManager;
|
||||
import org.talend.core.runtime.repository.build.IBuildExportHandler;
|
||||
import org.talend.core.runtime.repository.build.IBuildJobParameters;
|
||||
import org.talend.core.runtime.repository.build.IBuildParametes;
|
||||
import org.talend.designer.core.model.utils.emf.talendfile.NodeType;
|
||||
import org.talend.repository.constants.BuildJobConstants;
|
||||
import org.talend.repository.ui.wizards.exportjob.JavaJobScriptsExportWSWizardPage.JobExportType;
|
||||
import org.talend.repository.ui.wizards.exportjob.handler.BuildJobHandler;
|
||||
@@ -97,17 +96,10 @@ public class BuildJobFactory {
|
||||
ERepositoryObjectType repositoryObjectType = ERepositoryObjectType.getItemType(processItem);
|
||||
if (repositoryObjectType == ERepositoryObjectType.PROCESS_ROUTE && "ROUTE_MICROSERVICE".equals(type)) {
|
||||
esb = true;
|
||||
} else {
|
||||
for (Object o : ((ProcessItem) processItem).getProcess().getNode()) {
|
||||
if (o instanceof NodeType) {
|
||||
NodeType currentNode = (NodeType) o;
|
||||
if (BuildJobConstants.esbComponents.contains(currentNode.getComponentName())) {
|
||||
esb = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if ("REST_MS".equals(type)) {
|
||||
esb = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (type != null) {
|
||||
|
||||
@@ -769,6 +769,7 @@ public class JobJavaScriptOSGIForESBManager extends JobJavaScriptsManager {
|
||||
Manifest manifest = null;
|
||||
try {
|
||||
manifest = analyzer.calcManifest();
|
||||
filterImportPackages(manifest);
|
||||
} catch (IOException e) {
|
||||
throw e;
|
||||
} catch (Exception e) {
|
||||
@@ -792,6 +793,38 @@ public class JobJavaScriptOSGIForESBManager extends JobJavaScriptsManager {
|
||||
|
||||
return manifest;
|
||||
}
|
||||
|
||||
private void filterImportPackages(Manifest manifest) {
|
||||
|
||||
// remove import packages which are present in private packages
|
||||
|
||||
List<String> privatePackages = new ArrayList<String>();
|
||||
String privatePackagesString = manifest.getMainAttributes().getValue(Analyzer.PRIVATE_PACKAGE);
|
||||
if (privatePackagesString != null) {
|
||||
String [] packages = privatePackagesString.split(",");
|
||||
for (String p : packages) {
|
||||
privatePackages.add(p);
|
||||
}
|
||||
}
|
||||
|
||||
StringBuilder fileterdImportPackage = new StringBuilder();
|
||||
String importPackagesString = manifest.getMainAttributes().getValue(Analyzer.IMPORT_PACKAGE);
|
||||
if (importPackagesString != null) {
|
||||
String [] packages = importPackagesString.split(",");
|
||||
for (String p : packages) {
|
||||
String importPackage = p.split(";")[0];
|
||||
if (!privatePackages.contains(importPackage) || importPackage.startsWith("routines")) {
|
||||
fileterdImportPackage.append(p).append(",");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String str = fileterdImportPackage.toString();
|
||||
if (str != null && str.length() > 0 && str.endsWith(",")) {
|
||||
str = str.substring(0, str.length() - 1);
|
||||
}
|
||||
manifest.getMainAttributes().putValue(Analyzer.IMPORT_PACKAGE, str);
|
||||
}
|
||||
|
||||
protected Analyzer createAnalyzer(ExportFileResource libResource, ProcessItem processItem) throws IOException {
|
||||
Analyzer analyzer = new Analyzer();
|
||||
|
||||
@@ -35,6 +35,7 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.eclipse.jface.resource.ImageDescriptor;
|
||||
import org.talend.commons.exception.ExceptionHandler;
|
||||
import org.talend.core.PluginChecker;
|
||||
@@ -199,6 +200,15 @@ public class ComponentModel extends AbstractBasicComponent implements IAdditiona
|
||||
return getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDisplayName() {
|
||||
String name = getName();
|
||||
if (isTaCoKitComponentMadeByTalend()) {
|
||||
return "t" + name; //$NON-NLS-1$
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns long component name, aka title (e.g. "Salesforce Input"). It is i18n
|
||||
* title. In v0 component it is specified by "component.{compName}.title"
|
||||
@@ -677,4 +687,12 @@ public class ComponentModel extends AbstractBasicComponent implements IAdditiona
|
||||
public ComponentId getId(){
|
||||
return this.index.getId();
|
||||
}
|
||||
|
||||
public boolean isTaCoKitComponentMadeByTalend() {
|
||||
String location = getId().getPluginLocation().trim();
|
||||
if (StringUtils.isNotBlank(location) && location.startsWith(MavenConstants.DEFAULT_GROUP_ID)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ import org.talend.core.model.process.EComponentCategory;
|
||||
import org.talend.core.model.process.EConnectionType;
|
||||
import org.talend.core.model.process.IElement;
|
||||
import org.talend.core.model.process.IElementParameter;
|
||||
import org.talend.designer.core.ui.editor.nodes.Node;
|
||||
import org.talend.designer.core.model.FakeElement;
|
||||
import org.talend.designer.core.model.components.ElementParameter;
|
||||
import org.talend.sdk.component.server.front.model.ActionReference;
|
||||
@@ -203,6 +204,14 @@ public class SettingVisitor implements PropertyVisitor {
|
||||
*/
|
||||
@Override
|
||||
public void visit(final PropertyNode node) {
|
||||
// skip 'configuration.dataSet.csvConfiguration.csvSchema' field in 'azure-dls-gen2' component
|
||||
if (element != null && element instanceof Node && ((Node)element).getComponent() != null &&
|
||||
(((Node)element).getComponent().getName().equals("AzureAdlsGen2Input") ||
|
||||
((Node)element).getComponent().getName().equals("AzureAdlsGen2Output")) &&
|
||||
node.getProperty().getPath().equals("configuration.dataSet.csvConfiguration.csvSchema")) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (node.isLeaf()) {
|
||||
switch (node.getFieldType()) {
|
||||
case CHECK:
|
||||
|
||||
@@ -151,6 +151,8 @@ public class DbGenerationManagerTestHelper {
|
||||
tName = TalendTextUtils.removeQuotes(tName);
|
||||
when(connection.getName()).thenReturn(tName);
|
||||
when(connection.getSource()).thenReturn(node);
|
||||
when(connection.getMetaName()).thenReturn(tName);
|
||||
when(connection.getUniqueName()).thenReturn(tName);
|
||||
IMetadataTable table = new MetadataTable();
|
||||
table.setLabel(tableName);
|
||||
table.setTableName(tableName);
|
||||
|
||||
@@ -132,14 +132,14 @@ public class MdmEeDemoImportTest extends DemosImportTest {
|
||||
Assert.assertTrue(demoViewtemsFiles.size() > 0);
|
||||
Assert.assertEquals(demoViewtemsFiles.size(), currentViewItemsSize);
|
||||
|
||||
// 6.test the item under MDM/workflow
|
||||
int currentWorkflowItemsSize = ProxyRepositoryFactory.getInstance()
|
||||
.getAll(ERepositoryObjectType.valueOf(ERepositoryObjectType.class, "MDM.Workflow")).size();
|
||||
Assert.assertTrue(currentWorkflowItemsSize > 0);
|
||||
File tempWorkflowItemsFolder = new File(rootPath + File.separator + mdmWorkflowPath);
|
||||
List<File> demoWorkflowtemsFiles = getDemoItemFileList(rootPath + File.separator + mdmWorkflowPath);
|
||||
Assert.assertTrue(demoWorkflowtemsFiles.size() > 0);
|
||||
Assert.assertEquals(demoWorkflowtemsFiles.size(), currentWorkflowItemsSize);
|
||||
// // 6.test the item under MDM/workflow
|
||||
// int currentWorkflowItemsSize = ProxyRepositoryFactory.getInstance()
|
||||
// .getAll(ERepositoryObjectType.valueOf(ERepositoryObjectType.class, "MDM.Workflow")).size();
|
||||
// Assert.assertTrue(currentWorkflowItemsSize > 0);
|
||||
// File tempWorkflowItemsFolder = new File(rootPath + File.separator + mdmWorkflowPath);
|
||||
// List<File> demoWorkflowtemsFiles = getDemoItemFileList(rootPath + File.separator + mdmWorkflowPath);
|
||||
// Assert.assertTrue(demoWorkflowtemsFiles.size() > 0);
|
||||
// Assert.assertEquals(demoWorkflowtemsFiles.size(), currentWorkflowItemsSize);
|
||||
}
|
||||
|
||||
protected Map<String, String> getCollectFolderMap(String rootPath) {
|
||||
|
||||
@@ -12,9 +12,6 @@
|
||||
// ============================================================================
|
||||
package org.talend.repository.ui.wizards.exportjob.scriptsmanager;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.talend.commons.utils.VersionUtils;
|
||||
@@ -26,12 +23,10 @@ import org.talend.core.model.properties.PropertiesFactory;
|
||||
import org.talend.core.model.properties.Property;
|
||||
import org.talend.core.runtime.process.IBuildJobHandler;
|
||||
import org.talend.core.runtime.process.TalendProcessArgumentConstant;
|
||||
import org.talend.designer.core.model.utils.emf.talendfile.NodeType;
|
||||
import org.talend.designer.core.model.utils.emf.talendfile.ProcessType;
|
||||
import org.talend.designer.core.model.utils.emf.talendfile.TalendFileFactory;
|
||||
import org.talend.repository.ui.wizards.exportjob.JavaJobScriptsExportWSWizardPage.JobExportType;
|
||||
import org.talend.repository.ui.wizards.exportjob.handler.BuildJobHandler;
|
||||
import org.talend.repository.ui.wizards.exportjob.handler.BuildOSGiBundleHandler;
|
||||
|
||||
/**
|
||||
* DOC ggu class global comment. Detailled comment
|
||||
@@ -118,22 +113,4 @@ public class BuildJobFactoryTest {
|
||||
Assert.assertNotNull("Can't build job for standalone job", handler);
|
||||
Assert.assertEquals(BuildJobHandler.class.getName(), handler.getClass().getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_createBuildJobHandler_String_default_withOSGiSetting() {
|
||||
List<String> esbComponents = Arrays.asList("tRESTClient", "tRESTRequest", "tRESTResponse", "tESBConsumer",
|
||||
"tESBProviderFault", "tESBProviderRequest", "tESBProviderResponse", "tRouteInput", "tREST");
|
||||
ProcessItem processItem = createTestProcessItem();
|
||||
NodeType node = TalendFileFactory.eINSTANCE.createNodeType();
|
||||
processItem.getProcess().getNode().add(node);
|
||||
Property property = processItem.getProperty();
|
||||
property.getAdditionalProperties().put(TalendProcessArgumentConstant.ARG_BUILD_TYPE, "OSGI");
|
||||
for (String componentName : esbComponents) {
|
||||
node.setComponentName(componentName);
|
||||
IBuildJobHandler handler = BuildJobFactory.createBuildJobHandler(processItem, "Default", property.getVersion(),
|
||||
JobScriptsManagerFactory.getDefaultExportChoiceMap(), (String) null);
|
||||
Assert.assertNotNull("Can't build job for OSGI bundle", handler);
|
||||
Assert.assertEquals(BuildOSGiBundleHandler.class.getName(), handler.getClass().getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user