From a828fa7b62003f23b5dcc7db22146b0afbd8d2aa Mon Sep 17 00:00:00 2001 From: cmeng-talend Date: Thu, 30 Oct 2014 18:30:28 +0800 Subject: [PATCH] TBD-1110 fix bug: Export Dependencies:The sub job can't be checked When I export a MR job that use tRunJob https://jira.talendforge.org/browse/TBD-1110 --- .../model/RepositoryNodeUtilities.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/repository/model/RepositoryNodeUtilities.java b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/repository/model/RepositoryNodeUtilities.java index 669dcd1659..6b97375cd1 100644 --- a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/repository/model/RepositoryNodeUtilities.java +++ b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/repository/model/RepositoryNodeUtilities.java @@ -60,6 +60,14 @@ public class RepositoryNodeUtilities { private final static String[] METADATA_LABELS = new String[] {}; + private static IHadoopClusterService hadoopClusterService = null; + static { + if (GlobalServiceRegister.getDefault().isServiceRegistered(IHadoopClusterService.class)) { + hadoopClusterService = (IHadoopClusterService) GlobalServiceRegister.getDefault().getService( + IHadoopClusterService.class); + } + } + public static IPath getPath(RepositoryNode node) { if (node == null) { return null; @@ -259,7 +267,15 @@ public class RepositoryNodeUtilities { return null; } RepositoryNode toReturn = getRepositoryNode(viewRootNode, curNode, monitor); + + // try to find the node from the root type of node. + if (toReturn == null && viewRootNode instanceof IProjectRepositoryNode) { + IRepositoryNode typeNode = ((IProjectRepositoryNode) viewRootNode).getRootRepositoryNode(curNode + .getRepositoryObjectType()); + toReturn = getRepositoryNode(typeNode, curNode, monitor); + } viewRootNode = null; + return toReturn; } @@ -284,7 +300,8 @@ public class RepositoryNodeUtilities { for (IRepositoryNode childNode : children) { RepositoryNode node = (RepositoryNode) childNode; - if (isRepositoryFolder(node) || node.getType() == ENodeType.REFERENCED_PROJECT) { + if (isRepositoryFolder(node) || node.getType() == ENodeType.REFERENCED_PROJECT + || (hadoopClusterService != null && hadoopClusterService.isHadoopClusterNode(node))) { folderChild.add(node); } else if (node.getId().equals(curNode.getId()) && node.getObjectType() == curNode.getRepositoryObjectType()) { return node;