Skip to content

Commit

Permalink
[improve][HIP] HIP-01: Refactoring AbstractCollect (#1930)
Browse files Browse the repository at this point in the history
Co-authored-by: tomsun28 <[email protected]>
  • Loading branch information
crossoverJie and tomsun28 authored May 10, 2024
1 parent 95a7a13 commit 78ca5ae
Showing 1 changed file with 54 additions and 0 deletions.
54 changes: 54 additions & 0 deletions hip/hip-01.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@


# HIP-01: Refactoring AbstractCollect


# Motivation

In the current situation, almost every collector needs to execute the preCheck method (with inconsistent names), and there are also redundant `try-catch` statements;

I suggest providing another `preCheck` method for `AbstractCollect` to separate the validate logic from the collector's logic, which would make the code structure clearer and also facilitate the writing of unit tests.

# Goals

## In Scope

Add a method `preCheck` to `AbstractCollect`.




# Detailed Design

## Design & Implementation Details

Add a method `preCheck` to the `org.apache.hertzbeat.collector.collect.AbstractCollect` class:

```java
public abstract class AbstractCollect {

/**
* @param metrics metric configuration
* @throws Exception when validation failed
*/
public abstract void preCheck(Metrics metrics) throws Exception;
}
```

Before calling the method `org.apache.hertzbeat.collector.collect.AbstractCollect#collect`, call the `preCheck` method and catch the exception.

Refactoring all `AbstractCollect` to implement the `preCheck` method.

Supplement the relevant unit tests.





# Links

<!--
Updated afterwards
-->
* Mailing List discussion thread: https://lists.apache.org/thread/cvvo7xg35fxq7kml5ggdrcdygrx6yvyj
* Mailing List voting thread: https://lists.apache.org/thread/1s7dhrb27qfdx1gsh29dvmo8frjbt619

0 comments on commit 78ca5ae

Please sign in to comment.