Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: Various javadoc and @StandardException #343

Merged
merged 118 commits into from
Oct 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
9abeacb
build(deps): bump testcontainers.version from 1.17.1 to 1.17.2
dependabot[bot] May 20, 2022
29ca397
build(deps): bump versions-maven-plugin from 2.10.0 to 2.11.0
dependabot[bot] May 20, 2022
ec21ad0
START: Try to reproduce issue #184 - run against multiple topics
astubbs May 21, 2022
1b9d2ad
test compiles
astubbs May 21, 2022
51ef075
failling test
astubbs May 22, 2022
7e32d4d
fixes test - introduce ShardKey
astubbs May 22, 2022
0a558f6
step
astubbs May 23, 2022
9628bee
step
astubbs May 24, 2022
b1fd89e
step
astubbs May 24, 2022
d237158
turn off ossindex for guava 31.1
astubbs May 24, 2022
d8ea983
step
astubbs May 24, 2022
b883ba0
step - extract
astubbs May 24, 2022
4219a99
build(deps): bump vertx.version from 4.3.0 to 4.3.1
dependabot[bot] May 25, 2022
ae21fb7
step - tg demo, keep consumer open
astubbs May 26, 2022
ad6c89e
test for null keys
astubbs Jun 1, 2022
23e5389
allow truth snapshot
astubbs Jun 1, 2022
7fdb06a
add missing annotations
astubbs Jun 10, 2022
3e611d8
build(deps-dev): bump postgresql from 42.3.5 to 42.4.0
dependabot[bot] Jun 10, 2022
03ff349
step
astubbs Jun 25, 2022
72ac264
build: Exclude Guava 31.1 from OSSIndex sec scan
astubbs Jun 1, 2022
f905cdb
...
astubbs Jul 9, 2022
12dc7cf
build: Update to Truth-Generator 0.1.1 for Subject discovery
astubbs Jul 9, 2022
bf37740
Merge branch 'exclude-guava-oss-index' into bugs/issue-184-reproduce
astubbs Jul 9, 2022
080ecd3
Merge remote-tracking branch 'confluent/dependabot/maven/testcontaine…
astubbs Jul 9, 2022
71a48dc
Merge remote-tracking branch 'confluent/dependabot/maven/org.postgres…
astubbs Jul 9, 2022
a087efb
Merge remote-tracking branch 'confluent/dependabot/maven/org.codehaus…
astubbs Jul 9, 2022
3e468a7
build: Only run OSS Index audit on runtime dependencies, not tests
astubbs Jul 9, 2022
10ac83a
build: Only run OSS Index audit on runtime dependencies, not tests
astubbs Jul 9, 2022
7efc8de
build: Don't fail for OSSIndex scan - will set up another CI job for …
astubbs Jul 9, 2022
70a37cd
build: Don't fail for OSSIndex scan - will set up another CI job for …
astubbs Jul 9, 2022
ad44c8d
Merge branch 'exclude-guava-oss-index' into improvements/version-bumps
astubbs Jul 9, 2022
f2ec1dd
fix cherry-pick
astubbs Jul 9, 2022
fba5ca5
Merge branch 'exclude-guava-oss-index' into improvements/version-bumps
astubbs Jul 9, 2022
d17f617
Merge branch 'improvements/version-bumps' into bugs/issue-184-reproduce
astubbs Jul 9, 2022
223e087
Revert "allow truth snapshot"
astubbs Jul 9, 2022
0d2b370
build: Only enforce requireReleaseDeps when running in CI, not locally
astubbs Jul 9, 2022
3ff1724
Merge branch 'exclude-guava-oss-index' into bugs/issue-184-reproduce
astubbs Jul 9, 2022
9f18470
stale test?
astubbs Jul 9, 2022
f3e73ea
ConsumerSubject blocked by PC no multi threaded access
astubbs Jul 9, 2022
00c581a
TEMPORARY: use TG 0.1.1 snapshot
astubbs Jun 30, 2022
d396e66
Merge branch 'exclude-guava-oss-index' into improvements/upgrade-tg
astubbs Jul 11, 2022
4f2de5c
remove guava exclude from branch
astubbs Jul 11, 2022
ad5092c
cleanse branch
astubbs Jul 11, 2022
30ea0c9
Merge branch 'improvements/allow-snapshots-locally' into improvements…
astubbs Jul 11, 2022
d7267d7
Merge remote-tracking branch 'antony/improvements/upgrade-tg' into im…
astubbs Jul 11, 2022
5e0db16
test snapshot first
astubbs Jul 11, 2022
ac65300
test snapshot first
astubbs Jul 11, 2022
dce76c2
Merge remote-tracking branch 'origin/master' into improvements/upgrad…
astubbs Jul 11, 2022
647675d
Merge remote-tracking branch 'origin/master' into bugs/issue-184-repr…
astubbs Jul 11, 2022
ab5a528
test mutli topic with simply creating a new consumer and checking ass…
astubbs Jul 11, 2022
186144d
update after rename
astubbs Jul 11, 2022
828c1b2
Merge branch 'improvements/upgrade-tg' into bugs/issue-184-reproduce
astubbs Jul 11, 2022
38bf42e
fixup! test mutli topic with simply creating a new consumer and check…
astubbs Jul 11, 2022
bb61774
fixup! test mutli topic with simply creating a new consumer and check…
astubbs Jul 11, 2022
914dc59
switch from NewTopic to TopicPartitions
astubbs Jul 11, 2022
75287fa
ide: Add All test run target
astubbs Jul 11, 2022
906d3fe
Merge remote-tracking branch 'confluent/master' into bugs/issue-184-r…
astubbs Jul 11, 2022
a999242
review
astubbs Jul 11, 2022
f88494a
review
astubbs Jul 11, 2022
9010da5
review
astubbs Jul 12, 2022
fa24a2f
START: Missing javadoc
astubbs Jul 12, 2022
c6f264e
step
astubbs Jul 12, 2022
a5b1573
review
astubbs Jul 12, 2022
5e8bfb6
START: fixes #409: Truncate state on offset high reset
astubbs Sep 30, 2022
d1c42d6
review
astubbs Sep 30, 2022
5dca73c
review
astubbs Sep 30, 2022
23c289f
step - continuous checking and restructure
astubbs Sep 30, 2022
70c06a5
Merge remote-tracking branch 'origin/master' into improvements/javadoc
astubbs Sep 30, 2022
1fcc658
review
astubbs Sep 30, 2022
2ea3573
incomplete offsets docs
astubbs Oct 1, 2022
835888a
docs and rename
astubbs Oct 1, 2022
f58c467
fixup! review
astubbs Oct 1, 2022
000969c
Revert "step - continuous checking and restructure"
astubbs Oct 1, 2022
b4af22a
clean up tangents, clarify
astubbs Oct 1, 2022
26ee4b8
pruneRemovedTrackedIncompleteOffsets and detect committed offset rese…
astubbs Oct 4, 2022
87dd82e
test scenarios
astubbs Oct 5, 2022
5c41b3f
tests
astubbs Oct 5, 2022
0a13ca6
issue #409 captured in test and fixed
astubbs Oct 6, 2022
d713b29
three scenarios captured and fixed
astubbs Oct 6, 2022
3336746
SAVE: fixing tests
astubbs Oct 6, 2022
3014d8e
START: Refactor PSM and PS
astubbs Oct 1, 2022
5eca507
step: compiles
astubbs Oct 6, 2022
d97f879
delete refactored code
astubbs Oct 6, 2022
39cc5ec
START: Unify PartitionState collections
astubbs Oct 6, 2022
214605e
compiles
astubbs Oct 6, 2022
381d699
delete
astubbs Oct 6, 2022
d8f8a92
START:EXP: try changing set to list
astubbs Oct 6, 2022
7ada991
step: push TreeSet construction up to source for not change in effici…
astubbs Oct 7, 2022
66fe6f5
review
astubbs Oct 11, 2022
e977ebe
Merge remote-tracking branch 'origin/master' into fixes/state-truncat…
astubbs Oct 11, 2022
05e5ddb
changelog
astubbs Oct 11, 2022
747b132
review
astubbs Oct 11, 2022
a8e28c3
fix OffsetEncodingTests
astubbs Oct 11, 2022
6b93b1f
Draft PartitionStateCommittedOffsetIT, partially passing
astubbs Oct 11, 2022
e630134
compaction test works
astubbs Oct 11, 2022
1b73d18
run compaction on seperate broker
astubbs Oct 11, 2022
bd52b2c
compaction test review, fix higher / lower tests
astubbs Oct 11, 2022
97f3c43
offset removed test works for RESET == EARLIEST
astubbs Oct 11, 2022
9bcb14e
PartitionStateCommittedOffsetIT all green
astubbs Oct 12, 2022
fd36d14
Merge branch 'fixes/state-truncation-reset-latest' into fixes/state-t…
astubbs Oct 12, 2022
3cb5117
step: attempt merge fix
astubbs Oct 12, 2022
a1cffd0
temp make method public for TG
astubbs Oct 12, 2022
f5b5ce2
fix scm tag to HEAD
astubbs Oct 12, 2022
80ab192
validate first
astubbs Oct 12, 2022
17d13eb
review
astubbs Oct 12, 2022
7be3ab0
Merge branch 'master' into fixes/state-truncation-reset-latest
astubbs Oct 12, 2022
36f2bcb
Merge remote-tracking branch 'astubbs/fixes/state-truncation-reset-la…
astubbs Oct 12, 2022
79ba6ac
Merge branch 'refactors/refactor-psm-and-ps' into improvements/javadoc
astubbs Oct 12, 2022
bd0224c
fix NPE for RemovedPartitionState setting of a null module
astubbs Oct 12, 2022
4e0460e
Revert "fix NPE for RemovedPartitionState setting of a null module"
astubbs Oct 12, 2022
4803db9
fix NPE for RemovedPartitionState setting of a null module
astubbs Oct 12, 2022
d7c2ccf
Merge remote-tracking branch 'origin/master' into refactors/refactor-…
astubbs Oct 12, 2022
95bacaa
Implement getEpoch() and some fixes
astubbs Oct 12, 2022
e2d512b
review
astubbs Oct 12, 2022
8d7bba6
Merge branch 'refactors/refactor-psm-and-ps' into improvements/javadoc
astubbs Oct 12, 2022
6c78351
Merge branch 'master' into improvements/javadoc
astubbs Oct 12, 2022
fda03c5
review
astubbs Oct 12, 2022
fc49fab
Merge branch 'master' into improvements/javadoc
astubbs Oct 12, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

/**
* Generic Parallel Consumer {@link RuntimeException} parent.
*
* @author Antony Stubbs
*/
@StandardException
public class ParallelConsumerException extends RuntimeException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
/**
* The options for the {@link AbstractParallelEoSStreamProcessor} system.
*
* @author Antony Stubbs
* @see #builder()
* @see ParallelConsumerOptions.ParallelConsumerOptionsBuilder
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
* @see PartitionState#incompleteOffsets
* @see RunLengthEncoder
* @see OffsetBitSet
* @author Antony Stubbs
*/
@Slf4j
public class BitSetEncoder extends OffsetEncoder {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
package io.confluent.parallelconsumer.offsets;

/*-
* Copyright (C) 2020-2021 Confluent, Inc.
* Copyright (C) 2020-2022 Confluent, Inc.
*/
public class BitSetEncodingNotSupportedException extends EncodingNotSupportedException {

public BitSetEncodingNotSupportedException(String msg) {
super(msg);
}
import lombok.experimental.StandardException;

/**
* Thrown under situations where the {@link BitSetEncoder} would not be able to encode the given data.
*
* @author Antony Stubbs
*/
@StandardException
public class BitSetEncodingNotSupportedException extends EncodingNotSupportedException {
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@
import static io.confluent.parallelconsumer.offsets.OffsetEncoding.ByteArray;
import static io.confluent.parallelconsumer.offsets.OffsetEncoding.ByteArrayCompressed;

/**
* Encodes offsets into a {@link ByteBuffer}. Doesn't have any advantage over the {@link BitSetEncoder} and
* {@link RunLengthEncoder}, but can be useful for testing and comparison.
*
* @author Antony Stubbs
*/
public class ByteBufferEncoder extends OffsetEncoder {

private final ByteBuffer bytesBuffer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@
import static io.confluent.parallelconsumer.offsets.OffsetSimpleSerialisation.deserialiseByteArrayToBitMapString;

/**
* Encapsulates the encoding type, and the actual encoded data, when creating an offset map encoding. Central place for
* decoding the data.
*
* @author Antony Stubbs
* @see #unwrap
*/
@Slf4j
Expand Down Expand Up @@ -110,7 +114,8 @@ public HighestOffsetAndIncompletes getDecodedIncompletes(long baseOffset) {
case BitSetV2Compressed -> deserialiseBitSetWrapToIncompletes(BitSetV2, baseOffset, decompressZstd(data));
case RunLengthV2 -> runLengthDecodeToIncompletes(encoding, baseOffset, data);
case RunLengthV2Compressed -> runLengthDecodeToIncompletes(RunLengthV2, baseOffset, decompressZstd(data));
default -> throw new UnsupportedOperationException("Encoding (" + encoding.description() + ") not supported");
default ->
throw new UnsupportedOperationException("Encoding (" + encoding.description() + ") not supported");
};
return binaryArrayString;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,13 @@
*/

import io.confluent.parallelconsumer.internal.InternalException;
import lombok.experimental.StandardException;

/*-
* Copyright (C) 2020-2021 Confluent, Inc.
/**
* Parent of the exceptions for when the {@link OffsetEncoder} cannot encode the given data.
*
* @author Antony Stubbs
*/
@StandardException
public class EncodingNotSupportedException extends InternalException {
public EncodingNotSupportedException(final String message) {
super(message);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,13 @@
*/

import io.confluent.parallelconsumer.internal.InternalException;
import lombok.experimental.StandardException;

/**
* Throw when for whatever reason, no encoding of the offsets is possible.
*
* @author Antony Stubbs
*/
@StandardException
public class NoEncodingPossibleException extends InternalException {

public NoEncodingPossibleException(String msg) {
super(msg);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
* <p>
* todo unify or refactor with {@link BitSetEncoder}. Why was it ever seperate?
*
* @author Antony Stubbs
* @see BitSetEncoder
*/
@Slf4j
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@
*/

import io.confluent.parallelconsumer.internal.InternalException;
import lombok.experimental.StandardException;

/*-
* Error decoding offsets
*
* TODO should extend java.lang.Error ?
*
* @author Antony Stubbs
*/
@StandardException
public class OffsetDecodingError extends InternalException {
public OffsetDecodingError(final String s, final IllegalArgumentException a) {
super(s, a);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@
import java.nio.ByteBuffer;

/**
* Base OffsetEncoder
* Base OffsetEncoder, defining the contract for encoding offset data.
*
* @author Antony Stubbs
*/
@Slf4j
public abstract class OffsetEncoder {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@
* <li>byte2-3: Short: bitset size
* <li>byte4-n: serialised {@link BitSet}
* </ul>
*
* @author Antony Stubbs
*/
@Slf4j
public class OffsetMapCodecManager<K, V> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package io.confluent.parallelconsumer.offsets;

/*-
* Copyright (C) 2020-2021 Confluent, Inc.
* Copyright (C) 2020-2022 Confluent, Inc.
*/
import io.confluent.parallelconsumer.offsets.OffsetMapCodecManager.HighestOffsetAndIncompletes;
import lombok.experimental.UtilityClass;
Expand All @@ -18,6 +18,11 @@
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Supplier;

/**
* Methods for encoding and decoding the run-lengths.
*
* @author Antony Stubbs
*/
@Slf4j
@UtilityClass
public class OffsetRunLength {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package io.confluent.parallelconsumer.offsets;

/*-
* Copyright (C) 2020-2021 Confluent, Inc.
* Copyright (C) 2020-2022 Confluent, Inc.
*/
import com.github.luben.zstd.ZstdInputStream;
import com.github.luben.zstd.ZstdOutputStream;
Expand All @@ -22,6 +22,11 @@

import static io.confluent.csid.utils.BackportUtils.readFully;

/**
* Methods for compressing, decompressing and encoding / encoding data.
*
* @author Antony Stubbs
*/
@UtilityClass
@Slf4j
public class OffsetSimpleSerialisation {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
* <p>
* Have results in an accessible structure, easily selecting the highest compression.
*
* @author Antony Stubbs
* @see #invoke()
*/
@Slf4j
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
* <p>
* One such nature is that gaps between completed offsets get encoded as succeeded offsets. This doesn't matter because
* they don't exist and we'll neve see them (they no longer exist in the source partition).
*
* @author Antony Stubbs
*/
public class RunLengthEncoder extends OffsetEncoder {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
package io.confluent.parallelconsumer.offsets;

/*-
* Copyright (C) 2020-2021 Confluent, Inc.
* Copyright (C) 2020-2022 Confluent, Inc.
*/

import lombok.experimental.StandardException;

/**
* Thrown when Runlength V1 encoding is not supported.
*
* @author Antony Stubbs
*/
@StandardException
public class RunlengthV1EncodingNotSupported extends EncodingNotSupportedException {
public RunlengthV1EncodingNotSupported(final String msg) {
super(msg);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
/**
* Our view of the state of the partitions that we've been assigned.
*
* @author Antony Stubbs
astubbs marked this conversation as resolved.
Show resolved Hide resolved
* @see PartitionStateManager
*/
// todo class becoming large - possible to extract some functionality?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
* <p>
* This state is shared between the {@link BrokerPollSystem} thread and the {@link AbstractParallelEoSStreamProcessor}.
*
* @author Antony Stubbs
* @see PartitionState
*/
@Slf4j
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@

/**
* Models the queue of work to be processed, based on the {@link ProcessingOrder} modes.
*
* @author Antony Stubbs
*/
@Slf4j
@RequiredArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
* leak as the collection will forever expand. However, even massive partition counts to a single consumer would be in
* the hundreds of thousands, this would only result in hundreds of thousands of {@link TopicPartition} object keys all
* pointing to the same instance of {@link RemovedPartitionState}.
*
* @author Antony Stubbs
*/
@Slf4j
public class RemovedPartitionState<K, V> extends PartitionState<K, V> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@
* This state is shared between the {@link BrokerPollSystem} thread (write - adding and removing shards and work) and
* the {@link AbstractParallelEoSStreamProcessor} Controller thread (read - how many records are in the shards?), so
* must be thread safe.
*
* @author Antony Stubbs
*/
@Slf4j
public class ShardManager<K, V> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
import static java.util.Optional.of;

/**
* Model object for metadata around processing state of {@link ConsumerRecord}s.
* Context object for a given {@link ConsumerRecord}, carrying completion status, various time stamps, retry data etc..
*
* @author Antony Stubbs
*/
@Slf4j
@EqualsAndHashCode
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
/**
* Sharded, prioritised, offset managed, order controlled, delayed work queue.
* <p>
* Low Water Mark - the highest offset (continuously successful) with all it's previous messages succeeded (the offset
* Low Watermark - the highest offset (continuously successful) with all it's previous messages succeeded (the offset
* one commits to broker)
* <p>
* High Water Mark - the highest offset which has succeeded (previous may be incomplete)
Expand All @@ -32,8 +32,7 @@
* <p>
* This state is shared between the {@link BrokerPollSystem} thread and the {@link AbstractParallelEoSStreamProcessor}.
*
* @param <K>
* @param <V>
* @author Antony Stubbs
*/
@Slf4j
public class WorkManager<K, V> implements ConsumerRebalanceListener {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,14 @@
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;

import static com.google.common.truth.Truth.assertThat;
import static io.confluent.parallelconsumer.ParallelConsumerOptions.CommitMode.PERIODIC_CONSUMER_ASYNCHRONOUS;
import static io.confluent.parallelconsumer.ParallelConsumerOptions.CommitMode.PERIODIC_TRANSACTIONAL_PRODUCER;
import static io.confluent.parallelconsumer.integrationTests.utils.KafkaClientUtils.ProducerMode.NOT_TRANSACTIONAL;
import static io.confluent.parallelconsumer.integrationTests.utils.KafkaClientUtils.ProducerMode.TRANSACTIONAL;
import static java.time.Duration.ofSeconds;
import static java.util.Optional.empty;
import static org.apache.commons.lang3.RandomUtils.nextInt;
import static org.assertj.core.api.Assertions.assertThat;

/**
* Utilities for creating and manipulating clients
Expand Down Expand Up @@ -86,7 +86,6 @@ class PCVersion {
*/
private KafkaConsumer<String, String> lastConsumerConstructed;


public KafkaClientUtils(KafkaContainer kafkaContainer) {
kafkaContainer.addEnv("KAFKA_transaction_state_log_replication_factor", "1");
kafkaContainer.addEnv("KAFKA_transaction_state_log_min_isr", "1");
Expand Down Expand Up @@ -337,4 +336,5 @@ public ParallelEoSStreamProcessor<String, String> buildPc(ProcessingOrder key) {
public KafkaConsumer<String, String> getLastConsumerConstructed() {
return lastConsumerConstructed;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@
* Used in tests to stub out the behaviour of the real Broker and Client's long polling system (the mock Kafka Consumer
* doesn't have this behaviour).
*
* @param <K>
* @param <V>
* @author Antony Stubbs
*/
@ToString
@Slf4j
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import io.stubbs.truth.generator.SubjectFactoryMethod;
import io.stubbs.truth.generator.UserManagedSubject;
import lombok.ToString;
import io.stubbs.truth.generator.SubjectFactoryMethod;
import io.stubbs.truth.generator.UserManagedSubject;

import java.util.Arrays;
import java.util.Optional;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@

/**
* Basic tests of simple usage of the Truth Generator maven plugin
*
* @author Antony Stubbs
*/
class TruthGeneratorTests {

Expand Down