You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apex.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2016/08/01 00:48:20 UTC
[jira] [Commented] (APEXCORE-448) Make operator name available in
OperatorContext
[ https://issues.apache.org/jira/browse/APEXCORE-448?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15401412#comment-15401412 ]
ASF GitHub Bot commented on APEXCORE-448:
-----------------------------------------
Github user chandnisingh commented on a diff in the pull request:
https://github.com/apache/apex-core/pull/364#discussion_r72914815
--- Diff: engine/src/test/java/com/datatorrent/stram/engine/OperatorContextTest.java ---
@@ -0,0 +1,98 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.datatorrent.stram.engine;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.concurrent.CountDownLatch;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import org.apache.hadoop.conf.Configuration;
+
+import com.google.common.base.Preconditions;
+
+import com.datatorrent.api.AutoMetric;
+import com.datatorrent.api.Context;
+import com.datatorrent.api.DAG;
+import com.datatorrent.api.DefaultOutputPort;
+import com.datatorrent.api.InputOperator;
+import com.datatorrent.api.LocalMode;
+import com.datatorrent.api.StreamingApplication;
+import com.datatorrent.common.util.BaseOperator;
+
+public class OperatorContextTest
+{
+
+ @Test
+ public void testInjectionOfOperatorName() throws Exception
+ {
+ final LocalMode lma = LocalMode.newInstance();
+ final CountDownLatch latch = new CountDownLatch(1);
+ StreamingApplication testApp = new StreamingApplication()
+ {
+ @Override
+ public void populateDAG(DAG dag, Configuration conf)
+ {
+ MockInputOperator input = dag.addOperator("input", new MockInputOperator());
+ input.countDownLatch = latch;
+ GenericNodeTest.GenericOperator output = dag.addOperator("output", new GenericNodeTest.GenericOperator());
+
+ dag.addStream("stream", input.output, output.ip1);
+ }
+ };
+
+ lma.prepareDAG(testApp, new Configuration());
+ LocalMode.Controller lc = lma.getController();
+ lc.runAsync();
+ latch.await();
+ lc.shutdown();
+ }
+
+ private static class MockInputOperator extends BaseOperator implements InputOperator, AutoMetric.Aggregator
+ {
+ private transient CountDownLatch countDownLatch;
+
+ @AutoMetric
+ String operatorName;
+
+ public final transient DefaultOutputPort<String> output = new DefaultOutputPort<>();
+
+ @Override
+ public void setup(Context.OperatorContext context)
+ {
+ operatorName = Preconditions.checkNotNull(context.getOperatorName(), "operator name");
+ }
+
+ @Override
+ public void emitTuples()
+ {
+ }
+
+ @Override
+ public Map<String, Object> aggregate(long windowId, Collection<AutoMetric.PhysicalMetricsContext> physicalMetrics)
+ {
+ String name = (String)physicalMetrics.iterator().next().getMetrics().get("operatorName");
+ Assert.assertEquals("operator name", "input", name);
--- End diff --
Right now the test will hang if assertion fails so I will fix it. However will use the latch because the test needs to wait for sometime until the value is set. With just a variable the number of lines to do that increases.
> Make operator name available in OperatorContext
> -----------------------------------------------
>
> Key: APEXCORE-448
> URL: https://issues.apache.org/jira/browse/APEXCORE-448
> Project: Apache Apex Core
> Issue Type: Improvement
> Reporter: Chandni Singh
> Assignee: Chandni Singh
>
> Need name of the logical operator in the OperatorContext which can be used by WindowDataManager to create a unique path per logical operator .
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)