Ejemplo n.º 1
0
  @Before
  public void setUp() throws Exception {
    final File tmpDir = Files.createTempDir();
    tmpDir.deleteOnExit();

    ObjectMapper jsonMapper = new DefaultObjectMapper();

    schema =
        new DataSchema(
            "test",
            jsonMapper.convertValue(
                new StringInputRowParser(
                    new JSONParseSpec(
                        new TimestampSpec("timestamp", "auto", null),
                        new DimensionsSpec(null, null, null))),
                Map.class),
            new AggregatorFactory[] {new CountAggregatorFactory("rows")},
            new UniformGranularitySpec(Granularity.HOUR, QueryGranularity.NONE, null),
            jsonMapper);

    announcer = EasyMock.createMock(DataSegmentAnnouncer.class);
    announcer.announceSegment(EasyMock.<DataSegment>anyObject());
    EasyMock.expectLastCall().anyTimes();

    segmentPublisher = EasyMock.createNiceMock(SegmentPublisher.class);
    dataSegmentPusher = EasyMock.createNiceMock(DataSegmentPusher.class);
    serverView = EasyMock.createMock(FilteredServerView.class);
    serverView.registerSegmentCallback(
        EasyMock.<Executor>anyObject(),
        EasyMock.<ServerView.SegmentCallback>anyObject(),
        EasyMock.<Predicate<DataSegment>>anyObject());
    EasyMock.expectLastCall().anyTimes();

    emitter = EasyMock.createMock(ServiceEmitter.class);

    EasyMock.replay(announcer, segmentPublisher, dataSegmentPusher, serverView, emitter);

    tuningConfig =
        new RealtimeTuningConfig(
            1,
            null,
            null,
            null,
            new IntervalStartVersioningPolicy(),
            rejectionPolicy,
            null,
            null,
            null,
            null,
            null,
            null,
            null);

    realtimePlumberSchool =
        new RealtimePlumberSchool(
            emitter,
            new DefaultQueryRunnerFactoryConglomerate(
                Maps.<Class<? extends Query>, QueryRunnerFactory>newHashMap()),
            dataSegmentPusher,
            announcer,
            segmentPublisher,
            serverView,
            MoreExecutors.sameThreadExecutor());

    metrics = new FireDepartmentMetrics();
    plumber = (RealtimePlumber) realtimePlumberSchool.findPlumber(schema, tuningConfig, metrics);
  }