From 6f5e5382463a24c4acfe7fb850b305bd217ea683 Mon Sep 17 00:00:00 2001 From: hcyi Date: Mon, 13 Jun 2016 15:46:15 +0800 Subject: [PATCH 1/6] TBD-3692:fix some problems of default value,password field,dragdrop for MapR Ticket configuration. --- .../core/hadoop/conf/EHadoopProperties.java | 15 ++++++++++----- .../connection/database/DatabaseForm.java | 6 ++++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/hadoop/conf/EHadoopProperties.java b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/hadoop/conf/EHadoopProperties.java index 8064ac0b7a..0d764285fc 100644 --- a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/hadoop/conf/EHadoopProperties.java +++ b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/hadoop/conf/EHadoopProperties.java @@ -45,17 +45,22 @@ public enum EHadoopProperties { DATABASE, PORT, - + CLOUDERA_NAVIGATOR_USERNAME, - + CLOUDERA_NAVIGATOR_PASSWORD, - + CLOUDERA_NAVIGATOR_URL, - + CLOUDERA_NAVIGATOR_METADATA_URL, - + CLOUDERA_NAVIGATOR_CLIENT_URL, + MAPRTICKET_CLUSTER, + MAPRTICKET_DURATION, + MAPR_HOME_DIR, + HADOOP_LOGIN, + ; public String getName() { diff --git a/main/plugins/org.talend.repository.metadata/src/main/java/org/talend/repository/ui/wizards/metadata/connection/database/DatabaseForm.java b/main/plugins/org.talend.repository.metadata/src/main/java/org/talend/repository/ui/wizards/metadata/connection/database/DatabaseForm.java index ed339aa869..e958634357 100644 --- a/main/plugins/org.talend.repository.metadata/src/main/java/org/talend/repository/ui/wizards/metadata/connection/database/DatabaseForm.java +++ b/main/plugins/org.talend.repository.metadata/src/main/java/org/talend/repository/ui/wizards/metadata/connection/database/DatabaseForm.java @@ -1210,7 +1210,8 @@ public class DatabaseForm extends AbstractForm { maprTUsernameForHiveTxt = new LabelledText(authenticationUserPassComForHive, Messages.getString("DatabaseForm.hive.MaprTUsernameTxt.label"), 2); //$NON-NLS-1$ maprTPasswordForHiveTxt = new LabelledText(authenticationUserPassComForHive, - Messages.getString("DatabaseForm.hive.MaprTPasswordTxt.label"), 2, SWT.PASSWORD); //$NON-NLS-1$ + Messages.getString("DatabaseForm.hive.MaprTPasswordTxt.label"), 2, SWT.PASSWORD | SWT.BORDER | SWT.SINGLE); //$NON-NLS-1$ + maprTPasswordForHiveTxt.getTextControl().setEchoChar('*'); maprTClusterForHiveTxt = new LabelledText(authenticationMaprTComForHive, Messages.getString("DatabaseForm.hive.MaprTClusterTxt.label"), 2); //$NON-NLS-1$ @@ -1292,7 +1293,8 @@ public class DatabaseForm extends AbstractForm { maprTUsernameForHBaseTxt = new LabelledText(authenticationUserPassComForHBase, Messages.getString("DatabaseForm.hbaseMaprTUsernameTxt.label"), 2); //$NON-NLS-1$ maprTPasswordForHBaseTxt = new LabelledText(authenticationUserPassComForHBase, - Messages.getString("DatabaseForm.hbaseMaprTPasswordTxt.label"), 2, SWT.PASSWORD); //$NON-NLS-1$ + Messages.getString("DatabaseForm.hbaseMaprTPasswordTxt.label"), 2, SWT.PASSWORD | SWT.BORDER | SWT.SINGLE); //$NON-NLS-1$ + maprTPasswordForHBaseTxt.getTextControl().setEchoChar('*'); maprTClusterForHBaseTxt = new LabelledText(authenticationMaprTComForHBase, Messages.getString("DatabaseForm.hbaseMaprTClusterTxt.label"), 2); //$NON-NLS-1$ From 31d26ac0c765cad9214a81f2565cc562b4d4950b Mon Sep 17 00:00:00 2001 From: msjian Date: Wed, 15 Jun 2016 14:36:37 +0800 Subject: [PATCH 2/6] TDQ-11573: add a format to support analysis result integer --- .../talend/utils/format/StringFormatUtil.java | 39 +++++++++++-------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/main/plugins/org.talend.utils/src/main/java/org/talend/utils/format/StringFormatUtil.java b/main/plugins/org.talend.utils/src/main/java/org/talend/utils/format/StringFormatUtil.java index d6d6d64067..12926962b7 100644 --- a/main/plugins/org.talend.utils/src/main/java/org/talend/utils/format/StringFormatUtil.java +++ b/main/plugins/org.talend.utils/src/main/java/org/talend/utils/format/StringFormatUtil.java @@ -26,13 +26,12 @@ public final class StringFormatUtil { public static final int PERCENT = 0; - public static final int NUMBER = 1; + public static final int INT_NUMBER = 1; + + public static final int DOUBLE_NUMBER = 2; public static final int OTHER = 99999; - private StringFormatUtil() { - } - /** * Method "padString". * @@ -41,14 +40,14 @@ public final class StringFormatUtil { * @return the given string completed with white spaces up the the given size. */ public static String padString(String stringToPad, int size) { - return String.format("%" + size + "s", stringToPad); + return String.format("%" + size + "s", stringToPad); //$NON-NLS-1$ //$NON-NLS-2$ } /** * DOC Zqin Comment method "format". * * @param input the object that was formated. - * @param style the style of formated, it should be 0, 1, 99999. + * @param style the style of formated, it should be 0, 1,2,99999. * @return the formated object. */ public static Object format(Object input, int style) { @@ -64,29 +63,37 @@ public final class StringFormatUtil { BigDecimal max = new BigDecimal(9999 * 10E-5); boolean isUseScientific = false; switch (style) { - case 0: + case PERCENT: if (temp.compareTo(min) == -1 && temp.compareTo(zero) == 1) { isUseScientific = true; } else if (temp.compareTo(max) == 1 && temp.compareTo(new BigDecimal(1)) == -1) { input = max.toString(); } format = (DecimalFormat) DecimalFormat.getPercentInstance(Locale.ENGLISH); - format.applyPattern("0.00%"); + format.applyPattern("0.00%"); //$NON-NLS-1$ break; - case 1: + case INT_NUMBER: min = new BigDecimal(10E-3); if (temp.compareTo(min) == -1 && temp.compareTo(zero) == 1) { isUseScientific = true; } format = (DecimalFormat) DecimalFormat.getNumberInstance(Locale.ENGLISH); - format.applyPattern("0.00"); + format.applyPattern("0"); //$NON-NLS-1$ + break; + case DOUBLE_NUMBER: + min = new BigDecimal(10E-3); + if (temp.compareTo(min) == -1 && temp.compareTo(zero) == 1) { + isUseScientific = true; + } + format = (DecimalFormat) DecimalFormat.getNumberInstance(Locale.ENGLISH); + format.applyPattern("0.00"); //$NON-NLS-1$ break; default: format = (DecimalFormat) DecimalFormat.getInstance(Locale.getDefault()); return format.parse(input.toString()); } if (isUseScientific) { - format.applyPattern("0.###E0%"); + format.applyPattern("0.###E0%"); //$NON-NLS-1$ } return format.format(new Double(input.toString())); @@ -109,7 +116,7 @@ public final class StringFormatUtil { if (checkInput(input)) { Double db = new Double(input.toString()); DecimalFormat format = (DecimalFormat) DecimalFormat.getPercentInstance(Locale.ENGLISH); - format.applyPattern("0.00%"); + format.applyPattern("0.00%"); //$NON-NLS-1$ return format.format(db); } @@ -127,7 +134,7 @@ public final class StringFormatUtil { if (checkInput(input)) { Double db = new Double(input.toString()); DecimalFormat format = (DecimalFormat) DecimalFormat.getNumberInstance(Locale.ENGLISH); - format.applyPattern("0.00"); + format.applyPattern("0.00"); //$NON-NLS-1$ return Double.valueOf(format.format(db)); } @@ -145,7 +152,7 @@ public final class StringFormatUtil { if (checkInput(input)) { Double db = new Double(input.toString()); DecimalFormat format = (DecimalFormat) DecimalFormat.getNumberInstance(Locale.ENGLISH); - format.applyPattern("0.0000"); + format.applyPattern("0.0000"); //$NON-NLS-1$ return Double.valueOf(format.format(db)); } @@ -181,7 +188,7 @@ public final class StringFormatUtil { * @return true if the input is valid, else false; */ private static boolean checkInput(Object input) { - if (input == null || "".equals(input)) { + if (input == null || "".equals(input)) { //$NON-NLS-1$ return false; } else { Double db = new Double(input.toString()); @@ -196,7 +203,7 @@ public final class StringFormatUtil { public static Double formatPercentDecimalDouble(Object input) { if (checkInput(input)) { BigDecimal bd1 = new BigDecimal(input.toString()); - BigDecimal bd2 = new BigDecimal("100"); + BigDecimal bd2 = new BigDecimal("100"); //$NON-NLS-1$ return bd1.multiply(bd2).doubleValue(); } return null; From fac46f59c71341b065c1d6ff8d3588d267a88ce5 Mon Sep 17 00:00:00 2001 From: wchen-talend Date: Wed, 15 Jun 2016 15:16:07 +0800 Subject: [PATCH 3/6] TUP-4781:Error in custom lib sync shows plaintext credentials --- .../librariesmanager/utils/DownloadModuleRunnable.java | 9 ++------- .../model/service/LocalLibraryManager.java | 6 +----- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/main/plugins/org.talend.librariesmanager.ui/src/main/java/org/talend/librariesmanager/utils/DownloadModuleRunnable.java b/main/plugins/org.talend.librariesmanager.ui/src/main/java/org/talend/librariesmanager/utils/DownloadModuleRunnable.java index 7a177aa644..a2b7acdf35 100644 --- a/main/plugins/org.talend.librariesmanager.ui/src/main/java/org/talend/librariesmanager/utils/DownloadModuleRunnable.java +++ b/main/plugins/org.talend.librariesmanager.ui/src/main/java/org/talend/librariesmanager/utils/DownloadModuleRunnable.java @@ -12,7 +12,6 @@ // ============================================================================ package org.talend.librariesmanager.utils; -import java.net.SocketTimeoutException; import java.net.URL; import java.util.HashSet; import java.util.List; @@ -112,14 +111,10 @@ abstract public class DownloadModuleRunnable implements IRunnableWithProgress { // deploy to index as snapshot installedModules.add(module.getName()); - } catch (SocketTimeoutException e) { - downloadFailed.add(module.getName()); - connectionTimeOut = true; - MessageBoxExceptionHandler.process(e); - continue; } catch (Exception e) { downloadFailed.add(module.getName()); - MessageBoxExceptionHandler.process(e); + connectionTimeOut = true; + MessageBoxExceptionHandler.process(new Exception("Download " + module.getName() + " failed!")); continue; } accepted = false; diff --git a/main/plugins/org.talend.librariesmanager/src/main/java/org/talend/librariesmanager/model/service/LocalLibraryManager.java b/main/plugins/org.talend.librariesmanager/src/main/java/org/talend/librariesmanager/model/service/LocalLibraryManager.java index 1cfdbd37c0..a24db51c45 100644 --- a/main/plugins/org.talend.librariesmanager/src/main/java/org/talend/librariesmanager/model/service/LocalLibraryManager.java +++ b/main/plugins/org.talend.librariesmanager/src/main/java/org/talend/librariesmanager/model/service/LocalLibraryManager.java @@ -399,12 +399,8 @@ public class LocalLibraryManager implements ILibraryManagerService { } } } - } catch (IOException e) { - CommonExceptionHandler.process(e); - } catch (RuntimeException e) { - CommonExceptionHandler.process(e); } catch (Exception e) { - CommonExceptionHandler.process(e); + CommonExceptionHandler.process(new Exception(getClass().getSimpleName() + " resolve " + mavenUri + " failed !")); } try { if (jarFile == null) { From af0ef7cc2f61ae96004d4955dddc963d4fd72126 Mon Sep 17 00:00:00 2001 From: CHEN Bin Date: Wed, 15 Jun 2016 16:41:17 +0800 Subject: [PATCH 4/6] [TBD-3659] tCassandraOutput, better error message than NPE when insert null value for partition key --- ...andra-1.0.jar => talend-cassandra-1.1.jar} | Bin 11662 -> 11784 bytes ...1.0.jar => talend-cassandra-shade-1.1.jar} | Bin 12163 -> 12281 bytes 2 files changed, 0 insertions(+), 0 deletions(-) rename main/plugins/org.talend.libraries.apache.cassandra/lib/{talend-cassandra-1.0.jar => talend-cassandra-1.1.jar} (57%) rename main/plugins/org.talend.libraries.apache.cassandra/lib/{talend-cassandra-shade-1.0.jar => talend-cassandra-shade-1.1.jar} (56%) diff --git a/main/plugins/org.talend.libraries.apache.cassandra/lib/talend-cassandra-1.0.jar b/main/plugins/org.talend.libraries.apache.cassandra/lib/talend-cassandra-1.1.jar similarity index 57% rename from main/plugins/org.talend.libraries.apache.cassandra/lib/talend-cassandra-1.0.jar rename to main/plugins/org.talend.libraries.apache.cassandra/lib/talend-cassandra-1.1.jar index 0cf90c1302f3e61c8336bcb44858ebebd29da046..11c91c02a39b140f0cac67ad4798622223d4b6b7 100644 GIT binary patch delta 3423 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 delta 3231 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 diff --git a/main/plugins/org.talend.libraries.apache.cassandra/lib/talend-cassandra-shade-1.0.jar b/main/plugins/org.talend.libraries.apache.cassandra/lib/talend-cassandra-shade-1.1.jar similarity index 56% rename from main/plugins/org.talend.libraries.apache.cassandra/lib/talend-cassandra-shade-1.0.jar rename to main/plugins/org.talend.libraries.apache.cassandra/lib/talend-cassandra-shade-1.1.jar index 91ec055016d893ea1a06e15d6fa71f93fc1d65e5..e2504a9ea6af06054c7bd96e205081afd17f1931 100644 GIT binary patch delta 3539 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 delta 3409 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 From db7ec46c9c0d71596d95fa303a0f35be93134032 Mon Sep 17 00:00:00 2001 From: GGu Date: Thu, 16 Jun 2016 10:50:16 +0800 Subject: [PATCH 5/6] TDI-36031: Remove the ResourcesVisitor when content provider is override --- .../viewer/content/EmptyContentProvider.java | 65 ++++++++++++++++++- ...olderListenerSingleTopContentProvider.java | 2 +- 2 files changed, 63 insertions(+), 4 deletions(-) diff --git a/main/plugins/org.talend.repository.view/src/org/talend/repository/viewer/content/EmptyContentProvider.java b/main/plugins/org.talend.repository.view/src/org/talend/repository/viewer/content/EmptyContentProvider.java index 1442b494cb..f864d4a719 100644 --- a/main/plugins/org.talend.repository.view/src/org/talend/repository/viewer/content/EmptyContentProvider.java +++ b/main/plugins/org.talend.repository.view/src/org/talend/repository/viewer/content/EmptyContentProvider.java @@ -12,11 +12,21 @@ // ============================================================================ package org.talend.repository.viewer.content; +import java.util.Iterator; import java.util.Set; +import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; import org.eclipse.ui.IMemento; +import org.eclipse.ui.internal.navigator.ContributorTrackingSet; +import org.eclipse.ui.internal.navigator.NavigatorContentService; +import org.eclipse.ui.internal.navigator.extensions.NavigatorContentDescriptor; +import org.eclipse.ui.internal.navigator.extensions.NavigatorContentExtension; +import org.eclipse.ui.internal.navigator.extensions.SafeDelegateTreeContentProvider; +import org.eclipse.ui.navigator.CommonViewer; import org.eclipse.ui.navigator.ICommonContentExtensionSite; +import org.eclipse.ui.navigator.INavigatorContentDescriptor; +import org.eclipse.ui.navigator.INavigatorContentService; import org.eclipse.ui.navigator.IPipelinedTreeContentProvider; import org.eclipse.ui.navigator.PipelinedShapeModification; import org.eclipse.ui.navigator.PipelinedViewerUpdate; @@ -46,15 +56,16 @@ import org.eclipse.ui.navigator.PipelinedViewerUpdate; * */ public class EmptyContentProvider implements IPipelinedTreeContentProvider { + private Viewer viewer; + @Override public void dispose() { - // left empty on purpose + this.viewer = null; } @Override public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - // left empty on purpose - + this.viewer = viewer; } @Override @@ -118,9 +129,56 @@ public class EmptyContentProvider implements IPipelinedTreeContentProvider { */ @Override public void getPipelinedChildren(Object aParent, Set theCurrentChildren) { + removeResourceVisitorForOverride(theCurrentChildren); theCurrentChildren.clear(); } + @SuppressWarnings({ "restriction", "rawtypes" }) + private void removeResourceVisitorForOverride(Set theCurrentChildren) { + if (this.viewer instanceof CommonViewer && theCurrentChildren instanceof ContributorTrackingSet) { + INavigatorContentService navigatorContentService = ((CommonViewer) this.viewer).getNavigatorContentService(); + if (navigatorContentService instanceof NavigatorContentService) { + ContributorTrackingSet contributorTrackingSet = (ContributorTrackingSet) theCurrentChildren; + + // have override + INavigatorContentDescriptor firstClassContributor = contributorTrackingSet.getFirstClassContributor(); + if (!firstClassContributor.hasOverridingExtensions()) { + return; + } + + // check override + boolean isOverride = false; + INavigatorContentDescriptor descriptor = contributorTrackingSet.getContributor(); + NavigatorContentDescriptor overridingDescriptor; + for (Iterator contentDescriptorsItr = firstClassContributor.getOverriddingExtensions().iterator(); contentDescriptorsItr + .hasNext();) { + overridingDescriptor = (NavigatorContentDescriptor) contentDescriptorsItr.next(); + if (overridingDescriptor.getId().equals(descriptor.getId())) { + isOverride = true; + } + } + if (!isOverride) { + return; + } + + // remove ResourceVisitor + NavigatorContentExtension firstClassExtension = ((NavigatorContentService) navigatorContentService) + .getExtension(firstClassContributor); + if (firstClassExtension != null) { + SafeDelegateTreeContentProvider internalGetContentProvider = firstClassExtension.internalGetContentProvider(); + if (internalGetContentProvider != null) { + ITreeContentProvider delegateContentProvider = internalGetContentProvider.getDelegateContentProvider(); + if (delegateContentProvider instanceof FolderListenerSingleTopContentProvider) { + // try to remove the ResourceVisitor of FolderListenerSingleTopContentProvider + delegateContentProvider.dispose(); + } + } + } + } + } + + } + /* * (non-Javadoc) * @@ -128,6 +186,7 @@ public class EmptyContentProvider implements IPipelinedTreeContentProvider { */ @Override public void getPipelinedElements(Object anInput, Set theCurrentElements) { + removeResourceVisitorForOverride(theCurrentElements); theCurrentElements.clear(); } diff --git a/main/plugins/org.talend.repository.view/src/org/talend/repository/viewer/content/FolderListenerSingleTopContentProvider.java b/main/plugins/org.talend.repository.view/src/org/talend/repository/viewer/content/FolderListenerSingleTopContentProvider.java index cd3bdca25c..a520f62d21 100644 --- a/main/plugins/org.talend.repository.view/src/org/talend/repository/viewer/content/FolderListenerSingleTopContentProvider.java +++ b/main/plugins/org.talend.repository.view/src/org/talend/repository/viewer/content/FolderListenerSingleTopContentProvider.java @@ -243,13 +243,13 @@ public abstract class FolderListenerSingleTopContentProvider extends SingleTopLe CommonNavigator commonNavigator = ((RepoViewCommonViewer) this.viewer).getCommonNavigator(); if (commonNavigator instanceof RepoViewCommonNavigator) { ((RepoViewCommonNavigator) commonNavigator).removeVisitor(this.visitor); + this.visitor = null; } } } // to help garbage collection topLevelNodeToPathMap.clear(); - topLevelNodeToPathMap = null; super.dispose(); } } From 97e26567bc668bd10253e3b49cf4dc26a691aa1b Mon Sep 17 00:00:00 2001 From: nrousseau Date: Wed, 15 Jun 2016 15:17:07 +0800 Subject: [PATCH 6/6] TDI-36521: fix recursive build --- .../runtime/process}/LastGenerationInfo.java | 2 +- .../runprocess/ProcessorUtilities.java | 120 ++++++++++-------- .../maven/tools/ProjectPomManager.java | 10 +- .../creator/AbstractMavenProcessorPom.java | 5 +- .../tools/creator/CreateMavenJobPom.java | 20 +++ 5 files changed, 99 insertions(+), 58 deletions(-) rename main/plugins/{org.talend.core/src/main/java/org/talend/core/model/runprocess => org.talend.core.runtime/src/main/java/org/talend/core/runtime/process}/LastGenerationInfo.java (99%) diff --git a/main/plugins/org.talend.core/src/main/java/org/talend/core/model/runprocess/LastGenerationInfo.java b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/runtime/process/LastGenerationInfo.java similarity index 99% rename from main/plugins/org.talend.core/src/main/java/org/talend/core/model/runprocess/LastGenerationInfo.java rename to main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/runtime/process/LastGenerationInfo.java index 3feb29dd96..49d6c67840 100644 --- a/main/plugins/org.talend.core/src/main/java/org/talend/core/model/runprocess/LastGenerationInfo.java +++ b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/runtime/process/LastGenerationInfo.java @@ -10,7 +10,7 @@ // 9 rue Pages 92150 Suresnes, France // // ============================================================================ -package org.talend.core.model.runprocess; +package org.talend.core.runtime.process; import java.util.HashMap; import java.util.HashSet; diff --git a/main/plugins/org.talend.core/src/main/java/org/talend/designer/runprocess/ProcessorUtilities.java b/main/plugins/org.talend.core/src/main/java/org/talend/designer/runprocess/ProcessorUtilities.java index 59a0fbe28e..d3bb39a26a 100644 --- a/main/plugins/org.talend.core/src/main/java/org/talend/designer/runprocess/ProcessorUtilities.java +++ b/main/plugins/org.talend.core/src/main/java/org/talend/designer/runprocess/ProcessorUtilities.java @@ -71,10 +71,10 @@ import org.talend.core.model.repository.IRepositoryViewObject; import org.talend.core.model.repository.RepositoryManager; import org.talend.core.model.repository.job.JobResource; import org.talend.core.model.repository.job.JobResourceManager; -import org.talend.core.model.runprocess.LastGenerationInfo; import org.talend.core.model.utils.JavaResourcesHelper; import org.talend.core.model.utils.PerlResourcesHelper; import org.talend.core.runtime.process.ITalendProcessJavaProject; +import org.talend.core.runtime.process.LastGenerationInfo; import org.talend.core.runtime.process.TalendProcessArgumentConstant; import org.talend.core.runtime.process.TalendProcessOptionConstants; import org.talend.core.services.ISVNProviderService; @@ -905,9 +905,7 @@ public class ProcessorUtilities { // set the last jobinfos to be able to set check the errors in the problems view (errors of compilations // only) // here we recreate a new JobInfo, to be sure to don't have link in memory to Emf or IProcess - JobInfo generatedJobInfo = new JobInfo(jobInfo.getJobId(), jobInfo.getContextName(), jobInfo.getJobVersion()); - generatedJobInfo.setJobName(currentProcess.getName()); - generatedJobInfo.setTestContainer(jobInfo.isTestContainer()); + JobInfo generatedJobInfo = cloneJobInfo(jobInfo); String projectFolderName; if (LanguageManager.getCurrentLanguage() == ECodeLanguage.JAVA) { projectFolderName = JavaResourcesHelper.getProjectFolderName(selectedProcessItem); @@ -921,6 +919,22 @@ public class ProcessorUtilities { } } + /** + * DOC nrousseau Comment method "cloneJobInfo". + * @param jobInfo + * @return + */ + private static JobInfo cloneJobInfo(JobInfo jobInfo) { + if (jobInfo == null) { + return null; + } + JobInfo generatedJobInfo = new JobInfo(jobInfo.getJobId(), jobInfo.getContextName(), jobInfo.getJobVersion()); + generatedJobInfo.setJobName(jobInfo.getJobName()); + generatedJobInfo.setTestContainer(jobInfo.isTestContainer()); + generatedJobInfo.setFatherJobInfo(cloneJobInfo(jobInfo.getFatherJobInfo())); + return generatedJobInfo; + } + private static void generateNodeInfo(JobInfo jobInfo, String selectedContextName, boolean statistics, boolean properties, int option, IProgressMonitor progressMonitor, IProcess currentProcess) throws ProcessorException { if (BitwiseOptionUtils.containOption(option, GENERATE_TESTS) && jobInfo.getProcessItem() != null) { @@ -982,28 +996,30 @@ public class ProcessorUtilities { } subJobInfo.setJobVersion(processItem.getProperty().getVersion()); + subJobInfo.setJobName(processItem.getProperty().getLabel()); - if (!isNeedLoadmodules) { - LastGenerationInfo.getInstance().setModulesNeededWithSubjobPerJob(subJobInfo.getJobId(), - subJobInfo.getJobVersion(), Collections. emptySet()); - } - - if (jobInfo.isApplyContextToChildren()) { - subJobInfo.setApplyContextToChildren(jobInfo.isApplyContextToChildren()); - // see bug 0003862: Export job with the flag "Apply to children" if the child don't have - // the - // same context fails. - if (checkIfContextExisted(processItem, selectedContextName)) { - subJobInfo.setContextName(selectedContextName); - } else { - // use the default context of subjob - String defaultContext = processItem.getProcess().getDefaultContext(); - node.getElementParameter("PROCESS_TYPE_CONTEXT").setValue(defaultContext); //$NON-NLS-1$ - subJobInfo.setContextName(defaultContext); - } - } subJobInfo.setFatherJobInfo(jobInfo); if (!jobList.contains(subJobInfo)) { + if (!isNeedLoadmodules) { + LastGenerationInfo.getInstance().setModulesNeededWithSubjobPerJob(subJobInfo.getJobId(), + subJobInfo.getJobVersion(), Collections. emptySet()); + } + + if (jobInfo.isApplyContextToChildren()) { + subJobInfo.setApplyContextToChildren(jobInfo.isApplyContextToChildren()); + // see bug 0003862: Export job with the flag "Apply to children" if the child don't have + // the + // same context fails. + if (checkIfContextExisted(processItem, selectedContextName)) { + subJobInfo.setContextName(selectedContextName); + } else { + // use the default context of subjob + String defaultContext = processItem.getProcess().getDefaultContext(); + node.getElementParameter("PROCESS_TYPE_CONTEXT").setValue(defaultContext); //$NON-NLS-1$ + subJobInfo.setContextName(defaultContext); + } + } + int subJobOption = GENERATE_ALL_CHILDS; if (BitwiseOptionUtils.containOption(option, GENERATE_WITH_FIRST_CHILD)) { subJobOption = GENERATE_MAIN_ONLY; @@ -1019,37 +1035,37 @@ public class ProcessorUtilities { if (!BitwiseOptionUtils.containOption(option, GENERATE_WITH_FIRST_CHILD)) { currentProcess.setNeedRegenerateCode(true); } - } - LastGenerationInfo - .getInstance() - .getModulesNeededWithSubjobPerJob(jobInfo.getJobId(), jobInfo.getJobVersion()) - .addAll(LastGenerationInfo.getInstance().getModulesNeededWithSubjobPerJob( - subJobInfo.getJobId(), subJobInfo.getJobVersion())); - LastGenerationInfo - .getInstance() - .getPigudfNeededWithSubjobPerJob(jobInfo.getJobId(), jobInfo.getJobVersion()) - .addAll(LastGenerationInfo.getInstance().getPigudfNeededWithSubjobPerJob( - subJobInfo.getJobId(), subJobInfo.getJobVersion())); + LastGenerationInfo + .getInstance() + .getModulesNeededWithSubjobPerJob(jobInfo.getJobId(), jobInfo.getJobVersion()) + .addAll(LastGenerationInfo.getInstance().getModulesNeededWithSubjobPerJob( + subJobInfo.getJobId(), subJobInfo.getJobVersion())); + LastGenerationInfo + .getInstance() + .getPigudfNeededWithSubjobPerJob(jobInfo.getJobId(), jobInfo.getJobVersion()) + .addAll(LastGenerationInfo.getInstance().getPigudfNeededWithSubjobPerJob( + subJobInfo.getJobId(), subJobInfo.getJobVersion())); - LastGenerationInfo - .getInstance() - .getRoutinesNeededWithSubjobPerJob(jobInfo.getJobId(), jobInfo.getJobVersion()) - .addAll(LastGenerationInfo.getInstance().getRoutinesNeededWithSubjobPerJob( - subJobInfo.getJobId(), subJobInfo.getJobVersion())); + LastGenerationInfo + .getInstance() + .getRoutinesNeededWithSubjobPerJob(jobInfo.getJobId(), jobInfo.getJobVersion()) + .addAll(LastGenerationInfo.getInstance().getRoutinesNeededWithSubjobPerJob( + subJobInfo.getJobId(), subJobInfo.getJobVersion())); - if (!LastGenerationInfo.getInstance().isUseDynamic(jobInfo.getJobId(), jobInfo.getJobVersion())) { - LastGenerationInfo.getInstance().setUseDynamic( - jobInfo.getJobId(), - jobInfo.getJobVersion(), - LastGenerationInfo.getInstance().isUseDynamic(subJobInfo.getJobId(), - subJobInfo.getJobVersion())); - } - if (!LastGenerationInfo.getInstance().isUsePigUDFs(jobInfo.getJobId(), jobInfo.getJobVersion())) { - LastGenerationInfo.getInstance().setUsePigUDFs( - jobInfo.getJobId(), - jobInfo.getJobVersion(), - LastGenerationInfo.getInstance().isUsePigUDFs(subJobInfo.getJobId(), - subJobInfo.getJobVersion())); + if (!LastGenerationInfo.getInstance().isUseDynamic(jobInfo.getJobId(), jobInfo.getJobVersion())) { + LastGenerationInfo.getInstance().setUseDynamic( + jobInfo.getJobId(), + jobInfo.getJobVersion(), + LastGenerationInfo.getInstance().isUseDynamic(subJobInfo.getJobId(), + subJobInfo.getJobVersion())); + } + if (!LastGenerationInfo.getInstance().isUsePigUDFs(jobInfo.getJobId(), jobInfo.getJobVersion())) { + LastGenerationInfo.getInstance().setUsePigUDFs( + jobInfo.getJobId(), + jobInfo.getJobVersion(), + LastGenerationInfo.getInstance().isUsePigUDFs(subJobInfo.getJobId(), + subJobInfo.getJobVersion())); + } } } } diff --git a/main/plugins/org.talend.designer.maven/src/main/java/org/talend/designer/maven/tools/ProjectPomManager.java b/main/plugins/org.talend.designer.maven/src/main/java/org/talend/designer/maven/tools/ProjectPomManager.java index 50d5df8043..b256c7bed4 100644 --- a/main/plugins/org.talend.designer.maven/src/main/java/org/talend/designer/maven/tools/ProjectPomManager.java +++ b/main/plugins/org.talend.designer.maven/src/main/java/org/talend/designer/maven/tools/ProjectPomManager.java @@ -149,10 +149,14 @@ public class ProjectPomManager { } if (processor != null) { + String mainPom = PomUtil.getPomFileName(processor.getProperty().getLabel(), processor.getProperty().getVersion()); for (JobInfo childJob : processor.getBuildChildrenJobs()) { - modulesList.add(PomUtil.getPomFileName(childJob.getJobName(), childJob.getJobVersion())); + String childPom = PomUtil.getPomFileName(childJob.getJobName(), childJob.getJobVersion()); + if (!childPom.equals(mainPom)) { + modulesList.add(childPom); + } } - modulesList.add(PomUtil.getPomFileName(processor.getProperty().getLabel(), processor.getProperty().getVersion())); + modulesList.add(mainPom); } // check the modules List modules = projectModel.getModules(); @@ -211,7 +215,7 @@ public class ProjectPomManager { Iterator iterator = withoutChildrenJobDependencies.iterator(); while (iterator.hasNext()) { Dependency d = iterator.next(); - if (d.getGroupId().startsWith(jobGroupPrefix)||d.getGroupId().startsWith(testGroupPrefix)) { + if (d.getGroupId().startsWith(jobGroupPrefix) || d.getGroupId().startsWith(testGroupPrefix)) { // remove the children job's dependencies iterator.remove(); } diff --git a/main/plugins/org.talend.designer.maven/src/main/java/org/talend/designer/maven/tools/creator/AbstractMavenProcessorPom.java b/main/plugins/org.talend.designer.maven/src/main/java/org/talend/designer/maven/tools/creator/AbstractMavenProcessorPom.java index f9e6531672..95ffeeb5c2 100644 --- a/main/plugins/org.talend.designer.maven/src/main/java/org/talend/designer/maven/tools/creator/AbstractMavenProcessorPom.java +++ b/main/plugins/org.talend.designer.maven/src/main/java/org/talend/designer/maven/tools/creator/AbstractMavenProcessorPom.java @@ -29,6 +29,7 @@ import org.talend.core.model.properties.Project; import org.talend.core.model.properties.Property; import org.talend.core.model.repository.ERepositoryObjectType; import org.talend.core.model.utils.JavaResourcesHelper; +import org.talend.core.runtime.process.LastGenerationInfo; import org.talend.core.runtime.projectsetting.IProjectSettingTemplateConstants; import org.talend.designer.maven.template.ETalendMavenVariables; import org.talend.designer.maven.tools.ProcessorDependenciesManager; @@ -117,11 +118,11 @@ public abstract class AbstractMavenProcessorPom extends CreateMavenBundleTemplat protected void addDependencies(Model model) { try { getProcessorDependenciesManager().updateDependencies(null, model); - + // add children jobs in dependencies final List dependencies = model.getDependencies(); String parentId = getJobProcessor().getProperty().getId(); - final Set clonedChildrenJobInfors = getJobProcessor().getBuildChildrenJobs(); + final Set clonedChildrenJobInfors = getJobProcessor().getBuildChildrenJobs(); for (JobInfo jobInfo : clonedChildrenJobInfors) { if (jobInfo.getFatherJobInfo() != null && jobInfo.getFatherJobInfo().getJobId().equals(parentId)) { if (!validChildrenJob(jobInfo)) { diff --git a/main/plugins/org.talend.designer.maven/src/main/java/org/talend/designer/maven/tools/creator/CreateMavenJobPom.java b/main/plugins/org.talend.designer.maven/src/main/java/org/talend/designer/maven/tools/creator/CreateMavenJobPom.java index f1d04d6779..3d275aef5b 100644 --- a/main/plugins/org.talend.designer.maven/src/main/java/org/talend/designer/maven/tools/creator/CreateMavenJobPom.java +++ b/main/plugins/org.talend.designer.maven/src/main/java/org/talend/designer/maven/tools/creator/CreateMavenJobPom.java @@ -60,6 +60,7 @@ import org.talend.core.model.repository.SVNConstant; import org.talend.core.model.utils.JavaResourcesHelper; import org.talend.core.runtime.CoreRuntimePlugin; import org.talend.core.runtime.process.JobInfoProperties; +import org.talend.core.runtime.process.LastGenerationInfo; import org.talend.core.runtime.process.TalendProcessArgumentConstant; import org.talend.core.runtime.projectsetting.IProjectSettingPreferenceConstants; import org.talend.core.runtime.projectsetting.IProjectSettingTemplateConstants; @@ -385,6 +386,22 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom { @Override protected boolean validChildrenJob(JobInfo jobInfo) { + JobInfo fatherJobInfo = null; + for (JobInfo lastGeneratedJobInfo : LastGenerationInfo.getInstance().getLastGeneratedjobs()) { + if (lastGeneratedJobInfo.getJobId().equals(getJobProcessor().getProperty().getId()) && lastGeneratedJobInfo.getJobVersion().equals(getJobProcessor().getProperty().getVersion())) { + fatherJobInfo = lastGeneratedJobInfo; + break; + } + } + if (fatherJobInfo != null) { + fatherJobInfo = fatherJobInfo.getFatherJobInfo(); + } + while (fatherJobInfo != null) { + if (fatherJobInfo.getJobId().equals(jobInfo.getJobId()) && fatherJobInfo.getJobVersion().equals(jobInfo.getJobVersion())) { + return false; + } + fatherJobInfo = fatherJobInfo.getFatherJobInfo(); + } // for job, ignore test container for children. return jobInfo != null && !jobInfo.isTestContainer(); } @@ -554,6 +571,9 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom { List childrenFolderResourcesIncludes = new ArrayList(); final Set clonedChildrenJobInfors = getJobProcessor().getBuildChildrenJobs(); + // main job built, should never be in the children list, even if recursive + clonedChildrenJobInfors.remove(LastGenerationInfo.getInstance().getLastMainJob()); + for (JobInfo child : clonedChildrenJobInfors) { if (child.getFatherJobInfo() != null) {