You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flume.apache.org by es...@apache.org on 2011/08/12 02:48:55 UTC
svn commit: r1156919 - in
/incubator/flume/branches/flume-728/flume-ng-node/src/test/java/org/apache/flume:
node/TestDefaultLogicalNodeManager.java source/
source/FlakeySequenceGeneratorSource.java
Author: esammer
Date: Fri Aug 12 00:48:55 2011
New Revision: 1156919
URL: http://svn.apache.org/viewvc?rev=1156919&view=rev
Log:
- Added a FlakeySequenceGeneratorSource (randomly explodes with interrupted exception). - Added a node manager test that has 30 instances of FlakeySequenceGeneratorSource to test error handling.
Added:
incubator/flume/branches/flume-728/flume-ng-node/src/test/java/org/apache/flume/source/
incubator/flume/branches/flume-728/flume-ng-node/src/test/java/org/apache/flume/source/FlakeySequenceGeneratorSource.java
Modified:
incubator/flume/branches/flume-728/flume-ng-node/src/test/java/org/apache/flume/node/TestDefaultLogicalNodeManager.java
Modified: incubator/flume/branches/flume-728/flume-ng-node/src/test/java/org/apache/flume/node/TestDefaultLogicalNodeManager.java
URL: http://svn.apache.org/viewvc/incubator/flume/branches/flume-728/flume-ng-node/src/test/java/org/apache/flume/node/TestDefaultLogicalNodeManager.java?rev=1156919&r1=1156918&r2=1156919&view=diff
==============================================================================
--- incubator/flume/branches/flume-728/flume-ng-node/src/test/java/org/apache/flume/node/TestDefaultLogicalNodeManager.java (original)
+++ incubator/flume/branches/flume-728/flume-ng-node/src/test/java/org/apache/flume/node/TestDefaultLogicalNodeManager.java Fri Aug 12 00:48:55 2011
@@ -10,6 +10,7 @@ import org.apache.flume.lifecycle.Lifecy
import org.apache.flume.lifecycle.LifecycleState;
import org.apache.flume.node.nodemanager.DefaultLogicalNodeManager;
import org.apache.flume.sink.NullSink;
+import org.apache.flume.source.FlakeySequenceGeneratorSource;
import org.apache.flume.source.SequenceGeneratorSource;
import org.junit.Assert;
import org.junit.Before;
@@ -103,4 +104,38 @@ public class TestDefaultLogicalNodeManag
LifecycleState.STOP_OR_ERROR, 5000));
}
+ @Test
+ public void testErrorNode() throws LifecycleException, InterruptedException {
+
+ Set<LogicalNode> testNodes = new HashSet<LogicalNode>();
+
+ for (int i = 0; i < 30; i++) {
+ LogicalNode node = new LogicalNode();
+
+ node.setName("test-node-" + i);
+ node.setSource(new FlakeySequenceGeneratorSource());
+ node.setSink(new NullSink());
+
+ testNodes.add(node);
+ }
+
+ Context context = new Context();
+
+ nodeManager.start(context);
+ Assert.assertTrue("Node manager didn't reach START or ERROR",
+ LifecycleController.waitForOneOf(nodeManager,
+ LifecycleState.START_OR_ERROR, 5000));
+
+ for (LogicalNode node : testNodes) {
+ nodeManager.add(node);
+ }
+
+ Thread.sleep(5000);
+
+ nodeManager.stop(context);
+ Assert.assertTrue("Node manager didn't reach STOP or ERROR",
+ LifecycleController.waitForOneOf(nodeManager,
+ LifecycleState.STOP_OR_ERROR, 5000));
+ }
+
}
Added: incubator/flume/branches/flume-728/flume-ng-node/src/test/java/org/apache/flume/source/FlakeySequenceGeneratorSource.java
URL: http://svn.apache.org/viewvc/incubator/flume/branches/flume-728/flume-ng-node/src/test/java/org/apache/flume/source/FlakeySequenceGeneratorSource.java?rev=1156919&view=auto
==============================================================================
--- incubator/flume/branches/flume-728/flume-ng-node/src/test/java/org/apache/flume/source/FlakeySequenceGeneratorSource.java (added)
+++ incubator/flume/branches/flume-728/flume-ng-node/src/test/java/org/apache/flume/source/FlakeySequenceGeneratorSource.java Fri Aug 12 00:48:55 2011
@@ -0,0 +1,26 @@
+package org.apache.flume.source;
+
+import org.apache.flume.Context;
+import org.apache.flume.Event;
+import org.apache.flume.EventDeliveryException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class FlakeySequenceGeneratorSource extends SequenceGeneratorSource {
+
+ private static final Logger logger = LoggerFactory
+ .getLogger(FlakeySequenceGeneratorSource.class);
+
+ @Override
+ public Event<?> next(Context context) throws InterruptedException,
+ EventDeliveryException {
+
+ if (Math.round(Math.random()) == 1) {
+ Thread.sleep(1000);
+ throw new InterruptedException("I'm broken!");
+ }
+
+ return super.next(context);
+ }
+
+}