Remove analog GPIO implementation#665
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR removes the analog GPIO API surface from Pi4J core and its related mock/test infrastructure, simplifying the provider model to only cover the currently supported digital/PWM/I2C/SPI/Serial IO types.
Changes:
- Removed
com.pi4j.io.gpio.analogtypes/config/builders and eliminated analog entries fromIOType, provider registries, and helper creator APIs. - Removed mock analog providers and test analog provider scaffolding, plus related JPMS
exports/uses. - Performed minor cleanup/consistency edits in digital GPIO Javadocs and platform/provider constant definitions.
Reviewed changes
Copilot reviewed 56 out of 56 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| plugins/pi4j-plugin-raspberrypi/src/main/java/com/pi4j/plugin/raspberrypi/RaspberryPi.java | Removes analog provider constants; reformats constant Javadocs. |
| plugins/pi4j-plugin-mock/src/main/java/module-info.java | Stops exporting mock analog provider package. |
| plugins/pi4j-plugin-mock/src/main/java/com/pi4j/plugin/mock/provider/gpio/analog/MockAnalogOutputProviderImpl.java | Removes mock analog output provider implementation. |
| plugins/pi4j-plugin-mock/src/main/java/com/pi4j/plugin/mock/provider/gpio/analog/MockAnalogOutputProvider.java | Removes mock analog output provider interface/factory. |
| plugins/pi4j-plugin-mock/src/main/java/com/pi4j/plugin/mock/provider/gpio/analog/MockAnalogOutput.java | Removes mock analog output implementation. |
| plugins/pi4j-plugin-mock/src/main/java/com/pi4j/plugin/mock/provider/gpio/analog/MockAnalogInputProviderImpl.java | Removes mock analog input provider implementation. |
| plugins/pi4j-plugin-mock/src/main/java/com/pi4j/plugin/mock/provider/gpio/analog/MockAnalogInputProvider.java | Removes mock analog input provider interface/factory. |
| plugins/pi4j-plugin-mock/src/main/java/com/pi4j/plugin/mock/provider/gpio/analog/MockAnalogInput.java | Removes mock analog input implementation. |
| plugins/pi4j-plugin-mock/src/main/java/com/pi4j/plugin/mock/MockPlugin.java | Stops registering mock analog providers. |
| plugins/pi4j-plugin-mock/src/main/java/com/pi4j/plugin/mock/Mock.java | Removes analog provider constants; reformats constant Javadocs. |
| pi4j-test/src/main/java/module-info.java | Removes JPMS uses entries for mock analog types/providers. |
| pi4j-test/src/main/java/com/pi4j/test/provider/TestAnalogOutputProvider.java | Removes test analog output provider interface. |
| pi4j-test/src/main/java/com/pi4j/test/provider/TestAnalogOutput.java | Removes test analog output stub. |
| pi4j-test/src/main/java/com/pi4j/test/provider/TestAnalogInputProvider.java | Removes test analog input provider interface. |
| pi4j-test/src/main/java/com/pi4j/test/provider/TestAnalogInput.java | Removes test analog input implementation. |
| pi4j-test/src/main/java/com/pi4j/test/provider/impl/TestAnalogOutputProviderImpl.java | Removes test analog output provider implementation. |
| pi4j-test/src/main/java/com/pi4j/test/provider/impl/TestAnalogInputProviderImpl.java | Removes test analog input provider implementation. |
| pi4j-core/src/main/java/module-info.java | Stops exporting analog GPIO package from the core module. |
| pi4j-core/src/main/java/com/pi4j/provider/Providers.java | Removes analog provider groups from the Providers interface. |
| pi4j-core/src/main/java/com/pi4j/io/IOType.java | Removes analog IO types and parsing aliases. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/digital/impl/DigitalConfigBuilderBase.java | Fixes incorrect “Analog…” class name in Javadoc. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/digital/DigitalOutputBase.java | Minor comment/Javadoc formatting updates; removes “analog value” wording. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/impl/DefaultAnalogRange.java | Removes core analog range implementation. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/impl/DefaultAnalogOutputConfigBuilder.java | Removes analog output config builder implementation. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/impl/DefaultAnalogOutputConfig.java | Removes analog output config implementation. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/impl/DefaultAnalogInputConfigBuilder.java | Removes analog input config builder implementation. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/impl/DefaultAnalogInputConfig.java | Removes analog input config implementation. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/impl/AnalogConfigBuilderBase.java | Removes analog config builder base implementation. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/impl/AnalogConfigBase.java | Removes analog config base implementation. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogValueChangeListener.java | Removes analog change listener API. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogValueChangeEvent.java | Removes analog change event API. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogRange.java | Removes analog range API. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogProviderBase.java | Removes analog provider base. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogProvider.java | Removes analog provider marker interface. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogOutputProviderBase.java | Removes analog output provider base. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogOutputProvider.java | Removes analog output provider API. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogOutputConfigBuilder.java | Removes analog output config builder API. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogOutputConfig.java | Removes analog output config API. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogOutputBase.java | Removes analog output base implementation. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogOutput.java | Removes analog output IO API. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogListener.java | Removes analog listener marker interface. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogInputProviderBase.java | Removes analog input provider base. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogInputProvider.java | Removes analog input provider API. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogInputConfigBuilder.java | Removes analog input config builder API. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogInputConfig.java | Removes analog input config API. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogInputBase.java | Removes analog input base implementation. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogInput.java | Removes analog input IO API. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogEventListener.java | Removes analog event listener marker interface. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogEvent.java | Removes analog event API. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogConfigBuilder.java | Removes analog config builder API. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogConfig.java | Removes analog config API. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/AnalogBase.java | Removes analog base implementation. |
| pi4j-core/src/main/java/com/pi4j/io/gpio/analog/Analog.java | Removes analog IO API. |
| pi4j-core/src/main/java/com/pi4j/internal/ProviderProvider.java | Removes analog provider convenience methods; minor formatting cleanup. |
| pi4j-core/src/main/java/com/pi4j/internal/IOCreator.java | Removes analog create overloads; keeps IOType/IOConfigBuilder-based creation. |
| pi4j-core/src/main/java/com/pi4j/context/impl/MutableProviders.java | Removes analog provider groups from mutable provider registry. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
# Conflicts: # plugins/pi4j-plugin-raspberrypi/src/main/java/com/pi4j/plugin/raspberrypi/RaspberryPi.java
eitch
approved these changes
Jun 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Never used and probably never will be...