add simple dummy indexer
This commit is contained in:
parent
ad5945f141
commit
e151b83372
|
@ -24,6 +24,7 @@ import org.elasticsearch.common.collect.Lists;
|
|||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.index.Index;
|
||||
import org.elasticsearch.index.shard.ShardId;
|
||||
import org.elasticsearch.indexer.IndexerName;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
|
@ -63,6 +64,15 @@ public class Loggers {
|
|||
return getLogger(clazz, settings, Lists.asList(SPACE, index.name(), prefixes).toArray(new String[0]));
|
||||
}
|
||||
|
||||
public static ESLogger getLogger(Class clazz, Settings settings, IndexerName indexerName, String... prefixes) {
|
||||
List<String> l = Lists.newArrayList();
|
||||
l.add(SPACE);
|
||||
l.add(indexerName.type());
|
||||
l.add(indexerName.name());
|
||||
l.addAll(Lists.newArrayList(prefixes));
|
||||
return getLogger(clazz, settings, l.toArray(new String[l.size()]));
|
||||
}
|
||||
|
||||
public static ESLogger getLogger(Class clazz, Settings settings, String... prefixes) {
|
||||
return getLogger(getLoggerName(clazz), settings, prefixes);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
/*
|
||||
* Licensed to Elastic Search and Shay Banon under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. Elastic Search licenses this
|
||||
* file to you 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 org.elasticsearch.indexer;
|
||||
|
||||
import org.elasticsearch.common.logging.ESLogger;
|
||||
import org.elasticsearch.common.logging.Loggers;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.indexer.settings.IndexerSettings;
|
||||
|
||||
/**
|
||||
* @author kimchy (shay.banon)
|
||||
*/
|
||||
public class AbstractIndexerComponent implements IndexerComponent {
|
||||
|
||||
protected final ESLogger logger;
|
||||
|
||||
protected final IndexerName indexerName;
|
||||
|
||||
protected final Settings indexSettings;
|
||||
|
||||
protected final Settings componentSettings;
|
||||
|
||||
protected AbstractIndexerComponent(IndexerName indexerName, @IndexerSettings Settings indexSettings) {
|
||||
this.indexerName = indexerName;
|
||||
this.indexSettings = indexSettings;
|
||||
this.componentSettings = indexSettings.getComponentSettings(getClass());
|
||||
|
||||
this.logger = Loggers.getLogger(getClass(), indexSettings, indexerName);
|
||||
}
|
||||
|
||||
protected AbstractIndexerComponent(IndexerName indexerName, @IndexerSettings Settings indexSettings, String prefixSettings) {
|
||||
this.indexerName = indexerName;
|
||||
this.indexSettings = indexSettings;
|
||||
this.componentSettings = indexSettings.getComponentSettings(prefixSettings, getClass());
|
||||
|
||||
this.logger = Loggers.getLogger(getClass(), indexSettings, indexerName);
|
||||
}
|
||||
|
||||
@Override public IndexerName indexerName() {
|
||||
return indexerName;
|
||||
}
|
||||
|
||||
public String nodeName() {
|
||||
return indexSettings.get("name", "");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
* Licensed to Elastic Search and Shay Banon under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. Elastic Search licenses this
|
||||
* file to you 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 org.elasticsearch.indexer.dummy;
|
||||
|
||||
import org.elasticsearch.common.inject.Inject;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.indexer.AbstractIndexerComponent;
|
||||
import org.elasticsearch.indexer.Indexer;
|
||||
import org.elasticsearch.indexer.IndexerName;
|
||||
import org.elasticsearch.indexer.settings.IndexerSettings;
|
||||
|
||||
/**
|
||||
* @author kimchy (shay.banon)
|
||||
*/
|
||||
public class DummyIndexer extends AbstractIndexerComponent implements Indexer {
|
||||
|
||||
@Inject public DummyIndexer(IndexerName indexerName, @IndexerSettings Settings indexSettings) {
|
||||
super(indexerName, indexSettings);
|
||||
logger.info("created");
|
||||
}
|
||||
|
||||
@Override public void close(boolean delete) {
|
||||
logger.info("delete, actual_delete [{}]", delete);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
* Licensed to Elastic Search and Shay Banon under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. Elastic Search licenses this
|
||||
* file to you 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 org.elasticsearch.indexer.dummy;
|
||||
|
||||
import org.elasticsearch.common.inject.AbstractModule;
|
||||
import org.elasticsearch.indexer.Indexer;
|
||||
|
||||
/**
|
||||
* @author kimchy (shay.banon)
|
||||
*/
|
||||
public class DummyIndexerModule extends AbstractModule {
|
||||
|
||||
@Override protected void configure() {
|
||||
bind(Indexer.class).to(DummyIndexer.class).asEagerSingleton();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue