Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
166 commits
Select commit Hold shift + click to select a range
e33b758
Add new ocpp-v2 sub-project with OCPP 2.0.1 types
robert-s-ubi Mar 14, 2023
b1b07ce
Add OCPP 2.0.1 and multiple protocol versions support
robert-s-ubi Mar 14, 2023
feb51ab
Implement OCPP 2.0.1 RPC Framework Error Codes
robert-s-ubi May 16, 2023
ff4618b
Add option to disable the transactionQueue
decroc-shell Mar 30, 2023
c552d62
Add an option for non-blocking OCPP-J connects
robert-s-ubi May 16, 2023
df71015
Bump all versions and dependencies to 1.2[.0]
robert-s-ubi May 16, 2023
0ce7c80
add stricter validation for Metervalues as described in #241
mmauksch Aug 16, 2023
c3e438c
validate via test and use suggested fix from #231
mmauksch Aug 17, 2023
62353f4
Merge pull request #243 from mmauksch/issue231-StopTransaction-valida…
TVolden Aug 18, 2023
2e1fcd8
Fix missing array string length validation in OCPP 2.0.1 classes
robert-s-ubi Sep 29, 2023
4859ecd
Merge pull request #239 from ubitricity/master
TVolden Sep 30, 2023
76fa4fa
Update README.md
TVolden Sep 30, 2023
9d08ab9
Bump GH Actions versions and add Dependabot to monitor our dependencies.
slachiewicz Oct 2, 2023
65e0e16
Merge pull request #245 from slachiewicz/gha-refresh
TVolden Oct 2, 2023
326182c
Bump org.jacoco:jacoco-maven-plugin from 0.8.5 to 0.8.10
dependabot[bot] Oct 2, 2023
d3d8890
Bump org.java-websocket:Java-WebSocket from 1.5.3 to 1.5.4
dependabot[bot] Oct 2, 2023
8574a3d
Bump github/codeql-action from 1 to 2
dependabot[bot] Oct 2, 2023
64f2190
Bump org.codehaus.gmavenplus:gmavenplus-plugin from 1.13.1 to 3.0.2
dependabot[bot] Oct 2, 2023
c2a0365
Bump junit:junit from 4.13.1 to 4.13.2
dependabot[bot] Oct 2, 2023
ffc259b
Merge pull request #247 from ChargeTimeEU/dependabot/maven/org.java-w…
TVolden Oct 2, 2023
8025e3a
Merge pull request #250 from ChargeTimeEU/dependabot/maven/junit-juni…
TVolden Oct 2, 2023
52e7416
Merge pull request #248 from ChargeTimeEU/dependabot/github_actions/g…
TVolden Oct 2, 2023
df8e549
Merge pull request #246 from ChargeTimeEU/dependabot/maven/org.jacoco…
TVolden Oct 2, 2023
3df7c2a
Merge pull request #249 from ChargeTimeEU/dependabot/maven/org.codeha…
TVolden Oct 2, 2023
c3af38f
Bump org.apache.maven.plugins:maven-javadoc-plugin from 2.9.1 to 3.6.0
dependabot[bot] Oct 3, 2023
42fbf0e
Bump com.google.code.findbugs:jsr305 from 3.0.1 to 3.0.2
dependabot[bot] Oct 3, 2023
f46b8c4
Bump ch.qos.logback:logback-classic from 1.2.0 to 1.4.11
dependabot[bot] Oct 3, 2023
8700991
Bump org.apache.maven.plugins:maven-compiler-plugin from 3.5.1 to 3.11.0
dependabot[bot] Oct 3, 2023
173a46c
Bump org.slf4j:slf4j-api from 1.7.25 to 2.0.9
dependabot[bot] Oct 3, 2023
4fa1928
Merge pull request #252 from ChargeTimeEU/dependabot/maven/org.apache…
TVolden Oct 5, 2023
60e404f
Merge pull request #253 from ChargeTimeEU/dependabot/maven/com.google…
TVolden Oct 5, 2023
9740269
Merge pull request #254 from ChargeTimeEU/dependabot/maven/ch.qos.log…
TVolden Oct 5, 2023
87540fc
Merge pull request #255 from ChargeTimeEU/dependabot/maven/org.apache…
TVolden Oct 5, 2023
5bcac1d
Merge pull request #256 from ChargeTimeEU/dependabot/maven/org.slf4j-…
TVolden Oct 5, 2023
72dad07
Bump org.spockframework:spock-core from 1.0-groovy-2.4 to 2.3-groovy-4.0
dependabot[bot] Oct 5, 2023
20d6716
Bump org.sonatype.plugins:nexus-staging-maven-plugin
dependabot[bot] Oct 5, 2023
547806a
Bump ch.qos.logback:logback-core from 1.2.9 to 1.4.11
dependabot[bot] Oct 5, 2023
42deb1a
Bump org.hamcrest:hamcrest-core from 1.3 to 2.2
dependabot[bot] Oct 5, 2023
1ba760b
Bump javax.xml.bind:jaxb-api from 2.1 to 2.3.1
dependabot[bot] Oct 5, 2023
ac347dc
Merge pull request #258 from ChargeTimeEU/dependabot/maven/org.sonaty…
TVolden Oct 13, 2023
ebcfdae
Merge pull request #259 from ChargeTimeEU/dependabot/maven/ch.qos.log…
TVolden Oct 13, 2023
c9550c4
Bump com.google.code.gson:gson from 2.8.9 to 2.10.1
dependabot[bot] Oct 13, 2023
f8b6802
Merge pull request #261 from ChargeTimeEU/dependabot/maven/javax.xml.…
TVolden Oct 15, 2023
42e25aa
Merge pull request #262 from ChargeTimeEU/dependabot/maven/com.google…
TVolden Oct 15, 2023
7b4cfdc
Merge pull request #260 from ChargeTimeEU/dependabot/maven/org.hamcre…
TVolden Oct 16, 2023
c6cf180
Merge pull request #257 from ChargeTimeEU/dependabot/maven/org.spockf…
TVolden Oct 16, 2023
622bdb6
Move Tests to Mockito4
slachiewicz Oct 15, 2023
4f12030
Update also Gradle build used by CodeQL GHA
slachiewicz Oct 15, 2023
0d014bc
Revert not necessary for Mockito code cleanups
slachiewicz Oct 16, 2023
6860d7c
Bump org.apache.maven.plugins:maven-gpg-plugin from 1.5 to 3.1.0
dependabot[bot] Oct 16, 2023
1b30cbc
Bump org.apache.maven.plugins:maven-source-plugin from 2.2.1 to 3.3.0
dependabot[bot] Oct 16, 2023
5d7c319
Bump org.slf4j:jul-to-slf4j from 1.7.10 to 2.0.9
dependabot[bot] Oct 16, 2023
8019ac7
Bump org.apache.maven.plugins:maven-surefire-plugin from 2.22.2 to 3.1.2
dependabot[bot] Oct 16, 2023
552436d
Merge pull request #264 from slachiewicz/mockito4
TVolden Oct 16, 2023
d492687
Merge pull request #266 from ChargeTimeEU/dependabot/maven/org.apache…
TVolden Oct 17, 2023
917c304
Merge pull request #267 from ChargeTimeEU/dependabot/maven/org.apache…
TVolden Oct 17, 2023
b14120a
Merge pull request #268 from ChargeTimeEU/dependabot/maven/org.slf4j-…
TVolden Oct 17, 2023
f56fc87
Merge pull request #269 from ChargeTimeEU/dependabot/maven/org.apache…
TVolden Oct 17, 2023
3cf541c
Bump org.jacoco:jacoco-maven-plugin from 0.8.10 to 0.8.11
dependabot[bot] Oct 17, 2023
b742417
Merge pull request #271 from ChargeTimeEU/dependabot/maven/org.jacoco…
TVolden Oct 19, 2023
e936bbe
Bump org.apache.maven.plugins:maven-surefire-plugin from 3.1.2 to 3.2.1
dependabot[bot] Oct 24, 2023
875b7cf
Merge pull request #272 from ChargeTimeEU/dependabot/maven/org.apache…
TVolden Oct 26, 2023
cd6fe53
Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.0 to 3.6.2
dependabot[bot] Nov 7, 2023
e0685b0
Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.1 to 3.2.2
dependabot[bot] Nov 7, 2023
3912f91
Merge pull request #273 from ChargeTimeEU/dependabot/maven/org.apache…
TVolden Nov 8, 2023
e4b211a
Merge pull request #274 from ChargeTimeEU/dependabot/maven/org.apache…
TVolden Nov 8, 2023
1f9c549
Bump ch.qos.logback:logback-classic from 1.4.11 to 1.4.13
dependabot[bot] Nov 29, 2023
855543b
Bump ch.qos.logback:logback-core in /ocpp-v2_0-test
dependabot[bot] Nov 29, 2023
2e4d258
Bump ch.qos.logback:logback-core in /ocpp-v1_6-test
dependabot[bot] Nov 29, 2023
5a9e147
Bump ch.qos.logback:logback-core from 1.4.11 to 1.4.12 in /ocpp-v2-test
dependabot[bot] Nov 29, 2023
27d5240
Merge pull request #279 from ChargeTimeEU/dependabot/maven/ch.qos.log…
TVolden Nov 30, 2023
be5bb24
Merge pull request #281 from ChargeTimeEU/dependabot/maven/ocpp-v2_0-…
TVolden Nov 30, 2023
4cb9b57
Merge pull request #282 from ChargeTimeEU/dependabot/maven/ocpp-v1_6-…
TVolden Nov 30, 2023
1d6c141
Merge pull request #283 from ChargeTimeEU/dependabot/maven/ocpp-v2-te…
TVolden Nov 30, 2023
f63e917
Bump ch.qos.logback:logback-core from 1.4.11 to 1.4.13
dependabot[bot] Nov 30, 2023
8112c85
Merge pull request #280 from ChargeTimeEU/dependabot/maven/ch.qos.log…
TVolden Nov 30, 2023
68f55e6
Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.2 to 3.6.3
dependabot[bot] Dec 4, 2023
cf6d479
Bump ch.qos.logback:logback-core in /ocpp-v1_6-test
dependabot[bot] Dec 8, 2023
f344348
Bump ch.qos.logback:logback-core from 1.4.13 to 1.4.14 in /ocpp-v2-test
dependabot[bot] Dec 8, 2023
d292437
Bump ch.qos.logback:logback-core in /ocpp-v2_0-test
dependabot[bot] Dec 8, 2023
0aef7cb
Bump github/codeql-action from 2 to 3
dependabot[bot] Dec 14, 2023
12712cb
Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.2 to 3.2.5
dependabot[bot] Jan 10, 2024
ac7638c
Revert "GitHub Actions: Downgrade maven workflow to 11.0.16+8"
bantu Jan 23, 2024
01ba01e
Merge pull request #306 from InnoCharge/revert-github-221
TVolden Jan 23, 2024
6060237
Allow configuration of allowed password string length
JohannesZangl Jan 25, 2024
0293ce1
Merge pull request #308 from Joo200/feat/configure_pw_length
TVolden Jan 31, 2024
88e0a34
Merge pull request #296 from ChargeTimeEU/dependabot/maven/ocpp-v1_6-…
TVolden Feb 22, 2024
e9c68df
Merge pull request #294 from ChargeTimeEU/dependabot/maven/org.apache…
TVolden Feb 22, 2024
3dce708
Merge pull request #297 from ChargeTimeEU/dependabot/maven/ocpp-v2-te…
TVolden Feb 22, 2024
28b4598
Merge pull request #298 from ChargeTimeEU/dependabot/maven/ocpp-v2_0-…
TVolden Feb 22, 2024
355aee0
Bump org.slf4j:jul-to-slf4j from 2.0.9 to 2.0.12
dependabot[bot] Feb 22, 2024
2348f9f
Merge pull request #301 from ChargeTimeEU/dependabot/github_actions/g…
TVolden Feb 22, 2024
caf3bb6
Merge pull request #242 from mmauksch/validateMeterValues
TVolden Mar 4, 2024
53937d9
Merge pull request #302 from ChargeTimeEU/dependabot/maven/org.apache…
TVolden Mar 4, 2024
6c636a2
Merge pull request #321 from ChargeTimeEU/dependabot/maven/org.slf4j-…
TVolden Mar 4, 2024
03b8a2a
Cleanup state after future has completed
martinfkaeser Mar 19, 2024
92aabc5
Cleanup state after future has completed - tests
martinfkaeser Mar 19, 2024
f4c10a9
Cleanup state after future has completed - adjust tests for Java 8
martinfkaeser Apr 3, 2024
14d60bc
Update gson due to reported vulnerability.
Apr 20, 2024
953f50b
A single instace, otherwise a static get() method makes no sense.
Apr 24, 2024
f7b92a3
Recommended by 1.6 spec is a 20 byte (40 chars) key.
Apr 24, 2024
cf20205
Fix password decoding.
Apr 24, 2024
fb5d0fb
More password fixes.
Apr 24, 2024
088b78c
Merge pull request #345 from rpseng/master
TVolden Apr 28, 2024
63fe226
Revert commits breaking API and binary OCPP 1.6 passwords
robert-s-ubi Jun 28, 2024
7904a1f
Add getLastError() API to MultiProtocolJSONClient
robert-s-ubi Mar 21, 2024
cac89cb
Implement CALLERROR: SecurityError response
robert-s-ubi Jun 28, 2024
9a8e572
Merge pull request #352 from ubitricity/master
robert-s-ubi Sep 10, 2025
00da479
Merge pull request #353 from ubitricity/add_getLastError_to_MultiProt…
robert-s-ubi Sep 10, 2025
8f2ef21
Merge pull request #354 from ubitricity/add_SecurityError_CallError_r…
robert-s-ubi Sep 10, 2025
db4be9d
Allow 0 for retries and retryInterval for both UpdateFirmware and Get…
Nov 29, 2025
88a40e4
Allow zero retries in OCPP 1.6 UpdateFirmwareRequest
robert-s-ubi Dec 4, 2025
32903d4
Merge pull request #334 from martinfkaeser/fix/cleanup-after-sending
robert-s-ubi Dec 4, 2025
e934d25
Add WebSocket Compression Support
robert-s-ubi Dec 4, 2025
a240984
Remove no longer needed import from MultiProtocolJSONServer
robert-s-ubi Dec 4, 2025
1d31957
Suppress "unchecked or unsafe operations" warning in JSONConfiguration
robert-s-ubi Feb 25, 2025
6012785
Ensure millis precision in timestamps of outgoing messages
TomMarkuske Feb 13, 2025
7fc988f
Fix security and quality issues found by scanners
robert-s-ubi Jul 19, 2024
b9392be
Merge pull request #367 from ChargeTimeEU/suppress_warning_in_jsoncon…
robert-s-ubi Dec 5, 2025
58f020a
Merge pull request #368 from ChargeTimeEU/ensure_millis_precision_in_…
robert-s-ubi Dec 5, 2025
45710c2
Merge pull request #369 from ChargeTimeEU/fix_issues_reported_by_scan…
robert-s-ubi Dec 5, 2025
e2d1ac3
Merge pull request #366 from ChargeTimeEU/add_websocket_compression_s…
robert-s-ubi Dec 5, 2025
53b4815
Bump org.slf4j:slf4j-api from 2.0.9 to 2.0.17
dependabot[bot] Dec 5, 2025
129243f
Bump org.jacoco:jacoco-maven-plugin from 0.8.11 to 0.8.14
dependabot[bot] Dec 5, 2025
8b4e78d
Bump ch.qos.logback:logback-core from 1.4.14 to 1.5.21
dependabot[bot] Dec 5, 2025
1f7fb88
Bump ch.qos.logback:logback-classic from 1.4.13 to 1.5.21
dependabot[bot] Dec 5, 2025
1eba36a
Bump org.apache.maven.plugins:maven-compiler-plugin
dependabot[bot] Dec 5, 2025
0ccfbb8
Merge pull request #373 from ChargeTimeEU/dependabot/maven/org.slf4j-…
robert-s-ubi Dec 5, 2025
c5c0b7a
Merge pull request #374 from ChargeTimeEU/dependabot/maven/org.jacoco…
robert-s-ubi Dec 5, 2025
10d7cdd
Merge pull request #375 from ChargeTimeEU/dependabot/maven/ch.qos.log…
robert-s-ubi Dec 5, 2025
dbd87cf
Merge pull request #376 from ChargeTimeEU/dependabot/maven/ch.qos.log…
robert-s-ubi Dec 5, 2025
cb34fff
Merge pull request #377 from ChargeTimeEU/dependabot/maven/org.apache…
robert-s-ubi Dec 5, 2025
7a42894
Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.5 to 3.5.4
dependabot[bot] Dec 5, 2025
dd06a5a
Bump org.apache.maven.plugins:maven-gpg-plugin from 3.1.0 to 3.2.8
dependabot[bot] Dec 5, 2025
2b431bf
Bump org.sonatype.plugins:nexus-staging-maven-plugin
dependabot[bot] Dec 5, 2025
70b9410
Bump org.hamcrest:hamcrest-core from 2.2 to 3.0
dependabot[bot] Dec 5, 2025
dae6acb
Bump org.codehaus.gmavenplus:gmavenplus-plugin from 3.0.2 to 4.2.1
dependabot[bot] Dec 5, 2025
d8f6620
Bump github/codeql-action from 3 to 4
dependabot[bot] Dec 5, 2025
52c7345
Bump actions/setup-java from 3 to 5
dependabot[bot] Dec 5, 2025
fe6ed13
Bump actions/checkout from 4 to 6
dependabot[bot] Dec 5, 2025
5ac161a
Merge pull request #379 from ChargeTimeEU/dependabot/maven/org.apache…
robert-s-ubi Dec 5, 2025
6f8b483
Merge pull request #380 from ChargeTimeEU/dependabot/maven/org.apache…
robert-s-ubi Dec 5, 2025
3c9a56c
Merge pull request #381 from ChargeTimeEU/dependabot/maven/org.sonaty…
robert-s-ubi Dec 5, 2025
7cbbbcb
Merge pull request #382 from ChargeTimeEU/dependabot/maven/org.hamcre…
robert-s-ubi Dec 5, 2025
64b4ac9
Merge pull request #383 from ChargeTimeEU/dependabot/maven/org.codeha…
robert-s-ubi Dec 5, 2025
02e2f98
Merge pull request #384 from ChargeTimeEU/dependabot/github_actions/g…
robert-s-ubi Dec 5, 2025
bf1ef28
Merge pull request #385 from ChargeTimeEU/dependabot/github_actions/a…
robert-s-ubi Dec 5, 2025
6f43c78
Merge pull request #386 from ChargeTimeEU/dependabot/github_actions/a…
robert-s-ubi Dec 5, 2025
ebf9f1b
Bump com.google.code.gson:gson from 2.10.1 to 2.13.2
dependabot[bot] Dec 5, 2025
5368362
Bump org.apache.maven.plugins:maven-source-plugin from 3.3.0 to 3.4.0
dependabot[bot] Dec 5, 2025
0370dfc
Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.3 to 3.12.0
dependabot[bot] Dec 5, 2025
28843a3
Bump org.slf4j:jul-to-slf4j from 2.0.12 to 2.0.17
dependabot[bot] Dec 5, 2025
1b97abf
Merge pull request #387 from ChargeTimeEU/dependabot/maven/com.google…
robert-s-ubi Dec 5, 2025
c4740e9
Merge pull request #389 from ChargeTimeEU/dependabot/maven/org.apache…
robert-s-ubi Dec 5, 2025
d951563
Merge pull request #390 from ChargeTimeEU/dependabot/maven/org.apache…
robert-s-ubi Dec 5, 2025
c331083
Merge pull request #391 from ChargeTimeEU/dependabot/maven/org.slf4j-…
robert-s-ubi Dec 5, 2025
0503894
Downgrade logback dependencies to version 1.3.16
robert-s-ubi Dec 5, 2025
46f0ad4
Merge pull request #392 from ChargeTimeEU/downgrade_logback_dependenc…
robert-s-ubi Dec 5, 2025
9f751ee
Update gradle dependencies after dependabot updates
robert-s-ubi Dec 5, 2025
203e07f
Merge pull request #395 from ChargeTimeEU/update_gradle_dependencies
robert-s-ubi Dec 5, 2025
b1f5b4a
Remove obsolete "ocpp-v2_0" subproject
robert-s-ubi Dec 5, 2025
e1d4a19
Merge pull request #371 from ChargeTimeEU/remove_obsolete_ocpp-v2_0_tree
robert-s-ubi Dec 5, 2025
fe092b1
Remove leftover ocpp-v2_0 files
robert-s-ubi Dec 5, 2025
4dab10b
Merge pull request #396 from ChargeTimeEU/remove_leftover_ocpp-v2_0_f…
robert-s-ubi Dec 5, 2025
a02d71c
Apply Google Java format
Dec 6, 2025
ca316eb
Merge pull request #370 from jmluy/google-format
robert-s-ubi Dec 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 14 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: "maven"
directory: "/"
schedule:
interval: "daily"

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
8 changes: 4 additions & 4 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,11 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v6

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
Expand All @@ -53,7 +53,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
uses: github/codeql-action/autobuild@v4

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
Expand All @@ -67,4 +67,4 @@ jobs:
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v4
14 changes: 4 additions & 10 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,19 @@

name: Java CI with Maven

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
on: [push, pull_request]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
- name: Set up JDK 11
uses: actions/setup-java@v2
uses: actions/setup-java@v5
with:
# TODO: Revert to '11'.
# See https://github.com/ChargeTimeEU/Java-OCA-OCPP/pull/223#issuecomment-1328048028
java-version: '11.0.16+8'
java-version: '11'
distribution: 'temurin'
cache: maven
- name: Build with Maven
Expand Down
10 changes: 5 additions & 5 deletions OCPP-J/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@

dependencies {
compile project(':common')
compile 'com.google.code.gson:gson:2.8.0'
compile 'org.java-websocket:Java-WebSocket:1.5.3'
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:1.10.19'
testCompile 'org.hamcrest:hamcrest-core:1.3'
compile 'com.google.code.gson:gson:2.13.2'
compile 'org.java-websocket:Java-WebSocket:1.6.0'
testCompile 'junit:junit:4.13.2'
testCompile 'org.mockito:mockito-core:4.11.0'
testCompile 'org.hamcrest:hamcrest-core:3.0'
}

task javadocJar(type: Jar) {
Expand Down
26 changes: 13 additions & 13 deletions OCPP-J/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>eu.chargetime.ocpp</groupId>
<artifactId>OCPP-J</artifactId>
<version>1.0.2</version>
<version>1.2.0</version>
<packaging>jar</packaging>

<name>Java-OCA-OCPP OCPP-J</name>
Expand Down Expand Up @@ -50,41 +50,41 @@
<dependency>
<groupId>eu.chargetime.ocpp</groupId>
<artifactId>common</artifactId>
<version>1.0.2</version>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.9</version>
<version>2.13.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
<version>1.5.3</version>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.10.19</version>
<version>4.11.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
<version>3.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
<version>1.3.16</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand All @@ -98,12 +98,12 @@
<source>1.8</source>
<target>1.8</target>
</configuration>
<version>3.5.1</version>
<version>3.14.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<version>3.4.0</version>
<executions>
<execution>
<id>attach-sources</id>
Expand All @@ -117,7 +117,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<version>3.12.0</version>
<executions>
<execution>
<id>attach-javadocs</id>
Expand All @@ -130,7 +130,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.5</version>
<version>3.2.8</version>
<executions>
<execution>
<id>sign-artifacts</id>
Expand All @@ -144,7 +144,7 @@
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.8</version>
<version>1.7.0</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
Expand Down
194 changes: 95 additions & 99 deletions OCPP-J/src/main/java/eu/chargetime/ocpp/Draft_HttpHealthCheck.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
/*
* Based ON https://github.com/TooTallNate/Java-WebSocket/issues/1077
*/
import java.nio.ByteBuffer;
import java.util.Collections;
import java.util.List;
import org.java_websocket.WebSocketImpl;
import org.java_websocket.drafts.Draft;
import org.java_websocket.enums.CloseHandshakeType;
Expand All @@ -12,105 +15,98 @@
import org.java_websocket.handshake.*;
import org.java_websocket.util.Charsetfunctions;

import java.nio.ByteBuffer;
import java.util.Collections;
import java.util.List;

class Draft_HttpHealthCheck extends Draft {

static final int HTTP_HEALTH_CHECK_CLOSE_CODE = 10200;

static Boolean isHttp(ClientHandshake handshakedata) {
String upgradeField = handshakedata.getFieldValue("Upgrade");
return upgradeField == null || upgradeField == "";
}

@Override
public List<ByteBuffer> createHandshake(Handshakedata handshakedata, boolean withcontent) {
byte[] content = Charsetfunctions.asciiBytes("<h1>OCPP-J Websocket OK</h1>");
byte[] header = Charsetfunctions.asciiBytes(
"HTTP/1.0 200 OK\r\n" +
"Mime-Version: 1.0\r\n" +
"Content-Type: text/html\r\n" +
"Content-Length: " + content.length + " \r\n" +
"Connection: close\r\n" +
"\r\n"
);

ByteBuffer bytebuffer = ByteBuffer.allocate(content.length + header.length);
bytebuffer.put(header);
bytebuffer.put(content);
bytebuffer.flip();
return Collections.singletonList(bytebuffer);
}

@Override
public HandshakeState acceptHandshakeAsClient(
ClientHandshake request, ServerHandshake response
) throws InvalidHandshakeException {
throw new InvalidHandshakeException("This draft can't be used on a client");
}

@Override
public HandshakeState acceptHandshakeAsServer(
ClientHandshake handshakedata
) throws InvalidHandshakeException {
return (isHttp(handshakedata)) ? HandshakeState.MATCHED : HandshakeState.NOT_MATCHED;
}

@Override
public ByteBuffer createBinaryFrame(Framedata framedata) {
return null;
}

@Override
public List<Framedata> createFrames(ByteBuffer binary, boolean mask) {
return null;
}

@Override
public List<Framedata> createFrames(String text, boolean mask) {
return null;
}

@Override
public void processFrame(
WebSocketImpl webSocketImpl, Framedata frame
) throws InvalidDataException {
throw new InvalidDataException(0, "This draft can't be used on a client");
}

@Override
public void reset() {
// Nothing to Do
}

@Override
public ClientHandshakeBuilder postProcessHandshakeRequestAsClient(
ClientHandshakeBuilder request
) throws InvalidHandshakeException {
throw new InvalidHandshakeException("This draft can't be used on a client");
}

@Override
public HandshakeBuilder postProcessHandshakeResponseAsServer(
ClientHandshake request, ServerHandshakeBuilder response
) throws InvalidHandshakeException {
return response;
}

@Override
public List<Framedata> translateFrame(ByteBuffer buffer) throws InvalidDataException {
throw new InvalidHandshakeException("This draft doesn't work with frames");
}

@Override
public CloseHandshakeType getCloseHandshakeType() {
return CloseHandshakeType.NONE;
}

@Override
public Draft copyInstance() {
return this;
}
static final int HTTP_HEALTH_CHECK_CLOSE_CODE = 10200;

static Boolean isHttp(ClientHandshake handshakedata) {
String upgradeField = handshakedata.getFieldValue("Upgrade");
return upgradeField == null || upgradeField.isEmpty();
}

@Override
public List<ByteBuffer> createHandshake(Handshakedata handshakedata, boolean withcontent) {
byte[] content = Charsetfunctions.asciiBytes("<h1>OCPP-J Websocket OK</h1>");
byte[] header =
Charsetfunctions.asciiBytes(
"HTTP/1.0 200 OK\r\n"
+ "Mime-Version: 1.0\r\n"
+ "Content-Type: text/html\r\n"
+ "Content-Length: "
+ content.length
+ " \r\n"
+ "Connection: close\r\n"
+ "\r\n");

ByteBuffer bytebuffer = ByteBuffer.allocate(content.length + header.length);
bytebuffer.put(header);
bytebuffer.put(content);
bytebuffer.flip();
return Collections.singletonList(bytebuffer);
}

@Override
public HandshakeState acceptHandshakeAsClient(ClientHandshake request, ServerHandshake response)
throws InvalidHandshakeException {
throw new InvalidHandshakeException("This draft can't be used on a client");
}

@Override
public HandshakeState acceptHandshakeAsServer(ClientHandshake handshakedata)
throws InvalidHandshakeException {
return (isHttp(handshakedata)) ? HandshakeState.MATCHED : HandshakeState.NOT_MATCHED;
}

@Override
public ByteBuffer createBinaryFrame(Framedata framedata) {
return null;
}

@Override
public List<Framedata> createFrames(ByteBuffer binary, boolean mask) {
return null;
}

@Override
public List<Framedata> createFrames(String text, boolean mask) {
return null;
}

@Override
public void processFrame(WebSocketImpl webSocketImpl, Framedata frame)
throws InvalidDataException {
throw new InvalidDataException(0, "This draft can't be used on a client");
}

@Override
public void reset() {
// Nothing to Do
}

@Override
public ClientHandshakeBuilder postProcessHandshakeRequestAsClient(ClientHandshakeBuilder request)
throws InvalidHandshakeException {
throw new InvalidHandshakeException("This draft can't be used on a client");
}

@Override
public HandshakeBuilder postProcessHandshakeResponseAsServer(
ClientHandshake request, ServerHandshakeBuilder response) throws InvalidHandshakeException {
return response;
}

@Override
public List<Framedata> translateFrame(ByteBuffer buffer) throws InvalidDataException {
throw new InvalidHandshakeException("This draft doesn't work with frames");
}

@Override
public CloseHandshakeType getCloseHandshakeType() {
return CloseHandshakeType.NONE;
}

@Override
public Draft copyInstance() {
return this;
}
}
Loading