From 58e544c32e6f2274a3084a1ba1509a020fa2d59d Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Tue, 5 Jan 2021 10:50:17 +0200 Subject: [PATCH] Make LwM2mValueConverterImpl singleton --- .../transport/lwm2m/server/LwM2MTransportRequest.java | 2 +- .../lwm2m/server/LwM2MTransportServerConfiguration.java | 4 ++-- .../transport/lwm2m/server/LwM2MTransportService.java | 2 +- .../server/transport/lwm2m/server/client/LwM2MClient.java | 2 +- .../transport/lwm2m/utils/LwM2mValueConverterImpl.java | 6 ++++++ 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportRequest.java b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportRequest.java index e919835a1a..5ee37ac380 100644 --- a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportRequest.java +++ b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportRequest.java @@ -91,7 +91,7 @@ public class LwM2MTransportRequest { @PostConstruct public void init() { - this.converter = new LwM2mValueConverterImpl(); + this.converter = LwM2mValueConverterImpl.getInstance(); executorResponse = Executors.newCachedThreadPool( new NamedThreadFactory(String.format("LwM2M %s channel response", RESPONSE_CHANNEL))); executorResponseError = Executors.newCachedThreadPool( diff --git a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportServerConfiguration.java b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportServerConfiguration.java index 2725e80e2b..c17400ede8 100644 --- a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportServerConfiguration.java +++ b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportServerConfiguration.java @@ -73,7 +73,7 @@ public class LwM2MTransportServerConfiguration { builder.setEncoder(new DefaultLwM2mNodeEncoder()); LwM2mNodeDecoder decoder = new DefaultLwM2mNodeDecoder(); builder.setDecoder(decoder); - builder.setEncoder(new DefaultLwM2mNodeEncoder(new LwM2mValueConverterImpl())); + builder.setEncoder(new DefaultLwM2mNodeEncoder(LwM2mValueConverterImpl.getInstance())); /** Create CoAP Config */ builder.setCoapConfig(getCoapConfig()); @@ -89,7 +89,7 @@ public class LwM2MTransportServerConfiguration { builder.setDtlsConfig(dtlsConfig); /** Use a magic converter to support bad type send by the UI. */ - builder.setEncoder(new DefaultLwM2mNodeEncoder(new LwM2mValueConverterImpl())); + builder.setEncoder(new DefaultLwM2mNodeEncoder(LwM2mValueConverterImpl.getInstance())); /** Create DTLS security mode * There can be only one DTLS security mode diff --git a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportService.java b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportService.java index d031e63c89..9b082ce09f 100644 --- a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportService.java +++ b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportService.java @@ -123,7 +123,7 @@ public class LwM2MTransportService { new NamedThreadFactory(String.format("LwM2M %s channel update registered", SERVICE_CHANNEL))); this.executorUnRegistered = Executors.newCachedThreadPool( new NamedThreadFactory(String.format("LwM2M %s channel un registered", SERVICE_CHANNEL))); - this.converter = new LwM2mValueConverterImpl(); + this.converter = LwM2mValueConverterImpl.getInstance(); } /** diff --git a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2MClient.java b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2MClient.java index e91f8479e2..6519b5cd33 100644 --- a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2MClient.java +++ b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2MClient.java @@ -78,7 +78,7 @@ public class LwM2MClient implements Cloneable { * Key , response instance -> resources: value...> */ this.responses = new ConcurrentHashMap<>(); - this.converter = new LwM2mValueConverterImpl(); + this.converter = LwM2mValueConverterImpl.getInstance(); } /** diff --git a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/utils/LwM2mValueConverterImpl.java b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/utils/LwM2mValueConverterImpl.java index 44fcfad9b6..cca1effae4 100644 --- a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/utils/LwM2mValueConverterImpl.java +++ b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/utils/LwM2mValueConverterImpl.java @@ -33,6 +33,12 @@ import java.util.Date; @Slf4j public class LwM2mValueConverterImpl implements LwM2mValueConverter { + private static final LwM2mValueConverterImpl INSTANCE = new LwM2mValueConverterImpl(); + + public static LwM2mValueConverterImpl getInstance() { + return INSTANCE; + } + @Override public Object convertValue(Object value, Type currentType, Type expectedType, LwM2mPath resourcePath) throws CodecException {