Skip to content

Remove analog GPIO implementation#665

Merged
eitch merged 3 commits into
developfrom
remove-analog
Jun 19, 2026
Merged

Remove analog GPIO implementation#665
eitch merged 3 commits into
developfrom
remove-analog

Conversation

@FDelporte

Copy link
Copy Markdown
Member

Never used and probably never will be...

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.analog types/config/builders and eliminated analog entries from IOType, 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.

Comment thread pi4j-core/src/main/java/module-info.java
# Conflicts:
#	plugins/pi4j-plugin-raspberrypi/src/main/java/com/pi4j/plugin/raspberrypi/RaspberryPi.java
@eitch eitch merged commit 61d1d1d into develop Jun 19, 2026
4 checks passed
@eitch eitch deleted the remove-analog branch June 19, 2026 06:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants