Skip to content

Releases: eclipse-leshan/leshan

leshan-2.0.0-M1

08 Oct 14:31
Compare
Choose a tag to compare

❗☠️❗ Affected by security issue❗☠️❗

Build artifacts are available on maven central.

First development release on track for LWM2M 1.1, see LWM2M 1.1 supported features.
⚠️ As a milestone release keep in mind API could be broken.
(As this is the first milestone, I can even guarantee that API will be broken 😅)

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 fit your needs.

You are more and more to contribute to Leshan, thx to all of you ! 🙏

Noteworthy

  • add support to LWM2M 1.1 object model. #870
  • embed last models. #870
  • refactor model validation to support both model format, LWM2M 1.0 and LWM2M 1.1. #870
  • add resource instance support for Read/Write request using text/tlv/json content format. #877
  • add unsigned integer support. #879 #880
  • add LowerLayerConfig class to tweak lower layer request parameter. #876
  • Integration of Californium 2.4.1.(2.4.0 change log)
  • some bug fixes.

Thx to @zakharenkodmytro for "resource instance operation" contribution 🙏 !

Known Issue 🪲 :

#913: resource instance encoding for JSON content format. (fixed in 2.0.0-M2)
#964: issue preventing DTLS server to accept clients using x509 or RPK. PSK should not be affected. (It should be fixed in 2.0.0-M3)

Change logs

277499e: ReadResponse: Add ULong support
bb35bde: Add documentation about nightly release in README
6948515: Fix Lwm2mNodeTextEncoder & BaseInstanceEnable.write for ResourcInstance
8e4c409: #894 : fix opaque write on single opaque value (server-demo)
fc65183: Add utility to convert number safely in LwM2mNodeJsonDecoder.
a48227a: Add Unsigned integer support
d84a69b: API break: Use Iterator instead of List in BootstrapSecurityStore.
3852484: #894 : fix single value content format selection on write (server-demo)
dbf3671: Fix issue avoiding to choose mix ciphersuite psk/rpk/x509 with client
bc9dce3: Better log about server certificate validation at client side.
95d67bd: add -c option to chose cipher suite to leshan-client-demo.
f2531cd: Fix client demo logs about handshake.
9ae537a: Upgrade some dependencies (commons-io, jackson, jedis, jetty)
24de4af: Integration of Californium 2.4.1
9dd235a: Move minimal-json encoder/decoder implementation in its own package.
511ff3e: Add jackson implementation of LwM2mJsonDecoder
eac22fa: Make LwM2mJson Encoder/Decoder dynamic
8ec052e: Make all encoder/decoder dynamic object instead of static class.
e93c61c: Add methods to load all version or only last one of embedded model
afb8550: Add validation and comparison facility to Version class.
e1dc152: Remove some old LWM2M Version constant replaced by Version class
bbeeed2: Embedd DDF files for LWM2M 1.1 in leshan demos
b51d119: Embedd DDF files for LWM2M 1.1 in leshan-core
28bad91: Add new utility class to update LWM2M ddf Files
4170708: Update ObjectModel and ObjectModelValidator to support LWM2M 1.1
867ace5: Add DDFFileValidator for LWM2M 1.1 (add DDFFileValitorFactory)
2e1c24c: Add a new LWM2M Version class
1c05733: add release-nightly profile
16b283b: Add default impl for write resource instance in BaseInstanceEnabler
a90d957: LwM2mInstanceEnabler.write should handle LwM2mResourceInstance
9827a38: Add write tests about resource instances operation for tlv.
b20d3ae: Remove usage deprecated getValues()
a66de60: Fix some formatting issue.
c4f58e0: Add Resource Instance RW operations for Json and Text Content Format
cfb8e90: Add some tests about reading resource instance in TLV
2a6b05a: Update Tlv Encoder to support resource instance
ead62c9: Add ReadRequest API to target resource instance
297264e: Add support to read resource instance at client level
73e9db0: Add LwM2mResourceInstance object to support resource instance operation
9313f72: Update CoapRequestBuilder to support Resource Instance operation.
bd02aa1: Move path check to prepare support for resource instance operation
813d664: #875: add LowerLayerConfig class to tweak lower layer request parameter
69e432c: Integration of Californium 2.4.0
9dfdd3e: LeshanClientDemo: Fix coaps usage for named server
c70bd8d: Update README : add information about 2.x and LWM2M 1.1
74af7a9: LeshanServerBuilder: Fix handling of X.509 servers with serverAuth
8bb7184: Remove LwM2mObjectEnabler2
0bcc293: Remove DownlinkRequestVisitor2
f1cee66: Remove BootstrapSessionManager2
03a261e: Remove RegistrationEngineFactory2
6739243: Raise Exception if content format for DiscoverResponse is incorrect
5dd6b42: Update ObjectModelSerDes (add new fields)
61cb30d: remove useless methods (getVersion&getLwM2mVersion) from ObjectModel
6d7c3b2: Add NONE value to enum Type.
150a8cf: Model fields are nullable & null test is done by ObjectModelValidator
c9bac24: Remove deprecated method about Object Model Loading
76c2413: Fix API visibility issue on BaseObjectEnabler.doDelete()
1136909: Remove warning about switch case : EST is not supported for now.
44625ad: #682: Add SenML-CBOR encoder in leshan-core + unit tests.
c8712dd: #677: LwM2mNodeSenMLEncoder for SenML-JSON, and unit tests
983b21e: #673: SenML JSON decoder in leshan-core with unit tests.
ce5fff5: #659: Add SenML JSON encoder in leshan-core with unit tests.
054d305: SecurityMode: Add missing "Certificate mode with EST" (4)

leshan-1.2.0

02 Oct 12:39
Compare
Choose a tag to compare

❗☠️❗ Affected by security issue❗☠️❗

Build artifacts are available on maven central.

Noteworthy

  • add LowerLayerConfig class to tweak lower layer request parameter #876
  • Integration of Californium 2.4.1 (2.4.0 change log)
  • some bug fixes

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

4ffd9b4: #894 : fix opaque write on single opaque value (server-demo)
c42d7a4: #894 : fix single value content format selection on write (server-demo)
382e7df: Fix issue avoiding to choose mix ciphersuite psk/rpk/x509 with client
531241c: add -c option to chose cipher suite to leshan-client-demo.
74d9ed3: Better log about server certificate validation at client side.
df08289: Fix client demo logs about handshake.
2e9874b: Upgrade some dependencies (commons-io, jetty)
8231deb: Integration of Californium 2.4.1
bce0c96: add release-nightly profile
cf7dbc9: #875: add LowerLayerConfig class to tweak lower layer request parameter
3a3dd59: Integration of Californium 2.4.0
029dc47: LeshanClientDemo: Fix coaps usage for named server
85bdaf9: LeshanServerBuilder: Fix handling of X.509 servers with serverAuth

leshan-1.1.0

16 Jul 09:22
Compare
Choose a tag to compare

❗☠️❗ Affected by security issue❗☠️❗

Build artifacts are available on maven central.

Noteworthy

  • Add support of Bootstrap Discover request #858
  • Add additional attributes for on Bootstrap request #856
  • Better DDF file and LWM2M models validation #851
  • Add more flexibility to Redis Lock #843
  • Integration of Californium 2.3.0

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

633db38: Fix NPE (regression when adding Discover Bootstrap request)
23107cf: Integration of Californium 2.3.0
48e9cce: Add some integration tests about Bootstrap discover
3b2ece2: Add Bootstrap Discover support at client side.
e18a900: Add Bootstrap Discover Request support at server side.
220a821: Add Bootstrap Discover Request and Response.
5ad51e5: Add bootstrap additional attributes command line option to client demo
6bb7ce7: Add an integration test about additional attributes.
8a179ea: Support new Bootstrap Additional attributes at Client side.
d2e7c92: Support new Bootstrap Additional attributes at Server side.
d819566: Add Additional attributes to BootstrapRequest.
5a2132c: Fix some javadoc about new DDF file feature.
202dcf3: Fix TEXT format can be used to Write OPAQUE resource. (see #675)
6e1aa4e: Add logback config for tests about models in demo.
17c6b6a: Fix UnsupportedClassVersion raised in tests when useToolchain used.
9b4556c: Add JUnit to validate embedded Model at build time.
c3baf6f: #835: validate model before to use it in Leshan server and client demo
c1dcdd0: Remove usage of deprecated DDFFileParser.parse function.
0b9d34c: #835: add load function with validation to ObjectLoader
064ea5f: #835: Add ObjectModelValidator class to validate object model
3cd7ad2: #835: raise exception if DDF file parsing failed.
955d7cd: #835: DDFFileParser support urn, description2 and lwm2mVersion
d1faa9a: #835: add URN, description2 and lwm2mVersion field to ObjectModel
8885bb1: #835: Add URN utility class
ecbd0ca: #835: Add DDF file validator (validate againts LWM2M.xsd)
8522c71: Integration of Californium 2.3.0-RC2
cbf3e35: Add usage of maven-toolchains-plugin.
3a1a64e: #852: add setter to activate Registration Update on Notification
0facbf9: Integration of Californium 2.3.0-RC1
192238c: #836: Add more flexibility to RedisLock
9cd67f6: Use (SECURE_)COAP_PORT from CoapConfig as default value for server demos
02b3c5d: #845: add endpoint (ep) field in coaplog server event of server-demo
66b220e: Add build check about dependency convergence.

leshan-1.0.2

09 Jul 14:24
Compare
Choose a tag to compare

❗☠️❗ Affected by security issue❗☠️❗

Build artifacts are available on maven central.

Change logs

3951f04: Add usage of maven-toolchains-plugin.
dfb423e: Fix TEXT format can be used to Write OPAQUE resource. (see #675)

leshan-1.0.1

07 May 13:02
Compare
Choose a tag to compare

❗☠️❗ Affected by security issue❗☠️❗

Build artifacts are available on maven central.

Noteworthy

  • Fix race condition in RedisLock, add log to detect unintended expiration.
  • Fix some toString().
  • Use last version of LWM2M models.
  • Executable resource model should not have a type: #833
  • Integration of Californium 2.2.3.
  • Some demos improvements mainly around credentials (RPK/x509): #842

Change logs

3c48c0f: add -cert -truststore option to bsserver-demo.
f374e34: add -cert -truststore option to server-demo (deprecate keystore options)
646837c: ignores srl files (openssl serial number files)
112dba1: Fix generate_credentials.sh comment in leshan-integration-tests
d334b30: Add pubk/prik option to bsserver-demo to set custom server RPK.
dd19562: Add pubk/prik option to server-demo to set custom server RPK.
4188820: wrap content identity/psk value in security tab of leshan-bsserver-demo
285fa10: wrap content identity/psk value in security tab of leshan-server-demo
45c0cfe: Use PublicKeyInfo(.der in Hexa) instead of x,y coord in server-demo UI.
92dc9fc: Fix some toString() and equals/hashcode() for some LWM2M requests
a51a33e: Fix OPAQUE value toString() for LwM2M Multiple and Single Resource.
330e444: Remove unused import introduced by ba072b6.
f5071e7: Fix 10260 model (executable resource should not have a )
529efa4: Fix a log configuration issue in leshan-server-demo.
1e1c49f: Use last ddf model version in leshan-server-demo.
940161e: Use last ddf model version in leshan-client-demo.
1b9bea8: Use last version of Core Model for LWM2M 1.0
8938fa4: #833 : Support that Executable resource model should not have a type.
76cac08: Fix race condition in RedisLock, add log to detect unintended expiration
5e9753a: Fix Typo on -cp option description of LeshanClientDemo.
ba072b6: Fix NPE in bsserver-demo with x509 auth mode
1af49e0: Add Leshan logo in svg format.
9048136: Activate revapi mvn plugin to monitor/check API break.
42ccc9f: Fix leshan-server-demo redis option description.

leshan-1.0.0

16 Apr 09:47
Compare
Choose a tag to compare

❗☠️❗ Affected by security issue❗☠️❗

Build artifacts are available on maven central.

This release provides an implementation of LWM2M specification 1.0.x.
For more details look at the release review.

Noteworthy (since v1.0.0-RC2)

  • Integration of Californium 2.2.2.
  • Fix multiple opaque resource display in leshan-server-demo
  • Add -m (models folder) command line option to leshan-client-demo

Change logs

fd17a34: Integration of Californium 2.2.2
893aa57: Fix multiple opaque resource display in leshan-server-demo
1783d39: Add -m (models folder) command line option to leshan-client-demo

leshan-1.0.0-RC2

10 Apr 08:48
Compare
Choose a tag to compare

Build artifacts are available on maven central.

Noteworthy

  • Merge Server and ServerIdentity with some security enhancement at client side. (#826)
  • Fix race condition in RedisRegistrationStore
  • Fix Bootstrap Delete "/" at client side.
  • Integration of Californium 2.2.1.
  • Better log for leshan-client-demo.
  • Cleaning javadoc.
  • License upgrade (EPL 1.0 to EPL 2.0).

ℹ️ The release 1.0.0 is plan for mid april.

Notable API/behavior break

No breaks was planed for this RC2 release, but cleaning the javadoc we discover some API inconsistency and this was now or never to fix this for the 1.0.0. The client is really impacted, at server side this is just some package renaming.

  1. [client] Merge Server and ServerIdentity (see #826 for more details)
  2. [both] Fix inconsistent package name in leshan-core (#828)
  3. [client] Delete all instance on bootstrap delete "/" (5bb8296)

Change logs

1603653: Reenabling javadoc generation for demo project (as sonatype requires it)
dea2377: Fix possible race condition in RedisRegistrationStore
721f787: Integration of Californium 2.2.1
b67ac06: Fix maven-javadoc-plugin config after refactoring
b3a28d5: Move org.eclipse.leshan in org.eclipse.leshan.core for src/test/java too
29057de: Rename org.eclipse.leshan.util package in org.eclipse.leshan.core.util
596e983: Rename org.eclipse.leshan.tlv package in org.eclipse.leshan.core.tlv
1670bca: Rename org.eclipse.leshan.json package in org.eclipse.leshan.core.json
8d37fce: Move classes from org.eclipse.leshan to org.eclipse.leshan.core
2af4659: Add more checks about ServerIdentity in BaseObjectEnabler
50496cc: Remove unused code.
d1fde65: Trigger update on the specific server only for resource /1/0/8
efecf4b: Merge ServerIdentity and Server class
1c2844a: Support registering server.
c0c13b5: Use RegistrationEngine to extract Identity instead of BootstrapHandler
5efddd4: Add Role to Server to prepare fusion of Server and ServerIdentity class
35cfd41: Remove unused parameter "secure" to send method of LwM2mRequestSender
6f26c67: Add getServer(Identity) to RegistrationEngine.
93b21e7: Use Server object to triggerUpdate API
a42be1f: Use server identity to ensure we send request to the right server.
af98486: Change API to allow multi server at client side.
e58c01e: Use Server object as destination for RequestSender at client side.
2fdeaeb: Write more javadoc for Leshan Client.
49f6aa1: Fix all javadoc issue reported... (-_-!)
f1e40c6: Configure javadoc correctly. (-Xdoclint:"all,-missing")
6f914fb: Eclipse Public Licensing update. (epl-1.0 to epl-2.0)
8bd869a: Modify BaseObjectEnabler : return NOT_FOUND if resource is not in model
3f21169: Add Logs about DTLS Handshake for client-demo
0b1a113: Add logs for read/write/execute for leshan-client-demo
84baee0: Change lifetime value in bootstrap config for bsserver-demo.(20s =>5min)
5bb8296: Delete all instance on bootstrap delete "/" except device and bs server

leshan-1.0.0-RC1

20 Mar 17:11
Compare
Choose a tag to compare

Build artifacts are available on maven central.

Noteworthy

  • Integration of Californium 2.2.0-RC1.
  • Cleaning LWM2M client API.
  • Make LWM2M client more customizable.
  • Add new API to declare a key compromised and remove DTLS connection immediately at server side. (#818)
  • Send update when lifetime or binding mode changes or when objects are added/deleted (#433)
  • Add way to add or remove object dynamically at client side
  • Add a communication period to Leshan client which can override lifetime
  • lot of demo enhancements.

ℹ️ The release 1.0.0 is plan for mid april.

We also develop a command line tool devices simulator which is not yet part of Leshan.

Notable API/behavior break

  1. Many breaks at client side (see changes logs below)
  2. New method to implement for EditableSecurityStore at server side.

Change logs

03b02e3: Deactivate Cf MESSAGE_OFFLOADING by default.
049744e: Integration of Californium 2.2.0-RC1
d1cca91: #820:use contentformat plain text for execute request with parameters
25413f2: #819:Fix NPE which prevent to connect to server-demo with x509
10bf2c5: Clean some typo + avoid some InetSocketAddress collision in tests.
cf06668: Add some test about DTLS connection cleaning
57bbbeb: #162:Remove DTLSConnection when corresponding SecurityInfo is removed
36938b0: Use UnconnectedPeerException to consider Q device as sleeping
55f8301: Add UnconnectedPeerException to send API.
dd51dac: Add some tests about Leshan timeout
623eecf: Consider DTLS Handshake timeout as leshan timeout.
faa3ab0: Enhance "force reconnection" log in californiumEndpointsManager
d6199ab: Add force fullhandshake/force reconnect on update options to client demo
31f9cda: Add "start" event on LwM2mClientObserver
a74bd6a: Change some logs to INFO level in DefaultRegistrationEngine.
5e9673c: Add new option to force rehandshake on client update registration
b42bdc3: Enhance failure handling of DefaultRegistrationEngine
b611660: Adjust update period based on lifetime and COAP_EXCHANGE_LIFETIME.
2d63090: Add a communication period to Leshan client which can override lifetime
a768c46: #814: Add oc option to activate Deprecated cipher like CBC to all demos
194683c: Add ocf option to activate support to old/deprecated content format.#720
4ceca9b: Add additional attributes (-aa) option to leshan-client-demo
97b7666: Integration of Californium 2.1.0
1e1a945: Use the new HandshakeMode config from Californium
8d4c8fe: Use the new ObservationStoreException from Californium.
117a98d: Integration of Californium 2.1.0-RC2
1502b4e: Upgrade to last maven plugin version
c80ed31: Upgrade jedis from 2.8.0 to 3.2.0
bc8e152: Upgrade jmdns from 3.5.2 to 3.5.5.
de4e30b: Upgrade from angular from 1.2.17 to 1.2.32.
c405165: Upgrade from riot.js 3.11.1 to 3.13.2
467b781: Upgrade from jquery 2.1.1 to 2.2.4
1d23df3: Upgrade to bootstrap 3.4.1
881a119: Use Jetty EventSourceServlet from jetty-servlets.
634060f: Remove usage of deprecated methods in JUnit 4.13
a201a0e: Upgrade leshan dependencies
9d9a833: #15 : make request timeout configurable on server-demo
b175e87: Ensure that psk is a valid utf8 string.
e2872d2: #322 : avoid duplicate PSK identity in bsserver-demo
f9e0627: Display client error message in tooltip
6ffb0c7: Remove unwanted console.log in modal-resource-controllers.js
98497e2: #799 : serialize opaque in hexa and better display of opaque in demo
dccae6b: #148: make more clear when a model is not known by server-demo
47fd022: only display demo write button for instance with writable resources
62f4ad1: make mandatory field more visible
21c0aa0: #604: allow client to choose instance Id on create (server-demo)
0bc9998: #652 : Add partial write support to server-demo
d9485d4: #453 : Add udpate command to client-demo to trigger registration update
1ff829b: Change default lifetime from 30s to 300s and make it configuration.
b89c340: Try to do a "smart" update on reg update instead of rebuild the tree.
0348b97: Improve location (wasd) commands.
8fbb0bd: Add more models to client-demo (as now we can create object dynamically)
d810863: #598: update client server-demo view if new object is added/removed
4629e58: #598: add new command to client-demo to create/delete object dynamically
6aea664: Rewrite some code to be compliant with android 4.4.2.
9a49237: Activate android sniffer to check android compatibility.
a55f2ba: Fix LOGGER creation in RequestSender
eb12094: Add shared executor support to client request sender.
d87f326: #703: fix race condition with client.triggerRegistrationUpdate()
39b6335: Move all registration stuff in theirs own "engine" package
221b755: Change DefaultRegistrationEngine constructor (use LwM2mObjectTree)
9e5bece: Add a registrationEngineFactory (aims to implements #199)
1a4a7b7: Introduce an Interface for RegistrationEngine
99b2b4b: Make more field protected to make extensibility easier.
c3b6e0a: Make easier to create custom LeshanClient.
6a84fea: Make every part of LeshanClient replaceable.
8799faf: Add some javadoc + coapAPI object.
fca8929: Do not use secondary executors for LWM2M client.
5496ad9: Use only 1 DTLS receiver thread by default for LWM2M client.
9f3cb0a: #491 : provide a way to share an executor between several clients
8287d7f: Cancel a request must raise a CancelRequestException on sync call
68afb19: Clean Delete Tests
5b6d363: Ensure that all mandatory resources was present for Create/WriteReplace
735ea1e: Remove NotifySender as ObjectListener can do the job now.
b687e5c: Introduce transactional listener to regroup notifications.
6ef4932: Implement Reboot executable resource (3/0/4)
4300a98: Implement Registration Update Trigger executable resource (1/x/8)
3ebc5c7: Add a way to access to LwM2mClient from ObjectEnabler
0066d07: #433: Trigger reg update when lifetime or binding mode is changed.
c0d1bed: #433: Send registration update when objects are added/deleted
da2a39e: Add way to add or remove object dynamically at client side
dd02d25: Clean tests : send a well-formed ping to avoid unwanted log errors
6ffff71: Fix log config issue (because of logback-test config from cf)
7e72078: Add some m2e configuration to make it works out of the box with leshan
ddc1ffb: Replace eclipse:eclipse by resources:copy-resources@configure-eclipse

leshan-1.0.0-M13

13 Jan 16:46
Compare
Choose a tag to compare

Build artifacts are available on maven central.

Noteworthy

  • Integration of Californium 2.0.0 ! Thx @boaks for all your works 🙏 !
  • Cleaning LWM2M Server API.
  • Make LWM2M Server more customizable.
  • Previous LWM2M Bootstrap server version introduces a way to avoid 2 bootstrap session at the same time given priority to the first one, we finally change it to give priority to the last one.
  • Fix some bugs and LWM2M uncompliant behaviors.

ℹ️ Concerning LWM2M server and LWM2M bootstrap server, there is no more changes planned for the final 1.0.0 release. Next milestone will focus on the LWM2M client part and then we will be ready for the 1.0.0 version.

Notable API/behavior break

  1. leshan-cluster was removed (#679)
  2. JSON format is no more supported for object model definition (#707)
  3. CreateRequest change a lot to be compliant with the LWM2M specification (#768)
  4. It could have behavior break with JSON ContentFormat as we fix some issue on it (#651)
  5. It could have behavior break with link value (#775 and #774)
  6. "impl" package was removed
  7. LwM2mBootstrapServer, LwM2mClient, LwM2mServer interface was removed
  8. getRegistrationEndpointAddress() method was removed from Registration

Change logs

a211c1f: #784 : support unset for write attributes request
f154718: Fix race condition issue about PresenceService and simplify the code.
8120415: #732: fix rt and ver attributes of Link format.
ed9e8ad: Server SHOULD not initiate DTLS connection for device using Queue mode
fb7d474: Remove uneeded ignored tests about create request.
f8fc761: Move test from RegistrationTest to LeshanBuilderTest
eaa38c5: reword/remove some TODO.
f110f77: Remove workaround about HEALTH_STATUS_INTERVAL as it fixed in Cf.
ec99ef3: Change JsonException from Runtime to Checked exception
d96a665: Introduce generic JsonException & make LwM2mJsonException a checked one
3efc58b: Move JsonSerDes from "model.json" to "util.json" package
7adef51: Reuse SecurityUtil in configurationChecker and ServersInfoExtrator
2c371a5: Make CreateRequest compliant with LWM2M specification
83edf4f: Remove TODO about bad request on update and delete registration.
2d455bb: Remove support of deprecated update registration using PUT.
f5a3941: Use LwM2mNodeEx for malformed node instead of IllegalArgumentEx.
65d8be4: Validate that LwM2mNode haven't children with same Id
aba5e63: Ensure that LwM2M path is created with valid ID
998873d: Ensure that LwM2M node is created with valid ID
6224546: Can not create object instance without id with JSON content format
d468294: #651 : fix JSON content format implementation
feefe02: Add support to upload file for opaque field.
d44a562: #781: fix opaque decoder issue with null/empty value.
346bf6c: Add empty opaque test
bb159bf: Add a map based way to initialize SimpleInstanceEnabler.
226e924: Integration of Californium 2.0.0
6817e74: #775: remove whitespaces between "link-values" for Link serialization
f512b57: Shutdown presence service schedulor on destroy.
bf1ae7f: Shutdown async observer thread on destroy.
1ccd556: Fix start/stop RegistrationStore issue.
81436c4: Add some tests about start/stop/destroy servers
b437d0c: Remove "impl" package in leshan-server-cf (in tests)
2b5b233: Add more javadocs to leshan-server-*.
b7e77ac: #743: Add documentation + fast fail when null is used for callback
0487082: Ensure that user receive either 1 response or 1 error on send
91b4340: Add TRACE logs in DefaultBootstrapSessionManager
5cc2747: Use DownlinkRequest instead of LwM2mRequest in BootstrapSessionManager
7fde752: Rename cancelPendingRequests() in cancelOngoingRequests()
3e4df34: For concurrent bs session, priority to the last one (cancel the oldest)
7baf5b6: Use session in bootstrap request sender.
1205159: Add ID and cancel facility to bootstrap session.
d990528: Create a new RequestSender Utility class, use it for server and bsserver
f3d3079: Remove unused getRegistrationEndpointAddress() method in Registration
4d4cd10: Use secure/unsecured endpoint instead of a list of endpoint in server.
6d87530: Remove Registration/Obs...Service dependencies for LwM2mResponseBuilder
e36b0cd: Fix CancelObservationResponse building.
480d886: Use loggingTag to better understand log mixing client and server.
a8b8354: Integration of Californium 2.0.0-RC1
c358599: Cancel ongoing requests if device IP changed
372b76e: Fix missing throw exception in LwM2mModelRepository
89fe475: #707: Remove JSON format for object model definition
faa777e: #679: Remove leshan-server-cluster
449768c: Refactoring clean packages in leshan-client-core
c79d91c: Remove "impl" package in leshan-client-cf
d7d54e7: Remove "impl" package in leshan-server-cf
3fc86ae: Remove "impl" package in leshan-server-core
d00ccd6: Remove pointless LwM2mBootstrapServer interface
8823409: Remove pointless LwM2mClient interface
179d509: Remove pointless LwM2mServer interface.
0d5ef94: Make easier to create custom LeshanServer.
85409e4: Make every part of LeshanServer replaceable.
742669f: #751: Add some documentation about listener execution.
07b9deb: Integration of Californium 2.0.0-M18
2c72d85: #747: fix dead lock in leshan-client-demo
6ac723c: Add Security policy (SECURITY.md)
f4df14b: Integration of Californium 2.0.0-M17
5944b66: Added WriteAttributes to REST API of leshan demo server

leshan-1.0.0-M12

23 Aug 12:36
Compare
Choose a tag to compare

Build artifacts are available on maven central.

Noteworthy

Cleaning Bootstrap Server API.
Make Bootstrap Server more customizable.
Add support of object version at Server side.
Integration of Californium 2.0.0-M16.

Notable API/behavior break

  1. leshan-all project was removed (#683)
  2. Redis store implementation are moved in a leshan-redis-server project (#679)
  3. Old TLV/JSON code is not supported by default anymore (#720)
  4. No more magic conversion by default at encoding time (#710)
  5. With new object versioning, only model reported in registration are used, you can keep the old behavior like this.
  6. Lot of bootstrap server API break, mainly renaming (#713)

Known Issue :

#757: Memory leak in DTLS Connection Store.

Change logs

43c3167: Clean CoAP root resources
91f4a83: Use VersionedModelProvider in leshan-server-demo
c8553cf: Add VersionedModelProvider, it adds object versioning support for server
fe8512e: Add LwM2mModelRepository, it can contain several version of same object
a8580a2: Make LwM2mModel an interface. Concrete class is now StaticModel
cad7db0: #679: Extract Redis store from server-cluster to new server-redis
0624fe7: #683: Remove leshan-all maven project.
3516342: Add BootstrapSession param to BootstrapConfigStore.get()
831ad40: Use serverIdentity instead of Identity for log at client side
ca15e3d: Enhance the way we handle InvalidRequest from foreign peer.
680ee7d: Do not do type conversion at encoding time by default anymore.
5e344d3: Add a way to use custom encoder/decoder at bootstrap server side
13cc434: Remove support of old TLV/JSON code by default.
ae3f4c2: Add a way to use custom encoder/decoder at client side
ea62317: use MAX_TRANSMIT_WAIT from NetworkConfig as client awake time by default
ecf87fa: Add a new DefaultEndpointFactory
3f0e136: Add bootstrapSession parameter to Success and failure callback
d3ab4e0: Start to send bootstrap requests after we send bootstrap response.
dc1a4c8: Remove unnecessary executor in DefaultBootstrapHandler
405556b: Stop Bootstrap session on unexpected exception.
0e924e0: clean logs in DefaultBootstrapHandler - fix log config of bsserver-demo
c531e0b: Add some tests about concurrent bootstrap session.
a31b76c: Add lifetime to session.
717ffc9: Avoid to handle 2 bootstrap session at the same time.
22fbc99: Add a way to customize behavior on failure during a bootstrap session
f8cb8d2: Add request/response callbacks on BootstrapSessionManager.
5164c6d: Integration of Californium 2.0.0-M16
4936443: #712: Reset timer even if we already "awake" in queue mode.
d0de9db: Fix unwanted warning when creating server without secure CoAP endpoint.
91d30d1: BS Builder now create an InMemoryBoostrapConfigStore by default.
7eef1c9: Rename BootstrapSecurityStoreImpl in BootstrapConfigSecurityStore.
45d79c6: Rename methods from BoostrapConfigStore to make it more consistent.
60e9c90: Make JSONFileBootstapStore thread safe
fd82ac1: Rename BootstrapStoreImpl in JSONFileBootstrapStore.
644d931: Create EditableBoostrapConfigStore and InMemoryBootstrapConfigStore.
37a8ef5: Rename BootstrapStore in BootstrapConfigStore
3899a90: Rename ConfigurationException in InvalidConfigurationException
27c449b: Move ConfigurationException in its own class.
39813b8: Make ConfigurationChecker dynamic.
10a1c57: Move ConfigurationChecker from server-demo to server-core
a6373e9: Add identity to log about bootstrap failure
964e8fa: Fix inconsistent log level in DefaultBootstrapHandler
3d2bb49: Fix typo in ServersInfo : deviceMangements <=> deviceManagements
f374b11: Fix NPE at client side: server.getUri() failed for unknown host
23707da: Bootstrap server does not need to initiate DTLS Handshake
df53c51: Add getters for endpoints to CoAP LeshanServer API.
850cc93: Use new sandbox url in Leshan client.
11b7ec2: #701: fix bootstrap retry on failure.
98d0b5e: #699 : Fix NPE when bootstrap write instance at client side
abe036f: Integration of Californium 2.0.0-M15
f3395c5: Clean BootstrapServer JavaDoc.
9732665: Make easier to create custom LeshanBootstrapServer.
282234b: Make every part of LeshanBootstrapServer replaceable.
435232b: Add coap() method to access to CoapAPI to bootstrapServer
b57fb4d: Remove warning as the limitation does not exist anymore. (see #87)