aglinxinyuan opened a new issue, #5396:
URL: https://github.com/apache/texera/issues/5396

   The `org.apache.texera.amber.core.executor` package defines the abstract 
executor contract every operator implementation has to honor, plus the 
reflection-based factory that compiles / instantiates them. Nothing in the 
package is unit-tested today.
   
   Add a single `CoreExecutorSpec` covering:
   
   | File | Behavior to pin |
   | --- | --- |
   | `OperatorExecutor.scala` | Default no-op `open` / `close`; 
`produceStateOnStart` / `produceStateOnFinish` default to `None`; 
`processState` defaults to `Some(state)`; `processTupleMultiPort` wraps 
`processTuple` with `Option.empty` ports; `onFinishMultiPort` wraps `onFinish` 
similarly; `onFinish` defaults to `Iterator.empty`. Subclassing exercises every 
default via a small inline concrete impl. |
   | `SourceOperatorExecutor.scala` | Overrides: `open` / `close` are no-ops; 
`processTuple` returns empty iterator; `processTupleMultiPort` returns empty 
iterator (never invokes `processTuple`); `onFinishMultiPort` delegates to 
subclass `produceTuple()` and wraps each emitted tuple with `Option.empty` 
port. |
   | `ExecFactory.scala` | `newExecFromJavaCode` compiles a tiny Java source 
and constructs the OperatorExecutor; `newExecFromJavaClassName` finds the 
no-arg constructor when `descString` is empty, the `(String)` constructor when 
not, and falls back to the `(Int, Int)` / `(String, Int, Int)` constructor when 
`NoSuchMethodException` is thrown. |
   
   ### Priority
   P3 - Low
   
   ### Task Type
   - [x] Testing / QA


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to