Skip to content
Compare
Choose a tag to compare

Build artifacts are available on maven central.

A development release targeting LWM2M 1.1, see LWM2M 1.1 supported features.
⚠️ As a milestone release keep in mind API could/will be broken in next milestone.

If you are interested in LWM2M 1.1 support in Leshan, we strongly advice to :

This is the best way to get a final 2.0.0 release which fits your needs.

Noteworthy

  • Massive Refactoring about CoRE link Format and LWM2M Attributes (#1197)
  • Add Timestamped nodes support to Send Operation at server side. (#1218)
  • Keep resources order from DFF file in ObjectModel. (#1245)
  • Integration of Californium 3.4.0.
  • some demo servers fixes and optimizations.

Many thanks to @Michal-Wadowski (#1218) and @adamsero (#1246, #1247) their contribution 🙏 !

Change logs

a759c24: #1228: Add timestampedNodes support to SenML encoder.
389e60b: #1245: Keep resources order from DFF file in ObjectModel.
31d2dc9: Fix some missing icons in bsserver demo (regression from accc643)
9943413: Fix Bootstrap UI issue : bad serverInput sync in bootstrap wizard
b97b194: Update last Browsers Data in yarn.lock (servers demo)
2c9fa23: Add some security information about CVE-2022-21449
accc643: Avoid to load whole material design font.
0c52113: Add "yarn report" command to analyze bundle (generate report.html)
7123a40: Upgrade Bootstrap Server demo Yarn DevDependencies
181b0e9: Upgrade Server demo Yarn DevDependencies
dafb1ad: Update yarn.lock dependencies for server and bsserver demo
54dfb6c: Fix some String.format message in DefaultLwM2mLinkParser.
afea4b0: Add Exception in LOG of BaseBootstrapConsistencyChecker.checkconfig()
79b10c2: Integration of Californium 3.4.0
55ee6b2: Security Fix ? upgrade to jackson-databind 2.13.2.1
2adb128: Integration of Californium 3.3.1
b047a28: Security fix : upgrade com.upokecenter.cbor to v4.5.2
633e3e2: #1218: Add Timestamped nodes support to Send Operation at server side.
21bf6b9: Add scheme URL check to leshan-client-demo
6cb81d8: server-demo: add some more object icons.
76bb72f: server-demo: fix serialization regression about Link attribute.
3ec790b: server-demo: fix reactive issue when override existing security info.
ce46f14: bsserver-demo: fix reactive issue when override existing config.
d4839f5: bsserver-demo: Fix Bootstrap Config dialog issue.
30f79d3: #1197: Massive Refactoring about CoRE link Format and LWM2M Attributes

Compare
Choose a tag to compare

Build artifacts are available on maven central.

Noteworthy

  • Add an API to parse Execute Request Arguments.
  • Integration of Californium 2.7.1.
  • Upgrade library dependencies (slf4j, logback, ...)
  • Update ddf model for core library and demo.
  • Add support of LWM2M Object Test (3441) to demo

Change logs

63cf677: Upgrade dependencies and maven plugin dependencies.
aa4548b: Integration of Californium 2.7.1
f9c39a6: Integration of Californium 2.7.0
ed23859: Add ObjectLoader.loadAllDefault()
4b36f26: Add Basic implementation of LwM2m Object Test(3441)
e271844: Update/Add last registered ddf model for demos.
9c266f7: Update to last ddf model for LWM2M core object.
010d257: Add DdfDownloaded.
12a101a: Add Arguments API to parse Execute Request Arguments.

Compare
Choose a tag to compare

☠️ Affected by security issue☠️

Build artifacts are available on maven central.

A development release targeting LWM2M 1.1, see LWM2M 1.1 supported features.
⚠️ As a milestone release keep in mind API could/will be broken in next milestone.

If you are interested in LWM2M 1.1 support in Leshan, we strongly advice to :

This is the best way to get a final 2.0.0 release which fits your needs.

Noteworthy

  • New API/Parser/Serializer for Execute request Arguments (#1097)
  • Better SendData Error handling. (#1187)
  • Fix some issue about Number with SenML encoding/decoding. (#1170,#1176)
  • Add support of Composite-Operation to server-demo.
  • Improve New Configuration wizard of bsserver-demo.
  • Use now Java8 as minimal version (#924)
  • Remove old UI for both server demos.
  • Remove GSON and minimal-json dependencies (#1045)
  • Remove jackson-dataformat-cbor dependency.
  • Integration of Californium 3.2.0.
  • Update to last LWM2M models.
  • Update library dependencies.

Many thanks to @Michal-Wadowski (#1097, #1045) and @JaroslawLegierski (#1187) their contribution 🙏 !

Change logs

42c7fcf: Use new DtlsConfig.addSessionListener() of cf 3.2.0.
0d332bb: Integration of Californium 3.2.0
84b1eef: #1187: Better SendData Error handling.
cb84a3d: Fix Observe regression in server-demo introduced by c30fe46
afce36c: Upgrade to jedis 4.0.1 (from 3.5.2)
f775383: Remove unused dependencies.
159bda4: Upgrade maven dependencies.
231a707: Upgrade maven-plugin-dependencies.
a62e8bf: Fix Type guessing of CBOR Decoder.
0374563: Rename FLOAT Type/Value in NUMBER Type/Value in SenMLRecord
1193cf3: Fix float handling for senml-cbor.
39f5757: Fix exception in error message in NumberUtil.numberToDouble()
e06aaa5: server-demo: Add support of Write-Composite.
d4d5523: server-demo: In CompositeObjectView use nodes as Object instead of Array
acdcbaa: Integration of Californium 3.1.0
54cec68: #1176: Make SenML-CBOR decoder more strict about number conversion.
c30fe46: server-demo: Add Observe-Composite Operation to leshan-server-demo
074bce3: Add cancelCompositeObservations to ObservationService
5572b79: Add some more LWM2M Object Icons to server-demo.
d5ca8c9: server-demo: sort objects by object ID.
9363e76: server-demo: Warn if device list Sec or OSCORE Object at registration
ac4f309: Add some more LWM2M Object Icons to server-demo.
28491cb: Fix typo in DDFFileParser : shema => schema.
b4884b5: Fix revapi configuration (filter californium).
e1014e9: Add "send Data" support to LwM2mTestObject
a3c6e67: server-demo: add support of Unsigned Long
ed16077: Add ULong support to LwM2mTestObject
03290b1: Add LWM2M v1.1 Object (3442) model to demos.
64314cb: Fix LWM2M registry models.
594b59b: Update Object models (get last version from LWM2M registry) in demos.
9612b63: Update LWM2M Core Object models (get missing last version)
6e39f04: Set Core Object Version used in Tests.
f475e90: Update SECURITY.md : add Versions Security State.
16a11c6: server-demo: Add UI for Read-Composite Operation.
05deb54: server-demo: Add Composite Object to be able to add Composite Operation
9720c44: server-demo: Resource definition view.
c8caa11: server-demo: create expansion panel view for lwm2m resources.
ddd0461: server-demo: add availableInstances in registration
8965f21: server-demo: Create input to edit list of LWM2M path
1c98fb2: Update SECURITY.md
c461785: #1097: add new API/Parser/Serializer for Execute request Arguments
cdea253: NumberUtil should raise IllegalArgumentException instead of IllegalState
ca74049: #1170: add safe conversion from decimal to long/ulong in NumberUtils.
eb33697: #1170: Add a test about conversion from double to long with SenML.
0cba977: #1082: Create dedicated LwM2mPathInvalidException.
e7a6f92: Add private methods to LwM2mNodeUtil.
d5a8a73: bsserver-demo: change default file name of JSONFileBootstrapStore.
fe0e116: bsserver-demo: add support of "Auto ID For Security Object"
0c03682: BootstrapServer: add validation about path to delete.
227f129: bsserver-demo: add delete path step to define which path to delete.
6ff40bb: bsserver-demo: show path to delete in Config column of bootstrap view.
609ffbf: bsserver-demo: display bootstrap config in only 1 column.
7cba814: bsserver-demo: Being able to create Bootstrap config without bs server.
6abb95c: bsserver-demo: Being able to create Bootstrap config without dm server.
152cd9c: servers-demo: share more vuejs code instead of duplicate it.
dd8e25f: #1112: Add Credentials column in Bootstrap View
e07dc19: bsserver-demo: move some byte utils function to byteutils.js
7df18e3: bsserver-demo: remove redundant error handling(already done in axios.js)
771b837: #1112: Add SecurityStep to wizard to define how client authenticate.
094ab55: servers-demo: share vuejs code instead of duplicate it.
06b683c: bsserver-demo:fix wizard issue about initialization of validation
8632f3b: bsserver-demo: move each wizard step in its own vue component.
bc3ddf3: bsserver-demo: Add a BootstrapSecurityStoreAdapter.
e9073fc: servers-demo: move classes from server-demo to server-core-demo
02c0359: #1163: fix bad request when create X509 security info in server-demo.
d9f1cf2: #924: Switch as Java8 as minimal version.
ffb6197: #1136: Remove keystore way to provide Ceritficate to leshan-server-demo
7bcb1af: #936: change CaConstraint cert usage to not support "trustanchor mode".
5cdba82: server-demo: fix UI bug about "Send Operation" for resourceInstances.
553afdc: #1155: Fix LwM2mResourceInstance.newInstance to support ULong
9f9e063: server-demo: change REST API, use string instead of Number for Float too
ea3c84a: server-demo: change REST API, use string instead of Number for Integer
d5bb0da: #1147: Fix for failing tests on Windows
60b4010: Integration of Californium 3.0.0
eaf1da7: #1140:RegistrationSerDes must support availableInstances of registration
3caf38f: Rewrite reg.addSupportedObject() to make it more readable.
ca52f83: #1134: fix web UI active tab issue again (+ some responsive fixes)
c7054de: server-demo: sort registered clients by registration date.
26a531b: server-demo: remove loading bar when loading registered clients.
485f2e5: Remove useless binding of dark properties (server and bsserver demo)
ec5d7cf: bs-serverdemo: make navbar more responsive.
e115f71: #1134: fix web UI active tab issue (server and bsserver demo)
59ade8a: Client Behavior changes: "Replace instance" resets Readable Resources.
c1d8a08: Fix NPE at client side about updating multi-instance resource.
ec14387: server-demo: Erase previous value in UI on replace Object Instance.
86c1926: #1124: fix NPE for Registration Links JSON serialization in server-demo
0ed5fd3: #1123: Better Handle LinkParseException.
8cd61fe: Make LinkParseException a checked exception.
3cb4007: server-demo: Add ObjLink write support.
99ea91f: server-demo: be more strict about JSON type of node value.
f98f949: server-demo: Use Timestamp for Time value of REST API.
9bd4844: Remove MagicLwM2mValueConverter to leshan-server-demo
78fee63: server-demo: add type attribute to REST API to type value of lwm2m node.
abf081c: server-demo: change attribute name for kind of lwm2m node (type => kind)
30fe937: Integration of Californium 3.0.0-RC2
ef029d7: Remove jackson-dataformat-cbor dependency.
03621a5: #1126: allow to create server without PSK ciphers.
3d2b1f9: #1045: Remove GSON dependency.
d2aed76: #1045: Remove minimal-json dependency.
6811051: Fix typo in leshan-bsserver-demo webapp/index.html
7d5f8db: Rename source folder of webapp in leshan-bsserver-demo.
2089026: Remove old UI of leshan-bsserver-demo
4eacbf4: Rename source folder of webapp in leshan-server-demo.
d20b974: Remove old UI of leshan-server-demo
905f586: Upgrade revapi-maven-plugin to 0.14.5

Compare
Choose a tag to compare

Build artifacts are available on maven central.

Despite small change logs, people who are using x509 and/or RPK with Leshan v1.0.0 to v1.3.1 MUST upgrade to 1.3.2 version for security reason.

Noteworthy

  • Integration of Californium 2.6.6 which fixes CVE-2021-34433 ⚠️
  • Some minor bugs fixes
  • Update dependencies versions (logback, slf4j ...)

Change logs

cc62ead: Upgrade to revapi v0.14.6
5b97afb: Upgrade to last maven-plugins
6cc0e4c: Integration of Californium 2.6.6
53e0aa1: Upgrade dependencies(logback 1.2.8, slf4j 1.7.32 ...)
bc6101d: ignore Californium3 propertiers files
b130dc2: leshan-bsserver-demo must validate external models (from -m option)
a9593ef: Integration of Californium 2.6.5
1c7eb4c: Integration of Californium 2.6.4
fa2d6a9: Fix parsing of outgoing records.
bf74a62: client: fix NPE on ObjectEnabler.getLwM2mClient()
8d47ec2: Update git ignore (ignore node and node_modules)
6240a55: Integration of Californium 2.6.3
1d4ebbf: Avoid NPE when processing response message in unit tests

Compare
Choose a tag to compare

☠️ Affected by security issue☠️

Build artifacts are available on maven central.

People who are using x509 and/or RPK with Leshan v2.0.0-M1 to v2.0.0-M4 MUST upgrade to 2.0.0-M5 version for security reason.

Fifth development release targeting LWM2M 1.1, see LWM2M 1.1 supported features.
⚠️ As a milestone release keep in mind API could/will be broken in next milestone.

If you are interested in LWM2M 1.1 support in Leshan, we strongly advice to :

This is the best way to get a final 2.0.0 release which fits your needs.

Noteworthy

  • Add Composite-Observe Operation (#1034)
  • Add Observe to resource instance level (#1041)
  • Improved Link API to make it more compliance with rfc6690 (#1022)
  • Modernize CLI interface of our demos (#569, #568)
  • Add Send Operation support to client and server demos (#1110, #1086)
  • Add Multi-Instance Resource UI to server demos (#1095,#1100,#1101,#1102)
  • Add LwM2m Test Object (Id:3441) to Leshan demos (#1093)
  • Some enhancement about x509 (#1052, #1081)
  • Integration of Californium 3.0.0-RC1. which fixes ⚠️ CVE-2021-34433

Many thanks to @Michal-Wadowski (Observe-Composite / Link Parsing enhancement) and @joachifm (#1087) for their contributions. 🙏 !

Known Issue 🐛 :

#1140: leshan-server-redis lost available instances information from registration.
#1155: LwM2mResourceInstance.newInstance does not support UNSIGNED_INTEGER.

Change logs

5060e84: #1022: Improved Link API to make it more compliance with rfc6690.
b6528f3: #915: Add support of empty multi instance resource to SenML format
64c0ba6: Integration of Californium 3.0.0-RC1
7ef2ded: Add LwM2m Test Object (Id:3441) to Leshan demos.
0232b4b: Add Send Operation Support to leshan-server-demo
87baa6e: Upgrade yarn and node version
8c37b68: Upgrade dependencies to most recent version.
5c9b924: Upgrade to most recent version for Maven Plugins.
fa91fc4: Add license header to frontend code.
423f6cc: Updates WebApp demo dependencies
e101de6: Add Write operation UI for Multi-Instance resources in server-demo
bb87198: Add some more icons
922a4d7: Fix Resource control must not be hided for Executable resource
94be488: Add R/W/OBS operation for resource instance to Leshan Server Demo
c3ee8af: Add resource instance support to JSON (de)serializer of server-demo
c27c118: Refactor resource inputs to make easier to add Resource Instance Write
8910784: Clean vue component file hierarchy of server-demo webapp
5c1c938: Add better display of resource description and multi instance values.
8ef57e5: Add simple support of Read/Observe of resource multi instance
e189243: Guess server port if not provided to client-demo for default value too
a24bbe3: #1081:serverdemo set dtls server-only if cert doesn't support clientauth
869b564: Add a --queue-mode option to leshan client demo.
7f045e9: If leshan client use QueueMode set dtls connector as clientOnly
ee21bca: #1081: client set as dtls client-only if cert doesn't support serverauth
4bea97f: Add check about certificate to leshan client BootstrapConsistencyChecker
c8ef0a6: Add Send command to leshan-client-demo.
13c4784: Use 2 short internally instead of String in Version class.
36e0b64: #1080: Add version param to "create" command of leshan-client-demo
ce95967: Add getModel() to LwM2mModelRepository
c744698: Add a get for the most recent version of an Object in a LwM2m repository
00aed3a: Add LwM2mVersion class and use Version as a more generic one.
515a510: Enhance error message about type matching in LwM2mSingleResource.
4414aa9: Remove credentials display at leshan-client-demo start-up.
a63e703: Guess server url port if not provided to leshan-client-demo
d25d090: Fix #1088: make sendData actually use timeoutInMs parameter
09a7e30: Fix logback-config of leshan-client-demo.
f047032: Make short Validation and compare consistent by using short everywhere
ec5ce9d: Fix Version validation message
f1aab7a: Fix Delete Object Enabler command in demo : Object 1 can not be deleted
093612c: Fix some issues about Add "Observe resource instance" support
71858d7: Remove Version class replaced by LeshanProperties in 8a866f2
33f200b: Fix can_composite_observe_on_multiple_resources Test.
ab12d08: Reduce decoding overhead with passing path list via user context in ObserveCompositeRelationFilter
26ef844: Add integration tests about Cancel Observe Composite
49a3176: Add active Cancel Composite-Observation feature
578c284: Refactor Observation request & response content format
84293b2: Add integration tests about Observe-Composite
5767475: Add client side Observe Composite feature
2ba5811: Add server side Observe Composite feature
2a39eba: Add Single/Composite Observation, ObserveComposite Request/Response classes.
594cc5c: Add integration tests about "Observe Resource Instance" support.
bd20129: Add "Observe Resource Instance" support at Server side.
e979aeb: Add "Observe Resource Instance" support at Client side.
ed48136: Refactoring to allow to fire resource instance changes at client side.
543d8e2: Improve default implementation of BaseInstanceEnabler.write()
9d33ce9: Add missing checks about resource instance to WriteRequest constructor
8a866f2: Add version option (--version) to all demos.
3e7505b: Add verbose option (-v, -vv, -vvv) to all demos.
12a30f0: Create common StandardHelpOptions shared by all demos
720b8a8: Remove ExecutionExceptionHandler HACK by a proper way.
9496ede: server-demo : Fix additional attributes bad key/value order.
434e9bc: Some pom.xml cleaning
bc740a4: Fix NPE in ObjectLoader.loadObjectsFromDir(File)
23a9eba: Activate LOG of LwM2mModelRepository for leshan-bsserver-demo.
48b6516: #568: Add color to logback log for leshan-bsserver-demo
a92ddff: Share TruststoreConverter between all demos.
ab2ee12: Shared Option definition between bsserver and server demo
73c416e: leshan-bsserver-demo must validate external models (from -m option)
96bec8f: #569 : Replace Apache commons-cli by picocli in leshan-bsserver-demo
eeb8907: Share CIDConverter code between demos.
d4f7259: Create a "leshan-server-core-demo" project to share servers demo code.
9d4b645: #568: Add color to logback log for leshan-server-demo
b24622f: #569 : Replace Apache commons-cli by picocli in leshan-server-demo
89ad54f: Fix NPE in ExecutionExceptionHandler
b73cdc9: Move CLI utility classes in leshan-core-demo to be reused by other demos
c858e0c: Create a "leshan-core-demo" project to share demo code.
3c25b85: Integration of Californium 3.0.0-M4
55984dc: Use picocli ANSI color heuristic for logback
fa39fed: Add color to logback log for leshan-client-demo
6ea0b6a: Implement the InteractiveCLI using Jline2 and picocli
2e2c095: Extract Interactive CLI code in a dedicated class (leshan-client-demo)
bbcf7d1: switch from simple log4j to logback
bd275a8: #569 : Replace Apache commons-cli by picocli in leshan-client-demo
4cc7ce9: Change annotation and array formatter.
f262845: Remove TestData which was introduce by mistake with c9eee50 (again)
6573078: Integration of Californium 3.0.0-M3
1602577: Remove TestData which was introduce by mistake with c9eee50
c68bfe5: Fix unintended level log change from introduce with cf-3.0.0-M2
83a3f2b: #1052 : Do not check hostname/ipaddress for "domain-issued certificate"
02873ac: #1050 : update default demo certificate. CN is now equals to localhost.
957c279: Integration of Californium 3.0.0-M2

Compare
Choose a tag to compare

☠️ Affected by security issue☠️

Build artifacts are available on maven central.

Fourth development release targeting LWM2M 1.1, see LWM2M 1.1 supported features.
⚠️ As a milestone release keep in mind API could/will be broken in next milestone.

If you are interested in LWM2M 1.1 support in Leshan, we strongly advice to :

This is the best way to get a final 2.0.0 release which fits your needs.

Noteworthy

  • New Web UI based on Vue.js/Vuetify for server-demo and bsserver-demo.
  • Registration Refactoring (e.g. new getAvailableInstance method) (#1007, #1009, #1010)
  • Add application data on registration (#1018)
  • Add support of ct attribute at client/server side. (#1006, #1008)
  • New API for Bootstrap Server which allow more custom behavior. (#1027)
  • Add a new Bootstrap mode which allow do choose Security Instance ID value automatically (#1028)
  • Add support of uri attribute on bootstrap discover.
  • Add new Bootstrap Consistency State checker at client side (#1000)
  • Add epmin, epmax attribute support at server side. (#1029)
  • Add support of Partial Update to WRITE on multi-instance resources (#1037)
  • Add Opaque encoding/decoding for resource instance (#1035)
  • Add Bootstrap Read support at client/server side. (#1036)
  • Add support to connection ID in all demos. (#999)
  • Integration of Californium 2.6.3

Many thanks to @intx82(#1029) for its contribution 🙏 !

Known Issue 🐛 :

#1052: client using "domain-issued certificate" should not check hostname/ipaddress
#1088: timeoutInMs parameter of LeshanClient.sendData() methods are not taken into account
#1140: leshan-server-redis lost available instances information from registration.

Change logs

01376d8: Add support of Partial Update to WRITE on multi-instance resources
d5f3f1b: Rename LwM2mNode(Encoder/Decoder) in LwM2m(Encoder/Decoder).
e41d9af: Change some log level (debug=>trace) in DefaultLwM2mNodeDecoder
50e9d02: Fix some javadocs
549a83d: Fix license header on LwM2mNodeSenMLDecoder/LwM2mNodeSenMLEncoder
ecf961a: Add BootstrapReadRequest support.
f281c3a: Add Opaque encoding/decoding for resource instance
977b565: README : change screenshot to show the new UI.
3792d42: Server-demo-v2: Add some tooltips on buttons.
e600ac7: Server-demo-v2: Better display for model description
277ac50: Server-demo-v2: fix responsive issue.
c3ac60e: Server-demo-v2: handle deregistered client on Client vue.
526963c: Server-demo-v2: make new UI as default one.
6227ecb: Server-demo-v2: polish navbar.
a95a7ce: Server-demo-v2: Add search field in Clients and Security tab.
7f6e488: Server-demo-v2: Add Server Tab about credentials
abd99c2: BS-Server-demo-v2: make new UI as default one.
2849aaf: BS-Server-demo-v2: Add default value for bootstrap server config
86b7b04: BS-Server-demo-v2: remove "changing step" on click in bsconfig wizard.
1b63133: BS-Server-demo-v2: polish navbar.
15feb05: BS-Server-demo-v2: use dialog to display errors.
b6ffcbc: BS-Server-demo-v2: Add search field in Bootstrap tab.
96bc682: BS-Server-demo-v2: Add Server tab about server credentials
2fcae73: BS-Server-demo-v2: Add a vue to watch session lifecyle.
afc22f3: Make ContentFormat and ResponseCode toString() prettier.
baa10b4: Add toPrettyString to LwM2mNode
bd08eff: Add Objects resources from LWM2M v1.1 to BootstrapConfig.
3d18862: Add a way to choose ContentFormat used for Bootstrap Write Request.
a06a043: Add BootstrapRequestChecker for bootstrap integration tests.
540aeec: Add BoostrapSessionListener at bootstrap server side.
b181ee9: Add autoIdForSecurityObject mode to bootstrap config.
0d24d6d: #1000: Add a BootstrapConsistencyChecker to Leshan Client.
e0919c3: Add support of "uri" attribute on bootstrap discover
d393b88: Add an integration test about "Bootstrap-Request Trigger" resource.
d9ae7bb: Implement "Bootstrap-Request Trigger" resource (1/?/9) at client side.
3d8011e: client: fix NPE on ObjectEnabler.getLwM2mClient()
3f3eb03: #1027: Rewrite BootstrapDiscover Tests to use BootstrapTaskProvider
96f2a5a: #1027: BS Server does not know SecurityStore and ConfigStore anymore
e6f87b2: #1027: Add TaskProvider which provides requests to send during bootstrap
0edf18c: BootstrapConfig is no more Serializable.
7440d13: #1027: Add ModelProvider to Bootstrap server to manage Object Versioning
f68537d: #1027: remove BootstrapConfiguration added by #883
4187e01: #1027:BootstrapSessionManager is responsible to know request to send.
c9eee50: #1024 : fix issue with long resource id in LwM2mNodeSenMLEncoder
09a2656: #1026 Evaluation attributes support
7c5a398: #1020: fix invalid syntax for ct attribute (QUOTE must be used)
6aebf47: Add a way to add applicationData on registration when authorizing.
9446530: Add some tests about Registration.getAvailableInstances()
4485054: Add getAvailableInstances method to Registration.
d69f571: Make LwM2mPath Comparable
7ba642a: Remove lazy loading for getSupportedObjects in Registration.
86cbd35: Add Test about supported Content Format on Registration Object
1bc43e4: Add Support of 'ct' option in registration at Server side.
dad83de: Registration is no more Serializable.
aae6bdb: Move default value attribution from constructor to builder.
bf7e378: Change Registration constructor: use Builder instead of lot of arguments
a84e60a: Update Registration tests to check rootpath
63683cb: Extract registration rootpath in builder.
f042517: Clean Registration Tests
78594b2: Change equals/hashcode behavior on Registration class.
f63276b: Use Version Class in Registration instead of simple String.
fe7c5b5: Add tests about Support of 'ct' option in registration at client side.
55d318c: Add Support of 'ct' option in registration at client side.
266445f: Make ContentFormat Comparable.
67e77aa: Add getSupportedContentFormat to LwM2mNode/Encoder/Decoder
f15debb: Add tests about mandatory or optional content format.
bab1cfb: Add methods about "mandatory" to ContentFormat.
045f2b9: #1016: try some optimization
3963c82: activate debug tools
3d2d6c3: update to vuetify 2.5.1 and vue 2.6.13 (server-demo)
3d7cf31: Make public production path a relative one. (for server-demo)
368e503: Server-demo-v2: Try to fix some router issue.
666383e: change info message about demo v2 in demo v1.
63c169e: Server-demo-v2: Add Queue mode usage or sleeping info.
748e9c5: Server-demo-v2: Add more info about registration.
890818d: Server-demo-v2: Add Exec with params
5206b48: Server-demo-v2: Add observe for instance
4a94128: Server-demo-v2: Add observe for single instance resource
464ab9b: Server-demo-v2: Add a shared store for data
de609c1: Server-demo-v2: add more object icons.
64811b8: Server-demo-v2: truncate resource value text if too long.
73337b7: Server-demo-v2: Add Input component for Opaque resource.
19e53ac: Server-demo-v2: Add ResourceInput component to create input by type
5e8ade8: Server-demo-v2: Add Cancel Button to all Dialogs
e5f567d: Server-demo-v2: Better Error Handling
efb109b: Server-demo-v2: Add UI for Create instance.
b9c07df: Server-demo-v2: add preference for multi-value content format.
0c598cd: Server-demo-v2: Add UI for Read/Write/Delete instance
427cf2d: Make public production path a relative one. (for bsserver-demo)
5dbe92e: #906: Proto of leshan-bsserver-demo UI v2 based on vuejs
7a08220: Integration of Californium 2.6.3
afc43f2: Avoid NPE when processing response message in unit tests
d33516e: Add connection ID support to demos
da6d32e: Remove unused import in BootstrapConfig

Compare
Choose a tag to compare

☠️ Affected by security issue☠️

Build artifacts are available on maven central.

Third development release targeting LWM2M 1.1, see LWM2M 1.1 supported features.
⚠️ As a milestone release keep in mind API could/will be broken in next milestone.

If you are interested in LWM2M 1.1 support in Leshan, we strongly advice to :

This is the best way to get a final 2.0.0 release which fits your needs.

Noteworthy

  • Add Read-Composite support (#958)
  • Add Write-Composite support (#959)
  • Add Send operation support (#971)
  • Fix issues about Certificate Usage(#995) and SENML-CBOR/JSON data value vd/8 (#985).
  • Update to last version of LWM2M model (#973)
  • Add certificate Usage to Leshan demo (#991)
  • A first version of a new UI for server demo based on vue.js (#977)
  • Integration of Californium 2.6.2 (2.6.1 change log) which fixes issue which in certain circumstances may definitely prevent Leshan server to accept DTLS handshake using X509 and RPK. (see CVE-2020-27222 ⚠️ )

Many thanks to @dachaac(#983) for its contribution 🙏 !

Known Issue 🪲 :

#1024 : SenMLEncoder can not encode Node for multi instance resource with too long resource or resource instance id
#1052: client using "domain-issued certificate" should not check hostname/ipaddress
#1088: timeoutInMs parameter of LeshanClient.sendData() methods are not taken into account

Change logs

edeaa2b: #992: guess ServerIdentity from Endpoint instead of EndpointContext
a75781b: Add some test about #992 issue.
2765896: Limit certificate usage to 1 & 3 for config about leshan bs server demo
caabf0b: LeshanBootstrapServerDemo: Add certificate chain support
c045fcb: LeshanServerDemo: Add certificate chain support
51e3e5e: SecurityUtil: Add helper for parsing certificate chain
0671ed9: BootstrapServerDemo: Add support to set certificate usage for clients
8f061df: CertificateUsage: Add server side support to send CertificateUsage configuration.
5670399: ClientDemo: Add support to configure certificate usage from command line
c1307a4: Security: Add x509Bootstrap() variant with CertificateUsage
52b568f: Fix regression trying to fix help prompt regression (from 8ce5498)
d97a0bd: fix -ksa default value of server-demo (the --help says it's leshan)
807c3b0: Use DTLS clientOnly config by default for client connecting to bs server
e09e91c: Remove undesired huge timeout for some integration tests.
95977db: Remove undesired System.out.println ...
ffeaa92: Add newUnsignedIntegerInstance methods to LwM2mResourceInstance
8cec6a0: Integration of Californium 2.6.2
fdc4a98: #987: fix to support null for short server id on bootstrap security obj
d5607f0: #984 fix issue about decoding data value (vd/8) with SenML_CBOR.
2cd1a67: Add test about opaque encoding/decoding with SENML_CBOR
8ce5498: Fix help prompt regression (since 9bc7a3b)
f614b26: #906: Proto of leshan-server-demo UI v2 based on vuejs
18990fe: Add Redis Test about Send Operation.
fdd3111: Add index by identity in "RedisRegistrationStore"
0be7cea: Add index by identity in "InMemoryRegistrationStore"
82fab07: Add integration tests about Send Request.
52eb5fd: Add Send Service to handle "Send Operation" at server side.
338292a: Add SendData() API to Leshan client.
bfbb425: Update Client Request Sender to be able to support "Send operation"
80d1ad6: Add getModel() to LwM2mObjectTree.
36154b9: Add "LWM2M Send" Request and Response Classes
6432a4b: Regroup event on WriteComposite at client side.
f98311f: Add support of partial Update for multi instance resources.
363ec53: Add some integration tests about Write Composite Operation.
e12a19a: Add Write Composite suppot at client side.
70975fe: Add some methods on LwM2mPath to create new Path from a previous one.
d85671e: Add WritComposite Request and Response.
6285f0d: Adapt MultiNodeDecoder to support WriteComposite.
3a184ab: Add test about ReadComposite
fc6b7ff: Add ReadComposite Support at client side
5d73a7d: Add ReadCompositeRequest and Response
8e1494e: Add SimpleDownlinkRequest (to be able to add CompositeDownlinkRequest)
f1d71f8: Add PathDecoder for Composite Operation
8db395f: Rename decoder/encoder > nodeDecoder/Encoder to allow adding pathDecoder
1399ca5: SenML encoder/decode should be able to support record without value.
75762b9: Make LwM2mNodeSenMLDecoder implement MultiNodeDecoder
0e96425: Introduce MultiNodeDecoder for composite operation
cba82b6: Code refactoring to prepare support for MultiNodeDecoder
9222d22: Fix NPE in SenMLResolver.
382d0ae: Create dedicated(SenMLResolver) class to resolve SenMLRecord
5c0ba73: Make LwM2mNodeSenMLEncoder implement MultiNodeEncoder
08ac562: Introduce MultiNodeEncoder for composite operation
79ebdb5: Update client demo models
884efa6: Update server demo models
ad434fd: Update core models
e37de61: Update DdfDownloader to download core model in a dedicated folder.
d159ae5: Better handling of incorrect model with 2 resources with same id.
034262a: Integration of Californium 2.6.1
1081fa0: #964 : CertificateVerifier.getAcceptedIssuers() should not return null
2d82b39: Removed Unused DefaultLeshanCertificateVerifier
dfbbab6: Fail on javadoc warning issue.
2506177: #951: fix javadoc doclint config
538124b: Fix Default Node Encoder/Decoder javadoc.

Compare
Choose a tag to compare

☠️ Affected by security issue☠️

Build artifacts are available on maven central.

Noteworthy

Fix several issue about X509 and RPK connection :

  • Fix issue preventing Leshan client to accept DTLS handshake initiated at server side using X509.
  • Integration of Californium 2.6.1 which fixes issue which in certain circumstances may definitely prevent Leshan server to accept DTLS handshake using X509 and RPK. (see CVE-2020-27222 ⚠️ )

Many thanks to @francopo for reporting those issues (#964) 🙏 !

Change logs

6bc1cab: Integration of Californium 2.6.1
612028c: Fail on javadoc warning issue.
0170771: #951: fix javadoc doclint config
36f5756: #964 : CertificateVerifier.getAcceptedIssuers() should not return null

Compare
Choose a tag to compare

☠️ Affected by security issue☠️

Build artifacts are available on maven central.

Second development release targeting LWM2M 1.1, see LWM2M 1.1 supported features.
⚠️ As a milestone release keep in mind API could/will be broken in next milestone.

If you are interested in LWM2M 1.1 support in Leshan, we strongly advice to :

This is the best way to get a final 2.0.0 release which fits your needs.

Noteworthy

  • Add preferred content format support to BootstrapRequest. (#949)
  • Add CBOR content format (#943)
  • Add SenML-CBOR content format (#922,#937)
  • Add SenML JSON content format (#911)
  • Add ObjectLink support for OLD JSON content format.
  • Add Certificate Usage support (#923)
  • Introduce new BootstrapConfigurationStore to bring more flexibility (#883)
  • Better unexpected error handling in client DefaultRegistrationEngine. (#933)
  • Add Destroyable, Startable and Stoppable support to LwM2mObjectEnabler and LwM2mInstanceEnabler. (#933)
  • Update BindingMode to be LWM2M 1.1 compliant (#908)
  • Add a way to get coapRequest at LWM2M level (#947)
  • Allow to use custom endpoint context when sending CoAP request.
  • Integration of Californium 2.6.0 (2.5.0 change log)

Many thanks to @moznion (#928, #940 ) and @dachaac(#912,#910,#905,#900, #899,#902,#903) for their contributions 🙏 !

Known Issue 🪲 :

#964: issue preventing DTLS server to accept clients using x509 or RPK. PSK should not be affected.
#984: Leshan does not decode SenML-CBOR/JSON data value (vd/8) correctly
#992: Client rejects server request when using "CA constraint" and "trust anchor" assertion certificate usage
#1052: client using "domain-issued certificate" should not check hostname/ipaddress

Change logs

c2ed1f4: Add preferred Content format to BootstrapRequest.
8f2b5e0: Better support of number (especially unsigned) using CBOR-Java
38713a6: Add CBOR content format to Leshan server demo.
1220105: Add CBOR Content Format to Single value integration tests.
846700c: Add CBOR Node Decoder/Encoder to Default Decoder/Encoder.
25b6067: Add CBOR Content Format
2ff39f9: Add Node Encode/Decoder for CBOR Content Format
cad6909: Move test utility classes in a dedicated package
3c786f1: Add tests about LwM2mRequest.getCoapRequest()
ad993c6: #198 : Add a way to get coapRequest at LWM2M level
99c22fb: Upgrade from com.upokecenter.cbor 4.0.0 to 4.3.0
6ecade8: Revert "Temporary workaround about HELLO_VERIFY_REQUEST protocol version."
1f7b9a4: Integration of Californium 2.6.0
7a013f0: #933: destroy LeshanClient on unexpected error.
1da2600: #933: Implement Destroyable, Startable and Stoppable on ObjectEnabler
a1bacb5: #933: Handle unexpected errors on DefaultRegistrationEngine
d0f2705: #933: Add method: onUnexpectedError() for LwM2mClientObserver
fad5a4c: Use upokecenter CBOR-JAVA as default encoder/decoder for SenML CBOR
294200a: Add SenML CBOR encoder/decoder based on upokecenter CBOR-Java
d7d2e05: Add utility to be able to compare SenML Record and use it in JSON tests
a275f2b: #933: Call management method for each LwM2mObjectEnabler on LeshanClient
fa0f58c: #933: Move the interfaces to manage the state to leshan-core package
4e4ba52: Add support ObjectLink for OLD JSON content format.
b2dc0b8: Add SenML CBOR to server demo.
c671247: Rename LwM2mNodeSenMLJsonDecoder/Encoder > LwM2mNodeSenMLDecoder/Encoder
c87f66d: Remove useless SenMLCborException
1064775: Fix number serialization for SenMLCbor
5d3da20: Add SenML_CBOR to integration tests
41f01c3: Add SenMLCbor support to default LwM2mNodeEncoder/Decoder
760faef: Add SenML Cbor content Format.
776c513: Rename SenMLCbor and make it implement SenMLDecoder/Encoder, add tests
4dde815: Add SenML Cbor deserialization to jackson encoder/decoder
14d9d17: Fix EPL license version (v1.0 to v2.0) in SenMLCbor files
fcb0cdb: Move jackson cbor decoder in a dedicated package
f7ccfc2: Temporary workaround about HELLO_VERIFY_REQUEST protocol version.
0fa454c: SecurityTest: Add certificate usage unit tests
3e65c99: leshan-integration-tests: credentials: Update with intermediate and add manufacturer CA
6e96cee: CertificateUsage: Add CertificateUsage support to client.
b3d230b: CertificateUsage: Add CertificateUsage type and initial support to client to configure it.
c189a8c: Cf-2.5.0 : remove deprecate usage of TrustedRpkStore/CertificateVerifier
eae8c38: Remove useless SecurityObjectPskStore class.
f97e1ef: Cf-2.5.0 : remove usage of deprecated PskStore
24b23fb: Integration of Californium 2.5.0
70e218d: Update some dependencies. (#927: Now Leshan should build with java15)
571a7b7: Remove ugly sysout added in commit 42c6c4c
0345557: Bump jetty.version from 9.4.31.v20200723 to 9.4.34.v20201102
3492f05: #918 : bad endpoint encoding in UI when using server demo REST API
2f75190: Use EnumSet for BootstrapConfig
6797352: In LWM2M 1.1 client use /3/0/16 as binding register param. (not /1/?/7)
abe31fe: In LWM2M 1.1 client is watching /3/0/16 binding instead of /1/?/7
2970e3e: Update BindingMode in device objects.
42c6c4c: Add some tests about binding mode
edfabde: Enhance lockStep client
d4df48e: Update BindingMode to be LWM2M 1.1 compliant and support Q parameter.
40e2d2a: Fix SerializationUtil to support enumSet
ad464b0: Fix Version validation.
4df99f1: Add SenML JSON to server demo.
bfcce86: Add SenML JSON as known content format.
a3df5d7: Add ObjectLink support to LwM2MNodeSenML Encoder/Decoder
27ec7e4: Move ObjectLink String decoding/encoding in ObjectLink class.
d694b31: Add resource instance encoding/decoding for SenML JSON
fd6f8ad: Move WriteTest in its own package, make some tests parameterized
50b5cb7: Move CreateTest in its own package, make some tests parameterized
6157535: Move ReadTest in its own package, make some test parameterized
f8e32ad: Move ObserveTest in its own package, make timestamped test parameterized
5d3d44a: Add time-stamped support to LwM2mNodeSenMLEncoder
c13bd09: Add time-stamped support to LwM2mNodeSenMLDecoder
9d0c3a7: Enhance Number handling for SenML Decoder/Encoder
bb76ecb: Use Jackson as default encoder/decoder for SenML JSON
02f0eff: Add LwM2mNodeSenMLDecoder for SenML-JSON with unit tests
5688b34: Fix Minimal SenMLJson Serializer/Deserializer
3bcaad1: Modify SenML tests to use minimal and jackson encoder/decoder
00b7744: Add new SenMLJsonDecoder/Encoder interface.
cb4656b: Add dedicated SenMLException class
87fdbcc: Add SenML Json encoder/decoder based on Jackson.
fe81abb: Rename SenMLJson to SenMLJsonMinimalEncoderDecoder
ce1efdb: Move SenML JSON class in their own package.
a0d6d98: Move SenML cbor class in their own package.
2968225: Remove unused SenMLPackSerDes class
1e96617: Update SECURITY.md to add supported version
f224ff1: Allow to use custom endpoint context when sending coap request.
3001a33: #437: Add a BootstrapConfigurationStore which stores BootstrapRequets.
7ed36af: #918: bad endpoint encoding in UI when using bs server demo REST API
df61cb3: #913: fix LWM2N JSON encoding issue with resource instance
7637769: LeshanBootstrapServerDemo: Add support to load trust store from Java trust store
9bc7a3b: LeshanClientDemo: Add command line options to configure trust store
99577c1: LeshanClient: Add initial trust store support.
b10b19e: LeshanServerDemo: Add support to load trust store from Java trust store
091ba20: DefaultEndpointFactory: Add new endpoint context matcher for clients
3a86ea2: X509CertUtil: matchSubjectInetAddress: Use strict subject alternative mode
e814ae0: X509CertUtil: matchSubjectDnsName: Use strict subject alternative mode
55c3096: Bump junit from 4.13 to 4.13.1
e9d7799: DefaultLeshanCertificateVerifier: Add new certificate verifier helper
3a72500: SecurityTest: Fix X.509 end point name comparison
2dc2bca: X509CertUtil: Add new helper class for using X.509 certificates
87cb5c0: Bump version to 2.0.0-SNAPSHOT

Compare
Choose a tag to compare

☠️ Affected by security issue☠️

Build artifacts are available on maven central.

Noteworthy

  • Better unexpected error handling in client DefaultRegistrationEngine. (#933)
  • Add Destroyable, Startable and Stoppable support to LwM2mObjectEnabler and LwM2mInstanceEnabler. (#933)
  • Add ObjectLink support for OLD JSON content format.
  • Allow to use custom endpoint context when sending CoAP request.
  • Integration of Californium 2.6.0 (2.5.0 change log)

Many thanks to @moznion for its contribution (#944) to enhance Leshan Client 🙏 !

Known Issue 🪲 :

#964: issue preventing DTLS server to accept clients using x509 or RPK. PSK should not be affected. Fixed in 1.3.1.

Change logs

6596442: #933: destroy LeshanClient on unexpected error.
b242989: #933: Call onUnexpectedError() when unexpected error occurred
9d5b405: #933: Add an interface LwM2mClientObserver2 to handle unexpected error
aad536f: #933: Implement Destroyable, Startable and Stoppable for LwM2mObjectTree
2d21d7c: #933: Implement Destroyable, Startable and Stoppable for ObjectEnabler
1e9287f: #933: Mark as deprecated for server.(Destroyable, Startable, Stoppable)
a60b898: #933: Add new interfaces to core: Destroyable, Startable and Stoppable
1f34ca7: Remove suppressWarning("deprecation")
40aad7c: Revert "Temporary workaround about HELLO_VERIFY_REQUEST protocol version."
6f37492: Integration of Californium 2.6.0
b72d22d: Add support ObjectLink for OLD JSON content format.
32205a2: Move ObjectLink String decoding/encoding in ObjectLink class.
a29f4c7: Temporary workaround about HELLO_VERIFY_REQUEST protocol version.
7970701: Cf-2.5.0 : remove deprecate usage of TrustedRpkStore/CertificateVerifier
caa03d1: Cf-2.5.0 : remove usage of deprecated PskStore
d12e6ed: Integration of Californium 2.5.0
04c93a0: Update some dependencies. (#927: Now Leshan should build with java15)
4dde95f: Bump jetty.version from 9.4.31.v20200723 to 9.4.34.v20201102
7d2da21: Allow to use custom endpoint context when sending coap request.
e9b2fe6: #918: bad endpoint encoding in UI when using bs server demo REST API
82146a2: Bump junit from 4.13 to 4.13.1