From babd2ee114062c2b24ad1d45cb4dc5cbea394e86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Mu=CC=88ltin?= Date: Fri, 13 Oct 2017 12:30:15 +0200 Subject: [PATCH] Changelog 13.10.17: - Changed package name from org.v2gclarity.risev2g to com.v2gclarity.risev2g - Changed pom.xml and bin.xml files for creating deployable .jar files with Maven - Added RISE-V2G-Parent project folder for Maven to facilitate an easy build process that has now be reworked in this version --- LICENSE => LICENSE.txt | 0 RISE-V2G-Certificates/copyNewCertsAndKeys.sh | 14 +-- .../generateCertificates.bat | 14 ++- RISE-V2G-Certificates/generateCertificates.sh | 16 ++- RISE-V2G-EVCC/EVCCConfig.properties | 20 ++-- RISE-V2G-EVCC/LICENSE.txt | 23 ++++ RISE-V2G-EVCC/pom.xml | 98 +++++++++-------- RISE-V2G-EVCC/src/assembly/bin.xml | 55 +++------- .../evcc/evController/DummyEVController.java | 40 +++---- .../evcc/evController/IACEVController.java | 6 +- .../evcc/evController/IDCEVController.java | 10 +- .../evcc/evController/IEVController.java | 12 +-- .../risev2g/evcc/main/StartEVCC.java | 9 +- .../session/V2GCommunicationSessionEVCC.java | 92 ++++++++-------- .../V2GCommunicationSessionHandlerEVCC.java | 40 +++---- .../risev2g/evcc/states/ClientState.java | 102 +++++++++--------- .../evcc/states/WaitForAuthorizationRes.java | 30 +++--- .../evcc/states/WaitForCableCheckRes.java | 22 ++-- .../WaitForCertificateInstallationRes.java | 24 ++--- .../states/WaitForCertificateUpdateRes.java | 24 ++--- .../WaitForChargeParameterDiscoveryRes.java | 41 +++---- .../evcc/states/WaitForChargingStatusRes.java | 26 ++--- .../evcc/states/WaitForCurrentDemandRes.java | 26 ++--- .../states/WaitForMeteringReceiptRes.java | 24 ++--- .../evcc/states/WaitForPaymentDetailsRes.java | 20 ++-- .../WaitForPaymentServiceSelectionRes.java | 24 ++--- .../evcc/states/WaitForPowerDeliveryRes.java | 26 ++--- .../evcc/states/WaitForPreChargeRes.java | 22 ++-- .../evcc/states/WaitForServiceDetailRes.java | 16 +-- .../states/WaitForServiceDiscoveryRes.java | 32 +++--- .../evcc/states/WaitForSessionSetupRes.java | 20 ++-- .../evcc/states/WaitForSessionStopRes.java | 10 +- .../WaitForSupportedAppProtocolRes.java | 24 ++--- .../states/WaitForWeldingDetectionRes.java | 16 +-- .../StatefulTransportLayerClient.java | 10 +- .../evcc/transportLayer/TCPClient.java | 4 +- .../evcc/transportLayer/TLSClient.java | 10 +- .../evcc/transportLayer/UDPClient.java | 10 +- RISE-V2G-EVCC/src/main/resources/log4j2.xml | 2 +- RISE-V2G-PARENT/pom.xml | 87 +++++++++++++++ RISE-V2G-PARENT/src/assembly/src.xml | 65 +++++++++++ RISE-V2G-SECC/LICENSE.txt | 23 ++++ RISE-V2G-SECC/SECCConfig.properties | 18 ++-- RISE-V2G-SECC/pom.xml | 92 +++++++++------- RISE-V2G-SECC/src/assembly/bin.xml | 56 +++------- .../secc/backend/DummyBackendInterface.java | 30 +++--- .../secc/backend/IBackendInterface.java | 6 +- .../evseController/DummyACEVSEController.java | 18 ++-- .../evseController/DummyDCEVSEController.java | 20 ++-- .../evseController/IACEVSEController.java | 8 +- .../evseController/IDCEVSEController.java | 12 +-- .../secc/evseController/IEVSEController.java | 4 +- .../risev2g/secc/main/StartSECC.java | 16 +-- .../V2GCommunicationSessionHandlerSECC.java | 24 ++--- .../session/V2GCommunicationSessionSECC.java | 100 ++++++++--------- .../risev2g/secc/states/ForkState.java | 20 ++-- .../risev2g/secc/states/ServerState.java | 76 ++++++------- .../secc/states/WaitForAuthorizationReq.java | 26 ++--- .../secc/states/WaitForCableCheckReq.java | 26 ++--- .../WaitForCertificateInstallationReq.java | 28 ++--- .../states/WaitForCertificateUpdateReq.java | 31 +++--- .../WaitForChargeParameterDiscoveryReq.java | 32 +++--- .../secc/states/WaitForChargingStatusReq.java | 22 ++-- .../secc/states/WaitForCurrentDemandReq.java | 24 ++--- .../states/WaitForMeteringReceiptReq.java | 30 +++--- .../secc/states/WaitForPaymentDetailsReq.java | 24 ++--- .../WaitForPaymentServiceSelectionReq.java | 24 ++--- .../secc/states/WaitForPowerDeliveryReq.java | 39 +++---- .../secc/states/WaitForPreChargeReq.java | 22 ++-- .../secc/states/WaitForServiceDetailReq.java | 26 ++--- .../states/WaitForServiceDiscoveryReq.java | 32 +++--- .../secc/states/WaitForSessionSetupReq.java | 16 +-- .../secc/states/WaitForSessionStopReq.java | 16 +-- .../WaitForSupportedAppProtocolReq.java | 24 ++--- .../states/WaitForWeldingDetectionReq.java | 22 ++-- .../transportLayer/ConnectionHandler.java | 8 +- .../StatefulTransportLayerServer.java | 4 +- .../secc/transportLayer/TCPServer.java | 2 +- .../secc/transportLayer/TLSServer.java | 6 +- .../secc/transportLayer/UDPServer.java | 8 +- RISE-V2G-SECC/src/main/resources/log4j2.xml | 2 +- RISE-V2G-Shared/LICENSE.txt | 23 ++++ RISE-V2G-Shared/pom.xml | 62 ++++------- .../nagasena-rta-0000.0002.0052.0.jar | Bin 0 -> 79032 bytes .../nagasena-rta-0000.0002.0052.0.jar.md5 | 1 + .../nagasena-rta-0000.0002.0052.0.jar.sha1 | 1 + .../nagasena-rta-0000.0002.0052.0.pom | 8 ++ .../nagasena-rta-0000.0002.0052.0.pom.md5 | 1 + .../nagasena-rta-0000.0002.0052.0.pom.sha1 | 1 + .../openexi/nagasena-rta/maven-metadata.xml | 12 +++ .../nagasena-rta/maven-metadata.xml.md5 | 1 + .../nagasena-rta/maven-metadata.xml.sha1 | 1 + .../nagasena-0000.0002.0052.0.jar | Bin 0 -> 267850 bytes .../nagasena-0000.0002.0052.0.jar.md5 | 1 + .../nagasena-0000.0002.0052.0.jar.sha1 | 1 + .../nagasena-0000.0002.0052.0.pom | 8 ++ .../nagasena-0000.0002.0052.0.pom.md5 | 1 + .../nagasena-0000.0002.0052.0.pom.sha1 | 1 + .../openexi/nagasena/maven-metadata.xml | 12 +++ .../openexi/nagasena/maven-metadata.xml.md5 | 1 + .../openexi/nagasena/maven-metadata.xml.sha1 | 1 + .../risev2g/shared/enumerations/CPStates.java | 2 +- .../shared/enumerations/GlobalTypes.java | 2 +- .../shared/enumerations/GlobalValues.java | 11 +- .../shared/enumerations/MessageSets.java | 2 +- .../risev2g/shared/enumerations/PKI.java | 2 +- .../shared/enumerations/V2GMessages.java | 2 +- .../EXISchemaFactoryExceptionHandler.java | 2 +- .../shared/exiCodec/EXIficientCodec.java | 6 +- .../EXIficient_V2G_CI_AppProtocol.java | 2 +- .../exiCodec/EXIficient_V2G_CI_MsgDef.java | 2 +- .../EXIficient_xmldsig_core_schema.java | 2 +- .../risev2g/shared/exiCodec/ExiCodec.java | 18 ++-- .../risev2g/shared/exiCodec/OpenEXICodec.java | 11 +- .../risev2g/shared/exiCodec/XSDResolver.java | 4 +- .../ChangeProcessingState.java | 4 +- .../messageHandling/MessageHandler.java | 44 ++++---- .../shared/messageHandling/PauseSession.java | 2 +- .../ReactionToIncomingMessage.java | 2 +- .../shared/messageHandling/SendMessage.java | 6 +- .../messageHandling/TerminateSession.java | 2 +- .../v2gclarity/risev2g/shared/misc/State.java | 16 +-- .../risev2g/shared/misc/TimeRestrictions.java | 4 +- .../shared/misc/V2GCommunicationSession.java | 34 +++--- .../risev2g/shared/misc/V2GTPMessage.java | 6 +- .../risev2g/shared/utils/ByteUtils.java | 2 +- .../risev2g/shared/utils/MiscUtils.java | 76 +++++++------ .../risev2g/shared/utils/SecurityUtils.java | 77 +++++++------ .../risev2g/shared/utils/SleepUtils.java | 2 +- .../shared/v2gMessages/SECCDiscoveryReq.java | 2 +- .../shared/v2gMessages/SECCDiscoveryRes.java | 2 +- .../appProtocol/AppProtocolType.java | 2 +- .../appProtocol/ObjectFactory.java | 2 +- .../appProtocol/ResponseCodeType.java | 2 +- .../appProtocol/SupportedAppProtocolReq.java | 2 +- .../appProtocol/SupportedAppProtocolRes.java | 2 +- .../v2gMessages/appProtocol/package-info.java | 2 +- .../msgDef/ACEVChargeParameterType.java | 2 +- .../msgDef/ACEVSEChargeParameterType.java | 2 +- .../v2gMessages/msgDef/ACEVSEStatusType.java | 2 +- .../msgDef/AuthorizationReqType.java | 2 +- .../msgDef/AuthorizationResType.java | 2 +- .../v2gMessages/msgDef/BodyBaseType.java | 2 +- .../shared/v2gMessages/msgDef/BodyType.java | 2 +- .../v2gMessages/msgDef/CableCheckReqType.java | 2 +- .../v2gMessages/msgDef/CableCheckResType.java | 2 +- .../msgDef/CanonicalizationMethodType.java | 2 +- .../msgDef/CertificateChainType.java | 2 +- .../CertificateInstallationReqType.java | 2 +- .../CertificateInstallationResType.java | 2 +- .../msgDef/CertificateUpdateReqType.java | 2 +- .../msgDef/CertificateUpdateResType.java | 2 +- .../ChargeParameterDiscoveryReqType.java | 2 +- .../ChargeParameterDiscoveryResType.java | 2 +- .../msgDef/ChargeProgressType.java | 2 +- .../v2gMessages/msgDef/ChargeServiceType.java | 2 +- .../msgDef/ChargingProfileType.java | 2 +- .../msgDef/ChargingSessionType.java | 2 +- .../msgDef/ChargingStatusReqType.java | 2 +- .../msgDef/ChargingStatusResType.java | 2 +- .../msgDef/ConsumptionCostType.java | 2 +- ...tractSignatureEncryptedPrivateKeyType.java | 2 +- .../v2gMessages/msgDef/CostKindType.java | 2 +- .../shared/v2gMessages/msgDef/CostType.java | 2 +- .../msgDef/CurrentDemandReqType.java | 2 +- .../msgDef/CurrentDemandResType.java | 2 +- .../msgDef/DCEVChargeParameterType.java | 2 +- .../v2gMessages/msgDef/DCEVErrorCodeType.java | 2 +- .../DCEVPowerDeliveryParameterType.java | 2 +- .../msgDef/DCEVSEChargeParameterType.java | 2 +- .../msgDef/DCEVSEStatusCodeType.java | 2 +- .../v2gMessages/msgDef/DCEVSEStatusType.java | 2 +- .../v2gMessages/msgDef/DCEVStatusType.java | 2 +- .../v2gMessages/msgDef/DSAKeyValueType.java | 2 +- .../msgDef/DiffieHellmanPublickeyType.java | 2 +- .../v2gMessages/msgDef/DigestMethodType.java | 2 +- .../shared/v2gMessages/msgDef/EMAIDType.java | 2 +- .../msgDef/EVChargeParameterType.java | 2 +- .../msgDef/EVPowerDeliveryParameterType.java | 2 +- .../msgDef/EVSEChargeParameterType.java | 2 +- .../msgDef/EVSENotificationType.java | 2 +- .../msgDef/EVSEProcessingType.java | 2 +- .../v2gMessages/msgDef/EVSEStatusType.java | 2 +- .../v2gMessages/msgDef/EVStatusType.java | 2 +- .../msgDef/EnergyTransferModeType.java | 2 +- .../shared/v2gMessages/msgDef/EntryType.java | 2 +- .../v2gMessages/msgDef/FaultCodeType.java | 2 +- .../v2gMessages/msgDef/IntervalType.java | 2 +- .../msgDef/IsolationLevelType.java | 2 +- .../v2gMessages/msgDef/KeyInfoType.java | 2 +- .../v2gMessages/msgDef/KeyValueType.java | 2 +- .../msgDef/ListOfRootCertificateIDsType.java | 2 +- .../v2gMessages/msgDef/ManifestType.java | 2 +- .../v2gMessages/msgDef/MessageHeaderType.java | 2 +- .../v2gMessages/msgDef/MeterInfoType.java | 2 +- .../msgDef/MeteringReceiptReqType.java | 2 +- .../msgDef/MeteringReceiptResType.java | 2 +- .../v2gMessages/msgDef/NotificationType.java | 2 +- .../v2gMessages/msgDef/ObjectFactory.java | 2 +- .../shared/v2gMessages/msgDef/ObjectType.java | 2 +- .../v2gMessages/msgDef/PGPDataType.java | 2 +- .../msgDef/PMaxScheduleEntryType.java | 2 +- .../v2gMessages/msgDef/PMaxScheduleType.java | 2 +- .../v2gMessages/msgDef/ParameterSetType.java | 2 +- .../v2gMessages/msgDef/ParameterType.java | 2 +- .../msgDef/PaymentDetailsReqType.java | 2 +- .../msgDef/PaymentDetailsResType.java | 2 +- .../msgDef/PaymentOptionListType.java | 2 +- .../v2gMessages/msgDef/PaymentOptionType.java | 2 +- .../PaymentServiceSelectionReqType.java | 2 +- .../PaymentServiceSelectionResType.java | 2 +- .../v2gMessages/msgDef/PhysicalValueType.java | 2 +- .../msgDef/PowerDeliveryReqType.java | 2 +- .../msgDef/PowerDeliveryResType.java | 2 +- .../v2gMessages/msgDef/PreChargeReqType.java | 2 +- .../v2gMessages/msgDef/PreChargeResType.java | 2 +- .../v2gMessages/msgDef/ProfileEntryType.java | 2 +- .../v2gMessages/msgDef/RSAKeyValueType.java | 2 +- .../v2gMessages/msgDef/ReferenceType.java | 2 +- .../msgDef/RelativeTimeIntervalType.java | 2 +- .../v2gMessages/msgDef/ResponseCodeType.java | 2 +- .../msgDef/RetrievalMethodType.java | 2 +- .../msgDef/SAScheduleListType.java | 2 +- .../msgDef/SAScheduleTupleType.java | 2 +- .../v2gMessages/msgDef/SASchedulesType.java | 2 +- .../v2gMessages/msgDef/SPKIDataType.java | 2 +- .../msgDef/SalesTariffEntryType.java | 2 +- .../v2gMessages/msgDef/SalesTariffType.java | 2 +- .../msgDef/SelectedServiceListType.java | 2 +- .../msgDef/SelectedServiceType.java | 2 +- .../msgDef/ServiceCategoryType.java | 2 +- .../msgDef/ServiceDetailReqType.java | 2 +- .../msgDef/ServiceDetailResType.java | 2 +- .../msgDef/ServiceDiscoveryReqType.java | 2 +- .../msgDef/ServiceDiscoveryResType.java | 2 +- .../v2gMessages/msgDef/ServiceListType.java | 2 +- .../msgDef/ServiceParameterListType.java | 2 +- .../v2gMessages/msgDef/ServiceType.java | 2 +- .../msgDef/SessionSetupReqType.java | 2 +- .../msgDef/SessionSetupResType.java | 2 +- .../msgDef/SessionStopReqType.java | 2 +- .../msgDef/SessionStopResType.java | 2 +- .../msgDef/SignatureMethodType.java | 2 +- .../msgDef/SignaturePropertiesType.java | 2 +- .../msgDef/SignaturePropertyType.java | 2 +- .../v2gMessages/msgDef/SignatureType.java | 2 +- .../msgDef/SignatureValueType.java | 2 +- .../v2gMessages/msgDef/SignedInfoType.java | 2 +- .../msgDef/SubCertificatesType.java | 2 +- .../SupportedEnergyTransferModeType.java | 2 +- .../v2gMessages/msgDef/TransformType.java | 2 +- .../v2gMessages/msgDef/TransformsType.java | 2 +- .../v2gMessages/msgDef/UnitSymbolType.java | 2 +- .../shared/v2gMessages/msgDef/V2GMessage.java | 2 +- .../shared/v2gMessages/msgDef/ValueType.java | 2 +- .../msgDef/WeldingDetectionReqType.java | 2 +- .../msgDef/WeldingDetectionResType.java | 2 +- .../v2gMessages/msgDef/X509DataType.java | 2 +- .../msgDef/X509IssuerSerialType.java | 2 +- .../v2gMessages/msgDef/package-info.java | 2 +- pom.xml | 51 --------- 261 files changed, 1602 insertions(+), 1376 deletions(-) rename LICENSE => LICENSE.txt (100%) create mode 100644 RISE-V2G-EVCC/LICENSE.txt rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/evController/DummyEVController.java (89%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/evController/IACEVController.java (91%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/evController/IDCEVController.java (92%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/evController/IEVController.java (89%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/main/StartEVCC.java (87%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/session/V2GCommunicationSessionEVCC.java (84%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/session/V2GCommunicationSessionHandlerEVCC.java (91%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/ClientState.java (84%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForAuthorizationRes.java (83%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForCableCheckRes.java (84%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForCertificateInstallationRes.java (87%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForCertificateUpdateRes.java (87%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForChargeParameterDiscoveryRes.java (90%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForChargingStatusRes.java (86%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForCurrentDemandRes.java (85%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForMeteringReceiptRes.java (84%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForPaymentDetailsRes.java (84%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForPaymentServiceSelectionRes.java (90%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForPowerDeliveryRes.java (84%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForPreChargeRes.java (83%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForServiceDetailRes.java (83%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForServiceDiscoveryRes.java (88%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForSessionSetupRes.java (86%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForSessionStopRes.java (86%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForSupportedAppProtocolRes.java (86%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/states/WaitForWeldingDetectionRes.java (85%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/transportLayer/StatefulTransportLayerClient.java (96%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/transportLayer/TCPClient.java (97%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/transportLayer/TLSClient.java (96%) rename RISE-V2G-EVCC/src/main/java/{org => com}/v2gclarity/risev2g/evcc/transportLayer/UDPClient.java (96%) create mode 100644 RISE-V2G-PARENT/pom.xml create mode 100644 RISE-V2G-PARENT/src/assembly/src.xml create mode 100644 RISE-V2G-SECC/LICENSE.txt rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/backend/DummyBackendInterface.java (93%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/backend/IBackendInterface.java (95%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/evseController/DummyACEVSEController.java (87%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/evseController/DummyDCEVSEController.java (92%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/evseController/IACEVSEController.java (89%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/evseController/IDCEVSEController.java (93%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/evseController/IEVSEController.java (95%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/main/StartSECC.java (85%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/session/V2GCommunicationSessionHandlerSECC.java (93%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/session/V2GCommunicationSessionSECC.java (83%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/ForkState.java (87%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/ServerState.java (90%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForAuthorizationReq.java (87%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForCableCheckReq.java (83%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForCertificateInstallationReq.java (91%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForCertificateUpdateReq.java (90%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForChargeParameterDiscoveryReq.java (92%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForChargingStatusReq.java (86%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForCurrentDemandReq.java (88%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForMeteringReceiptReq.java (88%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForPaymentDetailsReq.java (87%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForPaymentServiceSelectionReq.java (88%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForPowerDeliveryReq.java (90%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForPreChargeReq.java (83%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForServiceDetailReq.java (89%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForServiceDiscoveryReq.java (87%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForSessionSetupReq.java (85%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForSessionStopReq.java (83%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForSupportedAppProtocolReq.java (88%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/states/WaitForWeldingDetectionReq.java (83%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/transportLayer/ConnectionHandler.java (97%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/transportLayer/StatefulTransportLayerServer.java (95%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/transportLayer/TCPServer.java (98%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/transportLayer/TLSServer.java (97%) rename RISE-V2G-SECC/src/main/java/{org => com}/v2gclarity/risev2g/secc/transportLayer/UDPServer.java (96%) create mode 100644 RISE-V2G-Shared/LICENSE.txt create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.jar create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.jar.md5 create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.jar.sha1 create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.pom create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.pom.md5 create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.pom.sha1 create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/maven-metadata.xml create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/maven-metadata.xml.md5 create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/maven-metadata.xml.sha1 create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.jar create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.jar.md5 create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.jar.sha1 create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.pom create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.pom.md5 create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.pom.sha1 create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/maven-metadata.xml create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/maven-metadata.xml.md5 create mode 100644 RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/maven-metadata.xml.sha1 rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/enumerations/CPStates.java (96%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/enumerations/GlobalTypes.java (96%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/enumerations/GlobalValues.java (95%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/enumerations/MessageSets.java (96%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/enumerations/PKI.java (96%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/enumerations/V2GMessages.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/exiCodec/EXISchemaFactoryExceptionHandler.java (97%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/exiCodec/EXIficientCodec.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/exiCodec/EXIficient_V2G_CI_AppProtocol.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/exiCodec/EXIficient_V2G_CI_MsgDef.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/exiCodec/EXIficient_xmldsig_core_schema.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/exiCodec/ExiCodec.java (93%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/exiCodec/OpenEXICodec.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/exiCodec/XSDResolver.java (97%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/messageHandling/ChangeProcessingState.java (94%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/messageHandling/MessageHandler.java (90%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/messageHandling/PauseSession.java (96%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/messageHandling/ReactionToIncomingMessage.java (96%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/messageHandling/SendMessage.java (95%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/messageHandling/TerminateSession.java (97%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/misc/State.java (92%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/misc/TimeRestrictions.java (97%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/misc/V2GCommunicationSession.java (86%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/misc/V2GTPMessage.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/utils/ByteUtils.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/utils/MiscUtils.java (78%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/utils/SecurityUtils.java (97%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/utils/SleepUtils.java (90%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/SECCDiscoveryReq.java (97%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/SECCDiscoveryRes.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/appProtocol/AppProtocolType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/appProtocol/ObjectFactory.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/appProtocol/ResponseCodeType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/appProtocol/SupportedAppProtocolReq.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/appProtocol/SupportedAppProtocolRes.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/appProtocol/package-info.java (96%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVChargeParameterType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVSEChargeParameterType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVSEStatusType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/AuthorizationReqType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/AuthorizationResType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/BodyBaseType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/BodyType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/CableCheckReqType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/CableCheckResType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/CanonicalizationMethodType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateChainType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateInstallationReqType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateInstallationResType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateUpdateReqType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateUpdateResType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeParameterDiscoveryReqType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeParameterDiscoveryResType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeProgressType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeServiceType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingProfileType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingSessionType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingStatusReqType.java (97%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingStatusResType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ConsumptionCostType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ContractSignatureEncryptedPrivateKeyType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/CostKindType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/CostType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/CurrentDemandReqType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/CurrentDemandResType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVChargeParameterType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVErrorCodeType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVPowerDeliveryParameterType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEChargeParameterType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEStatusCodeType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEStatusType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVStatusType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/DSAKeyValueType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/DiffieHellmanPublickeyType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/DigestMethodType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/EMAIDType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVChargeParameterType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVPowerDeliveryParameterType.java (97%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEChargeParameterType.java (97%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSENotificationType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEProcessingType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEStatusType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVStatusType.java (97%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/EnergyTransferModeType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/EntryType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/FaultCodeType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/IntervalType.java (97%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/IsolationLevelType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/KeyInfoType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/KeyValueType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ListOfRootCertificateIDsType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ManifestType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/MessageHeaderType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeterInfoType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeteringReceiptReqType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeteringReceiptResType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/NotificationType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ObjectFactory.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ObjectType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/PGPDataType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/PMaxScheduleEntryType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/PMaxScheduleType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ParameterSetType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ParameterType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentDetailsReqType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentDetailsResType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentOptionListType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentOptionType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentServiceSelectionReqType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentServiceSelectionResType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/PhysicalValueType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/PowerDeliveryReqType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/PowerDeliveryResType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/PreChargeReqType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/PreChargeResType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ProfileEntryType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/RSAKeyValueType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ReferenceType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/RelativeTimeIntervalType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ResponseCodeType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/RetrievalMethodType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SAScheduleListType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SAScheduleTupleType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SASchedulesType.java (97%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SPKIDataType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SalesTariffEntryType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SalesTariffType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SelectedServiceListType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SelectedServiceType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceCategoryType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDetailReqType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDetailResType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDiscoveryReqType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDiscoveryResType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceListType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceParameterListType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionSetupReqType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionSetupResType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionStopReqType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionStopResType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureMethodType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignaturePropertiesType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignaturePropertyType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureValueType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignedInfoType.java (99%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SubCertificatesType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/SupportedEnergyTransferModeType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/TransformType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/TransformsType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/UnitSymbolType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/V2GMessage.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/ValueType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/WeldingDetectionReqType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/WeldingDetectionResType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/X509DataType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/X509IssuerSerialType.java (98%) rename RISE-V2G-Shared/src/main/java/{org => com}/v2gclarity/risev2g/shared/v2gMessages/msgDef/package-info.java (96%) delete mode 100644 pom.xml diff --git a/LICENSE b/LICENSE.txt similarity index 100% rename from LICENSE rename to LICENSE.txt diff --git a/RISE-V2G-Certificates/copyNewCertsAndKeys.sh b/RISE-V2G-Certificates/copyNewCertsAndKeys.sh index 42a93e2..ed95206 100644 --- a/RISE-V2G-Certificates/copyNewCertsAndKeys.sh +++ b/RISE-V2G-Certificates/copyNewCertsAndKeys.sh @@ -1,11 +1,11 @@ # This is a useful small shell script to automatically copy the Java Keystores (.jks files), .p12 containers and the DER encoded Mobility Operator Sub-CA private key to the places in the RISE V2G project where they belong. Execute this script after you executed the generateCertificates.sh script. -cp keystores/evccKeystore.jks ../RISE-V2G-EVCC -cp keystores/evccTruststore.jks ../RISE-V2G-EVCC -cp keystores/seccKeystore.jks ../RISE-V2G-SECC -cp keystores/seccTruststore.jks ../RISE-V2G-SECC +cp keystores/evccKeystore.jks ../RISE-V2G-EVCC/ +cp keystores/evccTruststore.jks ../RISE-V2G-EVCC/ +cp keystores/seccKeystore.jks ../RISE-V2G-SECC/ +cp keystores/seccTruststore.jks ../RISE-V2G-SECC/ -cp certs/cpsCertChain.p12 ../RISE-V2G-SECC -cp certs/moCertChain.p12 ../RISE-V2G-SECC +cp certs/cpsCertChain.p12 ../RISE-V2G-SECC/ +cp certs/moCertChain.p12 ../RISE-V2G-SECC/ -cp privateKeys/moSubCA2.pkcs8.der ../RISE-V2G-SECC \ No newline at end of file +cp privateKeys/moSubCA2.pkcs8.der ../RISE-V2G-SECC/ \ No newline at end of file diff --git a/RISE-V2G-Certificates/generateCertificates.bat b/RISE-V2G-Certificates/generateCertificates.bat index 04eaa60..0f708ef 100644 --- a/RISE-V2G-Certificates/generateCertificates.bat +++ b/RISE-V2G-Certificates/generateCertificates.bat @@ -2,7 +2,7 @@ REM ******************************************************************************* REM The MIT License (MIT) REM -REM Copyright (c) 2015-207 V2G Clarity (Dr.-Ing. Marc Mültin) +REM Copyright (c) 2015-2017 V2G Clarity (Dr. Marc Mültin) REM REM Permission is hereby granted, free of charge, to any person obtaining a copy REM of this software and associated documentation files (the "Software"), to deal @@ -23,16 +23,19 @@ REM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN REM THE SOFTWARE. REM ******************************************************************************* +REM =========================================================================================================== REM This shell script can be used to create all necessary certificates and keystores needed in order to REM - successfully perform a TLS handshake between the EVCC (TLSClient) and the SECC (TLSServer) and REM - install/update a contract certificate in the EVCC. -REM Previously created certificates should have been provided with the respective release of the RISE V2G project for testing purposes. However, certain certificates might not be valid any more in which case you need to create new certificates. +REM REM This file shall serve you with all information needed to create your own certificate chains. REM REM Helpful information about using openssl is provided by Ivan Ristic's book "Bulletproof SSL and TLS". -REM Furthermore, you should have openssl 1.0.2 (or above) installed to comply with all security requirements imposed by ISO 15118. For example, openssl 0.9.8 does not come with SHA-2 for SHA-256 signature algorithms. Some MacOS X installations unfortunately still use openssl < v1.0.2. You could use Homebrew to install openssl. Be aware that you probably then need to use an absolute path for your openssl commands, such as /usr/local/Cellar/openssl/1.0.2h_1/bin/openssl (for linux based systems). +REM Furthermore, you should have openssl 1.0.2 (or above) installed to comply with all security requirements +REM imposed by ISO 15118. For example, openssl 0.9.8 does not come with SHA-2 for SHA-256 signature algorithms. REM -REM Author: Marc Mültin (marc.mueltin@v2g-clarity.com) +REM Author: Dr. Marc Mültin (marc.mueltin@v2g-clarity.com) +REM =========================================================================================================== REM Some variables to create different outcomes of the PKI for testing purposes. Change the validity periods (given in number of days) to test @@ -56,7 +59,8 @@ SET validity_oem_root_cert=3650 SET validity_mo_root_cert=3650 -REM 0) Create directories if not yet existing +REM 0) Create directories if not yet existing. The keystores in the keystores folder (if existing) need to be deleted at first, so delete the complete folder. +if exist keystores rd /s /q keystores if not exist certs mkdir certs if not exist csrs mkdir csrs if not exist keystores mkdir keystores diff --git a/RISE-V2G-Certificates/generateCertificates.sh b/RISE-V2G-Certificates/generateCertificates.sh index ec3964d..e8165db 100644 --- a/RISE-V2G-Certificates/generateCertificates.sh +++ b/RISE-V2G-Certificates/generateCertificates.sh @@ -1,7 +1,7 @@ #******************************************************************************* # The MIT License (MIT) # -# Copyright (c) 2015-207 V2G Clarity (Dr.-Ing. Marc Mültin) +# Copyright (c) 2015-207 V2G Clarity (Dr. Marc Mültin) # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -21,16 +21,23 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. #******************************************************************************* + +# =============================================================================================================== # This shell script can be used to create all necessary certificates and keystores needed in order to # - successfully perform a TLS handshake between the EVCC (TLSClient) and the SECC (TLSServer) and # - install/update a contract certificate in the EVCC. -# Previously created certificates should have been provided with the respective release of the RISE V2G project for testing purposes. However, certain certificates might not be valid any more in which case you need to create new certificates. +# # This file shall serve you with all information needed to create your own certificate chains. # # Helpful information about using openssl is provided by Ivan Ristic's book "Bulletproof SSL and TLS". -# Furthermore, you should have openssl 1.0.2 (or above) installed to comply with all security requirements imposed by ISO 15118. For example, openssl 0.9.8 does not come with SHA-2 for SHA-256 signature algorithms. Some MacOS X installations unfortunately still use openssl < v1.0.2. You could use Homebrew to install openssl. Be aware that you probably then need to use an absolute path for your openssl commands, such as /usr/local/Cellar/openssl/1.0.2h_1/bin/openssl. +# Furthermore, you should have openssl 1.0.2 (or above) installed to comply with all security requirements +# imposed by ISO 15118. For example, openssl 0.9.8 does not come with SHA-2 for SHA-256 signature algorithms. +# Some MacOS X installations unfortunately still use openssl < v1.0.2. You could use Homebrew to install openssl. +# Be aware that you probably then need to use an absolute path for your openssl commands, such as +# /usr/local/Cellar/openssl/1.0.2h_1/bin/openssl. # -# Author: Marc Mültin (marc.mueltin@v2g-clarity.com) +# Author: Dr. Marc Mültin (marc.mueltin@v2g-clarity.com) +# =============================================================================================================== # Some variables to create different outcomes of the PKI for testing purposes. Change the validity periods (given in number of days) to test @@ -55,6 +62,7 @@ validity_mo_root_cert=3650 # 0) Create directories if not yet existing +rm -r keystores # the keystores in the keystores folder (if existing) need to be deleted at first, so delete the complete folder mkdir -p certs mkdir -p csrs mkdir -p keystores diff --git a/RISE-V2G-EVCC/EVCCConfig.properties b/RISE-V2G-EVCC/EVCCConfig.properties index 0bcbb3b..bcdafaa 100644 --- a/RISE-V2G-EVCC/EVCCConfig.properties +++ b/RISE-V2G-EVCC/EVCCConfig.properties @@ -30,7 +30,7 @@ # # The network interface name like en3 or eth1 of the network interface on which to communicate with the SECC via a # link-local IPv6 address -NetworkInterface = en0 +network.interface = en0 # Security @@ -41,7 +41,7 @@ NetworkInterface = en0 # - false # If this value is set to 'false', TCP will be used on transport layer # If no correct value is provided here, 'false' will be chosen -TLSSecurity = true +tls = false # Contract certificate update time span @@ -49,7 +49,7 @@ TLSSecurity = true # # Integer value defining the time span in days which precedes the expiration of a contract certificate # and during which an update of the contract certificate needs to be performed -ContractCertificateUpdateTimespan = 14 +contract.certificate.update.timespan = 14 # SessionID @@ -57,7 +57,7 @@ ContractCertificateUpdateTimespan = 14 # # If this value is unequal to zero, then it represents a previously # paused V2G communication session -SessionID = 0 +session.id = 0 # Selected payment option @@ -67,7 +67,7 @@ SessionID = 0 # Possible values are: # - Contract # - ExternalPayment -RequestedPaymentOption = +authentication.mode = # Requested energy transfer mode @@ -81,7 +81,7 @@ RequestedPaymentOption = # - DC_extended # - DC_combo_core # - DC_unique -RequestedEnergyTransferMode = AC_three_phase_core +energy.transfermode.requested = AC_three_phase_core # XML representation of messages @@ -92,7 +92,7 @@ RequestedEnergyTransferMode = AC_three_phase_core # - false # If this value is set to 'true', the EXICodec will print each message's XML representation (for debugging purposes) # If no correct value is provided here, 'false' will be chosen -XMLRepresentationOfMessages = true +exi.messages.showxml = true # Hexadecimal and Base64 representation of messages @@ -103,7 +103,7 @@ XMLRepresentationOfMessages = true # - false # If this value is set to 'true', the EXICodec will print each message's hexadecimal and Base64 representation (for debugging purposes) # If no correct value is provided here, 'false' will be chosen -HexAndBase64RepresentationOfMessages = true +exi.messages.showhex = true # Extended logging of signature verification @@ -114,7 +114,7 @@ HexAndBase64RepresentationOfMessages = true # - false # If this value is set to 'true', extended logging will be printed upon verification of signatures (for debugging purposes) # If no correct value is provided here, 'false' will be chosen -SignatureVerificationLog = true +signature.verification.showlog = true # EXI codec @@ -125,4 +125,4 @@ SignatureVerificationLog = true # - exificient # - open_exi # If no correct value is provided here, 'exificient' will be used -EXICodec = open_exi +exi.codec = open_exi diff --git a/RISE-V2G-EVCC/LICENSE.txt b/RISE-V2G-EVCC/LICENSE.txt new file mode 100644 index 0000000..957a62a --- /dev/null +++ b/RISE-V2G-EVCC/LICENSE.txt @@ -0,0 +1,23 @@ +/******************************************************************************* + * The MIT License (MIT) + * + * Copyright (c) 2015-2017 V2G Clarity (Dr. Marc Mültin) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + *******************************************************************************/ \ No newline at end of file diff --git a/RISE-V2G-EVCC/pom.xml b/RISE-V2G-EVCC/pom.xml index 7a6b39d..72d4532 100644 --- a/RISE-V2G-EVCC/pom.xml +++ b/RISE-V2G-EVCC/pom.xml @@ -2,76 +2,84 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - org.v2gclarity.risev2g - parent - 1.0.0-SNAPSHOT + com.v2gclarity.risev2g + rise-v2g-parent + 1.1.4-SNAPSHOT + ../RISE-V2G-PARENT - + 4.0.0 - jar - http://maven.apache.org - evcc - risev2g.evcc + rise-v2g-evcc + rise-v2g-evcc - org.v2gclarity.risev2g - shared - 1.0.0-SNAPSHOT - - - org.apache.logging.log4j - log4j-api - 2.1 - - - org.apache.logging.log4j - log4j-core - 2.1 + com.v2gclarity.risev2g + rise-v2g-shared + 1.1.4-SNAPSHOT - + + + UTF-8 + 1.1.4-SNAPSHOT + + - maven-assembly-plugin + org.apache.maven.plugins + maven-assembly-plugin + 3.1.0 + rise-v2g-evcc-${project.version} + false true - org.v2gclarity.risev2g.evcc.main.StartEVCC + com.v2gclarity.risev2g.evcc.main.StartEVCC - - jar-with-dependencies - - false + + src/assembly/bin.xml + - make-my-jar-with-dependencies - package - - single - - - - - - maven-assembly-plugin - - false - ${project.baseUri}src/assembly/bin.xml - - - - package + one-jar-only + package single + + maven-resources-plugin + 3.0.2 + + + copy-resources + install + + copy-resources + + + ${basedir}/target + + + ${basedir} + + *.p12 + *.jks + *.properties + + + + + + + diff --git a/RISE-V2G-EVCC/src/assembly/bin.xml b/RISE-V2G-EVCC/src/assembly/bin.xml index 0c9ef86..749c998 100644 --- a/RISE-V2G-EVCC/src/assembly/bin.xml +++ b/RISE-V2G-EVCC/src/assembly/bin.xml @@ -1,39 +1,18 @@ - - bin - - tar.gz - tar.bz2 - zip - - - - - - README* - - - - target - . - - *.jar - - - - . - . - - *.p12 - *.jks - - - - . - . - - *.properties - - - - + + + jar-with-dependencies + + jar + + false + + + / + true + true + runtime + + \ No newline at end of file diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/evController/DummyEVController.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/evController/DummyEVController.java similarity index 89% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/evController/DummyEVController.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/evController/DummyEVController.java index 9424d58..7ad28b6 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/evController/DummyEVController.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/evController/DummyEVController.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.evController; +package com.v2gclarity.risev2g.evcc.evController; import java.util.List; @@ -30,25 +30,25 @@ import javax.xml.namespace.QName; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.CPStates; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVChargeParameterType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingProfileType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVChargeParameterType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVErrorCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVPowerDeliveryParameterType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVStatusType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PMaxScheduleEntryType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PMaxScheduleType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionListType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PhysicalValueType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ProfileEntryType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.RelativeTimeIntervalType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleListType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleTupleType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.UnitSymbolType; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.CPStates; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVChargeParameterType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingProfileType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVChargeParameterType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVErrorCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVPowerDeliveryParameterType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVStatusType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PMaxScheduleEntryType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PMaxScheduleType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionListType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PhysicalValueType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ProfileEntryType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.RelativeTimeIntervalType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleListType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleTupleType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.UnitSymbolType; public class DummyEVController implements IACEVController, IDCEVController { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/evController/IACEVController.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/evController/IACEVController.java similarity index 91% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/evController/IACEVController.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/evController/IACEVController.java index 44ddbc1..66631b5 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/evController/IACEVController.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/evController/IACEVController.java @@ -21,12 +21,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.evController; +package com.v2gclarity.risev2g.evcc.evController; import javax.xml.bind.JAXBElement; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVChargeParameterType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PhysicalValueType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVChargeParameterType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PhysicalValueType; public interface IACEVController extends IEVController { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/evController/IDCEVController.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/evController/IDCEVController.java similarity index 92% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/evController/IDCEVController.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/evController/IDCEVController.java index 392e0cf..ee6456c 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/evController/IDCEVController.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/evController/IDCEVController.java @@ -21,14 +21,14 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.evController; +package com.v2gclarity.risev2g.evcc.evController; import javax.xml.bind.JAXBElement; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVChargeParameterType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVPowerDeliveryParameterType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVStatusType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PhysicalValueType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVChargeParameterType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVPowerDeliveryParameterType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVStatusType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PhysicalValueType; public interface IDCEVController extends IEVController { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/evController/IEVController.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/evController/IEVController.java similarity index 89% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/evController/IEVController.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/evController/IEVController.java index c69a59d..43b758c 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/evController/IEVController.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/evController/IEVController.java @@ -21,13 +21,13 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.evController; +package com.v2gclarity.risev2g.evcc.evController; -import org.v2gclarity.risev2g.shared.enumerations.CPStates; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingProfileType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionListType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; +import com.v2gclarity.risev2g.shared.enumerations.CPStates; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingProfileType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionListType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; public interface IEVController { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/main/StartEVCC.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/main/StartEVCC.java similarity index 87% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/main/StartEVCC.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/main/StartEVCC.java index 61767b4..608f078 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/main/StartEVCC.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/main/StartEVCC.java @@ -21,17 +21,16 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.main; +package com.v2gclarity.risev2g.evcc.main; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionHandlerEVCC; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.utils.MiscUtils; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionHandlerEVCC; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.utils.MiscUtils; public class StartEVCC { public static void main(String[] args) { MiscUtils.setV2gEntityConfig(GlobalValues.EVCC_CONFIG_PROPERTIES_PATH.toString()); - new V2GCommunicationSessionHandlerEVCC(); } diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/session/V2GCommunicationSessionEVCC.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/session/V2GCommunicationSessionEVCC.java similarity index 84% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/session/V2GCommunicationSessionEVCC.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/session/V2GCommunicationSessionEVCC.java index 9d6038a..e241d39 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/session/V2GCommunicationSessionEVCC.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/session/V2GCommunicationSessionEVCC.java @@ -21,58 +21,58 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.session; +package com.v2gclarity.risev2g.evcc.session; import java.util.ArrayList; import java.util.List; import java.util.Observable; import java.util.Observer; -import org.v2gclarity.risev2g.evcc.evController.DummyEVController; -import org.v2gclarity.risev2g.evcc.evController.IEVController; -import org.v2gclarity.risev2g.evcc.states.WaitForAuthorizationRes; -import org.v2gclarity.risev2g.evcc.states.WaitForCableCheckRes; -import org.v2gclarity.risev2g.evcc.states.WaitForCertificateInstallationRes; -import org.v2gclarity.risev2g.evcc.states.WaitForCertificateUpdateRes; -import org.v2gclarity.risev2g.evcc.states.WaitForChargeParameterDiscoveryRes; -import org.v2gclarity.risev2g.evcc.states.WaitForChargingStatusRes; -import org.v2gclarity.risev2g.evcc.states.WaitForCurrentDemandRes; -import org.v2gclarity.risev2g.evcc.states.WaitForMeteringReceiptRes; -import org.v2gclarity.risev2g.evcc.states.WaitForPaymentDetailsRes; -import org.v2gclarity.risev2g.evcc.states.WaitForPaymentServiceSelectionRes; -import org.v2gclarity.risev2g.evcc.states.WaitForPowerDeliveryRes; -import org.v2gclarity.risev2g.evcc.states.WaitForPreChargeRes; -import org.v2gclarity.risev2g.evcc.states.WaitForServiceDetailRes; -import org.v2gclarity.risev2g.evcc.states.WaitForServiceDiscoveryRes; -import org.v2gclarity.risev2g.evcc.states.WaitForSessionSetupRes; -import org.v2gclarity.risev2g.evcc.states.WaitForSessionStopRes; -import org.v2gclarity.risev2g.evcc.states.WaitForSupportedAppProtocolRes; -import org.v2gclarity.risev2g.evcc.states.WaitForWeldingDetectionRes; -import org.v2gclarity.risev2g.evcc.transportLayer.StatefulTransportLayerClient; -import org.v2gclarity.risev2g.evcc.transportLayer.TCPClient; -import org.v2gclarity.risev2g.evcc.transportLayer.TLSClient; -import org.v2gclarity.risev2g.shared.enumerations.CPStates; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ChangeProcessingState; -import org.v2gclarity.risev2g.shared.messageHandling.PauseSession; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.SendMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.misc.V2GCommunicationSession; -import org.v2gclarity.risev2g.shared.misc.V2GTPMessage; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils.ContractCertificateStatus; -import org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.AppProtocolType; -import org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolRes; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeParameterDiscoveryReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingProfileType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleListType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SelectedServiceListType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SelectedServiceType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceListType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.evcc.evController.DummyEVController; +import com.v2gclarity.risev2g.evcc.evController.IEVController; +import com.v2gclarity.risev2g.evcc.states.WaitForAuthorizationRes; +import com.v2gclarity.risev2g.evcc.states.WaitForCableCheckRes; +import com.v2gclarity.risev2g.evcc.states.WaitForCertificateInstallationRes; +import com.v2gclarity.risev2g.evcc.states.WaitForCertificateUpdateRes; +import com.v2gclarity.risev2g.evcc.states.WaitForChargeParameterDiscoveryRes; +import com.v2gclarity.risev2g.evcc.states.WaitForChargingStatusRes; +import com.v2gclarity.risev2g.evcc.states.WaitForCurrentDemandRes; +import com.v2gclarity.risev2g.evcc.states.WaitForMeteringReceiptRes; +import com.v2gclarity.risev2g.evcc.states.WaitForPaymentDetailsRes; +import com.v2gclarity.risev2g.evcc.states.WaitForPaymentServiceSelectionRes; +import com.v2gclarity.risev2g.evcc.states.WaitForPowerDeliveryRes; +import com.v2gclarity.risev2g.evcc.states.WaitForPreChargeRes; +import com.v2gclarity.risev2g.evcc.states.WaitForServiceDetailRes; +import com.v2gclarity.risev2g.evcc.states.WaitForServiceDiscoveryRes; +import com.v2gclarity.risev2g.evcc.states.WaitForSessionSetupRes; +import com.v2gclarity.risev2g.evcc.states.WaitForSessionStopRes; +import com.v2gclarity.risev2g.evcc.states.WaitForSupportedAppProtocolRes; +import com.v2gclarity.risev2g.evcc.states.WaitForWeldingDetectionRes; +import com.v2gclarity.risev2g.evcc.transportLayer.StatefulTransportLayerClient; +import com.v2gclarity.risev2g.evcc.transportLayer.TCPClient; +import com.v2gclarity.risev2g.evcc.transportLayer.TLSClient; +import com.v2gclarity.risev2g.shared.enumerations.CPStates; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ChangeProcessingState; +import com.v2gclarity.risev2g.shared.messageHandling.PauseSession; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.SendMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.misc.V2GCommunicationSession; +import com.v2gclarity.risev2g.shared.misc.V2GTPMessage; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils.ContractCertificateStatus; +import com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.AppProtocolType; +import com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolRes; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeParameterDiscoveryReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingProfileType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleListType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SelectedServiceListType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SelectedServiceType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceListType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; // The state machine public class V2GCommunicationSessionEVCC extends V2GCommunicationSession implements Observer { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/session/V2GCommunicationSessionHandlerEVCC.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/session/V2GCommunicationSessionHandlerEVCC.java similarity index 91% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/session/V2GCommunicationSessionHandlerEVCC.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/session/V2GCommunicationSessionHandlerEVCC.java index 11e45b3..5cf91cd 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/session/V2GCommunicationSessionHandlerEVCC.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/session/V2GCommunicationSessionHandlerEVCC.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.session; +package com.v2gclarity.risev2g.evcc.session; import java.net.Inet6Address; import java.net.InetAddress; @@ -33,23 +33,23 @@ import java.util.Observer; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.v2gclarity.risev2g.evcc.transportLayer.StatefulTransportLayerClient; -import org.v2gclarity.risev2g.evcc.transportLayer.TCPClient; -import org.v2gclarity.risev2g.evcc.transportLayer.TLSClient; -import org.v2gclarity.risev2g.evcc.transportLayer.UDPClient; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.MessageHandler; -import org.v2gclarity.risev2g.shared.messageHandling.PauseSession; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.misc.TimeRestrictions; -import org.v2gclarity.risev2g.shared.misc.V2GTPMessage; -import org.v2gclarity.risev2g.shared.utils.ByteUtils; -import org.v2gclarity.risev2g.shared.utils.MiscUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.SECCDiscoveryReq; -import org.v2gclarity.risev2g.shared.v2gMessages.SECCDiscoveryRes; -import org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.AppProtocolType; -import org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolReq; +import com.v2gclarity.risev2g.evcc.transportLayer.StatefulTransportLayerClient; +import com.v2gclarity.risev2g.evcc.transportLayer.TCPClient; +import com.v2gclarity.risev2g.evcc.transportLayer.TLSClient; +import com.v2gclarity.risev2g.evcc.transportLayer.UDPClient; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.MessageHandler; +import com.v2gclarity.risev2g.shared.messageHandling.PauseSession; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.misc.TimeRestrictions; +import com.v2gclarity.risev2g.shared.misc.V2GTPMessage; +import com.v2gclarity.risev2g.shared.utils.ByteUtils; +import com.v2gclarity.risev2g.shared.utils.MiscUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.SECCDiscoveryReq; +import com.v2gclarity.risev2g.shared.v2gMessages.SECCDiscoveryRes; +import com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.AppProtocolType; +import com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolReq; public class V2GCommunicationSessionHandlerEVCC implements Observer { @@ -68,8 +68,8 @@ public class V2GCommunicationSessionHandlerEVCC implements Observer { setMessageHandler(new MessageHandler()); setSecurity( - (MiscUtils.getPropertyValue("TLSSecurity") != null ? - (byte) MiscUtils.getPropertyValue("TLSSecurity") : + (MiscUtils.getPropertyValue("tls") != null ? + (byte) MiscUtils.getPropertyValue("tls") : GlobalValues.V2G_SECURITY_WITHOUT_TLS.getByteValue()) ); diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/ClientState.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/ClientState.java similarity index 84% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/ClientState.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/ClientState.java index 24f903c..eda9924 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/ClientState.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/ClientState.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; import java.security.KeyStore; import java.util.Arrays; @@ -30,54 +30,54 @@ import java.util.ListIterator; import javax.xml.bind.JAXBElement; import javax.xml.namespace.QName; -import org.v2gclarity.risev2g.evcc.evController.DummyEVController; -import org.v2gclarity.risev2g.evcc.evController.IACEVController; -import org.v2gclarity.risev2g.evcc.evController.IDCEVController; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.CPStates; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.misc.State; -import org.v2gclarity.risev2g.shared.utils.ByteUtils; -import org.v2gclarity.risev2g.shared.utils.MiscUtils; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.AuthorizationReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.AuthorizationResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CableCheckReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CableCheckResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateInstallationResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateUpdateResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeParameterDiscoveryReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeParameterDiscoveryResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeProgressType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingProfileType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingSessionType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingStatusResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CurrentDemandReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CurrentDemandResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVPowerDeliveryParameterType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EMAIDType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.MessageHeaderType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeteringReceiptResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentDetailsReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentDetailsResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentServiceSelectionReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentServiceSelectionResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PowerDeliveryReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PowerDeliveryResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PreChargeResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDetailReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDetailResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDiscoveryResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionSetupResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionStopReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionStopResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.WeldingDetectionResType; +import com.v2gclarity.risev2g.evcc.evController.DummyEVController; +import com.v2gclarity.risev2g.evcc.evController.IACEVController; +import com.v2gclarity.risev2g.evcc.evController.IDCEVController; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.CPStates; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.misc.State; +import com.v2gclarity.risev2g.shared.utils.ByteUtils; +import com.v2gclarity.risev2g.shared.utils.MiscUtils; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.AuthorizationReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.AuthorizationResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CableCheckReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CableCheckResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateInstallationResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateUpdateResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeParameterDiscoveryReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeParameterDiscoveryResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeProgressType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingProfileType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingSessionType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingStatusResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CurrentDemandReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CurrentDemandResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVPowerDeliveryParameterType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EMAIDType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.MessageHeaderType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeteringReceiptResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentDetailsReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentDetailsResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentServiceSelectionReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentServiceSelectionResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PowerDeliveryReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PowerDeliveryResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PreChargeResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDetailReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDetailResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDiscoveryResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionSetupResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionStopReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionStopResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.WeldingDetectionResType; /** * Some request messages are to be sent from different states which makes it more convenient (having @@ -456,7 +456,7 @@ public abstract class ClientState extends State { protected EnergyTransferModeType getRequestedEnergyTransferMode() { // Check if an EnergyTransferModeType has been requested in a previously paused session EnergyTransferModeType requestedEnergyTransferMode = - (EnergyTransferModeType) MiscUtils.getPropertyValue("RequestedEnergyTransferMode"); + (EnergyTransferModeType) MiscUtils.getPropertyValue("energy.transfermode.requested"); if (requestedEnergyTransferMode == null) { requestedEnergyTransferMode = getCommSessionContext().getEvController().getRequestedEnergyTransferMode(); @@ -469,7 +469,7 @@ public abstract class ClientState extends State { protected PaymentOptionType getSelectedPaymentOption() { // Check if a PaymentOptionType has been requested in a previously paused session - PaymentOptionType selectedPaymentOption = (PaymentOptionType) MiscUtils.getPropertyValue("RequestedPaymentOption"); + PaymentOptionType selectedPaymentOption = (PaymentOptionType) MiscUtils.getPropertyValue("authentication.mode"); if (selectedPaymentOption == null) { selectedPaymentOption = getCommSessionContext().getEvController().getPaymentOption(getCommSessionContext().getPaymentOptions()); diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForAuthorizationRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForAuthorizationRes.java similarity index 83% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForAuthorizationRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForAuthorizationRes.java index d806dfd..5aaf677 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForAuthorizationRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForAuthorizationRes.java @@ -1,7 +1,7 @@ /******************************************************************************* * The MIT License (MIT) * - * Copyright (c) 2015-207 V2G Clarity (Dr.-Ing. Marc Mültin) + * Copyright (c) 2015-2017 V2G Clarity (Dr.-Ing. Marc Mültin) * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -21,23 +21,23 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; import java.util.concurrent.TimeUnit; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.misc.TimeRestrictions; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.AuthorizationReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.AuthorizationResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeParameterDiscoveryReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSEProcessingType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.misc.TimeRestrictions; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.AuthorizationReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.AuthorizationResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeParameterDiscoveryReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSEProcessingType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForAuthorizationRes extends ClientState { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForCableCheckRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForCableCheckRes.java similarity index 84% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForCableCheckRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForCableCheckRes.java index a70022d..126eada 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForCableCheckRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForCableCheckRes.java @@ -21,20 +21,20 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; import java.util.concurrent.TimeUnit; -import org.v2gclarity.risev2g.evcc.evController.IDCEVController; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.misc.TimeRestrictions; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CableCheckResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSEProcessingType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PreChargeReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.evcc.evController.IDCEVController; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.misc.TimeRestrictions; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CableCheckResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSEProcessingType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PreChargeReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForCableCheckRes extends ClientState { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForCertificateInstallationRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForCertificateInstallationRes.java similarity index 87% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForCertificateInstallationRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForCertificateInstallationRes.java index 72e495b..3a67465 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForCertificateInstallationRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForCertificateInstallationRes.java @@ -21,22 +21,22 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; import java.security.interfaces.ECPrivateKey; import java.util.HashMap; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.enumerations.PKI; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateInstallationResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.PKI; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateInstallationResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForCertificateInstallationRes extends ClientState { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForCertificateUpdateRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForCertificateUpdateRes.java similarity index 87% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForCertificateUpdateRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForCertificateUpdateRes.java index 630359e..59f3e9e 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForCertificateUpdateRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForCertificateUpdateRes.java @@ -21,22 +21,22 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; import java.security.interfaces.ECPrivateKey; import java.util.HashMap; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.enumerations.PKI; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateUpdateResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.PKI; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateUpdateResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForCertificateUpdateRes extends ClientState { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForChargeParameterDiscoveryRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForChargeParameterDiscoveryRes.java similarity index 90% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForChargeParameterDiscoveryRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForChargeParameterDiscoveryRes.java index ebb1112..71c3af2 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForChargeParameterDiscoveryRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForChargeParameterDiscoveryRes.java @@ -21,31 +21,31 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; import java.security.cert.X509Certificate; import java.util.HashMap; import java.util.List; import java.util.concurrent.TimeUnit; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.CPStates; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.misc.TimeRestrictions; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEChargeParameterType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeParameterDiscoveryResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeProgressType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEChargeParameterType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSEProcessingType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleListType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleTupleType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.CPStates; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.misc.TimeRestrictions; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEChargeParameterType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeParameterDiscoveryResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeProgressType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEChargeParameterType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSEProcessingType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleListType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleTupleType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForChargeParameterDiscoveryRes extends ClientState { @@ -121,10 +121,11 @@ public class WaitForChargeParameterDiscoveryRes extends ClientState { // If TLS is used, verify each sales tariff (if present) with the mobility operator sub 2 certificate if (getCommSessionContext().isTlsConnection() && saSchedules != null) { - if (!verifySalesTariffs(saSchedules, v2gMessageRes.getHeader().getSignature())) + if (!verifySalesTariffs(saSchedules, v2gMessageRes.getHeader().getSignature())) { getLogger().warn("The SalesTariff will be ignored for the charge process due to " + "failed signature verification during TLS communication."); deleteUnverifiedSalesTariffs(saSchedules); + } } // Save the list of SASchedules (saves the time of reception as well) diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForChargingStatusRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForChargingStatusRes.java similarity index 86% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForChargingStatusRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForChargingStatusRes.java index cf1531b..e1839b7 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForChargingStatusRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForChargingStatusRes.java @@ -21,20 +21,20 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; -import org.v2gclarity.risev2g.evcc.evController.IACEVController; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeProgressType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingStatusReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingStatusResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeteringReceiptReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.evcc.evController.IACEVController; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeProgressType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingStatusReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingStatusResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeteringReceiptReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForChargingStatusRes extends ClientState { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForCurrentDemandRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForCurrentDemandRes.java similarity index 85% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForCurrentDemandRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForCurrentDemandRes.java index 2b5eb6e..928b664 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForCurrentDemandRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForCurrentDemandRes.java @@ -21,20 +21,20 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeProgressType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CurrentDemandResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEStatusType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeteringReceiptReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeProgressType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CurrentDemandResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEStatusType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeteringReceiptReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForCurrentDemandRes extends ClientState { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForMeteringReceiptRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForMeteringReceiptRes.java similarity index 84% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForMeteringReceiptRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForMeteringReceiptRes.java index 883f12a..7aefdc1 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForMeteringReceiptRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForMeteringReceiptRes.java @@ -21,19 +21,19 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEStatusType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeProgressType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingStatusReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEStatusType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeteringReceiptResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEStatusType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeProgressType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingStatusReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEStatusType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeteringReceiptResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForMeteringReceiptRes extends ClientState { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForPaymentDetailsRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForPaymentDetailsRes.java similarity index 84% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForPaymentDetailsRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForPaymentDetailsRes.java index d3e76da..d200077 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForPaymentDetailsRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForPaymentDetailsRes.java @@ -21,17 +21,17 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.AuthorizationReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentDetailsResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.AuthorizationReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentDetailsResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForPaymentDetailsRes extends ClientState { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForPaymentServiceSelectionRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForPaymentServiceSelectionRes.java similarity index 90% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForPaymentServiceSelectionRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForPaymentServiceSelectionRes.java index 7ef26bf..28cd6ff 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForPaymentServiceSelectionRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForPaymentServiceSelectionRes.java @@ -21,21 +21,21 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; import java.security.KeyStore; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils.ContractCertificateStatus; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateInstallationReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateUpdateReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentServiceSelectionResType; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils.ContractCertificateStatus; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateInstallationReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateUpdateReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentServiceSelectionResType; public class WaitForPaymentServiceSelectionRes extends ClientState { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForPowerDeliveryRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForPowerDeliveryRes.java similarity index 84% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForPowerDeliveryRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForPowerDeliveryRes.java index 7f3f1bf..c1fd234 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForPowerDeliveryRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForPowerDeliveryRes.java @@ -21,20 +21,20 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; -import org.v2gclarity.risev2g.evcc.evController.IDCEVController; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.CPStates; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingSessionType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingStatusReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVStatusType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PowerDeliveryResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.WeldingDetectionReqType; +import com.v2gclarity.risev2g.evcc.evController.IDCEVController; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.CPStates; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingSessionType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingStatusReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVStatusType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PowerDeliveryResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.WeldingDetectionReqType; public class WaitForPowerDeliveryRes extends ClientState { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForPreChargeRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForPreChargeRes.java similarity index 83% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForPreChargeRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForPreChargeRes.java index 48a249a..384d8fe 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForPreChargeRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForPreChargeRes.java @@ -21,20 +21,20 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; import java.util.concurrent.TimeUnit; -import org.v2gclarity.risev2g.evcc.evController.IDCEVController; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.misc.TimeRestrictions; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeProgressType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PreChargeReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PreChargeResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.evcc.evController.IDCEVController; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.misc.TimeRestrictions; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeProgressType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PreChargeReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PreChargeResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForPreChargeRes extends ClientState { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForServiceDetailRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForServiceDetailRes.java similarity index 83% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForServiceDetailRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForServiceDetailRes.java index ddd744a..19ec046 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForServiceDetailRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForServiceDetailRes.java @@ -21,15 +21,15 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDetailReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDetailResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDetailReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDetailResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForServiceDetailRes extends ClientState { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForServiceDiscoveryRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForServiceDiscoveryRes.java similarity index 88% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForServiceDiscoveryRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForServiceDiscoveryRes.java index fde59a9..877b86b 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForServiceDiscoveryRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForServiceDiscoveryRes.java @@ -21,23 +21,23 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.evcc.transportLayer.TLSClient; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils.ContractCertificateStatus; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SelectedServiceType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceCategoryType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDiscoveryResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceListType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.evcc.transportLayer.TLSClient; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils.ContractCertificateStatus; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SelectedServiceType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceCategoryType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDiscoveryResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceListType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForServiceDiscoveryRes extends ClientState { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForSessionSetupRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForSessionSetupRes.java similarity index 86% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForSessionSetupRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForSessionSetupRes.java index 6d75c2e..fc67cbf 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForSessionSetupRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForSessionSetupRes.java @@ -21,17 +21,17 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.utils.ByteUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDiscoveryReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionSetupResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.utils.ByteUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDiscoveryReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionSetupResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForSessionSetupRes extends ClientState { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForSessionStopRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForSessionStopRes.java similarity index 86% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForSessionStopRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForSessionStopRes.java index 16b1d9b..713f8e7 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForSessionStopRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForSessionStopRes.java @@ -21,12 +21,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionStopResType; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionStopResType; public class WaitForSessionStopRes extends ClientState { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForSupportedAppProtocolRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForSupportedAppProtocolRes.java similarity index 86% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForSupportedAppProtocolRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForSupportedAppProtocolRes.java index f782de3..1967ccb 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForSupportedAppProtocolRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForSupportedAppProtocolRes.java @@ -21,20 +21,20 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; import java.util.concurrent.TimeUnit; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.misc.TimeRestrictions; -import org.v2gclarity.risev2g.shared.utils.MiscUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.AppProtocolType; -import org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolRes; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionSetupReqType; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.misc.TimeRestrictions; +import com.v2gclarity.risev2g.shared.utils.MiscUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.AppProtocolType; +import com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolRes; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionSetupReqType; public class WaitForSupportedAppProtocolRes extends ClientState { @@ -81,7 +81,7 @@ public class WaitForSupportedAppProtocolRes extends ClientState { * saving reasons. * The initial value for a completely new charging session must be 0. */ - long sessionID = (long) MiscUtils.getPropertyValue("SessionID"); + long sessionID = (long) MiscUtils.getPropertyValue("session.id"); getCommSessionContext().setSessionID( getCommSessionContext().generateSessionIDFromValue(sessionID) ); diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForWeldingDetectionRes.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForWeldingDetectionRes.java similarity index 85% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForWeldingDetectionRes.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForWeldingDetectionRes.java index 2b15ec0..fd405f3 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/states/WaitForWeldingDetectionRes.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/states/WaitForWeldingDetectionRes.java @@ -21,15 +21,15 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.states; +package com.v2gclarity.risev2g.evcc.states; -import org.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingSessionType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.WeldingDetectionResType; +import com.v2gclarity.risev2g.evcc.session.V2GCommunicationSessionEVCC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingSessionType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.WeldingDetectionResType; public class WaitForWeldingDetectionRes extends ClientState { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/transportLayer/StatefulTransportLayerClient.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/transportLayer/StatefulTransportLayerClient.java similarity index 96% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/transportLayer/StatefulTransportLayerClient.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/transportLayer/StatefulTransportLayerClient.java index 3dfb2a6..f0bd6f9 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/transportLayer/StatefulTransportLayerClient.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/transportLayer/StatefulTransportLayerClient.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.transportLayer; +package com.v2gclarity.risev2g.evcc.transportLayer; import java.io.IOException; import java.io.InputStream; @@ -32,10 +32,10 @@ import java.util.Observable; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.misc.V2GTPMessage; -import org.v2gclarity.risev2g.shared.utils.ByteUtils; -import org.v2gclarity.risev2g.shared.utils.MiscUtils; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.misc.V2GTPMessage; +import com.v2gclarity.risev2g.shared.utils.ByteUtils; +import com.v2gclarity.risev2g.shared.utils.MiscUtils; public abstract class StatefulTransportLayerClient extends Observable implements Runnable { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/transportLayer/TCPClient.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/transportLayer/TCPClient.java similarity index 97% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/transportLayer/TCPClient.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/transportLayer/TCPClient.java index 95f9f59..fdf1836 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/transportLayer/TCPClient.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/transportLayer/TCPClient.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.transportLayer; +package com.v2gclarity.risev2g.evcc.transportLayer; import java.io.IOException; import java.net.Inet6Address; @@ -29,7 +29,7 @@ import java.net.Socket; import java.net.SocketTimeoutException; import java.net.UnknownHostException; -import org.v2gclarity.risev2g.shared.misc.V2GTPMessage; +import com.v2gclarity.risev2g.shared.misc.V2GTPMessage; public class TCPClient extends StatefulTransportLayerClient { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/transportLayer/TLSClient.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/transportLayer/TLSClient.java similarity index 96% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/transportLayer/TLSClient.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/transportLayer/TLSClient.java index 6d282fd..e2b9e16 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/transportLayer/TLSClient.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/transportLayer/TLSClient.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.transportLayer; +package com.v2gclarity.risev2g.evcc.transportLayer; import java.io.IOException; import java.net.Inet6Address; @@ -34,10 +34,10 @@ import javax.net.ssl.SSLHandshakeException; import javax.net.ssl.SSLSocket; import javax.net.ssl.SSLSocketFactory; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.misc.TimeRestrictions; -import org.v2gclarity.risev2g.shared.misc.V2GTPMessage; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.misc.TimeRestrictions; +import com.v2gclarity.risev2g.shared.misc.V2GTPMessage; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; public class TLSClient extends StatefulTransportLayerClient { diff --git a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/transportLayer/UDPClient.java b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/transportLayer/UDPClient.java similarity index 96% rename from RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/transportLayer/UDPClient.java rename to RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/transportLayer/UDPClient.java index c2c9645..64d471f 100644 --- a/RISE-V2G-EVCC/src/main/java/org/v2gclarity/risev2g/evcc/transportLayer/UDPClient.java +++ b/RISE-V2G-EVCC/src/main/java/com/v2gclarity/risev2g/evcc/transportLayer/UDPClient.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.evcc.transportLayer; +package com.v2gclarity.risev2g.evcc.transportLayer; import java.io.IOException; import java.net.DatagramPacket; @@ -32,10 +32,10 @@ import java.net.UnknownHostException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.misc.TimeRestrictions; -import org.v2gclarity.risev2g.shared.misc.V2GTPMessage; -import org.v2gclarity.risev2g.shared.utils.MiscUtils; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.misc.TimeRestrictions; +import com.v2gclarity.risev2g.shared.misc.V2GTPMessage; +import com.v2gclarity.risev2g.shared.utils.MiscUtils; /** * The UDP client is handling the SECCDiscovery messages only. The standard does not diff --git a/RISE-V2G-EVCC/src/main/resources/log4j2.xml b/RISE-V2G-EVCC/src/main/resources/log4j2.xml index 628bf69..92fddc8 100644 --- a/RISE-V2G-EVCC/src/main/resources/log4j2.xml +++ b/RISE-V2G-EVCC/src/main/resources/log4j2.xml @@ -2,7 +2,7 @@ - + diff --git a/RISE-V2G-PARENT/pom.xml b/RISE-V2G-PARENT/pom.xml new file mode 100644 index 0000000..0990e15 --- /dev/null +++ b/RISE-V2G-PARENT/pom.xml @@ -0,0 +1,87 @@ + + + 4.0.0 + + com.v2gclarity.risev2g + rise-v2g-parent + rise-v2g-parent + 1.1.4-SNAPSHOT + pom + + + ../RISE-V2G-EVCC + ../RISE-V2G-SECC + ../RISE-V2G-Shared + + + https://www.v2g-clarity.com/en/risev2g/ + RISE V2G is a complete reference implementation of ISO 15118-2, both implementing the EV (EVCC) and charging station (SECC) side. Messages are provided for AC as well as DC charging. Both identification modes, EIM (External Identification Means) as well as Plug and Charge are supported, including all the security relevant features such as TLS, X.509 certificates and digital signatures. + + + V2G Clarity + https://www.v2g-clarity.com + + + + GitHub + https://github.com/V2GClarity/RISE-V2G/issues + + + + + Dr. Marc Mültin + marc.mueltin@v2g-clarity.com + V2G Clarity + + + + + + MIT License + https://opensource.org/licenses/MIT + + + + + UTF-8 + 1.1.4-SNAPSHOT + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.7.0 + + 1.8 + 1.8 + + + + org.apache.maven.plugins + maven-assembly-plugin + 3.1.0 + + rise-v2g-${project.version}-src + false + + src/assembly/src.xml + + + + + one-jar-only + package + + single + + + + + + + + diff --git a/RISE-V2G-PARENT/src/assembly/src.xml b/RISE-V2G-PARENT/src/assembly/src.xml new file mode 100644 index 0000000..40f303c --- /dev/null +++ b/RISE-V2G-PARENT/src/assembly/src.xml @@ -0,0 +1,65 @@ + + project + + zip + + + + ../ + + + LICENSE.txt + README.md + + + + ${project.basedir} + rise-v2g-parent + + **/*.log + **/${project.build.directory}/** + + + + ../RISE-V2G-Certificates + rise-v2g-certificates + + /certs/** + /csrs/** + /keystores/** + /privateKeys/** + /testing-symposia/** + + + + + + + + true + + + + + ${project.basedir} + / + true + + **/*.log + **/${project.build.directory}/** + **/.classpath + **/.project + **/.settings + /src/main/resources/*.p12 + /src/main/resources/*.jks + /src/main/resources/*.pkcs8.der + + + + + + + \ No newline at end of file diff --git a/RISE-V2G-SECC/LICENSE.txt b/RISE-V2G-SECC/LICENSE.txt new file mode 100644 index 0000000..957a62a --- /dev/null +++ b/RISE-V2G-SECC/LICENSE.txt @@ -0,0 +1,23 @@ +/******************************************************************************* + * The MIT License (MIT) + * + * Copyright (c) 2015-2017 V2G Clarity (Dr. Marc Mültin) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + *******************************************************************************/ \ No newline at end of file diff --git a/RISE-V2G-SECC/SECCConfig.properties b/RISE-V2G-SECC/SECCConfig.properties index abbeb19..a11668a 100644 --- a/RISE-V2G-SECC/SECCConfig.properties +++ b/RISE-V2G-SECC/SECCConfig.properties @@ -30,7 +30,7 @@ # # The network interface name like en3 or eth1 of the network interface on which to communicate with the EVCC via a # link-local IPv6 address -NetworkInterface = en0 +network.interface = en0 # Supported energy transfer modes @@ -44,7 +44,7 @@ NetworkInterface = en0 # - DC_extended # - DC_combo_core # - DC_unique -SupportedEnergyTransferModes = AC_three_phase_core, AC_single_phase_core, DC_core, DC_extended, DC_combo_core +energy.transfermodes.supported = AC_three_phase_core, AC_single_phase_core, DC_core, DC_extended, DC_combo_core # Is charging a free service? @@ -53,7 +53,7 @@ SupportedEnergyTransferModes = AC_three_phase_core, AC_single_phase_core, DC_cor # Possible values: # - true # - false -ChargingForFree = false +charging.free = false # PaymentOptions @@ -64,7 +64,7 @@ ChargingForFree = false # - ExternalPayment # The supported values must be separated by the comma delimiter (","). It does not matter # if you add white spaces between the values or not. -SupportedPaymentOptions = Contract, ExternalPayment +authentication.modes.supported = Contract, ExternalPayment # Is the SECC located in a private environment? @@ -74,7 +74,7 @@ SupportedPaymentOptions = Contract, ExternalPayment # Possible values: # - true # - false -PrivateEnvironment = false +environment.private = false # XML representation of messages @@ -85,7 +85,7 @@ PrivateEnvironment = false # - false # If this value is set to 'true', the EXICodec will print each message's XML representation (for debugging purposes) # If no correct value is provided here, 'false' will be chosen -XMLRepresentationOfMessages = true +exi.messages.showxml = true # Hexadecimal and Base64 representation of messages @@ -96,7 +96,7 @@ XMLRepresentationOfMessages = true # - false # If this value is set to 'true', the EXICodec will print each message's hexadecimal and Base64 representation (for debugging purposes) # If no correct value is provided here, 'false' will be chosen -HexAndBase64RepresentationOfMessages = true +exi.messages.showhex = true # Extended logging of signature verification @@ -107,7 +107,7 @@ HexAndBase64RepresentationOfMessages = true # - false # If this value is set to 'true', extended logging will be printed upon verification of signatures (for debugging purposes) # If no correct value is provided here, 'false' will be chosen -SignatureVerificationLog = true +signature.verification.showlog = true # EXI codec @@ -118,4 +118,4 @@ SignatureVerificationLog = true # - exificient # - open_exi # If no correct value is provided here, 'exificient' will be used -EXICodec = exificient +exi.codec = exificient diff --git a/RISE-V2G-SECC/pom.xml b/RISE-V2G-SECC/pom.xml index 8842b90..cb14d8b 100644 --- a/RISE-V2G-SECC/pom.xml +++ b/RISE-V2G-SECC/pom.xml @@ -2,65 +2,85 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - org.v2gclarity.risev2g - parent - 1.0.0-SNAPSHOT + com.v2gclarity.risev2g + rise-v2g-parent + 1.1.4-SNAPSHOT + ../RISE-V2G-PARENT - + 4.0.0 - http://maven.apache.org - secc - risev2g.secc - + rise-v2g-secc + rise-v2g-secc + - org.v2gclarity.risev2g - shared - 1.0.0-SNAPSHOT + com.v2gclarity.risev2g + rise-v2g-shared + 1.1.4-SNAPSHOT - + + + UTF-8 + 1.1.4-SNAPSHOT + + - - maven-assembly-plugin + + org.apache.maven.plugins + maven-assembly-plugin + 3.1.0 + rise-v2g-secc-${project.version} + false true - org.v2gclarity.risev2g.secc.main.StartSECC + com.v2gclarity.risev2g.secc.main.StartSECC - - jar-with-dependencies - - false + + src/assembly/bin.xml + - make-my-jar-with-dependencies - package - - single - - - - - - maven-assembly-plugin - - false - ${project.baseUri}src/assembly/bin.xml - - - - package + one-jar-only + package single + + maven-resources-plugin + 3.0.2 + + + copy-resources + install + + copy-resources + + + ${basedir}/target + + + ${basedir} + + *.p12 + *.jks + *.der + *.properties + + + + + + + diff --git a/RISE-V2G-SECC/src/assembly/bin.xml b/RISE-V2G-SECC/src/assembly/bin.xml index dedcf22..1df39e7 100644 --- a/RISE-V2G-SECC/src/assembly/bin.xml +++ b/RISE-V2G-SECC/src/assembly/bin.xml @@ -1,40 +1,18 @@ - - bin - - tar.gz - tar.bz2 - zip - - - - - - README* - - - - target - . - - *.jar - - - - . - . - - *.p12 - *.jks - *.pkcs8.der - - - - . - . - - *.properties - - - - + + + jar-with-dependencies + + jar + + false + + + / + true + true + runtime + + \ No newline at end of file diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/backend/DummyBackendInterface.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/backend/DummyBackendInterface.java similarity index 93% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/backend/DummyBackendInterface.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/backend/DummyBackendInterface.java index 703bb9c..83a8829 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/backend/DummyBackendInterface.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/backend/DummyBackendInterface.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.backend; +package com.v2gclarity.risev2g.secc.backend; import java.security.KeyStore; import java.security.cert.X509Certificate; @@ -34,20 +34,20 @@ import javax.xml.namespace.QName; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateChainType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EMAIDType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PMaxScheduleEntryType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PMaxScheduleType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PhysicalValueType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.RelativeTimeIntervalType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleListType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleTupleType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SalesTariffEntryType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SalesTariffType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.UnitSymbolType; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateChainType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EMAIDType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PMaxScheduleEntryType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PMaxScheduleType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PhysicalValueType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.RelativeTimeIntervalType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleListType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleTupleType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SalesTariffEntryType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SalesTariffType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.UnitSymbolType; public class DummyBackendInterface implements IBackendInterface { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/backend/IBackendInterface.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/backend/IBackendInterface.java similarity index 95% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/backend/IBackendInterface.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/backend/IBackendInterface.java index bbeca07..a8cfdbd 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/backend/IBackendInterface.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/backend/IBackendInterface.java @@ -21,14 +21,14 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.backend; +package com.v2gclarity.risev2g.secc.backend; import java.security.cert.X509Certificate; import java.security.interfaces.ECPrivateKey; import java.util.HashMap; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateChainType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleListType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateChainType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleListType; public interface IBackendInterface { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/evseController/DummyACEVSEController.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/evseController/DummyACEVSEController.java similarity index 87% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/evseController/DummyACEVSEController.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/evseController/DummyACEVSEController.java index 5eb7439..c9c915b 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/evseController/DummyACEVSEController.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/evseController/DummyACEVSEController.java @@ -21,21 +21,21 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.evseController; +package com.v2gclarity.risev2g.secc.evseController; import java.math.BigInteger; import javax.xml.bind.JAXBElement; import javax.xml.namespace.QName; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.utils.ByteUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEChargeParameterType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEStatusType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeterInfoType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PhysicalValueType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.UnitSymbolType; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.utils.ByteUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEChargeParameterType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEStatusType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeterInfoType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PhysicalValueType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.UnitSymbolType; public class DummyACEVSEController implements IACEVSEController { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/evseController/DummyDCEVSEController.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/evseController/DummyDCEVSEController.java similarity index 92% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/evseController/DummyDCEVSEController.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/evseController/DummyDCEVSEController.java index 40df66e..cc5ba3a 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/evseController/DummyDCEVSEController.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/evseController/DummyDCEVSEController.java @@ -21,22 +21,22 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.evseController; +package com.v2gclarity.risev2g.secc.evseController; import java.math.BigInteger; import javax.xml.bind.JAXBElement; import javax.xml.namespace.QName; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEChargeParameterType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEStatusCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEStatusType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.IsolationLevelType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeterInfoType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PhysicalValueType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.UnitSymbolType; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEChargeParameterType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEStatusCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEStatusType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.IsolationLevelType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeterInfoType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PhysicalValueType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.UnitSymbolType; public class DummyDCEVSEController implements IDCEVSEController { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/evseController/IACEVSEController.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/evseController/IACEVSEController.java similarity index 89% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/evseController/IACEVSEController.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/evseController/IACEVSEController.java index 95d6227..6e009c4 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/evseController/IACEVSEController.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/evseController/IACEVSEController.java @@ -21,13 +21,13 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.evseController; +package com.v2gclarity.risev2g.secc.evseController; import javax.xml.bind.JAXBElement; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEChargeParameterType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEStatusType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEChargeParameterType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEStatusType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; public interface IACEVSEController extends IEVSEController { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/evseController/IDCEVSEController.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/evseController/IDCEVSEController.java similarity index 93% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/evseController/IDCEVSEController.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/evseController/IDCEVSEController.java index 0c81d08..a7e5885 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/evseController/IDCEVSEController.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/evseController/IDCEVSEController.java @@ -21,15 +21,15 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.evseController; +package com.v2gclarity.risev2g.secc.evseController; import javax.xml.bind.JAXBElement; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEChargeParameterType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEStatusType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.IsolationLevelType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PhysicalValueType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEChargeParameterType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEStatusType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.IsolationLevelType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PhysicalValueType; public interface IDCEVSEController extends IEVSEController { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/evseController/IEVSEController.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/evseController/IEVSEController.java similarity index 95% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/evseController/IEVSEController.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/evseController/IEVSEController.java index c98659c..e10c655 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/evseController/IEVSEController.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/evseController/IEVSEController.java @@ -21,9 +21,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.evseController; +package com.v2gclarity.risev2g.secc.evseController; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeterInfoType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeterInfoType; public interface IEVSEController { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/main/StartSECC.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/main/StartSECC.java similarity index 85% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/main/StartSECC.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/main/StartSECC.java index 66213f1..73ddc85 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/main/StartSECC.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/main/StartSECC.java @@ -21,16 +21,16 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.main; +package com.v2gclarity.risev2g.secc.main; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionHandlerSECC; -import org.v2gclarity.risev2g.secc.transportLayer.TCPServer; -import org.v2gclarity.risev2g.secc.transportLayer.TLSServer; -import org.v2gclarity.risev2g.secc.transportLayer.UDPServer; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.utils.MiscUtils; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionHandlerSECC; +import com.v2gclarity.risev2g.secc.transportLayer.TCPServer; +import com.v2gclarity.risev2g.secc.transportLayer.TLSServer; +import com.v2gclarity.risev2g.secc.transportLayer.UDPServer; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.utils.MiscUtils; public class StartSECC { @@ -55,7 +55,7 @@ public class StartSECC { tlsServerThread.setName("TLSServerThread"); // All transport layer threads need to be initialized before initializing the SECC session handler. - V2GCommunicationSessionHandlerSECC sessionHandler = new V2GCommunicationSessionHandlerSECC(); + new V2GCommunicationSessionHandlerSECC(); /* * To avoid possible race conditions, the transport layer threads need to be started AFTER the SECC diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/session/V2GCommunicationSessionHandlerSECC.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/session/V2GCommunicationSessionHandlerSECC.java similarity index 93% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/session/V2GCommunicationSessionHandlerSECC.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/session/V2GCommunicationSessionHandlerSECC.java index 5453158..15b75e4 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/session/V2GCommunicationSessionHandlerSECC.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/session/V2GCommunicationSessionHandlerSECC.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.session; +package com.v2gclarity.risev2g.secc.session; import java.net.DatagramPacket; import java.net.Inet6Address; @@ -33,17 +33,17 @@ import java.util.Observer; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.v2gclarity.risev2g.secc.transportLayer.ConnectionHandler; -import org.v2gclarity.risev2g.secc.transportLayer.TCPServer; -import org.v2gclarity.risev2g.secc.transportLayer.TLSServer; -import org.v2gclarity.risev2g.secc.transportLayer.UDPServer; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.messageHandling.MessageHandler; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.misc.V2GTPMessage; -import org.v2gclarity.risev2g.shared.utils.ByteUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.SECCDiscoveryReq; -import org.v2gclarity.risev2g.shared.v2gMessages.SECCDiscoveryRes; +import com.v2gclarity.risev2g.secc.transportLayer.ConnectionHandler; +import com.v2gclarity.risev2g.secc.transportLayer.TCPServer; +import com.v2gclarity.risev2g.secc.transportLayer.TLSServer; +import com.v2gclarity.risev2g.secc.transportLayer.UDPServer; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.messageHandling.MessageHandler; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.misc.V2GTPMessage; +import com.v2gclarity.risev2g.shared.utils.ByteUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.SECCDiscoveryReq; +import com.v2gclarity.risev2g.shared.v2gMessages.SECCDiscoveryRes; public class V2GCommunicationSessionHandlerSECC implements Observer { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/session/V2GCommunicationSessionSECC.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/session/V2GCommunicationSessionSECC.java similarity index 83% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/session/V2GCommunicationSessionSECC.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/session/V2GCommunicationSessionSECC.java index 8c8084b..127a40e 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/session/V2GCommunicationSessionSECC.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/session/V2GCommunicationSessionSECC.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.session; +package com.v2gclarity.risev2g.secc.session; import java.util.ArrayList; @@ -29,55 +29,55 @@ import java.util.Arrays; import java.util.Observable; import java.util.Observer; -import org.v2gclarity.risev2g.secc.backend.DummyBackendInterface; -import org.v2gclarity.risev2g.secc.backend.IBackendInterface; -import org.v2gclarity.risev2g.secc.evseController.DummyACEVSEController; -import org.v2gclarity.risev2g.secc.evseController.DummyDCEVSEController; -import org.v2gclarity.risev2g.secc.evseController.IACEVSEController; -import org.v2gclarity.risev2g.secc.evseController.IDCEVSEController; -import org.v2gclarity.risev2g.secc.evseController.IEVSEController; -import org.v2gclarity.risev2g.secc.states.ForkState; -import org.v2gclarity.risev2g.secc.states.WaitForAuthorizationReq; -import org.v2gclarity.risev2g.secc.states.WaitForCableCheckReq; -import org.v2gclarity.risev2g.secc.states.WaitForCertificateInstallationReq; -import org.v2gclarity.risev2g.secc.states.WaitForCertificateUpdateReq; -import org.v2gclarity.risev2g.secc.states.WaitForChargeParameterDiscoveryReq; -import org.v2gclarity.risev2g.secc.states.WaitForChargingStatusReq; -import org.v2gclarity.risev2g.secc.states.WaitForCurrentDemandReq; -import org.v2gclarity.risev2g.secc.states.WaitForMeteringReceiptReq; -import org.v2gclarity.risev2g.secc.states.WaitForPaymentDetailsReq; -import org.v2gclarity.risev2g.secc.states.WaitForPaymentServiceSelectionReq; -import org.v2gclarity.risev2g.secc.states.WaitForPowerDeliveryReq; -import org.v2gclarity.risev2g.secc.states.WaitForPreChargeReq; -import org.v2gclarity.risev2g.secc.states.WaitForServiceDetailReq; -import org.v2gclarity.risev2g.secc.states.WaitForServiceDiscoveryReq; -import org.v2gclarity.risev2g.secc.states.WaitForSessionSetupReq; -import org.v2gclarity.risev2g.secc.states.WaitForSessionStopReq; -import org.v2gclarity.risev2g.secc.states.WaitForSupportedAppProtocolReq; -import org.v2gclarity.risev2g.secc.states.WaitForWeldingDetectionReq; -import org.v2gclarity.risev2g.secc.transportLayer.ConnectionHandler; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ChangeProcessingState; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.SendMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.misc.V2GCommunicationSession; -import org.v2gclarity.risev2g.shared.misc.V2GTPMessage; -import org.v2gclarity.risev2g.shared.utils.ByteUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolReq; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEStatusType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateChainType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.MessageHeaderType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeterInfoType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PMaxScheduleType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleListType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.secc.backend.DummyBackendInterface; +import com.v2gclarity.risev2g.secc.backend.IBackendInterface; +import com.v2gclarity.risev2g.secc.evseController.DummyACEVSEController; +import com.v2gclarity.risev2g.secc.evseController.DummyDCEVSEController; +import com.v2gclarity.risev2g.secc.evseController.IACEVSEController; +import com.v2gclarity.risev2g.secc.evseController.IDCEVSEController; +import com.v2gclarity.risev2g.secc.evseController.IEVSEController; +import com.v2gclarity.risev2g.secc.states.ForkState; +import com.v2gclarity.risev2g.secc.states.WaitForAuthorizationReq; +import com.v2gclarity.risev2g.secc.states.WaitForCableCheckReq; +import com.v2gclarity.risev2g.secc.states.WaitForCertificateInstallationReq; +import com.v2gclarity.risev2g.secc.states.WaitForCertificateUpdateReq; +import com.v2gclarity.risev2g.secc.states.WaitForChargeParameterDiscoveryReq; +import com.v2gclarity.risev2g.secc.states.WaitForChargingStatusReq; +import com.v2gclarity.risev2g.secc.states.WaitForCurrentDemandReq; +import com.v2gclarity.risev2g.secc.states.WaitForMeteringReceiptReq; +import com.v2gclarity.risev2g.secc.states.WaitForPaymentDetailsReq; +import com.v2gclarity.risev2g.secc.states.WaitForPaymentServiceSelectionReq; +import com.v2gclarity.risev2g.secc.states.WaitForPowerDeliveryReq; +import com.v2gclarity.risev2g.secc.states.WaitForPreChargeReq; +import com.v2gclarity.risev2g.secc.states.WaitForServiceDetailReq; +import com.v2gclarity.risev2g.secc.states.WaitForServiceDiscoveryReq; +import com.v2gclarity.risev2g.secc.states.WaitForSessionSetupReq; +import com.v2gclarity.risev2g.secc.states.WaitForSessionStopReq; +import com.v2gclarity.risev2g.secc.states.WaitForSupportedAppProtocolReq; +import com.v2gclarity.risev2g.secc.states.WaitForWeldingDetectionReq; +import com.v2gclarity.risev2g.secc.transportLayer.ConnectionHandler; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ChangeProcessingState; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.SendMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.misc.V2GCommunicationSession; +import com.v2gclarity.risev2g.shared.misc.V2GTPMessage; +import com.v2gclarity.risev2g.shared.utils.ByteUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolReq; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEStatusType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateChainType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.MessageHeaderType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeterInfoType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PMaxScheduleType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleListType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class V2GCommunicationSessionSECC extends V2GCommunicationSession implements Observer { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/ForkState.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/ForkState.java similarity index 87% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/ForkState.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/ForkState.java index 2c22d56..b60dc58 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/ForkState.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/ForkState.java @@ -21,20 +21,20 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; import java.util.ArrayList; import java.util.List; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ChangeProcessingState; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.misc.State; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ChangeProcessingState; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.misc.State; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class ForkState extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/ServerState.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/ServerState.java similarity index 90% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/ServerState.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/ServerState.java index b05d3cc..54b8003 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/ServerState.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/ServerState.java @@ -21,44 +21,44 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; -import org.v2gclarity.risev2g.secc.evseController.IACEVSEController; -import org.v2gclarity.risev2g.secc.evseController.IDCEVSEController; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.SendMessage; -import org.v2gclarity.risev2g.shared.misc.State; -import org.v2gclarity.risev2g.shared.misc.TimeRestrictions; -import org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolRes; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.AuthorizationResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CableCheckResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateChainType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateInstallationResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateUpdateResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeParameterDiscoveryResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingStatusResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ContractSignatureEncryptedPrivateKeyType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CurrentDemandResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DiffieHellmanPublickeyType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EMAIDType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSEProcessingType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeteringReceiptResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentDetailsResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentServiceSelectionResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PhysicalValueType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PowerDeliveryResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PreChargeResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDetailResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDiscoveryResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionSetupResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionStopResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.UnitSymbolType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.WeldingDetectionResType; +import com.v2gclarity.risev2g.secc.evseController.IACEVSEController; +import com.v2gclarity.risev2g.secc.evseController.IDCEVSEController; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.SendMessage; +import com.v2gclarity.risev2g.shared.misc.State; +import com.v2gclarity.risev2g.shared.misc.TimeRestrictions; +import com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolRes; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.AuthorizationResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CableCheckResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateChainType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateInstallationResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateUpdateResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeParameterDiscoveryResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingStatusResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ContractSignatureEncryptedPrivateKeyType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CurrentDemandResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DiffieHellmanPublickeyType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EMAIDType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSEProcessingType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeteringReceiptResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentDetailsResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentServiceSelectionResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PhysicalValueType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PowerDeliveryResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PreChargeResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDetailResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDiscoveryResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionSetupResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionStopResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.UnitSymbolType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.WeldingDetectionResType; public abstract class ServerState extends State { @@ -176,7 +176,7 @@ public abstract class ServerState extends State { protected SendMessage getSendMessage( SupportedAppProtocolRes message, V2GMessages nextExpectedMessage, - org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.ResponseCodeType responseCode) { + com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.ResponseCodeType responseCode) { String messageName = message.getClass().getSimpleName(); if (!responseCode.value().substring(0, 2).toUpperCase().equals("OK")) { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForAuthorizationReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForAuthorizationReq.java similarity index 87% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForAuthorizationReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForAuthorizationReq.java index 9b1ac92..4aa999f 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForAuthorizationReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForAuthorizationReq.java @@ -21,23 +21,23 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; import java.util.Arrays; import java.util.HashMap; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.AuthorizationReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.AuthorizationResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSEProcessingType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.AuthorizationReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.AuthorizationResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSEProcessingType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForAuthorizationReq extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForCableCheckReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForCableCheckReq.java similarity index 83% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForCableCheckReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForCableCheckReq.java index d485035..5e85e26 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForCableCheckReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForCableCheckReq.java @@ -21,20 +21,20 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; -import org.v2gclarity.risev2g.secc.evseController.IDCEVSEController; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CableCheckReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CableCheckResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSEProcessingType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.IsolationLevelType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.secc.evseController.IDCEVSEController; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CableCheckReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CableCheckResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSEProcessingType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.IsolationLevelType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForCableCheckReq extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForCertificateInstallationReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForCertificateInstallationReq.java similarity index 91% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForCertificateInstallationReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForCertificateInstallationReq.java index d3a677b..06d9fc1 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForCertificateInstallationReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForCertificateInstallationReq.java @@ -21,26 +21,26 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; import java.security.KeyPair; import java.security.cert.X509Certificate; import java.security.interfaces.ECPublicKey; import java.util.HashMap; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.PKI; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateChainType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateInstallationReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateInstallationResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ContractSignatureEncryptedPrivateKeyType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.PKI; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateChainType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateInstallationReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateInstallationResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ContractSignatureEncryptedPrivateKeyType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForCertificateInstallationReq extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForCertificateUpdateReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForCertificateUpdateReq.java similarity index 90% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForCertificateUpdateReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForCertificateUpdateReq.java index f5abccd..c6a17ca 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForCertificateUpdateReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForCertificateUpdateReq.java @@ -21,25 +21,26 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; import java.security.KeyPair; import java.security.interfaces.ECPublicKey; import java.util.HashMap; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.enumerations.PKI; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateChainType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateUpdateReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateUpdateResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ContractSignatureEncryptedPrivateKeyType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; + +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.PKI; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateChainType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateUpdateReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateUpdateResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ContractSignatureEncryptedPrivateKeyType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForCertificateUpdateReq extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForChargeParameterDiscoveryReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForChargeParameterDiscoveryReq.java similarity index 92% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForChargeParameterDiscoveryReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForChargeParameterDiscoveryReq.java index cc7245c..2ab376d 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForChargeParameterDiscoveryReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForChargeParameterDiscoveryReq.java @@ -21,28 +21,28 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; import java.util.ArrayList; import javax.xml.bind.JAXBElement; import javax.xml.namespace.QName; -import org.v2gclarity.risev2g.secc.evseController.IACEVSEController; -import org.v2gclarity.risev2g.secc.evseController.IDCEVSEController; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVChargeParameterType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeParameterDiscoveryReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeParameterDiscoveryResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVChargeParameterType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSEProcessingType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleListType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.secc.evseController.IACEVSEController; +import com.v2gclarity.risev2g.secc.evseController.IDCEVSEController; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVChargeParameterType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeParameterDiscoveryReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeParameterDiscoveryResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVChargeParameterType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSEProcessingType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleListType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForChargeParameterDiscoveryReq extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForChargingStatusReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForChargingStatusReq.java similarity index 86% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForChargingStatusReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForChargingStatusReq.java index a78094b..c6e4c69 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForChargingStatusReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForChargingStatusReq.java @@ -21,18 +21,18 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingStatusReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingStatusResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeterInfoType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingStatusReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingStatusResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeterInfoType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; public class WaitForChargingStatusReq extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForCurrentDemandReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForCurrentDemandReq.java similarity index 88% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForCurrentDemandReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForCurrentDemandReq.java index 9428ebd..fa31c98 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForCurrentDemandReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForCurrentDemandReq.java @@ -21,19 +21,19 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; -import org.v2gclarity.risev2g.secc.evseController.IDCEVSEController; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CurrentDemandReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CurrentDemandResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.secc.evseController.IDCEVSEController; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CurrentDemandReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CurrentDemandResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForCurrentDemandReq extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForMeteringReceiptReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForMeteringReceiptReq.java similarity index 88% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForMeteringReceiptReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForMeteringReceiptReq.java index 9d13124..bb588b8 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForMeteringReceiptReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForMeteringReceiptReq.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; import java.util.Arrays; import java.util.HashMap; @@ -29,20 +29,20 @@ import java.util.HashMap; import javax.xml.bind.JAXBElement; import javax.xml.namespace.QName; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEStatusType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEStatusType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeterInfoType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeteringReceiptReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeteringReceiptResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEStatusType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEStatusType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeterInfoType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeteringReceiptReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.MeteringReceiptResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForMeteringReceiptReq extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForPaymentDetailsReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForPaymentDetailsReq.java similarity index 87% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForPaymentDetailsReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForPaymentDetailsReq.java index 9388889..e8afd4c 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForPaymentDetailsReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForPaymentDetailsReq.java @@ -21,19 +21,19 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.enumerations.PKI; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentDetailsReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentDetailsResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.PKI; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentDetailsReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentDetailsResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForPaymentDetailsReq extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForPaymentServiceSelectionReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForPaymentServiceSelectionReq.java similarity index 88% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForPaymentServiceSelectionReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForPaymentServiceSelectionReq.java index 446c53d..7b802e5 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForPaymentServiceSelectionReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForPaymentServiceSelectionReq.java @@ -21,19 +21,19 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentServiceSelectionReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentServiceSelectionResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SelectedServiceType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentServiceSelectionReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentServiceSelectionResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SelectedServiceType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForPaymentServiceSelectionReq extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForPowerDeliveryReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForPowerDeliveryReq.java similarity index 90% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForPowerDeliveryReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForPowerDeliveryReq.java index 3f83ed0..ecb3d1f 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForPowerDeliveryReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForPowerDeliveryReq.java @@ -21,29 +21,30 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; import java.util.ArrayList; import javax.xml.bind.JAXBElement; import javax.xml.namespace.QName; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEStatusType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeProgressType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingProfileType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEStatusCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEStatusType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PMaxScheduleEntryType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PowerDeliveryReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PowerDeliveryResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ProfileEntryType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.RelativeTimeIntervalType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleTupleType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; + +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ACEVSEStatusType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeProgressType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargingProfileType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEStatusCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DCEVSEStatusType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PMaxScheduleEntryType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PowerDeliveryReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PowerDeliveryResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ProfileEntryType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.RelativeTimeIntervalType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SAScheduleTupleType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForPowerDeliveryReq extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForPreChargeReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForPreChargeReq.java similarity index 83% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForPreChargeReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForPreChargeReq.java index f6dc182..03097af 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForPreChargeReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForPreChargeReq.java @@ -21,18 +21,18 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; -import org.v2gclarity.risev2g.secc.evseController.IDCEVSEController; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PreChargeReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PreChargeResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.secc.evseController.IDCEVSEController; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PreChargeReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PreChargeResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForPreChargeReq extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForServiceDetailReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForServiceDetailReq.java similarity index 89% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForServiceDetailReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForServiceDetailReq.java index 8733873..aeea60a 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForServiceDetailReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForServiceDetailReq.java @@ -21,20 +21,20 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ParameterSetType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ParameterType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDetailReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDetailResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceParameterListType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ParameterSetType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ParameterType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDetailReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDetailResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceParameterListType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForServiceDetailReq extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForServiceDiscoveryReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForServiceDiscoveryReq.java similarity index 87% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForServiceDiscoveryReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForServiceDiscoveryReq.java index e26389a..9d54486 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForServiceDiscoveryReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForServiceDiscoveryReq.java @@ -21,22 +21,22 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.utils.MiscUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeServiceType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceCategoryType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDiscoveryReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDiscoveryResType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceListType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SupportedEnergyTransferModeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.utils.MiscUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ChargeServiceType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceCategoryType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDiscoveryReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceDiscoveryResType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceListType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ServiceType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SupportedEnergyTransferModeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class WaitForServiceDiscoveryReq extends ServerState { @@ -116,7 +116,7 @@ public class WaitForServiceDiscoveryReq extends ServerState { */ chargeService.setServiceScope("chargingServiceScope"); - boolean isChargingForFree = ((boolean) MiscUtils.getPropertyValue("ChargingForFree")); + boolean isChargingForFree = ((boolean) MiscUtils.getPropertyValue("charging.free")); chargeService.setFreeService(isChargingForFree); return chargeService; diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForSessionSetupReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForSessionSetupReq.java similarity index 85% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForSessionSetupReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForSessionSetupReq.java index 549135a..832b81f 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForSessionSetupReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForSessionSetupReq.java @@ -21,15 +21,15 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionSetupReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionSetupResType; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionSetupReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionSetupResType; public class WaitForSessionSetupReq extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForSessionStopReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForSessionStopReq.java similarity index 83% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForSessionStopReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForSessionStopReq.java index 029d9b2..7fd11dc 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForSessionStopReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForSessionStopReq.java @@ -21,15 +21,15 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionStopReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionStopResType; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionStopReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SessionStopResType; public class WaitForSessionStopReq extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForSupportedAppProtocolReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForSupportedAppProtocolReq.java similarity index 88% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForSupportedAppProtocolReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForSupportedAppProtocolReq.java index 2ef58c5..c90052b 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForSupportedAppProtocolReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForSupportedAppProtocolReq.java @@ -21,23 +21,23 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ChangeProcessingState; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.SECCDiscoveryReq; -import org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.AppProtocolType; -import org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolReq; -import org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolRes; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ChangeProcessingState; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.SECCDiscoveryReq; +import com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.AppProtocolType; +import com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolReq; +import com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolRes; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; public class WaitForSupportedAppProtocolReq extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForWeldingDetectionReq.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForWeldingDetectionReq.java similarity index 83% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForWeldingDetectionReq.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForWeldingDetectionReq.java index ed0d6be..5fdee4c 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/states/WaitForWeldingDetectionReq.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/states/WaitForWeldingDetectionReq.java @@ -21,18 +21,18 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.states; +package com.v2gclarity.risev2g.secc.states; -import org.v2gclarity.risev2g.secc.evseController.IDCEVSEController; -import org.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.WeldingDetectionReqType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.WeldingDetectionResType; +import com.v2gclarity.risev2g.secc.evseController.IDCEVSEController; +import com.v2gclarity.risev2g.secc.session.V2GCommunicationSessionSECC; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EVSENotificationType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.WeldingDetectionReqType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.WeldingDetectionResType; public class WaitForWeldingDetectionReq extends ServerState { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/transportLayer/ConnectionHandler.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/transportLayer/ConnectionHandler.java similarity index 97% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/transportLayer/ConnectionHandler.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/transportLayer/ConnectionHandler.java index 7d53d5d..d093235 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/transportLayer/ConnectionHandler.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/transportLayer/ConnectionHandler.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.transportLayer; +package com.v2gclarity.risev2g.secc.transportLayer; import java.io.IOException; import java.io.InputStream; @@ -36,9 +36,9 @@ import javax.net.ssl.SSLSocket; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.v2gclarity.risev2g.shared.misc.TimeRestrictions; -import org.v2gclarity.risev2g.shared.misc.V2GTPMessage; -import org.v2gclarity.risev2g.shared.utils.ByteUtils; +import com.v2gclarity.risev2g.shared.misc.TimeRestrictions; +import com.v2gclarity.risev2g.shared.misc.V2GTPMessage; +import com.v2gclarity.risev2g.shared.utils.ByteUtils; public class ConnectionHandler extends Observable implements Runnable { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/transportLayer/StatefulTransportLayerServer.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/transportLayer/StatefulTransportLayerServer.java similarity index 95% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/transportLayer/StatefulTransportLayerServer.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/transportLayer/StatefulTransportLayerServer.java index c37deba..6e3aa55 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/transportLayer/StatefulTransportLayerServer.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/transportLayer/StatefulTransportLayerServer.java @@ -21,14 +21,14 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.transportLayer; +package com.v2gclarity.risev2g.secc.transportLayer; import java.net.Inet6Address; import java.util.Observable; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.v2gclarity.risev2g.shared.utils.MiscUtils; +import com.v2gclarity.risev2g.shared.utils.MiscUtils; public abstract class StatefulTransportLayerServer extends Observable implements Runnable { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/transportLayer/TCPServer.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/transportLayer/TCPServer.java similarity index 98% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/transportLayer/TCPServer.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/transportLayer/TCPServer.java index 098d961..7ef6e1f 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/transportLayer/TCPServer.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/transportLayer/TCPServer.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.transportLayer; +package com.v2gclarity.risev2g.secc.transportLayer; import java.io.IOException; import java.net.ServerSocket; diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/transportLayer/TLSServer.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/transportLayer/TLSServer.java similarity index 97% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/transportLayer/TLSServer.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/transportLayer/TLSServer.java index ad90377..b1ce07f 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/transportLayer/TLSServer.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/transportLayer/TLSServer.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.transportLayer; +package com.v2gclarity.risev2g.secc.transportLayer; import java.io.IOException; import java.net.SocketException; @@ -29,8 +29,8 @@ import javax.net.ssl.SSLServerSocket; import javax.net.ssl.SSLServerSocketFactory; import javax.net.ssl.SSLSocket; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; public final class TLSServer extends StatefulTransportLayerServer { diff --git a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/transportLayer/UDPServer.java b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/transportLayer/UDPServer.java similarity index 96% rename from RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/transportLayer/UDPServer.java rename to RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/transportLayer/UDPServer.java index e0fc18a..5f1aeba 100644 --- a/RISE-V2G-SECC/src/main/java/org/v2gclarity/risev2g/secc/transportLayer/UDPServer.java +++ b/RISE-V2G-SECC/src/main/java/com/v2gclarity/risev2g/secc/transportLayer/UDPServer.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.secc.transportLayer; +package com.v2gclarity.risev2g.secc.transportLayer; import java.io.IOException; import java.net.DatagramPacket; @@ -33,9 +33,9 @@ import java.util.Observable; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.misc.V2GTPMessage; -import org.v2gclarity.risev2g.shared.utils.MiscUtils; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.misc.V2GTPMessage; +import com.v2gclarity.risev2g.shared.utils.MiscUtils; /** * The UDP server is handling the SECCDiscovery messages only. The standard does not diff --git a/RISE-V2G-SECC/src/main/resources/log4j2.xml b/RISE-V2G-SECC/src/main/resources/log4j2.xml index 5ab6eeb..702f6e9 100644 --- a/RISE-V2G-SECC/src/main/resources/log4j2.xml +++ b/RISE-V2G-SECC/src/main/resources/log4j2.xml @@ -2,7 +2,7 @@ - + diff --git a/RISE-V2G-Shared/LICENSE.txt b/RISE-V2G-Shared/LICENSE.txt new file mode 100644 index 0000000..957a62a --- /dev/null +++ b/RISE-V2G-Shared/LICENSE.txt @@ -0,0 +1,23 @@ +/******************************************************************************* + * The MIT License (MIT) + * + * Copyright (c) 2015-2017 V2G Clarity (Dr. Marc Mültin) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + *******************************************************************************/ \ No newline at end of file diff --git a/RISE-V2G-Shared/pom.xml b/RISE-V2G-Shared/pom.xml index ce10682..28a08db 100644 --- a/RISE-V2G-Shared/pom.xml +++ b/RISE-V2G-Shared/pom.xml @@ -2,21 +2,24 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - org.v2gclarity.risev2g - parent - 1.0.0-SNAPSHOT + com.v2gclarity.risev2g + rise-v2g-parent + 1.1.4-SNAPSHOT + ../RISE-V2G-PARENT 4.0.0 - http://maven.apache.org - shared - risev2g.shared + rise-v2g-shared + rise-v2g-shared - - in-project - In Project Repo - file://${project.basedir}/libs + + + project.local + project + file:${project.basedir}/repo @@ -32,20 +35,15 @@ 2.11.0 - xml-apis - xml-apis - 1.4.01 + org.apache.logging.log4j + log4j-api + 2.9.1 - org.apache.logging.log4j - log4j-api - 2.9.0 - - org.apache.logging.log4j log4j-core - 2.9.0 - + 2.9.1 + net.sourceforge.openexi nagasena @@ -58,28 +56,4 @@ - - - - org.apache.maven.plugins - maven-shade-plugin - 2.4.1 - - - package - - shade - - - - - org.sonatype.haven.HavenCli - - - - - - - - \ No newline at end of file diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.jar b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..6c3700d8be0f1c4b46a4c7af5e1de582cc71c36a GIT binary patch literal 79032 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 PQ||BUWKlfuH;9VAa-Y@M literal 0 HcmV?d00001 diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.jar.md5 b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.jar.md5 new file mode 100644 index 0000000..b6ce7d7 --- /dev/null +++ b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.jar.md5 @@ -0,0 +1 @@ +7b375be13edb0bd60115484b9ee910ae \ No newline at end of file diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.jar.sha1 b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.jar.sha1 new file mode 100644 index 0000000..33669a5 --- /dev/null +++ b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.jar.sha1 @@ -0,0 +1 @@ +151a0ffbfad58d963fef8d7eb9afee45caa097f5 \ No newline at end of file diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.pom b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.pom new file mode 100644 index 0000000..3031d2e --- /dev/null +++ b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.pom @@ -0,0 +1,8 @@ + + + 4.0.0 + net.sourceforge.openexi + nagasena-rta + 0000.0002.0052.0 + diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.pom.md5 b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.pom.md5 new file mode 100644 index 0000000..5ec8749 --- /dev/null +++ b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.pom.md5 @@ -0,0 +1 @@ +6804aff1bd5d5a64ad32c77fa340a210 \ No newline at end of file diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.pom.sha1 b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.pom.sha1 new file mode 100644 index 0000000..6ede0d6 --- /dev/null +++ b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/0000.0002.0052.0/nagasena-rta-0000.0002.0052.0.pom.sha1 @@ -0,0 +1 @@ +d3a85dd867e323d64a4ada41ba727b8037bbb0c5 \ No newline at end of file diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/maven-metadata.xml b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/maven-metadata.xml new file mode 100644 index 0000000..6dae53f --- /dev/null +++ b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/maven-metadata.xml @@ -0,0 +1,12 @@ + + + net.sourceforge.openexi + nagasena-rta + + 0000.0002.0052.0 + + 0000.0002.0052.0 + + 20171010062755 + + diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/maven-metadata.xml.md5 b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/maven-metadata.xml.md5 new file mode 100644 index 0000000..9a194e3 --- /dev/null +++ b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/maven-metadata.xml.md5 @@ -0,0 +1 @@ +5339d557de85298bce41835f018e1e24 \ No newline at end of file diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/maven-metadata.xml.sha1 b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/maven-metadata.xml.sha1 new file mode 100644 index 0000000..acc9434 --- /dev/null +++ b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena-rta/maven-metadata.xml.sha1 @@ -0,0 +1 @@ +7a9eb14772b77dd0ad07f2eeb0edee95dafcb07a \ No newline at end of file diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.jar b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..827d56b32fc2225118a5cd3304c2d38a0e9ed768 GIT binary patch literal 267850 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 literal 0 HcmV?d00001 diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.jar.md5 b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.jar.md5 new file mode 100644 index 0000000..98faef0 --- /dev/null +++ b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.jar.md5 @@ -0,0 +1 @@ +c192a17d3e1cddf9ede1a665b519aec9 \ No newline at end of file diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.jar.sha1 b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.jar.sha1 new file mode 100644 index 0000000..6411988 --- /dev/null +++ b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.jar.sha1 @@ -0,0 +1 @@ +cca128e2267b20bf33224ad5174d2b413fa0b060 \ No newline at end of file diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.pom b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.pom new file mode 100644 index 0000000..916fcb9 --- /dev/null +++ b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.pom @@ -0,0 +1,8 @@ + + + 4.0.0 + net.sourceforge.openexi + nagasena + 0000.0002.0052.0 + diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.pom.md5 b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.pom.md5 new file mode 100644 index 0000000..7baa690 --- /dev/null +++ b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.pom.md5 @@ -0,0 +1 @@ +7e1842bc6e8f9cd871c3a1b5abdf8e69 \ No newline at end of file diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.pom.sha1 b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.pom.sha1 new file mode 100644 index 0000000..4a44e02 --- /dev/null +++ b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/0000.0002.0052.0/nagasena-0000.0002.0052.0.pom.sha1 @@ -0,0 +1 @@ +31c8f0910b4f8878b02829081dc7d82fffb56552 \ No newline at end of file diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/maven-metadata.xml b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/maven-metadata.xml new file mode 100644 index 0000000..e44543b --- /dev/null +++ b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/maven-metadata.xml @@ -0,0 +1,12 @@ + + + net.sourceforge.openexi + nagasena + + 0000.0002.0052.0 + + 0000.0002.0052.0 + + 20171010062613 + + diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/maven-metadata.xml.md5 b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/maven-metadata.xml.md5 new file mode 100644 index 0000000..4f0a04e --- /dev/null +++ b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/maven-metadata.xml.md5 @@ -0,0 +1 @@ +952c9386ef2ffc7c0aa99760f0ce7d01 \ No newline at end of file diff --git a/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/maven-metadata.xml.sha1 b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/maven-metadata.xml.sha1 new file mode 100644 index 0000000..5768428 --- /dev/null +++ b/RISE-V2G-Shared/repo/net/sourceforge/openexi/nagasena/maven-metadata.xml.sha1 @@ -0,0 +1 @@ +46f716b6c62675ed9123ff435a642e3beac4c73a \ No newline at end of file diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/CPStates.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/CPStates.java similarity index 96% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/CPStates.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/CPStates.java index 37e4531..f6eb236 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/CPStates.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/CPStates.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.enumerations; +package com.v2gclarity.risev2g.shared.enumerations; public enum CPStates { STATE_A("State A"), diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/GlobalTypes.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/GlobalTypes.java similarity index 96% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/GlobalTypes.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/GlobalTypes.java index d90b327..d03a263 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/GlobalTypes.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/GlobalTypes.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.enumerations; +package com.v2gclarity.risev2g.shared.enumerations; public enum GlobalTypes { PAYLOAD_TYPE, diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/GlobalValues.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/GlobalValues.java similarity index 95% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/GlobalValues.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/GlobalValues.java index 7bfa6ce..6e78162 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/GlobalValues.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/GlobalValues.java @@ -21,15 +21,18 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.enumerations; +package com.v2gclarity.risev2g.shared.enumerations; import java.util.Arrays; -import org.v2gclarity.risev2g.shared.utils.ByteUtils; +import com.v2gclarity.risev2g.shared.utils.ByteUtils; public enum GlobalValues { - // Relative file paths to the config files for EV and EVSE + /* File paths to the configuration files for EVCC and SECC. It must be possible to modify them on the EV or charging station, + * which means that they must not be kept inside the JAR (which is read-only). We put those properties files at the same + * level as the JAR. + */ EVCC_CONFIG_PROPERTIES_PATH("./EVCCConfig.properties"), SECC_CONFIG_PROPERTIES_PATH("./SECCConfig.properties"), @@ -48,7 +51,7 @@ public enum GlobalValues { CERTIFICATE_EXPIRES_SOON_PERIOD((short) 21, GlobalTypes.SECURITY), /* - * Relative file path to the EVCC and SECC keystore and truststore. + * File path to the EVCC and SECC keystore and truststore. * Since at least the evccKeystore needs to be modified upon certificate installation / update, the * keystores must not be kept inside the JAR (which is read-only). For easier handling, we put all * keystores at the same level as the JAR. diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/MessageSets.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/MessageSets.java similarity index 96% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/MessageSets.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/MessageSets.java index 99c64a6..b391c31 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/MessageSets.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/MessageSets.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.enumerations; +package com.v2gclarity.risev2g.shared.enumerations; public enum MessageSets { AC_CHARGING_EIM, diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/PKI.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/PKI.java similarity index 96% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/PKI.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/PKI.java index 2184ba0..6e5c107 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/PKI.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/PKI.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.enumerations; +package com.v2gclarity.risev2g.shared.enumerations; public enum PKI { CPS("CPS"), diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/V2GMessages.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/V2GMessages.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/V2GMessages.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/V2GMessages.java index 345fa34..33b3963 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/enumerations/V2GMessages.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/enumerations/V2GMessages.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.enumerations; +package com.v2gclarity.risev2g.shared.enumerations; public enum V2GMessages { diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/EXISchemaFactoryExceptionHandler.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/EXISchemaFactoryExceptionHandler.java similarity index 97% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/EXISchemaFactoryExceptionHandler.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/EXISchemaFactoryExceptionHandler.java index 9c3423e..3d522ac 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/EXISchemaFactoryExceptionHandler.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/EXISchemaFactoryExceptionHandler.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.exiCodec; +package com.v2gclarity.risev2g.shared.exiCodec; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/EXIficientCodec.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/EXIficientCodec.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/EXIficientCodec.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/EXIficientCodec.java index 8aa2811..375414a 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/EXIficientCodec.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/EXIficientCodec.java @@ -1,4 +1,4 @@ -package org.v2gclarity.risev2g.shared.exiCodec; +package com.v2gclarity.risev2g.shared.exiCodec; /******************************************************************************* * The MIT License (MIT) @@ -39,8 +39,6 @@ import javax.xml.transform.TransformerFactory; import javax.xml.transform.sax.SAXSource; import javax.xml.transform.stream.StreamResult; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.utils.ByteUtils; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; @@ -53,6 +51,8 @@ import com.siemens.ct.exi.api.sax.EXISource; import com.siemens.ct.exi.exceptions.EXIException; import com.siemens.ct.exi.grammars.Grammars; import com.siemens.ct.exi.helpers.DefaultEXIFactory; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.utils.ByteUtils; public final class EXIficientCodec extends ExiCodec { // -- BEGIN: SINGLETON DEFINITION -- diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/EXIficient_V2G_CI_AppProtocol.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/EXIficient_V2G_CI_AppProtocol.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/EXIficient_V2G_CI_AppProtocol.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/EXIficient_V2G_CI_AppProtocol.java index 06859a4..2442d2f 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/EXIficient_V2G_CI_AppProtocol.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/EXIficient_V2G_CI_AppProtocol.java @@ -1,4 +1,4 @@ -package org.v2gclarity.risev2g.shared.exiCodec; +package com.v2gclarity.risev2g.shared.exiCodec; import javax.xml.namespace.QName; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/EXIficient_V2G_CI_MsgDef.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/EXIficient_V2G_CI_MsgDef.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/EXIficient_V2G_CI_MsgDef.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/EXIficient_V2G_CI_MsgDef.java index 8adbd56..b15991e 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/EXIficient_V2G_CI_MsgDef.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/EXIficient_V2G_CI_MsgDef.java @@ -1,4 +1,4 @@ -package org.v2gclarity.risev2g.shared.exiCodec; +package com.v2gclarity.risev2g.shared.exiCodec; import javax.xml.namespace.QName; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/EXIficient_xmldsig_core_schema.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/EXIficient_xmldsig_core_schema.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/EXIficient_xmldsig_core_schema.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/EXIficient_xmldsig_core_schema.java index dfb7467..94fc037 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/EXIficient_xmldsig_core_schema.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/EXIficient_xmldsig_core_schema.java @@ -1,4 +1,4 @@ -package org.v2gclarity.risev2g.shared.exiCodec; +package com.v2gclarity.risev2g.shared.exiCodec; import javax.xml.namespace.QName; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/ExiCodec.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/ExiCodec.java similarity index 93% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/ExiCodec.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/ExiCodec.java index e9817f7..5e934b2 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/ExiCodec.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/ExiCodec.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.exiCodec; +package com.v2gclarity.risev2g.shared.exiCodec; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -37,12 +37,12 @@ import javax.xml.bind.Unmarshaller; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.utils.ByteUtils; -import org.v2gclarity.risev2g.shared.utils.MiscUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolReq; -import org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolRes; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.utils.ByteUtils; +import com.v2gclarity.risev2g.shared.utils.MiscUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolReq; +import com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolRes; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public abstract class ExiCodec { @@ -57,13 +57,13 @@ public abstract class ExiCodec { public ExiCodec() { // Check if XML representation of sent messages is to be shown (for debug purposes) - if ((boolean) MiscUtils.getPropertyValue("XMLRepresentationOfMessages")) + if ((boolean) MiscUtils.getPropertyValue("exi.messages.showxml")) setXMLMsgRepresentation(true); else setXMLMsgRepresentation(false); // Check if hexadecimal and Base64 representation of sent messages is to be shown (for debug purposes) - if ((boolean) MiscUtils.getPropertyValue("HexAndBase64RepresentationOfMessages")) + if ((boolean) MiscUtils.getPropertyValue("exi.messages.showhex")) setHexAndBase64MsgRepresentation(true); else setHexAndBase64MsgRepresentation(false); diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/OpenEXICodec.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/OpenEXICodec.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/OpenEXICodec.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/OpenEXICodec.java index 1cadb8d..7c8b2a8 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/OpenEXICodec.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/OpenEXICodec.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.exiCodec; +package com.v2gclarity.risev2g.shared.exiCodec; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -36,6 +36,9 @@ import javax.xml.transform.sax.SAXTransformerFactory; import javax.xml.transform.sax.TransformerHandler; import javax.xml.transform.stream.StreamResult; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; + import org.openexi.proc.common.EXIOptionsException; import org.openexi.proc.common.GrammarOptions; import org.openexi.proc.grammars.GrammarCache; @@ -46,10 +49,8 @@ import org.openexi.schema.EXISchema; import org.openexi.scomp.EXISchemaFactory; import org.openexi.scomp.EXISchemaFactoryException; import org.openexi.scomp.EXISchemaReader; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.utils.ByteUtils; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.utils.ByteUtils; public final class OpenEXICodec extends ExiCodec { // -- BEGIN: SINGLETON DEFINITION -- diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/XSDResolver.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/XSDResolver.java similarity index 97% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/XSDResolver.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/XSDResolver.java index 3c60368..c650c71 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/exiCodec/XSDResolver.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/exiCodec/XSDResolver.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.exiCodec; +package com.v2gclarity.risev2g.shared.exiCodec; import java.io.IOException; import java.io.InputStream; @@ -32,7 +32,7 @@ import org.apache.xerces.xni.XNIException; import org.apache.xerces.xni.parser.XMLEntityResolver; import org.apache.xerces.xni.parser.XMLInputSource; import org.openexi.scomp.EXISchemaFactory; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; /** * This class is needed to access all linked XSD files via an InputStream. Accessing XSD files diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/ChangeProcessingState.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/ChangeProcessingState.java similarity index 94% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/ChangeProcessingState.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/ChangeProcessingState.java index 993558e..0d5d184 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/ChangeProcessingState.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/ChangeProcessingState.java @@ -21,9 +21,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.messageHandling; +package com.v2gclarity.risev2g.shared.messageHandling; -import org.v2gclarity.risev2g.shared.misc.State; +import com.v2gclarity.risev2g.shared.misc.State; public class ChangeProcessingState extends ReactionToIncomingMessage { diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/MessageHandler.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/MessageHandler.java similarity index 90% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/MessageHandler.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/MessageHandler.java index 5af03df..2055ee1 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/MessageHandler.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/MessageHandler.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.messageHandling; +package com.v2gclarity.risev2g.shared.messageHandling; import java.security.interfaces.ECPrivateKey; import java.util.Arrays; @@ -34,27 +34,27 @@ import javax.xml.bind.ValidationEvent; import javax.xml.bind.ValidationEventHandler; import javax.xml.namespace.QName; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.exiCodec.EXIficientCodec; -import org.v2gclarity.risev2g.shared.exiCodec.ExiCodec; -import org.v2gclarity.risev2g.shared.exiCodec.OpenEXICodec; -import org.v2gclarity.risev2g.shared.misc.V2GCommunicationSession; -import org.v2gclarity.risev2g.shared.misc.V2GTPMessage; -import org.v2gclarity.risev2g.shared.utils.ByteUtils; -import org.v2gclarity.risev2g.shared.utils.MiscUtils; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolReq; -import org.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolRes; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.MessageHeaderType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.NotificationType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureValueType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignedInfoType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import org.apache.logging.log4j.Logger; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.exiCodec.EXIficientCodec; +import com.v2gclarity.risev2g.shared.exiCodec.ExiCodec; +import com.v2gclarity.risev2g.shared.exiCodec.OpenEXICodec; +import com.v2gclarity.risev2g.shared.misc.V2GCommunicationSession; +import com.v2gclarity.risev2g.shared.misc.V2GTPMessage; +import com.v2gclarity.risev2g.shared.utils.ByteUtils; +import com.v2gclarity.risev2g.shared.utils.MiscUtils; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolReq; +import com.v2gclarity.risev2g.shared.v2gMessages.appProtocol.SupportedAppProtocolRes; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.MessageHeaderType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.NotificationType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureValueType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignedInfoType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public class MessageHandler { @@ -82,7 +82,7 @@ public class MessageHandler { */ public MessageHandler() { // Choose which implementation of an EXI codec to use in the respective properties file - String exiCodecChoice = (String) MiscUtils.getPropertyValue("EXICodec"); + String exiCodecChoice = (String) MiscUtils.getPropertyValue("exi.codec"); if (exiCodecChoice.equals("open_exi")) setExiCodec(OpenEXICodec.getInstance()); else setExiCodec(EXIficientCodec.getInstance()); diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/PauseSession.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/PauseSession.java similarity index 96% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/PauseSession.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/PauseSession.java index 0059f11..57e40d1 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/PauseSession.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/PauseSession.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.messageHandling; +package com.v2gclarity.risev2g.shared.messageHandling; public class PauseSession extends ReactionToIncomingMessage { diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/ReactionToIncomingMessage.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/ReactionToIncomingMessage.java similarity index 96% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/ReactionToIncomingMessage.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/ReactionToIncomingMessage.java index 2f6b61d..2eff17c 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/ReactionToIncomingMessage.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/ReactionToIncomingMessage.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.messageHandling; +package com.v2gclarity.risev2g.shared.messageHandling; public abstract class ReactionToIncomingMessage { diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/SendMessage.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/SendMessage.java similarity index 95% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/SendMessage.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/SendMessage.java index 5c2f446..4818e9f 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/SendMessage.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/SendMessage.java @@ -21,10 +21,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.messageHandling; +package com.v2gclarity.risev2g.shared.messageHandling; -import org.v2gclarity.risev2g.shared.misc.State; -import org.v2gclarity.risev2g.shared.misc.TimeRestrictions; +import com.v2gclarity.risev2g.shared.misc.State; +import com.v2gclarity.risev2g.shared.misc.TimeRestrictions; /** * There are four possible outcomes of processing an incoming message at the respective state diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/TerminateSession.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/TerminateSession.java similarity index 97% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/TerminateSession.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/TerminateSession.java index a399249..8ab8ee0 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/messageHandling/TerminateSession.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/messageHandling/TerminateSession.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.messageHandling; +package com.v2gclarity.risev2g.shared.messageHandling; public class TerminateSession extends ReactionToIncomingMessage { diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/misc/State.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/misc/State.java similarity index 92% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/misc/State.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/misc/State.java index 6f2d1d1..b0dbc56 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/misc/State.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/misc/State.java @@ -21,19 +21,19 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.misc; +package com.v2gclarity.risev2g.shared.misc; import java.security.interfaces.ECPrivateKey; import java.util.HashMap; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.MessageHandler; -import org.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; -import org.v2gclarity.risev2g.shared.messageHandling.SendMessage; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import org.apache.logging.log4j.Logger; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.MessageHandler; +import com.v2gclarity.risev2g.shared.messageHandling.ReactionToIncomingMessage; +import com.v2gclarity.risev2g.shared.messageHandling.SendMessage; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.BodyBaseType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public abstract class State { diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/misc/TimeRestrictions.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/misc/TimeRestrictions.java similarity index 97% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/misc/TimeRestrictions.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/misc/TimeRestrictions.java index 7aa3b5d..d9c0db2 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/misc/TimeRestrictions.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/misc/TimeRestrictions.java @@ -21,11 +21,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.misc; +package com.v2gclarity.risev2g.shared.misc; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; /** * All time restrictions are given as millisecond values. diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/misc/V2GCommunicationSession.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/misc/V2GCommunicationSession.java similarity index 86% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/misc/V2GCommunicationSession.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/misc/V2GCommunicationSession.java index f8ee7eb..b4c32f5 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/misc/V2GCommunicationSession.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/misc/V2GCommunicationSession.java @@ -21,26 +21,26 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.misc; +package com.v2gclarity.risev2g.shared.misc; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Observable; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.messageHandling.MessageHandler; -import org.v2gclarity.risev2g.shared.messageHandling.PauseSession; -import org.v2gclarity.risev2g.shared.messageHandling.TerminateSession; -import org.v2gclarity.risev2g.shared.utils.ByteUtils; -import org.v2gclarity.risev2g.shared.utils.MiscUtils; -import org.v2gclarity.risev2g.shared.utils.SecurityUtils; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionListType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; +import org.apache.logging.log4j.Logger; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.messageHandling.MessageHandler; +import com.v2gclarity.risev2g.shared.messageHandling.PauseSession; +import com.v2gclarity.risev2g.shared.messageHandling.TerminateSession; +import com.v2gclarity.risev2g.shared.utils.ByteUtils; +import com.v2gclarity.risev2g.shared.utils.MiscUtils; +import com.v2gclarity.risev2g.shared.utils.SecurityUtils; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionListType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.V2GMessage; public abstract class V2GCommunicationSession extends Observable { @@ -128,7 +128,7 @@ public abstract class V2GCommunicationSession extends Observable { public PaymentOptionListType getPaymentOptions() { @SuppressWarnings("unchecked") - ArrayList paymentOptions = (ArrayList) (MiscUtils.getPropertyValue("SupportedPaymentOptions")); + ArrayList paymentOptions = (ArrayList) (MiscUtils.getPropertyValue("authentication.modes.supported")); if (paymentOptions == null) { paymentOptions = new ArrayList(); @@ -148,8 +148,8 @@ public abstract class V2GCommunicationSession extends Observable { public ArrayList getSupportedEnergyTransferModes() { @SuppressWarnings("unchecked") ArrayList energyTransferModes = - (MiscUtils.getPropertyValue("SupportedEnergyTransferModes") != null) ? - ((ArrayList) MiscUtils.getPropertyValue("SupportedEnergyTransferModes")) : + (MiscUtils.getPropertyValue("energy.transfermodes.supported") != null) ? + ((ArrayList) MiscUtils.getPropertyValue("energy.transfermodes.supported")) : new ArrayList(); return energyTransferModes; @@ -202,7 +202,7 @@ public abstract class V2GCommunicationSession extends Observable { sessionID = generateSessionIDFromValue(0L); } this.sessionID = sessionID; - MiscUtils.getV2gEntityConfig().setProperty("SessionID", String.valueOf(ByteUtils.toLongFromByteArray(sessionID))); + MiscUtils.getV2gEntityConfig().setProperty("session.id", String.valueOf(ByteUtils.toLongFromByteArray(sessionID))); } public V2GTPMessage getV2gTpMessage() { diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/misc/V2GTPMessage.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/misc/V2GTPMessage.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/misc/V2GTPMessage.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/misc/V2GTPMessage.java index ff6a54b..e6b5f5f 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/misc/V2GTPMessage.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/misc/V2GTPMessage.java @@ -21,14 +21,14 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.misc; +package com.v2gclarity.risev2g.shared.misc; import java.nio.ByteBuffer; import java.util.Arrays; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; -import org.v2gclarity.risev2g.shared.utils.ByteUtils; +import org.apache.logging.log4j.Logger; +import com.v2gclarity.risev2g.shared.utils.ByteUtils; public class V2GTPMessage { diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/utils/ByteUtils.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/utils/ByteUtils.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/utils/ByteUtils.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/utils/ByteUtils.java index 1d780cc..228b9d2 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/utils/ByteUtils.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/utils/ByteUtils.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.utils; +package com.v2gclarity.risev2g.shared.utils; import java.io.IOException; import java.io.InputStream; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/utils/MiscUtils.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/utils/MiscUtils.java similarity index 78% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/utils/MiscUtils.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/utils/MiscUtils.java index 276e8c8..af14275 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/utils/MiscUtils.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/utils/MiscUtils.java @@ -21,9 +21,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.utils; +package com.v2gclarity.risev2g.shared.utils; -import java.io.FileInputStream; + import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.net.Inet6Address; @@ -34,13 +35,13 @@ import java.util.ArrayList; import java.util.Enumeration; import java.util.Properties; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.enumerations.V2GMessages; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SupportedEnergyTransferModeType; +import org.apache.logging.log4j.Logger; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.V2GMessages; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.PaymentOptionType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SupportedEnergyTransferModeType; public final class MiscUtils { @@ -60,7 +61,7 @@ public final class MiscUtils { * @return The link-local address given as a String */ public static Inet6Address getLinkLocalAddress() { - String networkInterfaceConfig = getPropertyValue("NetworkInterface").toString(); + String networkInterfaceConfig = getPropertyValue("network.interface").toString(); NetworkInterface nif = null; @@ -85,7 +86,7 @@ public final class MiscUtils { } catch (SocketException e) { getLogger().fatal("SocketException while trying to get network interface for configured name " + networkInterfaceConfig + "'", e); - } catch (NullPointerException e2) { + } catch (NullPointerException | NumberFormatException e2) { getLogger().fatal("No network interface for configured network interface index '" + networkInterfaceConfig + "' found"); } @@ -95,7 +96,7 @@ public final class MiscUtils { public static byte[] getMacAddress() { - String networkInterfaceConfig = getPropertyValue("NetworkInterface").toString(); + String networkInterfaceConfig = getPropertyValue("network.interface").toString(); NetworkInterface nif = null; byte[] macAddress = null; @@ -145,20 +146,20 @@ public final class MiscUtils { } switch (propertyName) { - case "NetworkInterface": // EV + EVSE property + case "network.interface": // EV + EVSE property returnValue = propertyValue; break; - case "SessionID": // EV property + case "session.id": // EV property try { returnValue = Long.parseLong(propertyValue); } catch (NumberFormatException e) { getLogger().warn("SessionID '" + propertyValue + "' not supported. " + "Setting default value to 0.", e); - getV2gEntityConfig().setProperty("SessionID", "0"); + getV2gEntityConfig().setProperty("session.id", "0"); returnValue = 0L; } break; - case "SupportedEnergyTransferModes": // EVSE property + case "energy.transfermodes.supported": // EVSE property String energyTransferMode = ""; SupportedEnergyTransferModeType supportedEnergyTransferModeType = new SupportedEnergyTransferModeType(); if (!propertyValue.equals("")) { @@ -174,7 +175,7 @@ public final class MiscUtils { } returnValue = supportedEnergyTransferModeType.getEnergyTransferMode(); break; - case "RequestedEnergyTransferMode": // EV property + case "energy.transfermode.requested": // EV property try { if (!propertyValue.equals("")) returnValue = EnergyTransferModeType.fromValue(propertyValue); else return null; @@ -183,21 +184,21 @@ public final class MiscUtils { return null; } break; - case "TLSSecurity": // EV property (with this code, TLS is always supported on EVSE side) + case "tls": // EV property (with this code, TLS is always supported on EVSE side) if (Boolean.parseBoolean(propertyValue)) returnValue = GlobalValues.V2G_SECURITY_WITH_TLS.getByteValue(); else returnValue = GlobalValues.V2G_SECURITY_WITHOUT_TLS.getByteValue(); break; - case "ContractCertificateUpdateTimespan": // EV property + case "contract.certificate.update.timespan": // EV property try { returnValue = Integer.parseInt(propertyValue); } catch (NumberFormatException e) { getLogger().warn("ContractCertificateUpdateTimespan '" + propertyValue + "' not supported. " + "Setting default value to 14.", e); - getV2gEntityConfig().setProperty("ContractCertificateUpdateTimespan", "14"); + getV2gEntityConfig().setProperty("contract.certificate.update.timespan", "14"); returnValue = 14; } break; - case "RequestedPaymentOption": // EV property + case "authentication.mode": // EV property try { if (!propertyValue.equals("")) returnValue = PaymentOptionType.fromValue(propertyValue); else return null; @@ -206,7 +207,7 @@ public final class MiscUtils { return null; } break; - case "SupportedPaymentOptions": // EVSE property + case "authentication.modes.supported": // EVSE property // The EVCC needs only one selected option, whereas the SECC can offer Contract AND ExternalPayment String option = ""; ArrayList paymentOptionsList = new ArrayList(); @@ -223,25 +224,25 @@ public final class MiscUtils { } returnValue = paymentOptionsList; break; - case "ChargingForFree": // EVSE property + case "charging.free": // EVSE property returnValue = Boolean.parseBoolean(propertyValue); break; - case "PrivateEnvironment": // EVSE property + case "environment.private": // EVSE property returnValue = Boolean.parseBoolean(propertyValue); break; - case "XMLRepresentationOfMessages": // EV + EVSE property + case "exi.messages.showxml": // EV + EVSE property if (Boolean.parseBoolean(propertyValue)) returnValue = true; else returnValue = false; break; - case "HexAndBase64RepresentationOfMessages": // EV + EVSE property + case "exi.messages.showhex": // EV + EVSE property if (Boolean.parseBoolean(propertyValue)) returnValue = true; else returnValue = false; break; - case "SignatureVerificationLog": // EV + EVSE property + case "signature.verification.showlog": // EV + EVSE property if (Boolean.parseBoolean(propertyValue)) returnValue = true; else returnValue = false; break; - case "EXICodec": // EV + EVSE property + case "exi.codec": // EV + EVSE property if (propertyValue.equals("open_exi")) returnValue = "open_exi"; else returnValue = "exificient"; break; @@ -266,18 +267,31 @@ public final class MiscUtils { } + /** + * Instantiates the properties object with the location of the properties file given as an argument. + * The properties file itself must reside outside the JAR file, at the same level as the JAR file itself, + * because it needs to be editable (JAR file is read-only). + * Therefore, the file is not loaded with getResoruceAsStream(), but with a FileInputStream. + * + * @param propertiesFileLocation The location of the properties file + * @return True, if the properties file could be loaded successfully. + */ public static boolean setV2gEntityConfig(String propertiesFileLocation) { Properties properties = new Properties(); - InputStream config = null; try { - config = new FileInputStream("./" + propertiesFileLocation); + FileInputStream config = new FileInputStream(propertiesFileLocation); properties.load(config); v2gEntityConfig = properties; config.close(); return true; - } catch (IOException e) { - getLogger().error(e.getClass().getSimpleName() + " occurred while trying to set config properties file"); + } catch (FileNotFoundException e) { + getLogger().error("Properties file location '" + propertiesFileLocation + "' not found (FileNotFoundException)." + + "Error occurred while trying to set config properties file."); + return false; + } catch (IOException e2) { + getLogger().error("Unable to load properties file at location '" + propertiesFileLocation + "' (IOException)" + + "Error occurred while trying to set config properties file."); return false; } } diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/utils/SecurityUtils.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/utils/SecurityUtils.java similarity index 97% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/utils/SecurityUtils.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/utils/SecurityUtils.java index 92e0336..708f43f 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/utils/SecurityUtils.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/utils/SecurityUtils.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.utils; +package com.v2gclarity.risev2g.shared.utils; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -101,25 +101,25 @@ import javax.xml.bind.JAXBElement; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.v2gclarity.risev2g.shared.enumerations.GlobalValues; -import org.v2gclarity.risev2g.shared.enumerations.PKI; -import org.v2gclarity.risev2g.shared.exiCodec.ExiCodec; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CanonicalizationMethodType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateChainType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ContractSignatureEncryptedPrivateKeyType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DiffieHellmanPublickeyType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.DigestMethodType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.EMAIDType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ListOfRootCertificateIDsType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ReferenceType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureMethodType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignedInfoType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.SubCertificatesType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.TransformType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.TransformsType; -import org.v2gclarity.risev2g.shared.v2gMessages.msgDef.X509IssuerSerialType; +import com.v2gclarity.risev2g.shared.enumerations.GlobalValues; +import com.v2gclarity.risev2g.shared.enumerations.PKI; +import com.v2gclarity.risev2g.shared.exiCodec.ExiCodec; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CanonicalizationMethodType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.CertificateChainType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ContractSignatureEncryptedPrivateKeyType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DiffieHellmanPublickeyType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.DigestMethodType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.EMAIDType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ListOfRootCertificateIDsType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ReferenceType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.ResponseCodeType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureMethodType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignatureType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SignedInfoType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.SubCertificatesType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.TransformType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.TransformsType; +import com.v2gclarity.risev2g.shared.v2gMessages.msgDef.X509IssuerSerialType; import java.util.Base64; @@ -130,7 +130,7 @@ public final class SecurityUtils { static Logger logger = LogManager.getLogger(SecurityUtils.class.getSimpleName()); static ExiCodec exiCodec; - static boolean showSignatureVerificationLog = ((boolean) MiscUtils.getPropertyValue("SignatureVerificationLog")); + static boolean showSignatureVerificationLog = ((boolean) MiscUtils.getPropertyValue("signature.verification.showlog")); public static enum ContractCertificateStatus { UPDATE_NEEDED, @@ -148,18 +148,24 @@ public final class SecurityUtils { * Returns the standard JKS keystore which holds the respective credentials (private key and * certificate chain) for the EVCC or SECC (whoever calls this method). * + * The keystore file itself must reside outside the JAR file, at the same level as the JAR file itself, + * because + * a) at least the evccKeystore needs to be editable when installing the contract certificate (JAR file is read-only), and + * b) it is very likely that private keys and certificate chains might be stored separately in a secure hardware module. + * Therefore, the file is not loaded with getResourceAsStream(), but with a FileInputStream. + * * @param keyStorePath The relative path and file name of the keystore * @param keyStorePassword The password which protects the keystore * @return The respective keystore */ public static KeyStore getKeyStore(String keyStorePath, String keyStorePassword) { - FileInputStream fis = null; + FileInputStream keyStore; + try { - fis = new FileInputStream(keyStorePath); - return getKeyStore(fis, keyStorePassword, "jks"); + keyStore = new FileInputStream(keyStorePath); + return getKeyStore(keyStore, keyStorePassword, "jks"); } catch (FileNotFoundException e) { - getLogger().error("FileNotFoundException occurred while trying to access keystore at location '" + - keyStorePath + "'"); + getLogger().error("Keystore file location '" + keyStorePath + "' not found (FileNotFoundException)."); return null; } } @@ -168,18 +174,24 @@ public final class SecurityUtils { * Returns the standard JKS truststore which holds the respective trusted certificates for the EVCC * or SECC (whoever calls this method). * + * The truststore file itself must reside outside the JAR file, at the same level as the JAR file itself, + * because + * a) at least the evccKeystore needs to be editable when installing the contract certificate (JAR file is read-only), and + * b) it is very likely that private keys and certificate chains might be stored separately in a secure hardware module. + * Therefore, the file is not loaded with getResourceAsStream(), but with a FileInputStream. + * * @param trustStorePath The relative path and file name of the truststore * @param trustStorePassword The password which protects the truststore * @return The respective truststore */ public static KeyStore getTrustStore(String trustStorePath, String trustStorePassword) { - FileInputStream fis = null; + FileInputStream trustStore; + try { - fis = new FileInputStream(trustStorePath); - return getKeyStore(fis, trustStorePassword, "jks"); + trustStore = new FileInputStream(trustStorePath); + return getKeyStore(trustStore, trustStorePassword, "jks"); } catch (FileNotFoundException e) { - getLogger().error("FileNotFoundException occurred while trying to access keystore at location '" + - trustStorePath + "'"); + getLogger().error("Truststore file location '" + trustStorePath + "' not found (FileNotFoundException)."); return null; } } @@ -194,6 +206,7 @@ public final class SecurityUtils { */ public static KeyStore getPKCS12KeyStore(String pkcs12Path, String password) { FileInputStream fis = null; + try { fis = new FileInputStream(pkcs12Path); return getKeyStore(fis, password, "pkcs12"); @@ -527,7 +540,7 @@ public final class SecurityUtils { } } catch (KeyStoreException | NullPointerException e) { getLogger().error(e.getClass().getSimpleName() + " occurred while trying to verify trust " + - " status of certificate with distinguished name '" + + "status of certificate with distinguished name '" + certificate.getSubjectX500Principal().getName() + "' with truststore at " + "location '" + trustStoreFilename + "'", e); } diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/utils/SleepUtils.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/utils/SleepUtils.java similarity index 90% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/utils/SleepUtils.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/utils/SleepUtils.java index bd26374..5dedf73 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/utils/SleepUtils.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/utils/SleepUtils.java @@ -1,4 +1,4 @@ -package org.v2gclarity.risev2g.shared.utils; +package com.v2gclarity.risev2g.shared.utils; import java.util.concurrent.TimeUnit; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/SECCDiscoveryReq.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/SECCDiscoveryReq.java similarity index 97% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/SECCDiscoveryReq.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/SECCDiscoveryReq.java index 1c71be6..5a7e277 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/SECCDiscoveryReq.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/SECCDiscoveryReq.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.v2gMessages; +package com.v2gclarity.risev2g.shared.v2gMessages; import java.util.Arrays; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/SECCDiscoveryRes.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/SECCDiscoveryRes.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/SECCDiscoveryRes.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/SECCDiscoveryRes.java index a62a612..d0634a5 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/SECCDiscoveryRes.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/SECCDiscoveryRes.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *******************************************************************************/ -package org.v2gclarity.risev2g.shared.v2gMessages; +package com.v2gclarity.risev2g.shared.v2gMessages; import java.nio.ByteBuffer; import java.util.Arrays; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/AppProtocolType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/AppProtocolType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/AppProtocolType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/AppProtocolType.java index ac482e1..0d7aa2f 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/AppProtocolType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/AppProtocolType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.appProtocol; +package com.v2gclarity.risev2g.shared.v2gMessages.appProtocol; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/ObjectFactory.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/ObjectFactory.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/ObjectFactory.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/ObjectFactory.java index 58c657c..196982e 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/ObjectFactory.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/ObjectFactory.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.appProtocol; +package com.v2gclarity.risev2g.shared.v2gMessages.appProtocol; import javax.xml.bind.annotation.XmlRegistry; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/ResponseCodeType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/ResponseCodeType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/ResponseCodeType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/ResponseCodeType.java index 555aaa6..39806b8 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/ResponseCodeType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/ResponseCodeType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.appProtocol; +package com.v2gclarity.risev2g.shared.v2gMessages.appProtocol; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/SupportedAppProtocolReq.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/SupportedAppProtocolReq.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/SupportedAppProtocolReq.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/SupportedAppProtocolReq.java index b1a959c..5d718cf 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/SupportedAppProtocolReq.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/SupportedAppProtocolReq.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.appProtocol; +package com.v2gclarity.risev2g.shared.v2gMessages.appProtocol; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/SupportedAppProtocolRes.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/SupportedAppProtocolRes.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/SupportedAppProtocolRes.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/SupportedAppProtocolRes.java index 51d4a5c..bd7329b 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/SupportedAppProtocolRes.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/SupportedAppProtocolRes.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.appProtocol; +package com.v2gclarity.risev2g.shared.v2gMessages.appProtocol; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/package-info.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/package-info.java similarity index 96% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/package-info.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/package-info.java index a0ef66e..7001ffa 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/appProtocol/package-info.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/appProtocol/package-info.java @@ -29,4 +29,4 @@ // @javax.xml.bind.annotation.XmlSchema(namespace = "urn:iso:15118:2:2010:AppProtocol") -package org.v2gclarity.risev2g.shared.v2gMessages.appProtocol; +package com.v2gclarity.risev2g.shared.v2gMessages.appProtocol; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVChargeParameterType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVChargeParameterType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVChargeParameterType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVChargeParameterType.java index ea59f1f..2ffc242 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVChargeParameterType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVChargeParameterType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVSEChargeParameterType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVSEChargeParameterType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVSEChargeParameterType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVSEChargeParameterType.java index 0e48ba5..d35d005 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVSEChargeParameterType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVSEChargeParameterType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVSEStatusType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVSEStatusType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVSEStatusType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVSEStatusType.java index 6607574..939058c 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVSEStatusType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ACEVSEStatusType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/AuthorizationReqType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/AuthorizationReqType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/AuthorizationReqType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/AuthorizationReqType.java index 56945ad..e4c967f 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/AuthorizationReqType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/AuthorizationReqType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/AuthorizationResType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/AuthorizationResType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/AuthorizationResType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/AuthorizationResType.java index b6f301d..bea04ae 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/AuthorizationResType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/AuthorizationResType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/BodyBaseType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/BodyBaseType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/BodyBaseType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/BodyBaseType.java index 498c39b..6477820 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/BodyBaseType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/BodyBaseType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/BodyType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/BodyType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/BodyType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/BodyType.java index a919f72..938f8fe 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/BodyType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/BodyType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.JAXBElement; import javax.xml.bind.annotation.XmlAccessType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CableCheckReqType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CableCheckReqType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CableCheckReqType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CableCheckReqType.java index e5e6071..2362a61 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CableCheckReqType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CableCheckReqType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CableCheckResType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CableCheckResType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CableCheckResType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CableCheckResType.java index 74454ad..c0f7614 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CableCheckResType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CableCheckResType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CanonicalizationMethodType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CanonicalizationMethodType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CanonicalizationMethodType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CanonicalizationMethodType.java index f013992..52326aa 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CanonicalizationMethodType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CanonicalizationMethodType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateChainType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateChainType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateChainType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateChainType.java index 2d77363..1a47740 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateChainType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateChainType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateInstallationReqType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateInstallationReqType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateInstallationReqType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateInstallationReqType.java index 0dc2eb6..b1d61ad 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateInstallationReqType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateInstallationReqType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateInstallationResType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateInstallationResType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateInstallationResType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateInstallationResType.java index d2cd846..5ee10a1 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateInstallationResType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateInstallationResType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateUpdateReqType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateUpdateReqType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateUpdateReqType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateUpdateReqType.java index 76245a4..e41c657 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateUpdateReqType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateUpdateReqType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateUpdateResType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateUpdateResType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateUpdateResType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateUpdateResType.java index 4382130..d32ad5b 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateUpdateResType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CertificateUpdateResType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeParameterDiscoveryReqType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeParameterDiscoveryReqType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeParameterDiscoveryReqType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeParameterDiscoveryReqType.java index b7fe13e..3bdc1ff 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeParameterDiscoveryReqType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeParameterDiscoveryReqType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.JAXBElement; import javax.xml.bind.annotation.XmlAccessType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeParameterDiscoveryResType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeParameterDiscoveryResType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeParameterDiscoveryResType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeParameterDiscoveryResType.java index e466ae7..9033533 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeParameterDiscoveryResType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeParameterDiscoveryResType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.JAXBElement; import javax.xml.bind.annotation.XmlAccessType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeProgressType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeProgressType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeProgressType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeProgressType.java index 9ca0276..af6ae8a 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeProgressType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeProgressType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeServiceType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeServiceType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeServiceType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeServiceType.java index 056a3db..f30d9e8 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeServiceType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargeServiceType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingProfileType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingProfileType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingProfileType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingProfileType.java index 2f65d07..c854d5b 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingProfileType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingProfileType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingSessionType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingSessionType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingSessionType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingSessionType.java index 07a131d..f269139 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingSessionType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingSessionType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingStatusReqType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingStatusReqType.java similarity index 97% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingStatusReqType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingStatusReqType.java index ab93e71..c1b810d 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingStatusReqType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingStatusReqType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingStatusResType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingStatusResType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingStatusResType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingStatusResType.java index 292f30c..58441c4 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingStatusResType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ChargingStatusResType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ConsumptionCostType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ConsumptionCostType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ConsumptionCostType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ConsumptionCostType.java index 006ffa1..cb03cd0 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ConsumptionCostType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ConsumptionCostType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ContractSignatureEncryptedPrivateKeyType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ContractSignatureEncryptedPrivateKeyType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ContractSignatureEncryptedPrivateKeyType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ContractSignatureEncryptedPrivateKeyType.java index 24145a4..0262438 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ContractSignatureEncryptedPrivateKeyType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ContractSignatureEncryptedPrivateKeyType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CostKindType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CostKindType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CostKindType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CostKindType.java index 2ea9df7..db1be95 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CostKindType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CostKindType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CostType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CostType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CostType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CostType.java index 0051619..1decd76 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CostType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CostType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CurrentDemandReqType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CurrentDemandReqType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CurrentDemandReqType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CurrentDemandReqType.java index bd49cf7..0f4c227 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CurrentDemandReqType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CurrentDemandReqType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CurrentDemandResType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CurrentDemandResType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CurrentDemandResType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CurrentDemandResType.java index c5298ce..61270bd 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/CurrentDemandResType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/CurrentDemandResType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVChargeParameterType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVChargeParameterType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVChargeParameterType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVChargeParameterType.java index 0c05f6a..9fd7163 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVChargeParameterType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVChargeParameterType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVErrorCodeType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVErrorCodeType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVErrorCodeType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVErrorCodeType.java index 8d5cd9e..1503553 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVErrorCodeType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVErrorCodeType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVPowerDeliveryParameterType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVPowerDeliveryParameterType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVPowerDeliveryParameterType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVPowerDeliveryParameterType.java index fd37899..808a8a0 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVPowerDeliveryParameterType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVPowerDeliveryParameterType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEChargeParameterType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEChargeParameterType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEChargeParameterType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEChargeParameterType.java index 84c6d81..8bfffba 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEChargeParameterType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEChargeParameterType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEStatusCodeType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEStatusCodeType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEStatusCodeType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEStatusCodeType.java index a884c5a..234cd9c 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEStatusCodeType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEStatusCodeType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEStatusType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEStatusType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEStatusType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEStatusType.java index 5c37c39..ef7314e 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEStatusType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVSEStatusType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVStatusType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVStatusType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVStatusType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVStatusType.java index 2266883..c12d5e3 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVStatusType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DCEVStatusType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DSAKeyValueType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DSAKeyValueType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DSAKeyValueType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DSAKeyValueType.java index 5a9625c..5388c48 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DSAKeyValueType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DSAKeyValueType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DiffieHellmanPublickeyType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DiffieHellmanPublickeyType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DiffieHellmanPublickeyType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DiffieHellmanPublickeyType.java index 2545107..532e9d3 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DiffieHellmanPublickeyType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DiffieHellmanPublickeyType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DigestMethodType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DigestMethodType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DigestMethodType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DigestMethodType.java index 2dc9553..b5d9ff1 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/DigestMethodType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/DigestMethodType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EMAIDType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EMAIDType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EMAIDType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EMAIDType.java index d8c13d3..1bac0cb 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EMAIDType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EMAIDType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVChargeParameterType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVChargeParameterType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVChargeParameterType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVChargeParameterType.java index 2533360..0e2c6de 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVChargeParameterType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVChargeParameterType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVPowerDeliveryParameterType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVPowerDeliveryParameterType.java similarity index 97% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVPowerDeliveryParameterType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVPowerDeliveryParameterType.java index 33102db..4449902 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVPowerDeliveryParameterType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVPowerDeliveryParameterType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEChargeParameterType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEChargeParameterType.java similarity index 97% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEChargeParameterType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEChargeParameterType.java index 84eea9f..0aa4483 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEChargeParameterType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEChargeParameterType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSENotificationType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSENotificationType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSENotificationType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSENotificationType.java index b98e626..ecc30fb 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSENotificationType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSENotificationType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEProcessingType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEProcessingType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEProcessingType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEProcessingType.java index 8fa4664..097c9f8 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEProcessingType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEProcessingType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEStatusType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEStatusType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEStatusType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEStatusType.java index 6a16013..4c50ddf 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEStatusType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVSEStatusType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVStatusType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVStatusType.java similarity index 97% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVStatusType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVStatusType.java index 503b83d..1b1b39c 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVStatusType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EVStatusType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EnergyTransferModeType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EnergyTransferModeType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EnergyTransferModeType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EnergyTransferModeType.java index 85c7ae3..77dbd41 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EnergyTransferModeType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EnergyTransferModeType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EntryType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EntryType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EntryType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EntryType.java index 83d3153..cdbe15e 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/EntryType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/EntryType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.JAXBElement; import javax.xml.bind.annotation.XmlAccessType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/FaultCodeType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/FaultCodeType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/FaultCodeType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/FaultCodeType.java index 22aaf8a..d28265f 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/FaultCodeType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/FaultCodeType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/IntervalType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/IntervalType.java similarity index 97% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/IntervalType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/IntervalType.java index 93b4ee2..7f7139c 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/IntervalType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/IntervalType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/IsolationLevelType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/IsolationLevelType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/IsolationLevelType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/IsolationLevelType.java index 4fcf29d..1ad45d2 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/IsolationLevelType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/IsolationLevelType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/KeyInfoType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/KeyInfoType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/KeyInfoType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/KeyInfoType.java index b1badf5..530fc6c 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/KeyInfoType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/KeyInfoType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/KeyValueType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/KeyValueType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/KeyValueType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/KeyValueType.java index c99a0a3..61822d5 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/KeyValueType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/KeyValueType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ListOfRootCertificateIDsType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ListOfRootCertificateIDsType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ListOfRootCertificateIDsType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ListOfRootCertificateIDsType.java index ea8ce00..2610e78 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ListOfRootCertificateIDsType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ListOfRootCertificateIDsType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ManifestType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ManifestType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ManifestType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ManifestType.java index e8c3e83..ed519a4 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ManifestType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ManifestType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/MessageHeaderType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/MessageHeaderType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/MessageHeaderType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/MessageHeaderType.java index 8a80668..da7979f 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/MessageHeaderType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/MessageHeaderType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeterInfoType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeterInfoType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeterInfoType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeterInfoType.java index 1e43ccb..8ed524c 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeterInfoType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeterInfoType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.math.BigInteger; import javax.xml.bind.annotation.XmlAccessType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeteringReceiptReqType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeteringReceiptReqType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeteringReceiptReqType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeteringReceiptReqType.java index 4f6ee5b..9603565 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeteringReceiptReqType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeteringReceiptReqType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeteringReceiptResType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeteringReceiptResType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeteringReceiptResType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeteringReceiptResType.java index 67a854e..c649407 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeteringReceiptResType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/MeteringReceiptResType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.JAXBElement; import javax.xml.bind.annotation.XmlAccessType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/NotificationType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/NotificationType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/NotificationType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/NotificationType.java index 1b568c7..1ec30a2 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/NotificationType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/NotificationType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ObjectFactory.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ObjectFactory.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ObjectFactory.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ObjectFactory.java index 7541948..b8589c1 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ObjectFactory.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ObjectFactory.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.math.BigInteger; import javax.xml.bind.JAXBElement; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ObjectType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ObjectType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ObjectType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ObjectType.java index ca222ce..48c984b 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ObjectType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ObjectType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PGPDataType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PGPDataType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PGPDataType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PGPDataType.java index 5b987dc..b70f34a 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PGPDataType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PGPDataType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PMaxScheduleEntryType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PMaxScheduleEntryType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PMaxScheduleEntryType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PMaxScheduleEntryType.java index 671d043..8f5403e 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PMaxScheduleEntryType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PMaxScheduleEntryType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PMaxScheduleType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PMaxScheduleType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PMaxScheduleType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PMaxScheduleType.java index cffda50..f41a47b 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PMaxScheduleType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PMaxScheduleType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ParameterSetType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ParameterSetType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ParameterSetType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ParameterSetType.java index 3a43dd0..6fd8c31 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ParameterSetType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ParameterSetType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ParameterType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ParameterType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ParameterType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ParameterType.java index c9b8864..113f8ce 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ParameterType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ParameterType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentDetailsReqType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentDetailsReqType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentDetailsReqType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentDetailsReqType.java index 0249671..bf981cc 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentDetailsReqType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentDetailsReqType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentDetailsResType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentDetailsResType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentDetailsResType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentDetailsResType.java index b540f5d..2ca7880 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentDetailsResType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentDetailsResType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentOptionListType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentOptionListType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentOptionListType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentOptionListType.java index 2a87213..6fdef39 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentOptionListType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentOptionListType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentOptionType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentOptionType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentOptionType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentOptionType.java index d02b21e..49a9c4c 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentOptionType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentOptionType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentServiceSelectionReqType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentServiceSelectionReqType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentServiceSelectionReqType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentServiceSelectionReqType.java index 1db2a54..1ae5f66 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentServiceSelectionReqType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentServiceSelectionReqType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentServiceSelectionResType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentServiceSelectionResType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentServiceSelectionResType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentServiceSelectionResType.java index 4aa177a..eeb9217 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentServiceSelectionResType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PaymentServiceSelectionResType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PhysicalValueType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PhysicalValueType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PhysicalValueType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PhysicalValueType.java index ba0d5b9..ec1dc27 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PhysicalValueType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PhysicalValueType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PowerDeliveryReqType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PowerDeliveryReqType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PowerDeliveryReqType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PowerDeliveryReqType.java index c2ebbdb..d2426f8 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PowerDeliveryReqType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PowerDeliveryReqType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.JAXBElement; import javax.xml.bind.annotation.XmlAccessType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PowerDeliveryResType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PowerDeliveryResType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PowerDeliveryResType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PowerDeliveryResType.java index e6c9224..d94deb2 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PowerDeliveryResType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PowerDeliveryResType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.JAXBElement; import javax.xml.bind.annotation.XmlAccessType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PreChargeReqType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PreChargeReqType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PreChargeReqType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PreChargeReqType.java index 50bc20a..b1f14c7 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PreChargeReqType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PreChargeReqType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PreChargeResType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PreChargeResType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PreChargeResType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PreChargeResType.java index 020637e..bd57d96 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/PreChargeResType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/PreChargeResType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ProfileEntryType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ProfileEntryType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ProfileEntryType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ProfileEntryType.java index c08c9af..9830c93 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ProfileEntryType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ProfileEntryType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/RSAKeyValueType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/RSAKeyValueType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/RSAKeyValueType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/RSAKeyValueType.java index 12d0c4b..e4deb6b 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/RSAKeyValueType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/RSAKeyValueType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ReferenceType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ReferenceType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ReferenceType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ReferenceType.java index 887bc4e..b35d63d 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ReferenceType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ReferenceType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/RelativeTimeIntervalType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/RelativeTimeIntervalType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/RelativeTimeIntervalType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/RelativeTimeIntervalType.java index 20c35fc..ad69b43 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/RelativeTimeIntervalType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/RelativeTimeIntervalType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ResponseCodeType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ResponseCodeType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ResponseCodeType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ResponseCodeType.java index e72cf72..e0f1f9c 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ResponseCodeType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ResponseCodeType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/RetrievalMethodType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/RetrievalMethodType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/RetrievalMethodType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/RetrievalMethodType.java index 3fabdd4..d3aba51 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/RetrievalMethodType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/RetrievalMethodType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SAScheduleListType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SAScheduleListType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SAScheduleListType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SAScheduleListType.java index 03eec91..7e107aa 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SAScheduleListType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SAScheduleListType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SAScheduleTupleType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SAScheduleTupleType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SAScheduleTupleType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SAScheduleTupleType.java index 0419dc8..0e1bb5b 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SAScheduleTupleType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SAScheduleTupleType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SASchedulesType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SASchedulesType.java similarity index 97% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SASchedulesType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SASchedulesType.java index 9b4b841..ba1c662 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SASchedulesType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SASchedulesType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SPKIDataType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SPKIDataType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SPKIDataType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SPKIDataType.java index 88f35f5..aafd352 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SPKIDataType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SPKIDataType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SalesTariffEntryType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SalesTariffEntryType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SalesTariffEntryType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SalesTariffEntryType.java index 774bdc5..1d4d08d 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SalesTariffEntryType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SalesTariffEntryType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SalesTariffType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SalesTariffType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SalesTariffType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SalesTariffType.java index 54234c5..3bf3640 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SalesTariffType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SalesTariffType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SelectedServiceListType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SelectedServiceListType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SelectedServiceListType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SelectedServiceListType.java index 895a709..8c67672 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SelectedServiceListType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SelectedServiceListType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SelectedServiceType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SelectedServiceType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SelectedServiceType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SelectedServiceType.java index 456ef1c..4ab6037 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SelectedServiceType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SelectedServiceType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceCategoryType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceCategoryType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceCategoryType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceCategoryType.java index 80e8498..43f7076 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceCategoryType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceCategoryType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDetailReqType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDetailReqType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDetailReqType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDetailReqType.java index bcf2178..349889f 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDetailReqType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDetailReqType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDetailResType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDetailResType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDetailResType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDetailResType.java index 08de414..4cecc76 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDetailResType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDetailResType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDiscoveryReqType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDiscoveryReqType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDiscoveryReqType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDiscoveryReqType.java index 48a7411..fa7279c 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDiscoveryReqType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDiscoveryReqType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDiscoveryResType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDiscoveryResType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDiscoveryResType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDiscoveryResType.java index 9528ff2..b1d9c35 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDiscoveryResType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceDiscoveryResType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceListType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceListType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceListType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceListType.java index ef1f4ec..7384ceb 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceListType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceListType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceParameterListType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceParameterListType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceParameterListType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceParameterListType.java index ae07801..844f014 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceParameterListType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceParameterListType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceType.java index 0036f7e..7d3f9c5 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ServiceType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionSetupReqType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionSetupReqType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionSetupReqType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionSetupReqType.java index d66e01c..27672bf 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionSetupReqType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionSetupReqType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionSetupResType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionSetupResType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionSetupResType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionSetupResType.java index 60901e4..fa93c60 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionSetupResType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionSetupResType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionStopReqType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionStopReqType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionStopReqType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionStopReqType.java index 398a909..bc91391 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionStopReqType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionStopReqType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionStopResType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionStopResType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionStopResType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionStopResType.java index 1e67124..083124b 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionStopResType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SessionStopResType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureMethodType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureMethodType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureMethodType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureMethodType.java index 39a8c51..8a6a71a 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureMethodType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureMethodType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.math.BigInteger; import java.util.ArrayList; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignaturePropertiesType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignaturePropertiesType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignaturePropertiesType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignaturePropertiesType.java index 53561b5..955f5fd 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignaturePropertiesType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignaturePropertiesType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignaturePropertyType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignaturePropertyType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignaturePropertyType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignaturePropertyType.java index 11f6882..1467dc8 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignaturePropertyType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignaturePropertyType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureType.java index ea6d828..5bfd3d4 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureValueType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureValueType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureValueType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureValueType.java index b17da53..27d70cb 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureValueType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignatureValueType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignedInfoType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignedInfoType.java similarity index 99% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignedInfoType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignedInfoType.java index 3151872..6df3fcc 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignedInfoType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SignedInfoType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SubCertificatesType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SubCertificatesType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SubCertificatesType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SubCertificatesType.java index 704a493..0de0015 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SubCertificatesType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SubCertificatesType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SupportedEnergyTransferModeType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SupportedEnergyTransferModeType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SupportedEnergyTransferModeType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SupportedEnergyTransferModeType.java index bd624f8..5ecb4cc 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/SupportedEnergyTransferModeType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/SupportedEnergyTransferModeType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/TransformType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/TransformType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/TransformType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/TransformType.java index 3e66db2..809743e 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/TransformType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/TransformType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/TransformsType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/TransformsType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/TransformsType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/TransformsType.java index 4aec3c0..5915a55 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/TransformsType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/TransformsType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/UnitSymbolType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/UnitSymbolType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/UnitSymbolType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/UnitSymbolType.java index 2841937..3bf596d 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/UnitSymbolType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/UnitSymbolType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/V2GMessage.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/V2GMessage.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/V2GMessage.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/V2GMessage.java index 03c8dc9..c161b70 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/V2GMessage.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/V2GMessage.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ValueType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ValueType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ValueType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ValueType.java index bbf23fd..c3789aa 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/ValueType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/ValueType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/WeldingDetectionReqType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/WeldingDetectionReqType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/WeldingDetectionReqType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/WeldingDetectionReqType.java index 427dfb9..9a363ad 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/WeldingDetectionReqType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/WeldingDetectionReqType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/WeldingDetectionResType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/WeldingDetectionResType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/WeldingDetectionResType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/WeldingDetectionResType.java index 73b2c14..2e0e077 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/WeldingDetectionResType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/WeldingDetectionResType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/X509DataType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/X509DataType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/X509DataType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/X509DataType.java index c58147b..9170f5b 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/X509DataType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/X509DataType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.util.ArrayList; import java.util.List; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/X509IssuerSerialType.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/X509IssuerSerialType.java similarity index 98% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/X509IssuerSerialType.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/X509IssuerSerialType.java index 6c57a10..7389af9 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/X509IssuerSerialType.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/X509IssuerSerialType.java @@ -29,7 +29,7 @@ // -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; import java.math.BigInteger; import javax.xml.bind.annotation.XmlAccessType; diff --git a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/package-info.java b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/package-info.java similarity index 96% rename from RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/package-info.java rename to RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/package-info.java index eb88224..4db01c0 100644 --- a/RISE-V2G-Shared/src/main/java/org/v2gclarity/risev2g/shared/v2gMessages/msgDef/package-info.java +++ b/RISE-V2G-Shared/src/main/java/com/v2gclarity/risev2g/shared/v2gMessages/msgDef/package-info.java @@ -29,4 +29,4 @@ // @javax.xml.bind.annotation.XmlSchema(namespace = "urn:iso:15118:2:2013:MsgDataTypes", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) -package org.v2gclarity.risev2g.shared.v2gMessages.msgDef; +package com.v2gclarity.risev2g.shared.v2gMessages.msgDef; diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 2190ba1..0000000 --- a/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - 4.0.0 - - org.v2gclarity.risev2g - parent - pom - 1.0.0-SNAPSHOT - risev2g.parent - - - RISE-V2G-Shared - RISE-V2G-EVCC - RISE-V2G-SECC - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - 1.8 - 1.8 - - - - - org.apache.maven.plugins - maven-eclipse-plugin - - 1.8 - 1.8 - - - - - - - - - - junit - junit - 3.8.1 - test - - - \ No newline at end of file