The GitHub Actions job "Required Checks" on 
texera.git/gh-readonly-queue/main/pr-7674-256c2d10471a5182358fd6783c4680adbfc5e2c0
 has succeeded.
Run started by GitHub user aglinxinyuan (triggered by aglinxinyuan).

Head commit for run:
1c4662b7cff853bdb06414f973956a09dd156448 / Xinyuan Lin <[email protected]>
refactor(amber): collapse the single-subclass ReplayLogger hierarchy into one 
class (#7674)

### What changes were proposed in this PR?

Collapses the two-file `ReplayLogger` hierarchy into one concrete class.
#7452 removed `EmptyReplayLogger`, which left the abstract base with a
single subclass and no declared-type site anywhere:

| `ReplayLogger` | Subclasses | Declared-type sites |
| --- | ---: | --- |
| before #7452 | 2 | 1 — `EmptyReplayLoggerSpec.scala:125`, itself
deleted by #7452 |
| on `main` today | 1 | 0 |

```
ReplayLogManager.scala:109  private val replayLogger = new ReplayLoggerImpl()  
-> infers the concrete class
ReplayLoggerImpl.scala:31   class ReplayLoggerImpl extends ReplayLogger        
-> the only subclass
ReplayLogger.scala:28       abstract class ReplayLogger                        
-> nothing else refers to it
```

So the base declared three abstract methods that exactly one class
implemented and that no call site dispatched through. Dropping it
removes `extends ReplayLogger`, one `override` keyword that no longer
overrides anything, and one of the two files. The three method bodies
move across untouched — no behaviour change.

**Naming.** The surviving class takes the plain `ReplayLogger` name.
With the base gone there is no abstraction left for an `...Impl` suffix
to distinguish it from, and the suffix would advertise an interface that
no longer exists. `ReplayLogManagerImpl` is unaffected — it does sit
beside a real `ReplayLogManager` trait in the same package.

```
              before                                      after

ReplayLogger.scala      abstract class ReplayLogger   ReplayLogger.scala   
class ReplayLogger
ReplayLoggerImpl.scala  class ReplayLoggerImpl        (deleted)
                              extends ReplayLogger
```

The rename touches one production call site
(`ReplayLogManager.scala:109`) and the `new ReplayLoggerImpl()`
constructions plus test names in `LogreplayPrimitivesSpec`. It also
fixes a stale `@param channel` in the Scaladoc, whose parameter has been
called `channelId` all along.

### Any related issues, documentation, discussions?

Closes #7673

### How was this PR tested?

Existing tests only — this is a structural change with no behaviour
change, and `LogreplayPrimitivesSpec` already covers the class by
constructing it directly, so it pins all three methods across the
refactor. Its only edits are the type name.

Locally, from the repo root with Java 17:

- `sbt "WorkflowExecutionService/Test/compile"` — success.
- `sbt "WorkflowExecutionService/testOnly *LogreplayPrimitivesSpec
*EmptyReplayLogManagerImplSpec *ReplayLogGeneratorSpec"` — all green.
- `sbt scalafmtCheckAll "scalafixAll --check"` — clean.

Verification, re-runnable by a reviewer:

```
git grep -rn ReplayLoggerImpl                         # empty — no Impl name 
survives
git grep -nw ReplayLogger -- '*.scala' | grep -v Spec # 2 hits: the class, and 
its one call site
```

### Was this PR authored or co-authored using generative AI tooling?

Generated-by: Claude Code (Claude Opus 5)

Report URL: https://github.com/apache/texera/actions/runs/31999952631

With regards,
GitHub Actions via GitBox

Reply via email to