diff --git a/logstash-core/src/main/java/org/logstash/DLQEntry.java b/logstash-core/src/main/java/org/logstash/DLQEntry.java index dd1aff303..26adaae8b 100644 --- a/logstash-core/src/main/java/org/logstash/DLQEntry.java +++ b/logstash-core/src/main/java/org/logstash/DLQEntry.java @@ -43,7 +43,9 @@ import java.io.IOException; import java.nio.ByteBuffer; import org.logstash.ackedqueue.Queueable; - +/** + * Dead letter queue item + */ public class DLQEntry implements Cloneable, Queueable { private final Event event; diff --git a/logstash-core/src/main/java/org/logstash/Event.java b/logstash-core/src/main/java/org/logstash/Event.java index 8b037c55e..dc02e30b0 100644 --- a/logstash-core/src/main/java/org/logstash/Event.java +++ b/logstash-core/src/main/java/org/logstash/Event.java @@ -43,6 +43,9 @@ import java.util.Map; import static org.logstash.ObjectMappers.CBOR_MAPPER; import static org.logstash.ObjectMappers.JSON_MAPPER; +/** + * Event implementation, is the Logstash's event implementation + * */ public final class Event implements Cloneable, Queueable, co.elastic.logstash.api.Event { private boolean cancelled; diff --git a/logstash-core/src/main/java/org/logstash/FieldReference.java b/logstash-core/src/main/java/org/logstash/FieldReference.java index e7b58b074..768d4baea 100644 --- a/logstash-core/src/main/java/org/logstash/FieldReference.java +++ b/logstash-core/src/main/java/org/logstash/FieldReference.java @@ -29,6 +29,9 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import org.jruby.RubyString; +/** + * Represents a reference to another field of the event {@link Event} + * */ public final class FieldReference { /** * A custom unchecked {@link RuntimeException} that can be thrown by parsing methods when diff --git a/logstash-core/src/main/java/org/logstash/RubyJavaIntegration.java b/logstash-core/src/main/java/org/logstash/RubyJavaIntegration.java index 8a854af90..4ec9fadca 100644 --- a/logstash-core/src/main/java/org/logstash/RubyJavaIntegration.java +++ b/logstash-core/src/main/java/org/logstash/RubyJavaIntegration.java @@ -125,6 +125,9 @@ public final class RubyJavaIntegration { } } + /** + * Helper class to provide some typical Ruby methods to Java Collection class when used from Ruby + * */ public static final class JavaCollectionOverride { private static final Collection NIL_COLLECTION = @@ -223,6 +226,9 @@ public final class RubyJavaIntegration { } } + /** + * Helper class to provide "is_a?" method to Java Map class when use dfrom Ruby + * */ public static final class JavaMapOverride { private JavaMapOverride() { diff --git a/logstash-core/src/main/java/org/logstash/Util.java b/logstash-core/src/main/java/org/logstash/Util.java index 325b93ce6..34a90530b 100644 --- a/logstash-core/src/main/java/org/logstash/Util.java +++ b/logstash-core/src/main/java/org/logstash/Util.java @@ -25,7 +25,9 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Map; - +/** + * Static utility methods that provide merge methods for List and Map. + */ public class Util { private Util() {} diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/AckedBatch.java b/logstash-core/src/main/java/org/logstash/ackedqueue/AckedBatch.java index cde1cab7e..da50414ec 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/AckedBatch.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/AckedBatch.java @@ -28,6 +28,9 @@ import org.logstash.ext.JrubyEventExtLibrary.RubyEvent; import static org.logstash.RubyUtil.RUBY; +/** + * Persistent queue batch of events collection + * */ public final class AckedBatch { private Batch batch; diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/AckedReadBatch.java b/logstash-core/src/main/java/org/logstash/ackedqueue/AckedReadBatch.java index cec53c340..fab490f20 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/AckedReadBatch.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/AckedReadBatch.java @@ -31,6 +31,9 @@ import java.util.Collection; import static org.logstash.RubyUtil.RUBY; +/** + * Persistent queue collection of events implementation + * */ public final class AckedReadBatch implements QueueBatch { private AckedBatch ackedBatch; diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Batch.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Batch.java index 302a6ab55..9d08bb01a 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Batch.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Batch.java @@ -26,6 +26,9 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; +/** + * Container for a set of events from queue to be processed by filters/outputs. + * */ public class Batch implements Closeable { private final List elements; diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Checkpoint.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Checkpoint.java index ad6bf764e..9c151cb18 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Checkpoint.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Checkpoint.java @@ -20,6 +20,11 @@ package org.logstash.ackedqueue; +/** + * Persistent queue chekpoint. There is one checkpoint per queue, and simply it's a picture of some + * management data like first not acked sequence number. + * + * */ public class Checkpoint { // Checkpoint file structure see FileCheckpointIO diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Page.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Page.java index a64c525be..7a18fe140 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Page.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Page.java @@ -28,6 +28,10 @@ import org.codehaus.commons.nullanalysis.NotNull; import org.logstash.ackedqueue.io.CheckpointIO; import org.logstash.ackedqueue.io.PageIO; +/** + * Represents persistent queue Page metadata, like the page number, the minimum sequence number contained in the page, + * the status of the page (writeable or not). + * */ public final class Page implements Closeable { protected final int pageNum; protected long minSeqNum; // TODO: see if we can make it final? diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/PqCheck.java b/logstash-core/src/main/java/org/logstash/ackedqueue/PqCheck.java index 0d02d258b..512ea6a81 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/PqCheck.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/PqCheck.java @@ -30,6 +30,9 @@ import java.util.Comparator; import java.util.stream.StreamSupport; import org.logstash.ackedqueue.io.FileCheckpointIO; +/** + * Utility application to detect corrupted persistent queues. + * */ public final class PqCheck { private static final String DEFAULT_PQ_DIR = "data/queue/main"; diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java index 3c7232e15..12071554b 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Queue.java @@ -46,6 +46,9 @@ import org.logstash.ackedqueue.io.MmapPageIOV2; import org.logstash.ackedqueue.io.PageIO; import org.logstash.common.FsUtil; +/** + * Persistent queue implementation. + * */ public final class Queue implements Closeable { private long seqNum; diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/QueueFactoryExt.java b/logstash-core/src/main/java/org/logstash/ackedqueue/QueueFactoryExt.java index dad620067..15b572d7d 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/QueueFactoryExt.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/QueueFactoryExt.java @@ -36,6 +36,9 @@ import org.logstash.ackedqueue.ext.JRubyWrappedAckedQueueExt; import org.logstash.execution.AbstractWrappedQueueExt; import org.logstash.ext.JrubyWrappedSynchronousQueueExt; +/** + * Persistent queue factory JRuby extension. + * */ @JRubyClass(name = "QueueFactory") public final class QueueFactoryExt extends RubyBasicObject { diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/QueueRuntimeException.java b/logstash-core/src/main/java/org/logstash/ackedqueue/QueueRuntimeException.java index 70098bd3c..d40fb3d95 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/QueueRuntimeException.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/QueueRuntimeException.java @@ -20,6 +20,9 @@ package org.logstash.ackedqueue; +/** + * Runtime exception specialization for persistent queue related runtime errors. + * */ public class QueueRuntimeException extends RuntimeException { private static final long serialVersionUID = 1L; diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/QueueUpgrade.java b/logstash-core/src/main/java/org/logstash/ackedqueue/QueueUpgrade.java index 8147c092f..140120e55 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/QueueUpgrade.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/QueueUpgrade.java @@ -41,6 +41,9 @@ import org.logstash.ackedqueue.io.MmapPageIOV1; import org.logstash.ackedqueue.io.MmapPageIOV2; import org.logstash.ackedqueue.io.PageIO; +/** + * Exposes the {@link #upgradeQueueDirectoryToV2} method upgrade old v1 queue disk format to the new v2 + * */ public final class QueueUpgrade { private static final Logger LOGGER = LogManager.getLogger(QueueUpgrade.class); diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Queueable.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Queueable.java index e4896e9b7..7cb203d25 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Queueable.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Queueable.java @@ -22,6 +22,9 @@ package org.logstash.ackedqueue; import java.io.IOException; +/** + * Subclasses that are stored in queues must implement this to provide serializer and deserializer. + * */ public interface Queueable { byte[] serialize() throws IOException; diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/SequencedList.java b/logstash-core/src/main/java/org/logstash/ackedqueue/SequencedList.java index 1b07afa9f..4a26a47e6 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/SequencedList.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/SequencedList.java @@ -23,6 +23,9 @@ package org.logstash.ackedqueue; import java.util.List; import org.logstash.ackedqueue.io.LongVector; +/** + * Carries sequence numbers and items read from queue. + * */ public class SequencedList { private final List elements; private final LongVector seqNums; diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java b/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java index 3444a05b0..45b34fe0f 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/Settings.java @@ -20,6 +20,9 @@ package org.logstash.ackedqueue; +/** + * Persistent queue settings definition. + * */ public interface Settings { Class getElementClass(); @@ -38,6 +41,9 @@ public interface Settings { boolean getCheckpointRetry(); + /** + * Persistent queue Setting's fluent builder definition + * */ interface Builder { Builder elementClass(Class elementClass); diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/SettingsImpl.java b/logstash-core/src/main/java/org/logstash/ackedqueue/SettingsImpl.java index b1e1e6c6d..417bc81a8 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/SettingsImpl.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/SettingsImpl.java @@ -20,6 +20,9 @@ package org.logstash.ackedqueue; +/** + * Persistent queue settings implementation. + * */ public class SettingsImpl implements Settings { private String dirForFiles; private Class elementClass; @@ -94,6 +97,9 @@ public class SettingsImpl implements Settings { return this.checkpointRetry; } + /** + * Default implementation for Setting's Builder + * */ private static final class BuilderImpl implements Builder { /** diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/ext/JRubyAckedQueueExt.java b/logstash-core/src/main/java/org/logstash/ackedqueue/ext/JRubyAckedQueueExt.java index c7d1257e4..c320c116b 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/ext/JRubyAckedQueueExt.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/ext/JRubyAckedQueueExt.java @@ -38,6 +38,9 @@ import org.logstash.ackedqueue.Batch; import org.logstash.ackedqueue.Queue; import org.logstash.ackedqueue.SettingsImpl; +/** + * JRuby extension to wrap a persistent queue istance. + * */ @JRubyClass(name = "AckedQueue") public final class JRubyAckedQueueExt extends RubyObject { diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/ext/JRubyWrappedAckedQueueExt.java b/logstash-core/src/main/java/org/logstash/ackedqueue/ext/JRubyWrappedAckedQueueExt.java index 6bc03d1fe..bfa077b70 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/ext/JRubyWrappedAckedQueueExt.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/ext/JRubyWrappedAckedQueueExt.java @@ -39,6 +39,9 @@ import org.logstash.ext.JrubyAckedReadClientExt; import org.logstash.ext.JrubyAckedWriteClientExt; import org.logstash.ext.JrubyEventExtLibrary; +/** + * JRuby extension + * */ @JRubyClass(name = "WrappedAckedQueue") public final class JRubyWrappedAckedQueueExt extends AbstractWrappedQueueExt { diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/io/CheckpointIO.java b/logstash-core/src/main/java/org/logstash/ackedqueue/io/CheckpointIO.java index a8e3153c0..447ef7baa 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/io/CheckpointIO.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/io/CheckpointIO.java @@ -23,6 +23,9 @@ package org.logstash.ackedqueue.io; import org.logstash.ackedqueue.Checkpoint; import java.io.IOException; +/** + * Internal API to access checkpoint stored in files. + * */ public interface CheckpointIO { // @return Checkpoint the written checkpoint object diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/io/FileCheckpointIO.java b/logstash-core/src/main/java/org/logstash/ackedqueue/io/FileCheckpointIO.java index db40f65d0..4e0f8866d 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/io/FileCheckpointIO.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/io/FileCheckpointIO.java @@ -33,6 +33,10 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.logstash.ackedqueue.Checkpoint; + +/** + * File implementation for {@link CheckpointIO} + * */ public class FileCheckpointIO implements CheckpointIO { // Checkpoint file structure // diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/io/LongVector.java b/logstash-core/src/main/java/org/logstash/ackedqueue/io/LongVector.java index 18b312179..05343a8a5 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/io/LongVector.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/io/LongVector.java @@ -20,6 +20,12 @@ package org.logstash.ackedqueue.io; +/** + * Internal class used in persistent queue implementation. + * + * It'a vector that stores primitives long (no autoboxing) expanding, by copy, the underling array when + * more space is needed. + * */ public final class LongVector { private int count; diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/io/MmapPageIOV2.java b/logstash-core/src/main/java/org/logstash/ackedqueue/io/MmapPageIOV2.java index ecb4ee170..0de29a41c 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/io/MmapPageIOV2.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/io/MmapPageIOV2.java @@ -35,6 +35,9 @@ import org.apache.logging.log4j.Logger; import org.logstash.LogstashJavaCompat; import org.logstash.ackedqueue.SequencedList; +/** + * Internal API, v2 mmap implementation of {@link PageIO} + * */ public final class MmapPageIOV2 implements PageIO { public static final byte VERSION_TWO = (byte) 2; @@ -392,6 +395,9 @@ public final class MmapPageIOV2 implements PageIO { } } + /** + * Invalid Page structure exception + * */ public static final class PageIOInvalidElementException extends IOException { private static final long serialVersionUID = 1L; @@ -401,6 +407,9 @@ public final class MmapPageIOV2 implements PageIO { } } + /** + * Invalid page version exception. + * */ public static final class PageIOInvalidVersionException extends IOException { private static final long serialVersionUID = 1L; diff --git a/logstash-core/src/main/java/org/logstash/ackedqueue/io/PageIO.java b/logstash-core/src/main/java/org/logstash/ackedqueue/io/PageIO.java index bee69a31a..98231e36e 100644 --- a/logstash-core/src/main/java/org/logstash/ackedqueue/io/PageIO.java +++ b/logstash-core/src/main/java/org/logstash/ackedqueue/io/PageIO.java @@ -25,6 +25,9 @@ import org.logstash.ackedqueue.SequencedList; import java.io.Closeable; import java.io.IOException; +/** + * Internal API to access pages stored in files. + * */ public interface PageIO extends Closeable { // the concrete class should be constructed with the pageNum, capacity and dirPath attributes diff --git a/logstash-core/src/main/java/org/logstash/execution/AbstractPipelineExt.java b/logstash-core/src/main/java/org/logstash/execution/AbstractPipelineExt.java index b36936ac7..d08385be8 100644 --- a/logstash-core/src/main/java/org/logstash/execution/AbstractPipelineExt.java +++ b/logstash-core/src/main/java/org/logstash/execution/AbstractPipelineExt.java @@ -65,6 +65,9 @@ import org.logstash.instrument.metrics.NullMetricExt; import org.logstash.secret.store.SecretStore; import org.logstash.secret.store.SecretStoreExt; +/** + * JRuby extension to provide ancestor class for Ruby's Pipeline and JavaPipeline classes. + * */ @JRubyClass(name = "AbstractPipeline") public class AbstractPipelineExt extends RubyBasicObject { diff --git a/logstash-core/src/main/java/org/logstash/execution/AbstractWrappedQueueExt.java b/logstash-core/src/main/java/org/logstash/execution/AbstractWrappedQueueExt.java index 0a16fb896..128cc00fa 100644 --- a/logstash-core/src/main/java/org/logstash/execution/AbstractWrappedQueueExt.java +++ b/logstash-core/src/main/java/org/logstash/execution/AbstractWrappedQueueExt.java @@ -29,6 +29,9 @@ import org.jruby.runtime.ThreadContext; import org.jruby.runtime.builtin.IRubyObject; import org.logstash.ext.JRubyAbstractQueueWriteClientExt; +/** + * Interface definition for JRuby extensions for in memory and persistent queue + * */ @JRubyClass(name = "AbstractWrappedQueue") public abstract class AbstractWrappedQueueExt extends RubyBasicObject { diff --git a/logstash-core/src/main/java/org/logstash/execution/ConvergeResultExt.java b/logstash-core/src/main/java/org/logstash/execution/ConvergeResultExt.java index 4d912a0f3..14a71de8a 100644 --- a/logstash-core/src/main/java/org/logstash/execution/ConvergeResultExt.java +++ b/logstash-core/src/main/java/org/logstash/execution/ConvergeResultExt.java @@ -33,6 +33,9 @@ import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +/** + * JRuby extension, used by agent to collect the results of running pipeliene actions (Create, Update, Delete) + * */ @JRubyClass(name = "ConvergeResult") public class ConvergeResultExt extends RubyObject { @@ -102,6 +105,9 @@ public class ConvergeResultExt extends RubyObject { } + /** + * Base class for all action results classes (Failed / Success) + * */ @JRubyClass(name = "ActionResult") public static abstract class ActionResultExt extends RubyBasicObject { @@ -153,6 +159,9 @@ public class ConvergeResultExt extends RubyObject { protected abstract boolean getSuccessFul(); } + /** + * Failed result of running an action. + * */ @JRubyClass(name = "FailedAction") public static final class FailedActionExt extends ActionResultExt { @@ -209,6 +218,9 @@ public class ConvergeResultExt extends RubyObject { } } + /** + * Successful result of running an action. + * */ @JRubyClass(name = "SuccessfulAction") public static final class SuccessfulActionExt extends ActionResultExt { diff --git a/logstash-core/src/main/java/org/logstash/execution/EventDispatcherExt.java b/logstash-core/src/main/java/org/logstash/execution/EventDispatcherExt.java index 507015e87..792f29632 100644 --- a/logstash-core/src/main/java/org/logstash/execution/EventDispatcherExt.java +++ b/logstash-core/src/main/java/org/logstash/execution/EventDispatcherExt.java @@ -30,6 +30,9 @@ import org.jruby.anno.JRubyMethod; import org.jruby.runtime.ThreadContext; import org.jruby.runtime.builtin.IRubyObject; +/** + * JRuby extension that provides a class to keep track of listener and dispatch events to those. + * */ @JRubyClass(name = "EventDispatcher") public final class EventDispatcherExt extends RubyBasicObject { diff --git a/logstash-core/src/main/java/org/logstash/execution/ExecutionContextExt.java b/logstash-core/src/main/java/org/logstash/execution/ExecutionContextExt.java index f7815c746..cdd212571 100644 --- a/logstash-core/src/main/java/org/logstash/execution/ExecutionContextExt.java +++ b/logstash-core/src/main/java/org/logstash/execution/ExecutionContextExt.java @@ -31,6 +31,10 @@ import org.jruby.runtime.builtin.IRubyObject; import org.logstash.RubyUtil; import org.logstash.common.AbstractDeadLetterQueueWriterExt; +/** + * JRuby extension to provide execution context to the plugins, + * instantiated by {@link org.logstash.plugins.factory.ExecutionContextFactoryExt} + * */ @JRubyClass(name = "ExecutionContext") public final class ExecutionContextExt extends RubyObject { diff --git a/logstash-core/src/main/java/org/logstash/execution/JavaBasePipelineExt.java b/logstash-core/src/main/java/org/logstash/execution/JavaBasePipelineExt.java index 7d58f2c1a..4367652aa 100644 --- a/logstash-core/src/main/java/org/logstash/execution/JavaBasePipelineExt.java +++ b/logstash-core/src/main/java/org/logstash/execution/JavaBasePipelineExt.java @@ -44,6 +44,9 @@ import java.security.NoSuchAlgorithmException; import java.util.Collection; import java.util.stream.Stream; +/** + * JRuby extension used as parent for Ruby's JavaPipelines + * */ @JRubyClass(name = "JavaBasePipeline") public final class JavaBasePipelineExt extends AbstractPipelineExt { diff --git a/logstash-core/src/main/java/org/logstash/execution/MemoryReadBatch.java b/logstash-core/src/main/java/org/logstash/execution/MemoryReadBatch.java index 5108d0a3d..6a70db2cb 100644 --- a/logstash-core/src/main/java/org/logstash/execution/MemoryReadBatch.java +++ b/logstash-core/src/main/java/org/logstash/execution/MemoryReadBatch.java @@ -26,6 +26,9 @@ import java.util.Collection; import static org.logstash.RubyUtil.RUBY; +/** + * In memory queue collection of events implementation + * */ public final class MemoryReadBatch implements QueueBatch { private final Collection events; diff --git a/logstash-core/src/main/java/org/logstash/execution/PeriodicFlush.java b/logstash-core/src/main/java/org/logstash/execution/PeriodicFlush.java index 329f51013..2d506652f 100644 --- a/logstash-core/src/main/java/org/logstash/execution/PeriodicFlush.java +++ b/logstash-core/src/main/java/org/logstash/execution/PeriodicFlush.java @@ -28,6 +28,9 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @SuppressWarnings("try") +/** + * Used by Ruby's JavaPipeline + * */ public final class PeriodicFlush implements AutoCloseable { private static final Logger LOGGER = LogManager.getLogger(PeriodicFlush.class); diff --git a/logstash-core/src/main/java/org/logstash/execution/PipelineReporterExt.java b/logstash-core/src/main/java/org/logstash/execution/PipelineReporterExt.java index 46e4f6720..1d59f8cdc 100644 --- a/logstash-core/src/main/java/org/logstash/execution/PipelineReporterExt.java +++ b/logstash-core/src/main/java/org/logstash/execution/PipelineReporterExt.java @@ -37,6 +37,9 @@ import org.logstash.config.ir.compiler.AbstractOutputDelegatorExt; import java.util.Collection; +/** + * JRuby extension + * */ @JRubyClass(name = "PipelineReporter") public final class PipelineReporterExt extends RubyBasicObject { diff --git a/logstash-core/src/main/java/org/logstash/execution/QueueBatch.java b/logstash-core/src/main/java/org/logstash/execution/QueueBatch.java index 7da54d6f5..f7b9d59ea 100644 --- a/logstash-core/src/main/java/org/logstash/execution/QueueBatch.java +++ b/logstash-core/src/main/java/org/logstash/execution/QueueBatch.java @@ -24,6 +24,9 @@ import org.logstash.ext.JrubyEventExtLibrary.RubyEvent; import java.io.IOException; import java.util.Collection; +/** + * Defines collection of queue events to be processed. + * */ public interface QueueBatch { int filteredSize(); RubyArray to_a(); diff --git a/logstash-core/src/main/java/org/logstash/execution/QueueReadClient.java b/logstash-core/src/main/java/org/logstash/execution/QueueReadClient.java index ac78034eb..ccca34a39 100644 --- a/logstash-core/src/main/java/org/logstash/execution/QueueReadClient.java +++ b/logstash-core/src/main/java/org/logstash/execution/QueueReadClient.java @@ -22,6 +22,9 @@ package org.logstash.execution; import java.io.IOException; +/** + * Defines the methods to interact with queues from the the reader perspective + * */ public interface QueueReadClient { QueueBatch readBatch() throws InterruptedException; QueueBatch newBatch(); diff --git a/logstash-core/src/main/java/org/logstash/execution/QueueReadClientBase.java b/logstash-core/src/main/java/org/logstash/execution/QueueReadClientBase.java index d4eb6a05f..dd8408a32 100644 --- a/logstash-core/src/main/java/org/logstash/execution/QueueReadClientBase.java +++ b/logstash-core/src/main/java/org/logstash/execution/QueueReadClientBase.java @@ -39,6 +39,9 @@ import java.io.IOException; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; +/** + * Common code shared by Persistent and In-Memory queues clients implementation + * */ @JRubyClass(name = "QueueReadClientBase") public abstract class QueueReadClientBase extends RubyObject implements QueueReadClient { diff --git a/logstash-core/src/main/java/org/logstash/execution/ShutdownWatcherExt.java b/logstash-core/src/main/java/org/logstash/execution/ShutdownWatcherExt.java index 12930b51a..3ac84ec4f 100644 --- a/logstash-core/src/main/java/org/logstash/execution/ShutdownWatcherExt.java +++ b/logstash-core/src/main/java/org/logstash/execution/ShutdownWatcherExt.java @@ -37,6 +37,9 @@ import org.jruby.runtime.ThreadContext; import org.jruby.runtime.builtin.IRubyObject; import org.logstash.RubyUtil; +/** + * JRuby extension, used by pipelines to execute the shutdown flow of a pipeline. + * */ @JRubyClass(name = "ShutdownWatcher") public final class ShutdownWatcherExt extends RubyBasicObject { diff --git a/logstash-core/src/main/java/org/logstash/execution/WorkerLoop.java b/logstash-core/src/main/java/org/logstash/execution/WorkerLoop.java index b0e974d3d..3a0c97ddb 100644 --- a/logstash-core/src/main/java/org/logstash/execution/WorkerLoop.java +++ b/logstash-core/src/main/java/org/logstash/execution/WorkerLoop.java @@ -25,6 +25,10 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.logstash.config.ir.CompiledPipeline; +/** + * Pipeline execution worker, it's responsible to execute filters and output plugins for each {@link QueueBatch} that + * pull out from queue. + * */ public final class WorkerLoop implements Runnable { private static final Logger LOGGER = LogManager.getLogger(WorkerLoop.class); diff --git a/logstash-core/src/main/java/org/logstash/execution/queue/LegacyMemoryQueueWriter.java b/logstash-core/src/main/java/org/logstash/execution/queue/LegacyMemoryQueueWriter.java deleted file mode 100644 index 15f3a7b1e..000000000 --- a/logstash-core/src/main/java/org/logstash/execution/queue/LegacyMemoryQueueWriter.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. 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.logstash.execution.queue; - -import java.util.Map; -import java.util.concurrent.BlockingQueue; -import org.logstash.Event; -import org.logstash.RubyUtil; -import org.logstash.ext.JrubyEventExtLibrary; - -public final class LegacyMemoryQueueWriter implements QueueWriter { - - private final BlockingQueue queue; - - public LegacyMemoryQueueWriter(final BlockingQueue queue) { - this.queue = queue; - } - - @Override - public void push(final Map event) { - try { - queue.put(JrubyEventExtLibrary.RubyEvent.newRubyEvent(RubyUtil.RUBY, new Event(event))); - } catch (final InterruptedException ex) { - throw new IllegalStateException(ex); - } - } - -} diff --git a/logstash-core/src/main/java/org/logstash/ext/JrubyAckedReadClientExt.java b/logstash-core/src/main/java/org/logstash/ext/JrubyAckedReadClientExt.java index 3807ed688..273fa6cb2 100644 --- a/logstash-core/src/main/java/org/logstash/ext/JrubyAckedReadClientExt.java +++ b/logstash-core/src/main/java/org/logstash/ext/JrubyAckedReadClientExt.java @@ -35,6 +35,9 @@ import org.logstash.execution.QueueReadClientBase; import java.io.IOException; +/** + * JRuby extension to provide an implementation of queue client for Persistent queue + * */ @JRubyClass(name = "AckedReadClient", parent = "QueueReadClientBase") public final class JrubyAckedReadClientExt extends QueueReadClientBase implements QueueReadClient { diff --git a/logstash-core/src/main/java/org/logstash/ext/JrubyMemoryReadClientExt.java b/logstash-core/src/main/java/org/logstash/ext/JrubyMemoryReadClientExt.java index 95e173b6a..f8da9c367 100644 --- a/logstash-core/src/main/java/org/logstash/ext/JrubyMemoryReadClientExt.java +++ b/logstash-core/src/main/java/org/logstash/ext/JrubyMemoryReadClientExt.java @@ -31,6 +31,9 @@ import org.logstash.execution.MemoryReadBatch; import org.logstash.execution.QueueBatch; import org.logstash.execution.QueueReadClientBase; +/** + * JRuby extension to provide an implementation of queue client for InMemory queue + * */ @JRubyClass(name = "MemoryReadClient", parent = "QueueReadClientBase") public final class JrubyMemoryReadClientExt extends QueueReadClientBase { diff --git a/logstash-core/src/main/java/org/logstash/ext/JrubyWrappedSynchronousQueueExt.java b/logstash-core/src/main/java/org/logstash/ext/JrubyWrappedSynchronousQueueExt.java index 4962dffc6..c75156280 100644 --- a/logstash-core/src/main/java/org/logstash/ext/JrubyWrappedSynchronousQueueExt.java +++ b/logstash-core/src/main/java/org/logstash/ext/JrubyWrappedSynchronousQueueExt.java @@ -32,6 +32,9 @@ import org.jruby.runtime.builtin.IRubyObject; import org.logstash.execution.AbstractWrappedQueueExt; import org.logstash.execution.QueueReadClientBase; +/** + * JRuby extension to wrap in memory queue + * */ @JRubyClass(name = "WrappedSynchronousQueue") public final class JrubyWrappedSynchronousQueueExt extends AbstractWrappedQueueExt { diff --git a/logstash-core/src/main/java/org/logstash/instrument/metrics/AbstractMetricExt.java b/logstash-core/src/main/java/org/logstash/instrument/metrics/AbstractMetricExt.java index ed4650a84..38ed25ad7 100644 --- a/logstash-core/src/main/java/org/logstash/instrument/metrics/AbstractMetricExt.java +++ b/logstash-core/src/main/java/org/logstash/instrument/metrics/AbstractMetricExt.java @@ -28,6 +28,9 @@ import org.jruby.anno.JRubyMethod; import org.jruby.runtime.ThreadContext; import org.jruby.runtime.builtin.IRubyObject; +/** + * JRuby extension to model the metrics collection + * */ @JRubyClass(name = "AbstractMetric") public abstract class AbstractMetricExt extends RubyObject { diff --git a/logstash-core/src/main/java/org/logstash/log/CustomLogEvent.java b/logstash-core/src/main/java/org/logstash/log/CustomLogEvent.java index bc6d0b10f..6de6a9671 100644 --- a/logstash-core/src/main/java/org/logstash/log/CustomLogEvent.java +++ b/logstash-core/src/main/java/org/logstash/log/CustomLogEvent.java @@ -48,6 +48,9 @@ import org.apache.logging.log4j.message.Message; import java.util.List; +/** + * Customized Logstash log event + * */ @JsonSerialize(using = CustomLogEventSerializer.class) public class CustomLogEvent extends Log4jLogEvent { diff --git a/logstash-core/src/main/java/org/logstash/log/CustomLogEventSerializer.java b/logstash-core/src/main/java/org/logstash/log/CustomLogEventSerializer.java index a31d3c753..cfda88a3e 100644 --- a/logstash-core/src/main/java/org/logstash/log/CustomLogEventSerializer.java +++ b/logstash-core/src/main/java/org/logstash/log/CustomLogEventSerializer.java @@ -28,6 +28,9 @@ import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; import java.util.Map; +/** + * Json serializer for logging messages, use in json appender. + * */ public class CustomLogEventSerializer extends JsonSerializer { @Override public void serialize(CustomLogEvent event, JsonGenerator generator, SerializerProvider provider) throws IOException { diff --git a/logstash-core/src/main/java/org/logstash/log/DeprecationLoggerExt.java b/logstash-core/src/main/java/org/logstash/log/DeprecationLoggerExt.java index f4a926412..8dd2e1e2f 100644 --- a/logstash-core/src/main/java/org/logstash/log/DeprecationLoggerExt.java +++ b/logstash-core/src/main/java/org/logstash/log/DeprecationLoggerExt.java @@ -29,6 +29,9 @@ import org.jruby.anno.JRubyMethod; import org.jruby.runtime.ThreadContext; import org.jruby.runtime.builtin.IRubyObject; +/** + * JRuby extension to provide deprecation logger functionality to Ruby classes + * */ @JRubyClass(name = "DeprecationLogger") public class DeprecationLoggerExt extends RubyObject { diff --git a/logstash-core/src/main/java/org/logstash/log/LoggableExt.java b/logstash-core/src/main/java/org/logstash/log/LoggableExt.java index a85dd7239..caef20eaf 100644 --- a/logstash-core/src/main/java/org/logstash/log/LoggableExt.java +++ b/logstash-core/src/main/java/org/logstash/log/LoggableExt.java @@ -33,6 +33,9 @@ import java.util.Locale; import static org.logstash.log.SlowLoggerExt.toLong; +/** + * JRuby extension, it's part of log4j wrapping for JRuby. + * */ @JRubyModule(name = "Loggable") public final class LoggableExt { diff --git a/logstash-core/src/main/java/org/logstash/log/LoggerExt.java b/logstash-core/src/main/java/org/logstash/log/LoggerExt.java index 946416b23..dae0f97de 100644 --- a/logstash-core/src/main/java/org/logstash/log/LoggerExt.java +++ b/logstash-core/src/main/java/org/logstash/log/LoggerExt.java @@ -39,6 +39,10 @@ import org.jruby.runtime.builtin.IRubyObject; import java.io.File; import java.net.URI; +/** + * JRuby extension, it's part of log4j wrapping for JRuby. + * Wrapper log4j Logger as Ruby like class + * */ @JRubyClass(name = "Logger") public class LoggerExt extends RubyObject { diff --git a/logstash-core/src/main/java/org/logstash/log/LogstashConfigurationFactory.java b/logstash-core/src/main/java/org/logstash/log/LogstashConfigurationFactory.java index 5fc50e328..ee1eb3f35 100644 --- a/logstash-core/src/main/java/org/logstash/log/LogstashConfigurationFactory.java +++ b/logstash-core/src/main/java/org/logstash/log/LogstashConfigurationFactory.java @@ -33,6 +33,10 @@ import java.io.IOException; import java.io.InputStream; import java.util.Properties; +/** + * Logstash configuration factory customization used to remove the routing appender from log4j configuration + * if "separate_logs" settings is false. + * */ @Plugin(name = "LogstashConfigurationFactory", category = ConfigurationFactory.CATEGORY) @Order(9) public class LogstashConfigurationFactory extends ConfigurationFactory { diff --git a/logstash-core/src/main/java/org/logstash/log/LogstashLogEventFactory.java b/logstash-core/src/main/java/org/logstash/log/LogstashLogEventFactory.java index 6b253c9f9..4ecf21ab1 100644 --- a/logstash-core/src/main/java/org/logstash/log/LogstashLogEventFactory.java +++ b/logstash-core/src/main/java/org/logstash/log/LogstashLogEventFactory.java @@ -29,6 +29,9 @@ import org.apache.logging.log4j.message.Message; import java.util.List; +/** + * Logstash implementation of factory for Log4j LogEvent + * */ public class LogstashLogEventFactory implements LogEventFactory { @Override public LogEvent createEvent(String loggerName, Marker marker, String fqcn, Level level, Message data, List properties, Throwable t) { diff --git a/logstash-core/src/main/java/org/logstash/log/LogstashMessageFactory.java b/logstash-core/src/main/java/org/logstash/log/LogstashMessageFactory.java index 609de6b4a..cca2f1418 100644 --- a/logstash-core/src/main/java/org/logstash/log/LogstashMessageFactory.java +++ b/logstash-core/src/main/java/org/logstash/log/LogstashMessageFactory.java @@ -28,6 +28,9 @@ import org.apache.logging.log4j.message.SimpleMessage; import java.util.Map; +/** + * Used in Log4j configuration. + * */ public final class LogstashMessageFactory implements MessageFactory { public static final LogstashMessageFactory INSTANCE = new LogstashMessageFactory(); diff --git a/logstash-core/src/main/java/org/logstash/log/SlowLoggerExt.java b/logstash-core/src/main/java/org/logstash/log/SlowLoggerExt.java index 21f63c730..741200a32 100644 --- a/logstash-core/src/main/java/org/logstash/log/SlowLoggerExt.java +++ b/logstash-core/src/main/java/org/logstash/log/SlowLoggerExt.java @@ -34,6 +34,9 @@ import org.jruby.runtime.ThreadContext; import org.jruby.runtime.builtin.IRubyObject; import org.logstash.RubyUtil; +/** + * JRuby extension to provide slow logger functionality to Ruby classes + * */ @JRubyClass(name = "SlowLogger") public class SlowLoggerExt extends RubyObject { diff --git a/logstash-core/src/main/java/org/logstash/log/StructuredMessage.java b/logstash-core/src/main/java/org/logstash/log/StructuredMessage.java index 44b6d3895..810d71413 100644 --- a/logstash-core/src/main/java/org/logstash/log/StructuredMessage.java +++ b/logstash-core/src/main/java/org/logstash/log/StructuredMessage.java @@ -26,6 +26,9 @@ import org.apache.logging.log4j.message.Message; import java.util.HashMap; import java.util.Map; +/** + * Logging message extension class + * */ @JsonSerialize(using = CustomLogEventSerializer.class) public class StructuredMessage implements Message { diff --git a/logstash-core/src/main/java/org/logstash/plugins/ConfigVariableExpander.java b/logstash-core/src/main/java/org/logstash/plugins/ConfigVariableExpander.java index fb1247f3c..a66037a07 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/ConfigVariableExpander.java +++ b/logstash-core/src/main/java/org/logstash/plugins/ConfigVariableExpander.java @@ -28,6 +28,10 @@ import java.nio.charset.StandardCharsets; import java.util.regex.Matcher; import java.util.regex.Pattern; +/** + * Expand the configuration variables used in pipeline configuration, bringing them from secret store or from the + * environment. + * */ public class ConfigVariableExpander implements AutoCloseable { private static String SUBSTITUTION_PLACEHOLDER_REGEX = "\\$\\{(?[a-zA-Z_.][a-zA-Z0-9_.]*)(:(?[^}]*))?}"; diff --git a/logstash-core/src/main/java/org/logstash/plugins/ContextImpl.java b/logstash-core/src/main/java/org/logstash/plugins/ContextImpl.java index 0fcbdc032..5ee3e48cf 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/ContextImpl.java +++ b/logstash-core/src/main/java/org/logstash/plugins/ContextImpl.java @@ -29,6 +29,9 @@ import org.logstash.log.DefaultDeprecationLogger; import java.io.Serializable; import java.util.Map; +/** + * Default implementation of Logstash Plugin's {@link Context} + * */ public class ContextImpl implements Context { private DeadLetterQueueWriter dlqWriter; diff --git a/logstash-core/src/main/java/org/logstash/plugins/CounterMetricImpl.java b/logstash-core/src/main/java/org/logstash/plugins/CounterMetricImpl.java index 87226ee17..be652d4df 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/CounterMetricImpl.java +++ b/logstash-core/src/main/java/org/logstash/plugins/CounterMetricImpl.java @@ -25,6 +25,9 @@ import org.jruby.runtime.ThreadContext; import org.logstash.instrument.metrics.AbstractNamespacedMetricExt; import org.logstash.instrument.metrics.counter.LongCounter; +/** + * Default implementation of {@link CounterMetric} + * */ public class CounterMetricImpl implements CounterMetric { private LongCounter longCounter; diff --git a/logstash-core/src/main/java/org/logstash/plugins/HooksRegistryExt.java b/logstash-core/src/main/java/org/logstash/plugins/HooksRegistryExt.java index d2534ba06..516163e06 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/HooksRegistryExt.java +++ b/logstash-core/src/main/java/org/logstash/plugins/HooksRegistryExt.java @@ -34,6 +34,9 @@ import java.util.List; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; +/** + * JRuby extension class that collect all the emitters and hooks + * */ @JRubyClass(name = "HooksRegistry") public final class HooksRegistryExt extends RubyObject { diff --git a/logstash-core/src/main/java/org/logstash/plugins/PluginLookup.java b/logstash-core/src/main/java/org/logstash/plugins/PluginLookup.java index 2b09e49b0..c61bacc75 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/PluginLookup.java +++ b/logstash-core/src/main/java/org/logstash/plugins/PluginLookup.java @@ -106,6 +106,9 @@ public final class PluginLookup { } } + /** + * Descriptor of a plugin implementation. Defines the implementation language and the plugin class + * */ public interface PluginClass { PluginLookup.PluginLanguage language(); @@ -116,10 +119,16 @@ public final class PluginLookup { } } + /** + * Enum all the implementation languages used by plugins + * */ public enum PluginLanguage { JAVA, RUBY } + /** + * Enum all the plugins types used inside Logstash + * */ public enum PluginType { INPUT("input", "inputs", Input.class), FILTER("filter", "filters", Filter.class), diff --git a/logstash-core/src/main/java/org/logstash/plugins/PluginUtil.java b/logstash-core/src/main/java/org/logstash/plugins/PluginUtil.java index 7fa78650a..3a23e1814 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/PluginUtil.java +++ b/logstash-core/src/main/java/org/logstash/plugins/PluginUtil.java @@ -33,6 +33,9 @@ import java.util.Collection; import java.util.List; import java.util.stream.Collectors; +/** + * Plugin's utility methods + * */ public class PluginUtil { private PluginUtil() { /* utility methods */ } diff --git a/logstash-core/src/main/java/org/logstash/plugins/codecs/Dots.java b/logstash-core/src/main/java/org/logstash/plugins/codecs/Dots.java index 3326161d0..acad62ff8 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/codecs/Dots.java +++ b/logstash-core/src/main/java/org/logstash/plugins/codecs/Dots.java @@ -36,6 +36,9 @@ import java.util.Map; import java.util.UUID; import java.util.function.Consumer; +/** + * Java implementation of the "dots" codec + * */ @LogstashPlugin(name = "jdots") public class Dots implements Codec { diff --git a/logstash-core/src/main/java/org/logstash/plugins/codecs/Line.java b/logstash-core/src/main/java/org/logstash/plugins/codecs/Line.java index e42c5fa9f..9e3570c50 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/codecs/Line.java +++ b/logstash-core/src/main/java/org/logstash/plugins/codecs/Line.java @@ -46,6 +46,9 @@ import java.util.function.Consumer; import static org.logstash.ObjectMappers.JSON_MAPPER; +/** + * Java implementation of the "line" codec + * */ @LogstashPlugin(name = "java_line") public class Line implements Codec { diff --git a/logstash-core/src/main/java/org/logstash/plugins/factory/ExecutionContextFactoryExt.java b/logstash-core/src/main/java/org/logstash/plugins/factory/ExecutionContextFactoryExt.java index 2799eb12c..aa822bedf 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/factory/ExecutionContextFactoryExt.java +++ b/logstash-core/src/main/java/org/logstash/plugins/factory/ExecutionContextFactoryExt.java @@ -19,6 +19,9 @@ import org.logstash.plugins.ContextImpl; import org.logstash.plugins.NamespacedMetricImpl; import org.logstash.plugins.PluginLookup; +/** + * JRuby extension, factory class for plugins execution contexts + * */ @JRubyClass(name = "ExecutionContextFactory") public final class ExecutionContextFactoryExt extends RubyBasicObject { diff --git a/logstash-core/src/main/java/org/logstash/plugins/factory/PluginFactoryExt.java b/logstash-core/src/main/java/org/logstash/plugins/factory/PluginFactoryExt.java index 0d3226e07..6365d63aa 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/factory/PluginFactoryExt.java +++ b/logstash-core/src/main/java/org/logstash/plugins/factory/PluginFactoryExt.java @@ -25,10 +25,16 @@ import org.logstash.plugins.PluginLookup; import java.util.*; import java.util.concurrent.ConcurrentHashMap; +/** + * JRuby extension to implement the factory that create plugin instances + * */ @JRubyClass(name = "PluginFactory") public final class PluginFactoryExt extends RubyBasicObject implements RubyIntegration.PluginFactory { + /** + * Definition of plugin resolver, maps plugin type and name to the plugin's class. + * */ @FunctionalInterface public interface PluginResolver { PluginLookup.PluginClass resolve(PluginLookup.PluginType type, String name); diff --git a/logstash-core/src/main/java/org/logstash/plugins/factory/PluginMetricsFactoryExt.java b/logstash-core/src/main/java/org/logstash/plugins/factory/PluginMetricsFactoryExt.java index 18a8aab33..339ee7f3f 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/factory/PluginMetricsFactoryExt.java +++ b/logstash-core/src/main/java/org/logstash/plugins/factory/PluginMetricsFactoryExt.java @@ -13,6 +13,9 @@ import org.logstash.instrument.metrics.NullMetricExt; import java.util.Arrays; +/** + * JRuby extension to implement a factory class for Plugin's metrics + * */ @JRubyClass(name = "PluginMetricsFactory") public final class PluginMetricsFactoryExt extends RubyBasicObject { diff --git a/logstash-core/src/main/java/org/logstash/plugins/filters/Uuid.java b/logstash-core/src/main/java/org/logstash/plugins/filters/Uuid.java index 05e72823e..db3b79c7c 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/filters/Uuid.java +++ b/logstash-core/src/main/java/org/logstash/plugins/filters/Uuid.java @@ -33,6 +33,9 @@ import java.util.Arrays; import java.util.Collection; import java.util.UUID; +/** + * Java implementation of the "uuid" filter + * */ @LogstashPlugin(name = "java_uuid") public class Uuid implements Filter { diff --git a/logstash-core/src/main/java/org/logstash/plugins/inputs/Generator.java b/logstash-core/src/main/java/org/logstash/plugins/inputs/Generator.java index bd1949c8e..ab58663e8 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/inputs/Generator.java +++ b/logstash-core/src/main/java/org/logstash/plugins/inputs/Generator.java @@ -42,6 +42,9 @@ import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; +/** + * Java implementation of the "generator" input + * */ @LogstashPlugin(name = "java_generator") public class Generator implements Input { diff --git a/logstash-core/src/main/java/org/logstash/plugins/inputs/Stdin.java b/logstash-core/src/main/java/org/logstash/plugins/inputs/Stdin.java index 6fd455156..5b2808a19 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/inputs/Stdin.java +++ b/logstash-core/src/main/java/org/logstash/plugins/inputs/Stdin.java @@ -43,6 +43,9 @@ import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.function.Consumer; +/** + * Java implementation of the "stdin" input + * */ @LogstashPlugin(name = "java_stdin") public class Stdin implements Input, Consumer> { diff --git a/logstash-core/src/main/java/org/logstash/plugins/outputs/Sink.java b/logstash-core/src/main/java/org/logstash/plugins/outputs/Sink.java index 3a756abac..3caf37d18 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/outputs/Sink.java +++ b/logstash-core/src/main/java/org/logstash/plugins/outputs/Sink.java @@ -30,6 +30,9 @@ import co.elastic.logstash.api.PluginHelper; import java.util.Collection; +/** + * Java implementation of "sink" output plugin + * */ @LogstashPlugin(name = "sink") public class Sink implements Output { diff --git a/logstash-core/src/main/java/org/logstash/plugins/outputs/Stdout.java b/logstash-core/src/main/java/org/logstash/plugins/outputs/Stdout.java index f112f138f..47124091e 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/outputs/Stdout.java +++ b/logstash-core/src/main/java/org/logstash/plugins/outputs/Stdout.java @@ -35,6 +35,9 @@ import java.util.Collection; import java.util.Collections; import java.util.concurrent.CountDownLatch; +/** + * Java implementation of the "stdout" output plugin + * */ @LogstashPlugin(name = "java_stdout") public class Stdout implements Output { diff --git a/logstash-core/src/main/java/org/logstash/plugins/pipeline/PipelineInput.java b/logstash-core/src/main/java/org/logstash/plugins/pipeline/PipelineInput.java index f29a24faa..b3500a47a 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/pipeline/PipelineInput.java +++ b/logstash-core/src/main/java/org/logstash/plugins/pipeline/PipelineInput.java @@ -24,6 +24,9 @@ import org.logstash.ext.JrubyEventExtLibrary; import java.util.stream.Stream; +/** + * Represents the in endpoint of a pipeline to pipeline communication. + * */ public interface PipelineInput { /** * Accepts an event. It might be rejected if the input is stopping. diff --git a/logstash-core/src/main/java/org/logstash/plugins/pipeline/PipelineOutput.java b/logstash-core/src/main/java/org/logstash/plugins/pipeline/PipelineOutput.java index a9247201c..47f6c77d1 100644 --- a/logstash-core/src/main/java/org/logstash/plugins/pipeline/PipelineOutput.java +++ b/logstash-core/src/main/java/org/logstash/plugins/pipeline/PipelineOutput.java @@ -20,5 +20,8 @@ package org.logstash.plugins.pipeline; +/** + * Represents the out endpoint of a pipeline to pipeline communication. + * */ public interface PipelineOutput { } diff --git a/logstash-core/src/main/java/org/logstash/secret/store/SecretStoreException.java b/logstash-core/src/main/java/org/logstash/secret/store/SecretStoreException.java index ac1b3dc2c..33bb02654 100644 --- a/logstash-core/src/main/java/org/logstash/secret/store/SecretStoreException.java +++ b/logstash-core/src/main/java/org/logstash/secret/store/SecretStoreException.java @@ -37,6 +37,9 @@ public class SecretStoreException extends RuntimeException { super(message); } + /** + * Error in retrive a secret from a keystore + * */ static public class RetrievalException extends SecretStoreException { private static final long serialVersionUID = 1L; public RetrievalException(SecretIdentifier secretIdentifier, Throwable cause) { @@ -44,6 +47,9 @@ public class SecretStoreException extends RuntimeException { } } + /** + * Error in listing secrets in key store + * */ static public class ListException extends SecretStoreException { private static final long serialVersionUID = 1L; public ListException(Throwable cause) { @@ -51,6 +57,9 @@ public class SecretStoreException extends RuntimeException { } } + /** + * Error in creating Logstash key store + * */ static public class CreateException extends SecretStoreException { private static final long serialVersionUID = 1L; public CreateException(String message, Throwable cause) { @@ -62,6 +71,9 @@ public class SecretStoreException extends RuntimeException { } } + /** + * Error in loading a key store, probably because it's not a Logstash keystore + * */ static public class LoadException extends SecretStoreException { private static final long serialVersionUID = 1L; public LoadException(String message, Throwable cause) { @@ -73,6 +85,9 @@ public class SecretStoreException extends RuntimeException { } } + /** + * Error in persisting a secret into a keystore + * */ static public class PersistException extends SecretStoreException { private static final long serialVersionUID = 1L; public PersistException(SecretIdentifier secretIdentifier, Throwable cause) { @@ -80,6 +95,9 @@ public class SecretStoreException extends RuntimeException { } } + /** + * Error in purge a secret from a keystore + * */ static public class PurgeException extends SecretStoreException { private static final long serialVersionUID = 1L; public PurgeException(SecretIdentifier secretIdentifier, Throwable cause) { @@ -87,6 +105,9 @@ public class SecretStoreException extends RuntimeException { } } + /** + * Generic error + * */ static public class UnknownException extends SecretStoreException { private static final long serialVersionUID = 1L; public UnknownException(String message, Throwable cause) { @@ -94,6 +115,9 @@ public class SecretStoreException extends RuntimeException { } } + /** + * Problem with "keystore.classname", can't be instantiated or class can't be found + * */ static public class ImplementationNotFoundException extends SecretStoreException { private static final long serialVersionUID = 1L; public ImplementationNotFoundException(String message, Throwable throwable) { @@ -101,6 +125,9 @@ public class SecretStoreException extends RuntimeException { } } + /** + * Problem with the value of "keystore.classname", class is invalid or not accessible + * */ static public class ImplementationInvalidException extends SecretStoreException { private static final long serialVersionUID = 1L; public ImplementationInvalidException(String message, Throwable throwable) { @@ -108,6 +135,9 @@ public class SecretStoreException extends RuntimeException { } } + /** + * Launched when there is problem accessing a keystore, for example the user provided empty password + * */ static public class AccessException extends SecretStoreException { private static final long serialVersionUID = 1L; public AccessException(String message, Throwable throwable) { @@ -119,6 +149,9 @@ public class SecretStoreException extends RuntimeException { } } + /** + * Launched when a keystore already exists + * */ static public class AlreadyExistsException extends SecretStoreException { private static final long serialVersionUID = 1L; public AlreadyExistsException(String message) { @@ -126,6 +159,9 @@ public class SecretStoreException extends RuntimeException { } } + /** + * Never used + * */ static public class InvalidConfigurationException extends SecretStoreException { private static final long serialVersionUID = 1L; public InvalidConfigurationException(String message) { diff --git a/logstash-core/src/main/java/org/logstash/secret/store/SecretStoreExt.java b/logstash-core/src/main/java/org/logstash/secret/store/SecretStoreExt.java index 1fa782f42..b1f1a2ba2 100644 --- a/logstash-core/src/main/java/org/logstash/secret/store/SecretStoreExt.java +++ b/logstash-core/src/main/java/org/logstash/secret/store/SecretStoreExt.java @@ -24,6 +24,9 @@ import org.jruby.RubyHash; import org.logstash.RubyUtil; import org.logstash.secret.SecretIdentifier; +/** + * Collect static methods to access Java keystore + * */ public class SecretStoreExt { private static final SecretStoreFactory SECRET_STORE_FACTORY = SecretStoreFactory.fromEnvironment(); diff --git a/logstash-core/src/main/java/org/logstash/util/CloudSettingAuth.java b/logstash-core/src/main/java/org/logstash/util/CloudSettingAuth.java index 9d89e3e94..c251bf415 100644 --- a/logstash-core/src/main/java/org/logstash/util/CloudSettingAuth.java +++ b/logstash-core/src/main/java/org/logstash/util/CloudSettingAuth.java @@ -22,6 +22,9 @@ package org.logstash.util; import co.elastic.logstash.api.Password; import org.logstash.RubyUtil; +/** + * Represents and decode credentials to access Elastic cloud instance. + * */ public class CloudSettingAuth { private String original; diff --git a/logstash-core/src/main/java/org/logstash/util/CloudSettingId.java b/logstash-core/src/main/java/org/logstash/util/CloudSettingId.java index 4b432df1d..9fb6cd6f7 100644 --- a/logstash-core/src/main/java/org/logstash/util/CloudSettingId.java +++ b/logstash-core/src/main/java/org/logstash/util/CloudSettingId.java @@ -38,6 +38,9 @@ import java.util.Base64; * The third segment is the kibana host identifier, e.g. 'identifier' * The 'cloud.id' value decoded into the various fields. */ +/** + * Represents and decode an Elastic cloudid of an instance. + * */ public class CloudSettingId { private static class HostAndPort { diff --git a/logstash-core/src/main/java/org/logstash/util/ModulesSettingArray.java b/logstash-core/src/main/java/org/logstash/util/ModulesSettingArray.java index f4f49c97b..f034e48f2 100644 --- a/logstash-core/src/main/java/org/logstash/util/ModulesSettingArray.java +++ b/logstash-core/src/main/java/org/logstash/util/ModulesSettingArray.java @@ -29,6 +29,10 @@ import java.util.Map; import java.util.TreeMap; import java.util.stream.Collectors; +/** + * Wrapper of Logstash modules settings, with ability to replace password fields with + * the obfuscator {@link Password} implementation. + * */ public final class ModulesSettingArray extends ArrayList> { private static final long serialVersionUID = 4094949366274116593L; diff --git a/logstash-core/src/main/java/org/logstash/util/TimeValue.java b/logstash-core/src/main/java/org/logstash/util/TimeValue.java index 8ce4fcf88..479f17b7e 100644 --- a/logstash-core/src/main/java/org/logstash/util/TimeValue.java +++ b/logstash-core/src/main/java/org/logstash/util/TimeValue.java @@ -23,6 +23,9 @@ import org.logstash.RubyUtil; import java.util.Objects; import java.util.concurrent.TimeUnit; +/** + * Express a period of time, expressing in numerical quantity and time unit, for example "3 seconds" + * */ public class TimeValue { public static TimeValue fromValue(Object value) { diff --git a/logstash-core/src/main/java/org/logstash/util/UtilExt.java b/logstash-core/src/main/java/org/logstash/util/UtilExt.java index 6e85dd20f..bafdaa1db 100644 --- a/logstash-core/src/main/java/org/logstash/util/UtilExt.java +++ b/logstash-core/src/main/java/org/logstash/util/UtilExt.java @@ -26,6 +26,9 @@ import org.jruby.anno.JRubyModule; import org.jruby.runtime.ThreadContext; import org.jruby.runtime.builtin.IRubyObject; +/** + * Utility methods class + * */ @JRubyModule(name = "Util") // LogStash::Util public class UtilExt {