/**
* Copyright 2013-2014 Recruit Technologies Co., Ltd. and contributors
* (see CONTRIBUTORS.md)
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. A copy of the
* License is distributed with this work in the LICENSE.md file. You may
* also obtain a copy of the License from
*
* 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 org.gennai.gungnir.ql.analysis;
import org.gennai.gungnir.ql.analysis.processor.ArgmentConvertException;
import org.gennai.gungnir.ql.analysis.processor.ArrayParameterConverter;
import org.gennai.gungnir.ql.analysis.processor.ConditionParameterConverter;
import org.gennai.gungnir.ql.analysis.processor.ListParameterConverter;
import org.gennai.gungnir.ql.analysis.processor.MapParameterConverter;
import org.gennai.gungnir.ql.analysis.processor.PrimitiveParameterConverter;
import org.gennai.gungnir.topology.processor.DummySpoutProcessor;
import org.gennai.gungnir.topology.processor.FileTtlCacheProcessor;
import org.gennai.gungnir.topology.processor.InMemorySpoutProcessor;
import org.gennai.gungnir.topology.processor.InMemoryTtlCacheProcessor;
import org.gennai.gungnir.topology.processor.JdbcFetchProcessor;
import org.gennai.gungnir.topology.processor.JdbcPersistProcessor;
import org.gennai.gungnir.topology.processor.KafkaEmitProcessor;
import org.gennai.gungnir.topology.processor.KafkaSpoutProcessor2;
import org.gennai.gungnir.topology.processor.LogAppendProcessor;
import org.gennai.gungnir.topology.processor.MongoFetchProcessor;
import org.gennai.gungnir.topology.processor.MongoPersistProcessor;
import org.gennai.gungnir.topology.processor.Processor;
import org.gennai.gungnir.topology.processor.WebEmitProcessor;
import org.gennai.gungnir.topology.processor.WebFetchProcessor;
public class ProcessorRegistry extends Registry {
public ProcessorRegistry() throws RegisterException, ArgmentConvertException {
addArgumentConverter(new PrimitiveParameterConverter());
addArgumentConverter(new ArrayParameterConverter());
addArgumentConverter(new ListParameterConverter());
addArgumentConverter(new MapParameterConverter());
addArgumentConverter(new ConditionParameterConverter());
register("kafka_spout", KafkaSpoutProcessor2.class);
register("memory_spout", InMemorySpoutProcessor.class);
register("mongo_fetch", MongoFetchProcessor.class);
register("web_fetch", WebFetchProcessor.class);
register("jdbc_fetch", JdbcFetchProcessor.class);
register("kafka_emit", KafkaEmitProcessor.class);
register("mongo_persist", MongoPersistProcessor.class);
register("web_emit", WebEmitProcessor.class);
register("jdbc_persist", JdbcPersistProcessor.class);
register("log", LogAppendProcessor.class);
register("memory_cache", InMemoryTtlCacheProcessor.class);
register("file_cache", FileTtlCacheProcessor.class);
register("dummy_spout", DummySpoutProcessor.class);
}
public void registerProcessor(String name, Class<? extends Processor> registerClass)
throws RegisterException, ArgmentConvertException {
register(name, registerClass);
}
@Override
public Processor create(String name, Object... args) throws RegisterException,
ArgmentConvertException {
return (Processor) super.create(name, args);
}
}