You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@heron.apache.org by nw...@apache.org on 2018/12/27 20:29:02 UTC
[incubator-heron] branch master updated: Refactor StreamletShadow
class to be more general (#3134)
This is an automated email from the ASF dual-hosted git repository.
nwang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git
The following commit(s) were added to refs/heads/master by this push:
new b42f5dc Refactor StreamletShadow class to be more general (#3134)
b42f5dc is described below
commit b42f5dcdd5a457bff06f41b1c0720704dcf3d264
Author: Ning Wang <nw...@twitter.com>
AuthorDate: Thu Dec 27 12:28:56 2018 -0800
Refactor StreamletShadow class to be more general (#3134)
---
.../java/org/apache/heron/streamlet/impl/StreamletImpl.java | 9 ++++++---
.../org/apache/heron/streamlet/impl/StreamletShadow.java | 13 +------------
.../apache/heron/streamlet/impl/StreamletShadowTest.java | 13 ++++++++++---
3 files changed, 17 insertions(+), 18 deletions(-)
diff --git a/heron/api/src/java/org/apache/heron/streamlet/impl/StreamletImpl.java b/heron/api/src/java/org/apache/heron/streamlet/impl/StreamletImpl.java
index c05c654..3afa549 100644
--- a/heron/api/src/java/org/apache/heron/streamlet/impl/StreamletImpl.java
+++ b/heron/api/src/java/org/apache/heron/streamlet/impl/StreamletImpl.java
@@ -231,9 +231,12 @@ public abstract class StreamletImpl<R> implements Streamlet<R> {
Set<String> availableIds = getAvailableStreamIds();
if (availableIds.contains(streamId)) {
- StreamletShadow<R> shadow = new StreamletShadow<R>(this);
- shadow.setStreamId(streamId);
- return shadow;
+ return new StreamletShadow<R>(this) {
+ @Override
+ public String getStreamId() {
+ return streamId;
+ }
+ };
} else {
throw new RuntimeException(
String.format("Stream id %s is not available in %s. Available ids are: %s.",
diff --git a/heron/api/src/java/org/apache/heron/streamlet/impl/StreamletShadow.java b/heron/api/src/java/org/apache/heron/streamlet/impl/StreamletShadow.java
index 56d0c64..fad23de 100644
--- a/heron/api/src/java/org/apache/heron/streamlet/impl/StreamletShadow.java
+++ b/heron/api/src/java/org/apache/heron/streamlet/impl/StreamletShadow.java
@@ -53,20 +53,9 @@ import org.apache.heron.streamlet.impl.StreamletImpl;
*/
public class StreamletShadow<R> extends StreamletImpl<R> {
private StreamletImpl<R> real;
- // Extra properties for a Streamlet object
- protected String streamId;
public StreamletShadow(StreamletImpl<R> real) {
this.real = real;
- this.streamId = real.getStreamId();
- }
-
- /**
- * Sets the stream id of this Streamlet.
- * @param streamId the stream id for this streamlet.
- */
- public void setStreamId(String streamId) {
- this.streamId = streamId;
}
/**
@@ -75,7 +64,7 @@ public class StreamletShadow<R> extends StreamletImpl<R> {
*/
@Override
public String getStreamId() {
- return streamId;
+ return real.getStreamId();
}
/*
diff --git a/heron/api/tests/java/org/apache/heron/streamlet/impl/StreamletShadowTest.java b/heron/api/tests/java/org/apache/heron/streamlet/impl/StreamletShadowTest.java
index 4cc70d2..fbbd803 100644
--- a/heron/api/tests/java/org/apache/heron/streamlet/impl/StreamletShadowTest.java
+++ b/heron/api/tests/java/org/apache/heron/streamlet/impl/StreamletShadowTest.java
@@ -56,13 +56,20 @@ public class StreamletShadowTest {
assertEquals(shadow.getStreamId(), "real_stream");
// set a different stream id
- shadow.setStreamId("shadow_stream");
+ StreamletShadow<Double> shadow2 = new StreamletShadow(mockReal) {
+ @Override
+ public String getStreamId() {
+ return "shadow_stream";
+ }
+ };
+ assertEquals(shadow.getName(), "real_name");
+ assertEquals(shadow.getNumPartitions(), 1);
assertEquals(shadow.getStreamId(), "shadow_stream");
// addChild call should be forwarded to the real object
verify(mockReal, never()).addChild(mockChild);
shadow.addChild(mockChild);
- verify(mockReal, times(1)).addChild(mockChild);
+ shadow2.addChild(mockChild);
+ verify(mockReal, times(2)).addChild(mockChild);
}
-
}