Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/**
* This file is part of Graylog.
*
* Graylog is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Graylog is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Graylog. If not, see .
*/
package org.graylog2.inputs;
import com.google.common.base.Optional;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
import com.mongodb.BasicDBList;
import com.mongodb.BasicDBObject;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.QueryBuilder;
import org.bson.types.ObjectId;
import org.graylog2.cluster.Node;
import org.graylog2.database.MongoConnection;
import org.graylog2.database.NotFoundException;
import org.graylog2.database.PersistedServiceImpl;
import org.graylog2.inputs.converters.ConverterFactory;
import org.graylog2.inputs.extractors.ExtractorFactory;
import org.graylog2.plugin.configuration.Configuration;
import org.graylog2.plugin.database.EmbeddedPersistable;
import org.graylog2.plugin.database.ValidationException;
import org.graylog2.plugin.inputs.Converter;
import org.graylog2.plugin.inputs.Extractor;
import org.graylog2.plugin.inputs.MessageInput;
import org.graylog2.shared.inputs.MessageInputFactory;
import org.graylog2.shared.inputs.NoSuchInputTypeException;
import org.graylog2.streams.OutputImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.inject.Inject;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class InputServiceImpl extends PersistedServiceImpl implements InputService {
private static final Logger LOG = LoggerFactory.getLogger(InputServiceImpl.class);
private final ExtractorFactory extractorFactory;
private final MessageInputFactory messageInputFactory;
@Inject
public InputServiceImpl(MongoConnection mongoConnection,
ExtractorFactory extractorFactory,
MessageInputFactory messageInputFactory) {
super(mongoConnection);
this.extractorFactory = extractorFactory;
this.messageInputFactory = messageInputFactory;
}
@Override
public List allOfThisNode(final String nodeId) {
final List query = ImmutableList.of(
new BasicDBObject(MessageInput.FIELD_NODE_ID, nodeId),
new BasicDBObject(MessageInput.FIELD_GLOBAL, true));
final List ownInputs = query(InputImpl.class, new BasicDBObject("$or", query));
final ImmutableList.Builder inputs = ImmutableList.builder();
for (final DBObject o : ownInputs) {
inputs.add(new InputImpl((ObjectId) o.get("_id"), o.toMap()));
}
return inputs.build();
}
@Override
public List allOfRadio(Node radio) {
final List query = ImmutableList.of(
new BasicDBObject(MessageInput.FIELD_RADIO_ID, radio.getNodeId()),
new BasicDBObject(MessageInput.FIELD_NODE_ID, radio.getNodeId()),
new BasicDBObject(MessageInput.FIELD_GLOBAL, true));
final ImmutableList.Builder inputs = ImmutableList.builder();
for (DBObject o : query(InputImpl.class, new BasicDBObject("$or", query))) {
inputs.add(new InputImpl((ObjectId) o.get("_id"), o.toMap()));
}
return inputs.build();
}
@Override
public Input create(String id, Map fields) {
return new InputImpl(new ObjectId(id), fields);
}
@Override
public Input create(Map fields) {
return new InputImpl(fields);
}
@Override
public Input find(String id) throws NotFoundException {
final DBObject o = get(org.graylog2.inputs.InputImpl.class, id);
if (o == null) {
throw new NotFoundException("Input <" + id + "> not found!");
}
return new org.graylog2.inputs.InputImpl((ObjectId) o.get("_id"), o.toMap());
}
@Override
public Input findForThisNodeOrGlobal(String nodeId, String id) throws NotFoundException {
final List forThisNodeOrGlobal = ImmutableList.of(
new BasicDBObject(MessageInput.FIELD_NODE_ID, nodeId),
new BasicDBObject(MessageInput.FIELD_GLOBAL, true));
final List query = ImmutableList.of(
new BasicDBObject("_id", new ObjectId(id)),
new BasicDBObject("$or", forThisNodeOrGlobal));
final DBObject o = findOne(InputImpl.class, new BasicDBObject("$and", query));
return new InputImpl((ObjectId) o.get("_id"), o.toMap());
}
@Override
public Input findForThisRadioOrGlobal(final String radioId, String id) throws NotFoundException {
final List radioIdOrGlobal = ImmutableList.of(
new BasicDBObject(MessageInput.FIELD_RADIO_ID, radioId),
new BasicDBObject(MessageInput.FIELD_NODE_ID, radioId),
new BasicDBObject(MessageInput.FIELD_GLOBAL, true));
final List query = ImmutableList.of(
new BasicDBObject("_id", new ObjectId(id)),
new BasicDBObject("$or", radioIdOrGlobal));
final DBObject o = findOne(InputImpl.class, new BasicDBObject("$and", query));
if (o == null) {
throw new NotFoundException();
} else {
return new InputImpl((ObjectId) o.get("_id"), o.toMap());
}
}
@Override
public Input findForThisNode(String nodeId, String id) throws NotFoundException, IllegalArgumentException {
final List forThisNode = ImmutableList.of(
new BasicDBObject(MessageInput.FIELD_NODE_ID, nodeId),
new BasicDBObject(MessageInput.FIELD_GLOBAL, false));
final List query = ImmutableList.of(
new BasicDBObject("_id", new ObjectId(id)),
new BasicDBObject("$and", forThisNode));
final DBObject o = findOne(InputImpl.class, new BasicDBObject("$and", query));
if (o == null) {
throw new NotFoundException();
} else {
return new InputImpl((ObjectId) o.get("_id"), o.toMap());
}
}
@Override
public Input findForThisRadio(String radioId, String id) throws NotFoundException {
final List