517 lines
21 KiB
Plaintext
517 lines
21 KiB
Plaintext
<%@ jet
|
|
package="org.talend.designer.codegen.translators"
|
|
imports="
|
|
org.talend.core.model.process.INode
|
|
org.talend.core.model.temp.ECodePart
|
|
org.talend.core.model.process.IConnection
|
|
org.talend.core.model.metadata.IMetadataTable
|
|
org.talend.core.model.metadata.IMetadataColumn
|
|
org.talend.core.model.process.EConnectionType
|
|
org.talend.core.model.process.ElementParameterParser
|
|
org.talend.core.model.process.EParameterFieldType
|
|
org.talend.designer.core.model.components.EParameterName
|
|
org.talend.designer.core.model.components.ElementParameter
|
|
org.talend.designer.codegen.config.CodeGeneratorArgument
|
|
org.talend.core.model.utils.NodeUtil
|
|
org.talend.core.model.process.IConnectionCategory
|
|
java.util.List
|
|
java.util.ArrayList
|
|
java.util.Set
|
|
java.util.HashSet
|
|
java.util.Iterator
|
|
"
|
|
class="ComponentPartHeader"
|
|
%>
|
|
<%@ include file="@{org.talend.designer.components.localprovider}/components/templates/Log4j/LogUtil.javajet"%>
|
|
<%
|
|
CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument;
|
|
INode node = (INode)codeGenArgument.getArgument();
|
|
log = new LogUtil(node);
|
|
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(node.getProcess(), "__LOG4J_ACTIVATE__"));
|
|
boolean containsTPartitioner = node.getProcess().getNodesOfType("tPartitioner").size() > 0 ? true : false;
|
|
String startNodeCid=node.getDesignSubjobStartNode().getUniqueName();
|
|
ECodePart codePart = codeGenArgument.getCodePart();
|
|
boolean trace = codeGenArgument.isTrace();
|
|
boolean stat = codeGenArgument.isStatistics();
|
|
Set<IConnection> connSet = new HashSet<IConnection>();
|
|
connSet.addAll(node.getOutgoingConnections(EConnectionType.FLOW_MAIN));
|
|
connSet.addAll(node.getOutgoingConnections(EConnectionType.FLOW_MERGE));
|
|
String incomingName = codeGenArgument.getIncomingName();
|
|
|
|
Set<IConnection> iterateConnSet = new HashSet<IConnection>();
|
|
iterateConnSet.addAll(node.getOutgoingConnections(EConnectionType.ITERATE));
|
|
|
|
List<IConnection> allSubProcessConnection = codeGenArgument.getAllMainSubTreeConnections();
|
|
%>
|
|
|
|
/**
|
|
* [<%=node.getUniqueName() %> <%=codePart %> ] start
|
|
*/
|
|
|
|
<%
|
|
//This part in order to feedback with the iterate_subprocess_header.javajet and iterate_subprocess_footer.javajet
|
|
|
|
if (codePart.equals(ECodePart.BEGIN)) {
|
|
boolean parallelIterate = false;
|
|
boolean hasParallelIterate = false;
|
|
for (IConnection iterateConn : iterateConnSet) {
|
|
parallelIterate = "true".equals(ElementParameterParser.getValue(iterateConn, "__ENABLE_PARALLEL__"));
|
|
String iterateNodeName = iterateConn.getTarget().getUniqueName();
|
|
if (parallelIterate) {
|
|
%>
|
|
TalendThreadPool mtp_<%=iterateConn.getTarget().getUniqueName() %> = new TalendThreadPool(<%=ElementParameterParser.getValue(iterateConn,"__NUMBER_PARALLEL__") %>);
|
|
|
|
globalMap.put("lockWrite_<%=iterateNodeName%>", new Object[0]);
|
|
int threadIdCounter_<%=iterateNodeName%> =0;
|
|
<%
|
|
}
|
|
%>
|
|
int NB_ITERATE_<%=iterateNodeName %> = 0; //for statistics
|
|
<%
|
|
continue;
|
|
}
|
|
}
|
|
%>
|
|
|
|
<%
|
|
if (codePart.equals(ECodePart.BEGIN)) {
|
|
%>
|
|
<%
|
|
if(trace){
|
|
%>
|
|
globalMap.put("ENABLE_TRACES_CONNECTION_<%=startNodeCid%>",Boolean.FALSE);
|
|
<%
|
|
}
|
|
%>
|
|
ok_Hash.put("<%=node.getUniqueName() %>", false);
|
|
start_Hash.put("<%=node.getUniqueName() %>", System.currentTimeMillis());
|
|
<%
|
|
String statCatcher = ElementParameterParser.getValue(node,"__TSTATCATCHER_STATS__");
|
|
if ((node.getProcess().getNodesOfType("tStatCatcher").size() > 0) && (statCatcher.equals("true"))) {
|
|
for (INode statCatcherNode : node.getProcess().getNodesOfType("tStatCatcher")) {
|
|
%>
|
|
<%=statCatcherNode.getUniqueName() %>.addMessage("begin","<%=node.getUniqueName() %>");
|
|
<%=statCatcherNode.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
|
|
<%
|
|
}
|
|
}
|
|
}
|
|
if(codePart.equals(ECodePart.MAIN)) {
|
|
List<INode> meterCatchers = (List<INode>)node.getProcess().getNodesOfType("tFlowMeterCatcher");
|
|
if ((node.getProcess().getNodesOfType("tFlowMeter").size() > 0)){
|
|
for(IConnection temp_conn : node.getIncomingConnections(EConnectionType.FLOW_MAIN)){
|
|
String name_conn = temp_conn.getUniqueName();
|
|
if(temp_conn.isUseByMetter()){
|
|
%>
|
|
<%
|
|
if (meterCatchers != null) {
|
|
for (INode meterCatcher : meterCatchers) {
|
|
%>
|
|
<%=meterCatcher.getUniqueName() %>.addLineToRow("<%=name_conn%>_count");
|
|
<%
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
for(IConnection temp_conn : node.getIncomingConnections(EConnectionType.FLOW_MERGE)){
|
|
String name_conn = temp_conn.getUniqueName();
|
|
if(name_conn == incomingName && temp_conn.isUseByMetter()){
|
|
if (meterCatchers != null) {
|
|
for (INode meterCatcher : meterCatchers) {
|
|
%>
|
|
<%=meterCatcher.getUniqueName() %>.addLineToRow("<%=name_conn%>_count");
|
|
<%
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
%>
|
|
<%
|
|
if(node.isVirtualGenerateNode()){
|
|
%>
|
|
currentVirtualComponent = "<%=NodeUtil.getVirtualUniqueName(node)%>";
|
|
<%
|
|
}
|
|
%>
|
|
currentComponent="<%=node.getUniqueName() %>";
|
|
|
|
<%
|
|
connSet = new HashSet<IConnection>();
|
|
connSet.addAll(node.getIncomingConnections(EConnectionType.FLOW_MAIN));
|
|
connSet.addAll(node.getIncomingConnections(EConnectionType.FLOW_MERGE));
|
|
|
|
String cid = node.getUniqueName();
|
|
|
|
List<? extends INode> jobCatcherNodes = node.getProcess().getNodesOfType("tJobStructureCatcher");
|
|
boolean jobCatcherExists = jobCatcherNodes != null && !jobCatcherNodes.isEmpty();
|
|
INode jobCatcherNode = jobCatcherExists ? jobCatcherNodes.get(0) : null;
|
|
|
|
boolean enableLogStash = !Boolean.getBoolean("deactivate_extended_component_log") && jobCatcherExists;
|
|
boolean logstashCurrent = enableLogStash && !cid.startsWith("tJobStructureCatcher") && !cid.startsWith("talend");
|
|
|
|
//about performance monitor, no way to support more than one job catcher component, also that is not necessary
|
|
final String subprocessName4Catcher = logstashCurrent ? jobCatcherNodes.get(0).getDesignSubjobStartNode().getUniqueName() : null;
|
|
|
|
if(logstashCurrent) {
|
|
String currentLabel = ElementParameterParser.getValue(node, "__LABEL__");
|
|
if(currentLabel==null || "".equals(currentLabel) || "__UNIQUE_NAME__".equals(currentLabel) || cid.endsWith(NodeUtil.getLabel(node))) {
|
|
//not generate the unnecessary statement if label is default one
|
|
} else {
|
|
%>
|
|
cLabel="<%=NodeUtil.getLabel(node)%>";
|
|
<%
|
|
}
|
|
}
|
|
|
|
if ((codePart.equals(ECodePart.BEGIN))&&(stat || logstashCurrent)&&connSet.size()>0) {
|
|
if(containsTPartitioner) {
|
|
%>
|
|
if(<%if(stat){%>execStat<%}%><%if(stat && logstashCurrent){%> || <%}%><%if(logstashCurrent){%>enableLogStash<%}%>) {
|
|
runStat.updateStatOnConnectionAndLog(resourceMap,globalMap,iterateLoop,iterateId,<%if(stat){%>execStat<%} else {%>false<%}%>,enableLogStash,0<%for(IConnection con : connSet){%>,"<%=con.getUniqueName()%>"<%}%>);
|
|
}
|
|
<%
|
|
} else {
|
|
if(stat && logstashCurrent) {
|
|
%>
|
|
runStat.updateStatAndLog(execStat,enableLogStash,resourceMap,iterateId,0,0<%for(IConnection con : connSet){%>,"<%=con.getUniqueName()%>"<%}%>);
|
|
<%
|
|
} else {
|
|
if(stat) {
|
|
%>
|
|
if(execStat) {
|
|
runStat.updateStatOnConnection(resourceMap,iterateId,0,0<%for(IConnection con : connSet){%>,"<%=con.getUniqueName()%>"<%}%>);
|
|
}
|
|
<%
|
|
}
|
|
|
|
if(logstashCurrent) {
|
|
%>
|
|
if(enableLogStash) {
|
|
runStat.log(resourceMap,iterateId,0,0<%for(IConnection con : connSet){%>,"<%=con.getUniqueName()%>"<%}%>);
|
|
}
|
|
<%
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if((codePart.equals(ECodePart.MAIN))&&(stat || logstashCurrent)&&connSet.size()>0){
|
|
if(!node.getComponent().useMerge()) {
|
|
if(stat && logstashCurrent) {
|
|
%>
|
|
if(runStat.update(execStat,enableLogStash,iterateId,1,1
|
|
<%for(IConnection con : connSet){
|
|
INode source = con.getSource();
|
|
String sourceNodeId = source.getUniqueName();
|
|
|
|
String sourceNodeLabel = NodeUtil.getLabel(source);
|
|
|
|
String targetNodeLabel = NodeUtil.getLabel(node);
|
|
|
|
String sourceNodeComponent = source.getComponent().getName();
|
|
%>
|
|
,"<%=con.getUniqueName()%>","<%=sourceNodeId%>","<%=sourceNodeLabel%>","<%=sourceNodeComponent%>","<%=node.getUniqueName()%>","<%=targetNodeLabel%>","<%=node.getComponent().getName()%>"
|
|
<%}%>
|
|
)) {
|
|
<%=subprocessName4Catcher %>Process(globalMap);
|
|
}
|
|
<%
|
|
} else {
|
|
if(stat) {
|
|
%>
|
|
if(execStat){
|
|
runStat.updateStatOnConnection(iterateId,1,1
|
|
<%for(IConnection con : connSet){
|
|
%>
|
|
,"<%=con.getUniqueName()%>"
|
|
<%}%>
|
|
);
|
|
}
|
|
<%
|
|
}
|
|
|
|
if(logstashCurrent) {
|
|
%>
|
|
if(enableLogStash) {
|
|
if(runStat.updateLog(iterateId,1,1
|
|
<%for(IConnection con : connSet){
|
|
INode source = con.getSource();
|
|
String sourceNodeId = source.getUniqueName();
|
|
|
|
String sourceNodeLabel = NodeUtil.getLabel(source);
|
|
|
|
String targetNodeLabel = NodeUtil.getLabel(node);
|
|
|
|
String sourceNodeComponent = source.getComponent().getName();
|
|
%>
|
|
,"<%=con.getUniqueName()%>","<%=sourceNodeId%>","<%=sourceNodeLabel%>","<%=sourceNodeComponent%>","<%=node.getUniqueName()%>","<%=targetNodeLabel%>","<%=node.getComponent().getName()%>"
|
|
<%}%>
|
|
)) {
|
|
<%=subprocessName4Catcher %>Process(globalMap);
|
|
}
|
|
}
|
|
<%
|
|
}
|
|
}
|
|
} else {
|
|
for(IConnection connection:connSet){
|
|
if(connection.getUniqueName().equals((String)codeGenArgument.getIncomingName())){
|
|
if(stat && logstashCurrent) {
|
|
%>
|
|
if(runStat.update(execStat,enableLogStash,iterateId,1,1
|
|
<%for(IConnection con : connSet){
|
|
INode source = con.getSource();
|
|
String sourceNodeId = source.getUniqueName();
|
|
|
|
String sourceNodeLabel = NodeUtil.getLabel(source);
|
|
|
|
String targetNodeLabel = NodeUtil.getLabel(node);
|
|
|
|
String sourceNodeComponent = source.getComponent().getName();
|
|
|
|
if(con.getUniqueName().equals((String)codeGenArgument.getIncomingName())){%>
|
|
,"<%=con.getUniqueName()%>","<%=sourceNodeId%>","<%=sourceNodeLabel%>","<%=sourceNodeComponent%>","<%=node.getUniqueName()%>","<%=targetNodeLabel%>","<%=node.getComponent().getName()%>"
|
|
<%}
|
|
}%>
|
|
)) {
|
|
<%=subprocessName4Catcher %>Process(globalMap);
|
|
}
|
|
<%
|
|
} else {
|
|
if(stat) {%>
|
|
if(execStat){
|
|
runStat.updateStatOnConnection(iterateId,1,1
|
|
<%for(IConnection con : connSet){
|
|
if(con.getUniqueName().equals((String)codeGenArgument.getIncomingName())){%>
|
|
,"<%=con.getUniqueName()%>"
|
|
<%}
|
|
}%>
|
|
);
|
|
}
|
|
<%}
|
|
|
|
if(logstashCurrent) {%>
|
|
if(enableLogStash) {
|
|
if(runStat.updateLog(iterateId,1,1
|
|
<%for(IConnection con : connSet){
|
|
INode source = con.getSource();
|
|
String sourceNodeId = source.getUniqueName();
|
|
|
|
String sourceNodeLabel = NodeUtil.getLabel(source);
|
|
|
|
String targetNodeLabel = NodeUtil.getLabel(node);
|
|
|
|
String sourceNodeComponent = source.getComponent().getName();
|
|
|
|
if(con.getUniqueName().equals((String)codeGenArgument.getIncomingName())){%>
|
|
,"<%=con.getUniqueName()%>","<%=sourceNodeId%>","<%=sourceNodeLabel%>","<%=sourceNodeComponent%>","<%=node.getUniqueName()%>","<%=targetNodeLabel%>","<%=node.getComponent().getName()%>"
|
|
<%}
|
|
}%>
|
|
)) {
|
|
<%=subprocessName4Catcher %>Process(globalMap);
|
|
}
|
|
}
|
|
<%}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Set<IConnection> connSetForLog = new HashSet<IConnection>();
|
|
connSetForLog.addAll(node.getIncomingConnections(EConnectionType.FLOW_MAIN));
|
|
connSetForLog.addAll(node.getIncomingConnections(EConnectionType.FLOW_MERGE));
|
|
if((codePart.equals(ECodePart.MAIN)) && isLog4jEnabled && connSetForLog.size()>0){
|
|
if(!(node.isVirtualGenerateNode() && node.getVirtualLinkTo()==null)){//ignore the connector in virtual component
|
|
for(IConnection con:connSetForLog){
|
|
%>
|
|
if(log.isTraceEnabled()){
|
|
log.trace("<%=con.getUniqueName()%> - " + (<%=con.getName()%>==null? "": <%=con.getName()%>.toLogString()));
|
|
}
|
|
<%
|
|
}
|
|
}
|
|
}
|
|
if(codePart.equals(ECodePart.BEGIN)){
|
|
%>
|
|
int tos_count_<%=node.getUniqueName() %> = 0;
|
|
<%
|
|
log.startWork();
|
|
log.logCompSetting();
|
|
boolean enable_runtime_lineage_log = NodeUtil.isJobUsingRuntimeLineage(node.getProcess()) && jobCatcherExists && !cid.startsWith("tJobStructureCatcher") && !cid.startsWith("talend");
|
|
if(enable_runtime_lineage_log) {
|
|
%>
|
|
class ParameterUtil_<%=cid%>{
|
|
|
|
public java.util.Map<String, String> getParameter() throws Exception{
|
|
java.util.Map<String, String> component_parameters = new java.util.HashMap<>();
|
|
<%
|
|
java.util.Set<org.talend.core.model.process.EParameterFieldType> ignoredParamsTypes = new java.util.HashSet<org.talend.core.model.process.EParameterFieldType>();
|
|
ignoredParamsTypes.addAll(
|
|
java.util.Arrays.asList(
|
|
org.talend.core.model.process.EParameterFieldType.SCHEMA_TYPE,
|
|
org.talend.core.model.process.EParameterFieldType.SCHEMA_REFERENCE,
|
|
org.talend.core.model.process.EParameterFieldType.LABEL,
|
|
org.talend.core.model.process.EParameterFieldType.EXTERNAL,
|
|
org.talend.core.model.process.EParameterFieldType.MAPPING_TYPE,
|
|
org.talend.core.model.process.EParameterFieldType.IMAGE,
|
|
org.talend.core.model.process.EParameterFieldType.TNS_EDITOR,
|
|
org.talend.core.model.process.EParameterFieldType.WSDL2JAVA,
|
|
org.talend.core.model.process.EParameterFieldType.GENERATEGRAMMARCONTROLLER,
|
|
org.talend.core.model.process.EParameterFieldType.GENERATE_SURVIVORSHIP_RULES_CONTROLLER,
|
|
org.talend.core.model.process.EParameterFieldType.REFRESH_REPORTS,
|
|
org.talend.core.model.process.EParameterFieldType.BROWSE_REPORTS,
|
|
org.talend.core.model.process.EParameterFieldType.PALO_DIM_SELECTION,
|
|
org.talend.core.model.process.EParameterFieldType.GUESS_SCHEMA,
|
|
org.talend.core.model.process.EParameterFieldType.MATCH_RULE_IMEX_CONTROLLER,
|
|
org.talend.core.model.process.EParameterFieldType.MEMO_PERL,
|
|
org.talend.core.model.process.EParameterFieldType.DBTYPE_LIST,
|
|
org.talend.core.model.process.EParameterFieldType.VERSION,
|
|
org.talend.core.model.process.EParameterFieldType.TECHNICAL,
|
|
org.talend.core.model.process.EParameterFieldType.ICON_SELECTION,
|
|
org.talend.core.model.process.EParameterFieldType.JAVA_COMMAND,
|
|
org.talend.core.model.process.EParameterFieldType.TREE_TABLE,
|
|
org.talend.core.model.process.EParameterFieldType.VALIDATION_RULE_TYPE,
|
|
org.talend.core.model.process.EParameterFieldType.DCSCHEMA,
|
|
org.talend.core.model.process.EParameterFieldType.SURVIVOR_RELATION,
|
|
org.talend.core.model.process.EParameterFieldType.REST_RESPONSE_SCHEMA_TYPE,
|
|
org.talend.core.model.process.EParameterFieldType.BUTTON
|
|
)
|
|
);
|
|
for(org.talend.core.model.process.IElementParameter ep : org.talend.core.model.utils.NodeUtil.getDisplayedParameters(node)){
|
|
if(!ep.isLog4JEnabled() || ignoredParamsTypes.contains(ep.getFieldType())){
|
|
continue;
|
|
}
|
|
|
|
ElementParameter p = (ElementParameter)ep;
|
|
Object pluginValue = p.getTaggedValue("org.talend.sdk.component.source");
|
|
if(pluginValue != null && String.class.cast(pluginValue).equalsIgnoreCase("tacokit")) {
|
|
try {
|
|
if (!(Boolean) org.talend.core.runtime.IAdditionalInfo.class.cast(p).func("isPersisted")) {
|
|
continue;
|
|
}
|
|
} catch (Exception ex) {
|
|
//do nothing
|
|
}
|
|
|
|
%>
|
|
<%@ include file="./tacokit_runtime_log.javajet"%>
|
|
<%
|
|
|
|
continue;
|
|
}
|
|
|
|
String name = ep.getName();
|
|
java.util.Set<String> ignoredParamsNames = new java.util.HashSet<String>();
|
|
ignoredParamsNames.add("SQLPATTERN_VALUE");
|
|
ignoredParamsNames.add("ADDITIONAL_INSERT_COLUMNS");
|
|
ignoredParamsNames.add("ADDITIONAL_UPDATE_COLUMNS");
|
|
ignoredParamsNames.add("SELECTION_TABLE");
|
|
ignoredParamsNames.add("DIFFER_MESSAGE");
|
|
ignoredParamsNames.add("NO_DIFFER_MESSAGE");
|
|
|
|
if(ignoredParamsNames.contains(name)) {
|
|
//do nothing
|
|
} else if(org.talend.core.model.process.EParameterFieldType.PASSWORD.equals(ep.getFieldType()) || org.talend.core.model.process.EParameterFieldType.HIDDEN_TEXT.equals(ep.getFieldType())){
|
|
//not log password
|
|
}else{
|
|
String value = org.talend.core.model.utils.NodeUtil.getRuntimeParameterValue(node, ep);
|
|
%>
|
|
component_parameters.put("<%=name%>", String.valueOf(<%=value%>));
|
|
<%
|
|
}
|
|
}
|
|
%>
|
|
return component_parameters;
|
|
}
|
|
}
|
|
|
|
<%=jobCatcherNode.getUniqueName()%>.addComponentParameterMessage("<%=node.getUniqueName()%>", "<%=node.getComponent().getName()%>",
|
|
new ParameterUtil_<%=cid%>().getParameter());
|
|
<%=jobCatcherNode.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
|
|
<%
|
|
}
|
|
|
|
if(logstashCurrent) {
|
|
for (INode jobStructureCatcher : jobCatcherNodes) {
|
|
String nodeLabel = NodeUtil.getLabel(node);
|
|
%>
|
|
if(enableLogStash) {
|
|
<%=jobStructureCatcher.getUniqueName() %>.addCM("<%=node.getUniqueName()%>", "<%=nodeLabel%>", "<%=node.getComponent().getName()%>");
|
|
<%=jobStructureCatcher.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
|
|
}
|
|
<%
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if(stat || logstashCurrent){
|
|
boolean iterateInVFComp = (node.getVirtualLinkTo() != null && node.getVirtualLinkTo() == EConnectionType.ITERATE);
|
|
if(iterateInVFComp){
|
|
if(codePart.equals(ECodePart.BEGIN)){
|
|
List<String> needToStartConnNames = new ArrayList<String>();
|
|
INode nextNode = node.getOutgoingConnections(EConnectionType.ITERATE).get(0).getTarget();
|
|
NodeUtil.fillConnectionsForStat(needToStartConnNames, nextNode);
|
|
if(needToStartConnNames.isEmpty()) {
|
|
//do nothing
|
|
} else if(containsTPartitioner){
|
|
%>
|
|
if(<%if(stat){%>execStat<%}%><%if(stat && logstashCurrent){%> || <%}%><%if(logstashCurrent){%>enableLogStash<%}%>){
|
|
runStat.updateStatOnConnectionAndLog(globalMap,iterateLoop,iterateId,<%if(stat){%>execStat<%} else {%>false<%}%>,enableLogStash,0<%for(String connName : needToStartConnNames){%>,"<%=connName%>"<%}%>);
|
|
}
|
|
<%
|
|
} else {
|
|
if(stat && logstashCurrent) {
|
|
%>
|
|
runStat.updateStatAndLog(execStat,enableLogStash,iterateId,0,0<%for(String connName : needToStartConnNames){%>,"<%=connName%>"<%}%>);
|
|
<%
|
|
} else {
|
|
if(stat){
|
|
%>
|
|
if(execStat){
|
|
runStat.updateStatOnConnection(iterateId,0,0<%for(String connName : needToStartConnNames){%>,"<%=connName%>"<%}%>);
|
|
}
|
|
<%
|
|
}
|
|
%>
|
|
|
|
<%if(logstashCurrent) {%>
|
|
if(enableLogStash){
|
|
runStat.log(iterateId,0,0<%for(String connName : needToStartConnNames){%>,"<%=connName%>"<%}%>);
|
|
}
|
|
<%
|
|
}
|
|
}
|
|
}
|
|
}else if(codePart.equals(ECodePart.MAIN)){
|
|
%>
|
|
resourceMap.put("inIterateVComp", true);
|
|
<%
|
|
}else if(codePart.equals(ECodePart.END)){
|
|
%>
|
|
resourceMap.remove("inIterateVComp");
|
|
<%
|
|
}
|
|
}else{
|
|
IConnection preIterate = (node.getIncomingConnections(EConnectionType.ITERATE) != null && node.getIncomingConnections(EConnectionType.ITERATE).size() == 1) ? node.getIncomingConnections(EConnectionType.ITERATE).get(0) : null;
|
|
if(preIterate != null){
|
|
boolean iterateInVSComp = (preIterate.getSource().getVirtualLinkTo() != null && preIterate.getSource().getVirtualLinkTo() == EConnectionType.ITERATE);
|
|
if(iterateInVSComp){
|
|
if(codePart.equals(ECodePart.BEGIN)){
|
|
%>
|
|
resourceMap.remove("inIterateVComp");
|
|
<%
|
|
}else if(codePart.equals(ECodePart.END)){
|
|
%>
|
|
resourceMap.put("inIterateVComp", true);
|
|
<%
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
%>
|