Skip to content

Releases: eclipse-leshan/leshan

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)

leshan-1.0.0-M11

18 Apr 15:45
Compare
Choose a tag to compare

Build artifacts are available on maven central.

Noteworthy

Add support of active observe cancellation.
Add support of OPAQUE type for text format. (#675)
Integration of Californium 2.0.0-M14.
Delete request sent by bootstrap server is now customizable in BootstrapConfig.
Bootstrap behavior is now easier to customized as you can implement your own BootstrapHandler.
Enhance client API (add callback on delete, atomic read/write/observe at instance level, custom instance id ...).
Clean client ObjectInitializer API.

Thx to @davideicardi for the OPAQUE support contribution 🙏 !

Notable behavior break

  1. Before this release a bootstrap server always started a bootstrap with a delete "/". It depends of BootstrapConfig content. (see #670)
  2. ObjectInitializer does not create instance automagically anymore. (#642)

Known Issue :

#757: Memory leak in DTLS Connection Store.
#685: Trying to destroy() a "not running" instance (client, server or bs server) will not stop internal coap server.
#712: Issue with presence service (Queue mode) at server side.

Change logs

d7fb3f1: Fix Client.getRegistrationId() which always returned null ...
f3be830: "client destroy" should destroy client even if client is not running.
8042fb4: Link.java cleaning : add some javadocs + rewrite serialize method.
965d0e1: Workaround ByteBuffer binary backward compatibility break from Java 9
bff1ab4: Added OPAQUE text encoding/decoding, using base64
b76c670: leshan-bsserver-demo now delete only object /0 and /1
323a1bf: Add some integration tests about "bootstrap delete"
ea2e70b: #670: Add a way to choose which instances to delete to BootstrapConfig
be20408: Make easier to custom start & stop bootstrap in DefaultBootstrapHandler
4ffc79c: Add a way to customize request timeout of DefaultBootstrapHandler
2fdcdfb: Make DefaultBootstrapHandler easier to extend
1d49b5d: Make BootstrapHandler as an interface and add DefaultBootstrapHandler
1d8fdd7: Add a way to use a custom bootstrap handler
e0d0ead: #647: make Registration.class serializable again.
e3aea30: #647: ensure our serializable classes keep serializable.
be1c51f: Update README: use new sandbox URL : leshan.eclipseprojects.io
eb75fc8: Workaround build issue eclipse-californium/californium#910
d9d2e4c: #404: Add ACL to bootstrap server
366f044: Add support of active cancel observation request at server side.
d00ad25: Integration of Californium 2.0.0-M14
2f0f94e: Integration of Californium 2.0.0-M13
7350b42: Fix regression in client demo introduce with 05cd0b3
05cd0b3: Do not create instance for single object implicitly.
120d7eb: Create a real "simple" and "dummy" instance enabler.
d4c09ad: Do not create dummy object implicitly
cf4114b: add a createAll methods to ObjectInitializer.
1f8b817: #637: add callback on instance deletion at client side
2fb88ab: #597:add a way to do atomic read/write/observe at instance enabler level
953ccd5: add ServerIdentity to read/write/execute/observe/create for consistency
1b1d9f7: The spec does not say that you can not create instance for single object
ea81b37: #597: add a way to choose the instance id at client side.
b365633: Fix client side : create right server identity type in EndpointsManager
f315c66: Fix #627 : set CoAP request path for Bootstrap Delete Request

leshan-1.0.0-M10

05 Dec 16:31
Compare
Choose a tag to compare

Build artifacts are available on maven central.

Noteworthy

Add support of X509 for client, bootstrap server and all demos,
And some others bug fixes and little enhancement.

Change logs

4ad71b1: #625 : fix InMemoryReg..Store addr index issue on re-register and update
ec0fc8b: #624 : do not launch cleaningTask from registrationStore several time.
9b497b2: Fix #623 issue about observation reset by starting only one cleaningTask
3a565f8: #574: Add API to choose default content type as client side
9f54a26: #599: Deleting Bootstrap Server Account is not allowed.
63f159a: #599 : Deleting Device object (id 3) is not allowed.
3073e0e: Add complete support to bootstrap delete request at client side.
fe58a35: BootstrapDelete Request can target "none root" path.
8ba1354: upgrade to surefire 3.0.0-M1 because of openjdkbug.
3010832: #589: Use separate response for bootstrap finished request
05c3b0f: #589: fix race condition about bootstrap finished at client side.
9cab0aa: Move SendableResponse from leshan-server-core to leshan-core
1c680a1: Add icon to leshan-server-demo to see when a device is absent
3f6b794: Fix PresenceService issue where onSleeping could be interrupted
8582229: #431: add UI to bootstrap server demo for X509 support.
6b2fb2e: #431: add helper method to set X509 credential for bootstrap server
2f40576: Add X509 support to Leshan client demo
4fff2f7: Add a default certificate to server-demo and display it in security tab
f2748e3: Update Redis tests to be compatible with RPK and X509
a5a6e94: Add a script to generate keyStore
ff824d3: #436: Add X509 support to leshan client
877250c: Move from static SecurityCheck to Dynamic SecurityChecker
df0f0c0: #593: handle update/register timeout and retry with new handshake
fbc01b8: #575: fix public key downloading feature on servers demo

leshan-1.0.0-M9

27 Sep 15:47
Compare
Choose a tag to compare

Build artifacts are available on maven central.

Noteworthy

Add support of RPK for client and all demos,
Integration of Californium 2.0.0-M12,
And some others bug fixes and little enhancement.

Known Issue :
#589 => fixed by #592.
#575 fixed in master.
#593 fixed in master.

Change logs

116d6f0: Use the new clone API on DtlsconfigBuilder from californium
921e31c: Integrate Californium 2.0.0-M12
82dd43b: Display more RPK information in leshan-server-demo UI.
62484ed: Print hexa public and private key in log of Leshan client demo.
e27d2de: Fix X509 bootstrap server demo UI
3ed2caf: Add RPK support to bsserver demo
2cf53cc: #537: Add RPK API for bootstrap server
1690036: Add button to download server-demo public key in PKCS8 format.
208d8f5: Add support of RPK to Leshan Client Demo
a75f820: Add RPK bootstrap tests.
3e35551: #435: Add support of RPK
b463fcf: Handle better SendFailedException in client RegistrationEngine
ad6fe62: Leshan client refactoring : use one CoAP endpoint by server
fc627d0: Clean and stabilize integration-tests
251c22b: Refactor bsserv-demo, upgrade to riot.js 3.11, new bs server cfg UI #374
cb4419c: #548 : change bootstrapStore API, add device Identity to getBootstrap
15f3ecd: Update IPSO model using from https://github.com/IPSO-Alliance/pub
c68e33a: Allow the use of -Dlogback.configurationFile for demos

leshan-1.0.0-M8

01 Aug 13:42
Compare
Choose a tag to compare

Build artifacts are available on maven central.

Noteworthy

Add new AttributeSet API for write attributes.
Enhance discover at client side.
Integration of Californium 2.0.0-M11,
And some others bug fixes and little enhancement.

Thanks to @rkimsb2 and @danielhqv their contributions !

Known Issue :
#542 should be fixed in the next release.

Change logs

cc78bea: Add more margin to time to wait in QueueModeTest
08be427: Cf 2.0.0-M11 integration
af53b83: Remove usage of deprecated ObserveSpec
1df14fb: Use AttributeSet for WriteAttributesRequest
4e83855: Add Attribute and AttributeSet class (needed for discover an write attr)
790e022: #530: DiscoverResponse should return existing resources.
66a6fe3: clean SecurityInfoSerDesTest : remove syserr
a7c958a: DeleteRequest should target object instance only.
a45b093: #503: Fix RequestSender to cancel blockwise request on deregistration
056fac3: Readme: update link to the lwm2m spec 1.0.2 and use https for sandbox
13ee2cb: Add an option (-wh) on demos to choose web address.
53d854d: #522: ensure Security/Server object will be used even after a bootstrap
fdc0897: #522: fix secretKey was written instead of serverPubKey in client

leshan-1.0.0-M7

11 Jun 15:38
Compare
Choose a tag to compare

Build artifacts are available on maven central.

Noteworthy

Performance improvement of RedisRegistrationStore,
Integration of Californium 2.0.0-M10,
And many others bug fixes and little enhancement.

Thanks to @rkimsb2 for the RegistrationIdProvider contribution !

Known Issue :
#503 should be fixed in the next release.

Change logs

b6da9cc: Fix build do not try to sign/deploy empty leshan-integration-tests jar
b76643d: Authorizer now returns a registration.
13170b9: Fix a "!=" used instead of "equals"
ae823f6: #508: Enhance registration expiration of RedisRegistrationStore
4b7a6e2: Add registrationId index in InMemoryRegistrationStore
947e801: #464: Fix registrationByAddr (use index and handle conflict)
5231f67: #485: new coap API to LeshanServer
e5bc463: #485: add support of CoAP request for QueueModeLwM2mRequestSender
e16d8f3: #485: add support of CoAP request for CaliforniumLwM2mRequestSender
3397939: #485: refactor RequestObserver to support CoapRequest
2ba42bc: #460: support object intance level when reading resource in TLV
77e0a3e: #460: add tests about undesired object instance level in TLV
d4639b8: #443 : Better handling of null value in SecurityCheck
7ce3ead: #429 : Raise CodecExpection if 2 node with same Id in json decoder
d2ff1db: #429 : add tests for json about 2 node with same Id
932bd6b: #429 : Raise CodecExpection if 2 node with same Id in TLV decoder
4b6c499: #429 : add tests for tlv about 2 node with same Id
4668ab7: Cf 2.0.0-M10 integration : Use getIdentity instead of getName
023b6ee: Cf 2.0.0-M10 integration : Deactivate SNI by default
720e5b4: Cf 2.0.0-M10 integration : Remove unused class
4870669: Cf 2.0.0-M10 integration : PskStore API break (new SNI support)
e57c417: #504 : improve isNumber performance.
e438d74: #502: deactivate californium health logger by default.
79c8cab: #498: DDF file can contains more than one object model
047dbed: add RegistrationIdProvider to change default random string registrationId.
966c992: Export all packages for OSGI. (strict minimal effort to support OSGI)
9a4a34f: Remove warning :JAR will be empty - no content was marked for inclusion
b79ba97: Upgrade to last maven plugins version
7354f4b: Add requirement for about maven minimal version to use
807c4f0: Use explicit versioning and move it all in pluginManagement of root pom
6edb230: Remove optional org.apache.maven.plugins
4422df6: Fix Formatting issue and add comments in pom.xml

leshan-1.0.0-M6

10 Apr 16:02
Compare
Choose a tag to compare

Build artifacts are available on maven central.

Noteworthy

Support of Queue Mode at server side with the introduction of PresenceService.
Integration of Californium 2.0.0-M9.

Many thanks to @carlosgp143, @rkimsb2 and @balsmn for their Leshan contributions !

Change logs

cc9740a: #482 : Server ID resource is optional for bootstrap server.
c8e1538: Queue Mode Integration Tests added
36a3ea3: Update to californium 2.0.0-M9.
790fe57: #486: Fix INTERNAL_SERVER_ERROR name
b27e954: Implemented the update of AdditionalRegistration parameters
1c322bf: Added ClientAwakeTimeInformation to change the default 93 sec.
99dbc67: Remove deprecated usage of new CoapEndpoint()
2112e13: Use Set instead of List for TokenToReg index
b7c0257: Do not add TokenToRegister index when using putifabsent if not absent
ae02eaf: Update to californium 2.0.0 M8.
b27fb6c: #473: Include logback.xml in jar as default config for demo
a19519b: #473: use $working_directory/logback-config.xml as default config
c23dcbf: Make git ignores logback config in classpath
f1d23e7: #473: move logback-test.xml to root and configure surefire to use it
c1659d7: BootstrapHandler log level cleanup
b30a6c2: Add a way to deactivate "PresenceService"
6b51cc0: Finalization of QueueMode support (server side) based on PresenceService
5a6b147: Initial work about a simplified Queue mode API adding PresenceService
bff7763: Fix #166: Use Atomic long instead of hashcode
f0f45b9: Fix unstable test : BindException: Address already in use (Bind failed)
7ba5bf1: Return Map instead of Collection for LwM2mClient.getObjectEnablers()
b6bfe60: Fix #463 : Remove optimization for encoding single instance object.
ee77166: Fix Tests from examples of the LWM2M specitication 1.0.1
4f63114: Empty payload should not have Content-Format: 0 (text/plain)

leshan-1.0.0-M5

19 Jan 12:59
Compare
Choose a tag to compare

Build artifacts are available on maven central.

Noteworthy

A better timeout handling.
A better observation support as client side.
A more flexible way to handle Response Code.
Replace Gson dependency by minimal-json.
We now use the Californium 2.0.0-M6 which :

  • allow us to fix an old security issue (#187),
  • should fixed most of memory leaks,
  • uses sl4j as log facade instead of java.loggin.util.
  • does not dependent on netty anymore.

⚠️ There is compatibility break in the way we serialize Observation and Registration in RegistrationStore. This will impact the experimental RedisRegistrationStore. If you are using it you should look at #454 (which is not integrated in this version).

⚠️ Californium 2.0.0-M6 does not contain the expiremental coap-tcp support. (see eclipse-californium/californium#491)

Many thanks to @achim for its huge work on Californium and @danielhqv, @AlexITC, @rkimsb2 for their Leshan contributions !

Change logs

587dffd: Fix for #459 : support empty ObjectVersion attributes
ee34d7f: #458 Fix NPE in RegistrationSerDes and RegistrationUpdateSerDes
ccaccfd: Add "version" to Objects in LWM2M Model
b699367: Configure simplelogger correctly for leshan-client-demo
63e3352: Error Log only for tests
d103207: Use logback instead of log4j2
6d5c66e: Californium does not use JUL anymore, so remove configuration file.
5faf18d: Fix race condition on AsyncRequestObserver
dd6a4bd: Remove always false condition : issue #452
9f7895e: Rename ExchangeUtil in EndpointContextUtil
145df81: Add tests to ensure we can not send request if identity change
5dc8842: Introduce principal based request-response matcher.
89dcd40: Remove used of deprecated methods
6e84a99: Use Identity as destination.
83ed30e: Add processing of onSendError callback.
1a8cd91: Introduce californium endpoint context.
692569e: Hide CTX_ENDPOINT to end-users this is internal only.
a025dff: Create ObserveUtil to factorize code.
9a95d5c: Make observation immutable and implement equals/hashcode
3dfa899: Add checks to verify observation is add to the store in tests
dd98fe4: Add tests with timedout request
b592795: Timeout is now mandatory or have a default value for sync and async req
d547a7c: Add timeout to AsyncRequestObserver
7b3af16: Fix #449: use minimal-json 0.9.5
5459296: Remove parallel tests waiting 0.9.5 version of minimal-json.
ee91de0: clean some code (missing final ..)
52e905b: Clean observerSpec Test
cf706e6: Issue #441: Use array content instead of array object in LeshanServerBuilder#build
ebbf6f7: Add to README that demos have a "--help" option
8c92892: Remove RE,WE and RWE operation from model according to lwm2m spec
b87781f: Add LICENSE file for github
62addf1: Link CONTRIBUTING.md to the "How to contribute" wiki page.
07a4148: Change README: add link to leshan wiki (documentation).
b7e0d80: Update README (add a link to supported features)
3b8e7a9: remove isAlive test on getRegistrationByEndpoint in redisStore
02d5190: Add clemency for registration expiration to redisStore
6cad580: Deserialize registration in protected block (after lock)
e581476: Do not remove registration by endpoint, if no registration by Id.
3610834: Do not hide CHANGED response on observe
0b9cc17: Fix server-demo ui bug on delete instance
058b97f: Use isValid in server-demo to show if response respect the lwm2m spec
9f38779: Factorize code
c5ced8b: Add ResponseCode.isValid() to know if code is allowed by the lwm2m spec
b959764: Add missing response code defined in the lwm2m specification
3cab54d: Allow to receive error code not defined in the lwm2m spec
2f597fb: Add some utility function
ea6dadb: Add Unknown LWM2M responseCode
6a620f6: Add toLwM2mResponseCode(CoapResponseCode) and use it
a018896: Rename fromCoapCode>toLwM2mResponseCode fromLwM2mCode>toCoapResponseCode
80543cb: Rewrite Coap/lwm2m response code translation
7dc1023: Change ResponseCode from enum to class.
82e4d37: Replace Gson by minimal-json for JSON content format.
6338ed4: Replace Gson by minimal-json for model representation.
ba3a103: #416 : raise CodecException if 2 Tlv resource instance with the same id
69881c0: Issue #423: Fix logging details for onNotification method
e54f0a3: Issue #418: Allow subtypes of Certificate and X509Certificate on LeshanServerBuilder
a2493fa: Issue #421: Support additionalAttributes on LeshanClientBuilder
8a6ac2b: Add observe support for instance and object at client side.
ccf43d6: Observe support in object and instance enablers
cf933b6: Enabled ability to force registration update
673f52d: Spelling fixes in README.md
08594ab: Add values ID deserialization of multi-instance resource in server-demo
cd08129: #392: fix builder and add some unit tests
cf92f70: Add warning in "remove()" if registration does not exist anymore
8cb071b: Limit Jedis resource consumption
c15336a: #389: fix RedisRegistrationStore.getAllRegistrations()
00433fc: #387: add readlock on InMemoryRegistrationStore.getRegistrationByAdress
1616615: Set basename.
5341979: #373: use real bsserver port in bsserver-demo
9c714dc: Warn if client has several security instance with the psk identity.