/** * Copyright 2013-2015 Pierre Merienne * * Licensed 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 stormy.pythian.testing; import org.junit.After; import org.junit.Before; import storm.trident.TridentTopology; import backtype.storm.Config; import backtype.storm.LocalCluster; import backtype.storm.LocalDRPC; import backtype.storm.utils.Utils; public abstract class TridentIntegrationTest { protected LocalDRPC localDRPC; protected LocalCluster cluster; protected TridentTopology topology; protected Config config; @Before public void init() { cluster = new LocalCluster(); localDRPC = new LocalDRPC(); topology = new TridentTopology(); config = new Config(); } @After public void release() { this.cluster.shutdown(); this.localDRPC.shutdown(); } protected void launch() { cluster.submitTopology(this.getClass().getSimpleName(), config, topology.build()); } protected void launchAndWait(FixedInstanceSpout spout) { this.launch(); this.wait(spout); } protected void wait(FixedInstanceSpout spout) { while (!spout.allInstancesProcessed()) { Utils.sleep(10); } } }