Skip to content

Conversation

@robert-s-ubi
Copy link
Contributor

@robert-s-ubi robert-s-ubi commented Dec 12, 2025

Add Java classes for all OCPP 2.1 messages and types as well as client and server event handler interfaces and function classes corresponding to the OCPP 2.1 "functional blocks."

Add OCPP 2.1 to the ProtocolVersion enum.

Specify UTF-8 encoding for the Java source files in build.gradle and pom.xml to avoid compiler warnings about the UTF-8 sequences in the source files.

@robert-s-ubi robert-s-ubi mentioned this pull request Dec 12, 2025
@robert-s-ubi robert-s-ubi marked this pull request as draft December 12, 2025 21:17
@robert-s-ubi robert-s-ubi marked this pull request as ready for review December 13, 2025 00:34
Add Java classes for all OCPP 2.1 messages and types as well as client
and server event handler interfaces and function classes corresponding
to the OCPP 2.1 "functional blocks."

Add OCPP 2.1 to the ProtocolVersion enum.

Specify UTF-8 encoding for the Java source files in build.gradle and
pom.xml to avoid compiler warnings about the UTF-8 sequences in the
source files.
Implement the CALLRESULTERROR RPC as a response to a CALLRESULT, in case
that failed internal validation, or if the completion action last added
to the CompletionStage returned by send() using .whenComplete[Async]()
throws any exception.

Add an optional confirmationError() callback method to the ClientEvents
and ServerEvents interfaces to allow the application to get notified
about an incoming CALLRESULTERROR. The application may use the uniqueId
parameter to match it to the Request#getOcppMessageId() of one of the
requests it last responded to, provided it keeps track of them.

Implement the SEND RPC as requests which do not have a confirmation
type. These are sent through the existing send() method, returning a
CompletableFuture which is already completed when the method returns,
to which a completion action can be added to check whether a local
exception prevented the request from being sent.

Fix the only OCPP message using the SEND RPC, NotifyPeriodicEventStream,
and add its missing Feature and Function handlers. The handler for this
message is a void method, as it has no response.

Remove sending CALLERROR in response to anything other than a CALL,
except for the RpcFrameworkError when the message could not be parsed.

Simplify the pendingPromises synchronization in Session by using the
ConcurrentHashMap class rather than HashMap.

Fix a few typos encountered along the way.
Add multi-protocol integration tests for OCPP 1.6/2.0.1/2.1 protocol
selection and exchanging BootNotification messages.

Add integration tests for the OCPP 2.1 CALLRESULTERROR and SEND RPCs.
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.

2 participants