Dennis-Mircea opened a new pull request, #1157:
URL: https://github.com/apache/flink-kubernetes-operator/pull/1157

   ## What is the purpose of the change
   
   The operator exposes three pluggable resource extension points that third 
parties implement via the plugin mechanism: `FlinkResourceListener`, 
`FlinkResourceValidator`, and `FlinkResourceMutator`. `FlinkResourceListener` 
was moved into the `flink-kubernetes-operator-api` module under FLINK-29655 so 
that plugin authors only depend on the stable, lightweight api module. 
`FlinkResourceValidator` and `FlinkResourceMutator` were left in the 
`flink-kubernetes-operator` module, which is inconsistent and forces 
implementers of a custom validator or mutator to depend on the entire operator 
module.
   
   This change moves the two interfaces into the api module, mirroring the 
listener, so all three plugin SPIs live together and can be implemented against 
the api module alone.
   
   ## Brief change log
   
   - Move `FlinkResourceValidator` to 
`org.apache.flink.kubernetes.operator.api.validation` in the api module.
   - Move `FlinkResourceMutator` to 
`org.apache.flink.kubernetes.operator.api.mutator` in the api module.
   - The interfaces only reference `flink-core`'s `Plugin` and api custom 
resource types (`FlinkDeployment`, `FlinkSessionJob`, `FlinkStateSnapshot`, 
`AbstractFlinkResource`), so no new module dependencies or `pom.xml` changes 
are required (unlike the listener move, the api module already provides 
everything they need).
   - Keep the concrete implementations and wiring in the operator module: 
`DefaultValidator`, `DefaultFlinkMutator`, and the discovery utilities 
`ValidatorUtils` / `MutatorUtils` (which still `PluginManager.load(...)` the 
interfaces). Only their imports change.
   - Update imports in the operator module: `FlinkOperator`, 
`FlinkDeploymentController`, `FlinkSessionJobController`, 
`FlinkStateSnapshotController`, `ValidatorUtils`, `MutatorUtils`.
   - Update imports in the webhook module: `FlinkOperatorWebhook`, 
`FlinkValidator`, `FlinkMutator`, and the tests `FlinkValidatorTest`, 
`FlinkMutatorTest`.
   - Rename the four test `META-INF/services` registration files to the new 
fully qualified interface names (operator and webhook test resources for both 
validator and mutator). File contents are unchanged, since the test 
implementations stay in their current packages.
   - Update the plugin docs (`docs/content/docs/operations/plugins.md` and the 
`content.zh` copy) to reference the new packages in the validator and mutator 
sections.
   
   ## Verifying this change
   
   This is a pure move/refactor with no behavior change.
   
   - Covered by existing tests: the operator and webhook validator/mutator 
tests (`FlinkValidatorTest`, `FlinkMutatorTest`, and the reconciler/controller 
tests that run validation), plus plugin discovery via the renamed test 
`META-INF/services` files, which confirm `ValidatorUtils`/`MutatorUtils` still 
load implementations after the package change.
   - `mvn clean verify` builds both modules and runs the above.
   
   ## Does this pull request potentially affect one of the following parts:
   
     - Dependencies (does it add or upgrade a dependency): no
     - The public API, i.e., is any changes to the `CustomResourceDescriptors`: 
no
     - Core observer or reconciler logic that is regularly executed: no
   
   ## Documentation
   
     - Does this pull request introduce a new feature? no
     - If yes, how is the feature documented? not applicable
   


-- 
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