Return-Path: X-Original-To: apmail-apex-dev-archive@minotaur.apache.org Delivered-To: apmail-apex-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2EA1F187A1 for ; Thu, 10 Dec 2015 08:26:26 +0000 (UTC) Received: (qmail 77232 invoked by uid 500); 10 Dec 2015 08:26:26 -0000 Delivered-To: apmail-apex-dev-archive@apex.apache.org Received: (qmail 77165 invoked by uid 500); 10 Dec 2015 08:26:26 -0000 Mailing-List: contact dev-help@apex.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@apex.incubator.apache.org Delivered-To: mailing list dev@apex.incubator.apache.org Received: (qmail 77153 invoked by uid 99); 10 Dec 2015 08:26:25 -0000 Received: from Unknown (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 10 Dec 2015 08:26:25 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 5B346C44E3 for ; Thu, 10 Dec 2015 08:26:25 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.971 X-Spam-Level: X-Spam-Status: No, score=0.971 tagged_above=-999 required=6.31 tests=[KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, T_RP_MATCHES_RCVD=-0.01, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id Ae3vRzciLAqY for ; Thu, 10 Dec 2015 08:26:20 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with SMTP id 70B91203A3 for ; Thu, 10 Dec 2015 08:26:19 +0000 (UTC) Received: (qmail 76805 invoked by uid 99); 10 Dec 2015 08:26:18 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 10 Dec 2015 08:26:18 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 304B4E0A96; Thu, 10 Dec 2015 08:26:18 +0000 (UTC) From: tweise To: dev@apex.incubator.apache.org Reply-To: dev@apex.incubator.apache.org References: In-Reply-To: Subject: [GitHub] incubator-apex-core pull request: APEX-103: Add module and dag int... Content-Type: text/plain Message-Id: <20151210082618.304B4E0A96@git1-us-west.apache.org> Date: Thu, 10 Dec 2015 08:26:18 +0000 (UTC) Github user tweise commented on a diff in the pull request: https://github.com/apache/incubator-apex-core/pull/148#discussion_r47199479 --- Diff: engine/src/main/java/com/datatorrent/stram/codec/LogicalPlanSerializer.java --- @@ -116,91 +165,144 @@ public boolean useForType(JavaType t) typer = typer.inclusion(JsonTypeInfo.As.PROPERTY); propertyObjectMapper.setDefaultTyping(typer); - for (OperatorMeta operatorMeta : allOperators) { - HashMap operatorDetailMap = new HashMap(); - ArrayList> portList = new ArrayList>(); - Map attributeMap = new HashMap(); - - String operatorName = operatorMeta.getName(); - operatorArray.add(operatorDetailMap); - operatorDetailMap.put("name", operatorName); - operatorDetailMap.put("ports", portList); - operatorDetailMap.put("class", operatorMeta.getOperator().getClass().getName()); - operatorDetailMap.put("attributes", attributeMap); - Map, Object> rawAttributes = Attribute.AttributeMap.AttributeInitializer.getAllAttributes(operatorMeta, Context.OperatorContext.class); - for (Map.Entry, Object> entry : rawAttributes.entrySet()) { - attributeMap.put(entry.getKey().getSimpleName(), entry.getValue()); - } - - ObjectMapperString str; + try { + str = new ObjectMapperString(propertyObjectMapper.writeValueAsString(operatorMeta.getOperator())); + } catch (Throwable ex) { + LOG.error("Got exception when trying to get properties for operator {}", operatorMeta.getName(), ex); + str = null; + } + operatorDetailMap.put("properties", str); - try { - str = new ObjectMapperString(propertyObjectMapper.writeValueAsString(operatorMeta.getOperator())); + Operators.PortMappingDescriptor pmd = new Operators.PortMappingDescriptor(); + Operators.describe(operatorMeta.getOperator(), pmd); + for (Map.Entry>> entry : pmd.inputPorts.entrySet()) { + HashMap portDetailMap = new HashMap(); + HashMap portAttributeMap = new HashMap(); + InputPortMeta portMeta = operatorMeta.getMeta(entry.getValue().component); + String portName = portMeta.getPortName(); + portDetailMap.put("name", portName); + portDetailMap.put("type", "input"); + portDetailMap.put("attributes", portAttributeMap); + rawAttributes = Attribute.AttributeMap.AttributeInitializer.getAllAttributes(portMeta, Context.PortContext.class); + for (Map.Entry, Object> attEntry : rawAttributes.entrySet()) { + portAttributeMap.put(attEntry.getKey().getSimpleName(), attEntry.getValue()); } - catch (Throwable ex) { - LOG.error("Got exception when trying to get properties for operator {}", operatorMeta.getName(), ex); - str = null; + portList.add(portDetailMap); + } + for (Map.Entry>> entry : pmd.outputPorts.entrySet()) { + HashMap portDetailMap = new HashMap(); + HashMap portAttributeMap = new HashMap(); + OutputPortMeta portMeta = operatorMeta.getMeta(entry.getValue().component); + String portName = portMeta.getPortName(); + portDetailMap.put("name", portName); + portDetailMap.put("type", "output"); + portDetailMap.put("attributes", portAttributeMap); + rawAttributes = Attribute.AttributeMap.AttributeInitializer.getAllAttributes(portMeta, Context.PortContext.class); + for (Map.Entry, Object> attEntry : rawAttributes.entrySet()) { + portAttributeMap.put(attEntry.getKey().getSimpleName(), attEntry.getValue()); } - operatorDetailMap.put("properties", str); - - Operators.PortMappingDescriptor pmd = new Operators.PortMappingDescriptor(); - Operators.describe(operatorMeta.getOperator(), pmd); - for (Map.Entry>> entry : pmd.inputPorts.entrySet()) { - HashMap portDetailMap = new HashMap(); - HashMap portAttributeMap = new HashMap(); - InputPortMeta portMeta = operatorMeta.getMeta(entry.getValue().component); - String portName = portMeta.getPortName(); - portDetailMap.put("name", portName); - portDetailMap.put("type", "input"); - portDetailMap.put("attributes", portAttributeMap); - rawAttributes = Attribute.AttributeMap.AttributeInitializer.getAllAttributes(portMeta, Context.PortContext.class); - for (Map.Entry, Object> attEntry : rawAttributes.entrySet()) { - portAttributeMap.put(attEntry.getKey().getSimpleName(), attEntry.getValue()); - } - portList.add(portDetailMap); + portList.add(portDetailMap); + } + return operatorDetailMap; + } + + private static Map getLogicalStreamDetails(StreamMeta streamMeta) + { + + HashMap streamDetailMap = new HashMap(); + String streamName = streamMeta.getName(); + String sourcePortName = streamMeta.getSource().getPortName(); + OperatorMeta operatorMeta = streamMeta.getSource().getOperatorMeta(); + HashMap sourcePortDetailMap = new HashMap(); + sourcePortDetailMap.put("operatorName", operatorMeta.getName()); + sourcePortDetailMap.put("portName", sourcePortName); + streamDetailMap.put("name", streamName); + streamDetailMap.put("source", sourcePortDetailMap); + List sinks = streamMeta.getSinks(); + ArrayList> sinkPortList = new ArrayList>(); + for (InputPortMeta sinkPort : sinks) { + HashMap sinkPortDetailMap = new HashMap(); + sinkPortDetailMap.put("operatorName", sinkPort.getOperatorWrapper().getName()); + sinkPortDetailMap.put("portName", sinkPort.getPortName()); + sinkPortList.add(sinkPortDetailMap); + } + streamDetailMap.put("sinks", sinkPortList); + if (streamMeta.getLocality() != null) { + streamDetailMap.put("locality", streamMeta.getLocality().name()); + } + return streamDetailMap; + } + + /** + * Return list of operators populated by module in the top level dag. + * @param plan top level dag + * @param moduleMeta module. + * @return + */ + private static List getTopLevelOperators(LogicalPlan plan, ModuleMeta moduleMeta) + { + List operators = new ArrayList(); + for (OperatorMeta oMeta : moduleMeta.getDag().getAllOperators()) { + if (oMeta.getModuleName() == null) { + String fullName = moduleMeta.getFullName() + LogicalPlan.MODULE_NAMESPACE_SEPARATOR + oMeta.getName(); + OperatorMeta meta = plan.getOperatorMeta(fullName); + operators.add(meta); } - for (Map.Entry>> entry : pmd.outputPorts.entrySet()) { - HashMap portDetailMap = new HashMap(); - HashMap portAttributeMap = new HashMap(); - OutputPortMeta portMeta = operatorMeta.getMeta(entry.getValue().component); - String portName = portMeta.getPortName(); - portDetailMap.put("name", portName); - portDetailMap.put("type", "output"); - portDetailMap.put("attributes", portAttributeMap); - rawAttributes = Attribute.AttributeMap.AttributeInitializer.getAllAttributes(portMeta, Context.PortContext.class); - for (Map.Entry, Object> attEntry : rawAttributes.entrySet()) { - portAttributeMap.put(attEntry.getKey().getSimpleName(), attEntry.getValue()); - } - portList.add(portDetailMap); + } + return operators; + } + + /** + * Return list of streams populated by module in top level dag. + * @param plan top level dag + * @param moduleMeta module + * @return + */ + private static List getTopLevelStreams(LogicalPlan plan, ModuleMeta moduleMeta) --- End diff -- Method seems unnecessary. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastructure@apache.org or file a JIRA ticket with INFRA. ---