From 1dd2e35f89e018e4ef1af3188e7100938923e3d7 Mon Sep 17 00:00:00 2001 From: Rushdi Date: Tue, 8 Mar 2022 22:05:17 +0530 Subject: [PATCH] Update traccar cofiguration --- .../org.wso2.carbon.device.mgt.core/pom.xml | 12 +----- .../impl/DeviceInformationManagerImpl.java | 13 +++---- .../DeviceManagementProviderServiceImpl.java | 13 +++---- .../api/service/addons/TrackerClient.java | 16 +++++--- .../impl/TraccarAPIClientServiceImpl.java | 2 - .../common/TraccarHandlerConstants.java | 2 + .../traccar/common/beans/TraccarGroups.java | 39 +++++++++++++++++++ .../config/operation/traccar-config.xml | 2 +- 8 files changed, 64 insertions(+), 35 deletions(-) create mode 100644 components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/traccar/common/beans/TraccarGroups.java diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml b/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml index d5618ef1d8..3a8962b602 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/pom.xml @@ -343,18 +343,8 @@ guava - com.fasterxml.jackson.core - jackson-databind - 2.11.2 - - - io.github.openfeign - feign-okhttp - - - org.wso2.orbit.com.squareup.okhttp + com.squareup.okhttp3 okhttp - 4.2.0.wso2v1 compile diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/device/details/mgt/impl/DeviceInformationManagerImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/device/details/mgt/impl/DeviceInformationManagerImpl.java index e019716bdf..57e672bd62 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/device/details/mgt/impl/DeviceInformationManagerImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/device/details/mgt/impl/DeviceInformationManagerImpl.java @@ -43,8 +43,6 @@ import org.wso2.carbon.device.mgt.core.device.details.mgt.dao.DeviceDetailsMgtDA import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder; import org.wso2.carbon.device.mgt.core.report.mgt.Constants; import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderService; -import org.wso2.carbon.device.mgt.core.traccar.api.service.DeviceAPIClientService; -import org.wso2.carbon.device.mgt.core.traccar.api.service.impl.TraccarAPIClientServiceImpl; import org.wso2.carbon.device.mgt.core.traccar.common.config.TraccarConfigurationException; import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil; import org.wso2.carbon.device.mgt.core.util.HttpReportingUtil; @@ -390,8 +388,12 @@ public class DeviceInformationManagerImpl implements DeviceInformationManager { } //Traccar update GPS Location - DeviceAPIClientService dac= DeviceManagementDataHolder.getInstance().getDeviceAPIClientService(); - dac.updateLocation(device, deviceLocation); + try { + DeviceManagementDataHolder.getInstance().getDeviceAPIClientService() + .updateLocation(device, deviceLocation); + } catch (TraccarConfigurationException e) { + log.error("Error on Traccar while adding GEO Location" + e); + } //Traccar update GPS Location DeviceManagementDAOFactory.commitTransaction(); @@ -407,9 +409,6 @@ public class DeviceInformationManagerImpl implements DeviceInformationManager { // } catch (DataPublisherConfigurationException e) { // DeviceManagementDAOFactory.rollbackTransaction(); // throw new DeviceDetailsMgtException("Error occurred while publishing the device location information.", e); - } catch (TraccarConfigurationException e) { - log.error("Error on Traccar" + e); - //e.printStackTrace(); } finally { DeviceManagementDAOFactory.closeConnection(); } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java index 845e335b40..bd7e2ebb50 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java @@ -396,11 +396,9 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv //enroll Traccar device try { - DeviceAPIClientService dac= DeviceManagementDataHolder.getInstance().getDeviceAPIClientService(); - dac.addDevice(device); + DeviceManagementDataHolder.getInstance().getDeviceAPIClientService().addDevice(device); } catch (TraccarConfigurationException e) { - log.error("Error on Traccar add device" + e); - //e.printStackTrace(); + log.error("Error while adding a device to traccar " + e); } //enroll Traccar device @@ -567,11 +565,10 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv //disenroll Traccar device try { - DeviceAPIClientService dac= DeviceManagementDataHolder.getInstance().getDeviceAPIClientService(); - dac.disDevice(device.getDeviceIdentifier()); + DeviceManagementDataHolder.getInstance().getDeviceAPIClientService() + .disDevice(device.getDeviceIdentifier()); } catch (TraccarConfigurationException e) { - log.error("Error on Traccar disenroll a device" + e); - //e.printStackTrace(); + log.error("Error while disenrolling a device from Traccar " + e); } //disenroll Traccar device diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/traccar/api/service/addons/TrackerClient.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/traccar/api/service/addons/TrackerClient.java index 6209121231..4d4f7ada43 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/traccar/api/service/addons/TrackerClient.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/traccar/api/service/addons/TrackerClient.java @@ -49,6 +49,8 @@ import java.util.concurrent.TimeUnit; import static org.wso2.carbon.device.mgt.core.traccar.common.TraccarHandlerConstants.ENDPOINT; import static org.wso2.carbon.device.mgt.core.traccar.common.TraccarHandlerConstants.AUTHORIZATION; import static org.wso2.carbon.device.mgt.core.traccar.common.TraccarHandlerConstants.AUTHORIZATION_KEY; +import static org.wso2.carbon.device.mgt.core.traccar.common.TraccarHandlerConstants.DEFAULT_PORT; +import static org.wso2.carbon.device.mgt.core.traccar.common.TraccarHandlerConstants.LOCATION_UPDATE_PORT; public class TrackerClient implements TraccarClient { private static final Log log = LogFactory.getLog(TrackerClient.class); @@ -60,6 +62,8 @@ public class TrackerClient implements TraccarClient { final String endpoint = traccarGateway.getPropertyByName(ENDPOINT).getValue(); final String authorization = traccarGateway.getPropertyByName(AUTHORIZATION).getValue(); final String authorizationKey = traccarGateway.getPropertyByName(AUTHORIZATION_KEY).getValue(); + final String defaultPort = traccarGateway.getPropertyByName(DEFAULT_PORT).getValue(); + final String locationUpdatePort = traccarGateway.getPropertyByName(LOCATION_UPDATE_PORT).getValue(); public TrackerClient() { client = new OkHttpClient.Builder() @@ -89,7 +93,7 @@ public class TrackerClient implements TraccarClient { Request request; if(method=="post"){ - requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), payload.toString()); + requestBody = RequestBody.create(payload.toString(), MediaType.parse("application/json; charset=utf-8")); builder = builder.post(requestBody); }else if(method=="delete"){ builder = builder.delete(); @@ -134,7 +138,7 @@ public class TrackerClient implements TraccarClient { List geoFenceIds = new ArrayList<>(); payload.put("geofenceIds", geoFenceIds); payload.put("attributes", new JSONObject()); - String context = "8082/api/devices"; + String context = defaultPort+"/api/devices"; Runnable trackerExecutor = new TrackerExecutor(endpoint, context, payload, "post"); executor.execute(trackerExecutor); log.info("Device successfully enorolled on traccar"); @@ -151,7 +155,7 @@ public class TrackerClient implements TraccarClient { */ public void updateLocation(TraccarPosition deviceInfo) throws TraccarConfigurationException { try{ - String context = "5055/?id="+deviceInfo.getDeviceIdentifier()+"×tamp="+deviceInfo.getTimestamp()+ + String context = locationUpdatePort+"/?id="+deviceInfo.getDeviceIdentifier()+"×tamp="+deviceInfo.getTimestamp()+ "&lat="+deviceInfo.getLat()+"&lon="+deviceInfo.getLon()+"&bearing="+deviceInfo.getBearing()+ "&speed="+deviceInfo.getSpeed()+"&ignition=true"; Runnable trackerExecutor = new TrackerExecutor(endpoint, context, null, "get"); @@ -173,7 +177,7 @@ public class TrackerClient implements TraccarClient { @Override public String getDeviceByDeviceIdentifier(String deviceId) throws TraccarConfigurationException { try { - String context = "8082/api/devices?uniqueId="+ deviceId; + String context = defaultPort+"/api/devices?uniqueId="+ deviceId; Runnable trackerExecutor = new TrackerExecutor(endpoint, context, null, "get"); executor.execute(trackerExecutor); Request request = new Request.Builder() @@ -210,7 +214,7 @@ public class TrackerClient implements TraccarClient { JSONArray geodata = obj.getJSONArray("geodata"); JSONObject jsonResponse = geodata.getJSONObject(0); - String context = "8082/api/devices/"+jsonResponse.getInt("id"); + String context = defaultPort+"/api/devices/"+jsonResponse.getInt("id"); Runnable trackerExecutor = new TrackerExecutor(endpoint, context, null, "delete"); executor.execute(trackerExecutor); log.info("Device successfully dis-enrolled"); @@ -236,7 +240,7 @@ public class TrackerClient implements TraccarClient { payload.put("name", groupInfo.getName()); payload.put("attributes", new JSONObject()); - String context = "8082/api/groups"; + String context = defaultPort+"/api/groups"; Runnable trackerExecutor = new TrackerExecutor(endpoint, context, payload, "post"); executor.execute(trackerExecutor); log.info("Group successfully on traccar"); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/traccar/api/service/impl/TraccarAPIClientServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/traccar/api/service/impl/TraccarAPIClientServiceImpl.java index a64cf6d31b..eac0c63b98 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/traccar/api/service/impl/TraccarAPIClientServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/traccar/api/service/impl/TraccarAPIClientServiceImpl.java @@ -20,7 +20,6 @@ package org.wso2.carbon.device.mgt.core.traccar.api.service.impl; import org.wso2.carbon.device.mgt.common.Device; -import org.wso2.carbon.device.mgt.common.DeviceIdentifier; import org.wso2.carbon.device.mgt.common.device.details.DeviceLocation; import org.wso2.carbon.device.mgt.common.group.mgt.DeviceGroup; import org.wso2.carbon.device.mgt.core.traccar.api.service.DeviceAPIClientService; @@ -34,7 +33,6 @@ import java.util.Date; public class TraccarAPIClientServiceImpl implements DeviceAPIClientService { - public void addDevice(Device device) throws TraccarConfigurationException { TrackerClient client = new TrackerClient(); String lastUpdatedTime = String.valueOf((new Date().getTime())); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/traccar/common/TraccarHandlerConstants.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/traccar/common/TraccarHandlerConstants.java index 256ed44f30..b4b2ba0e2d 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/traccar/common/TraccarHandlerConstants.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/traccar/common/TraccarHandlerConstants.java @@ -25,4 +25,6 @@ public class TraccarHandlerConstants { public static final String ENDPOINT = "api-endpoint"; public static final String AUTHORIZATION = "authorization"; public static final String AUTHORIZATION_KEY = "authorization-key"; + public static final String DEFAULT_PORT = "default-port"; + public static final String LOCATION_UPDATE_PORT = "location-update-port"; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/traccar/common/beans/TraccarGroups.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/traccar/common/beans/TraccarGroups.java new file mode 100644 index 0000000000..b82496980a --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/traccar/common/beans/TraccarGroups.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2018 - 2022 Entgra (Pvt) Ltd, Inc - All Rights Reserved. + * + * Unauthorised copying/redistribution of this file, via any medium is strictly prohibited. + * + * Licensed under the Entgra Commercial License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://entgra.io/licenses/entgra-commercial/1.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.wso2.carbon.device.mgt.core.traccar.common.beans; + +public class TraccarGroups { + private String name; + + public TraccarGroups(String name){ + this.name =name; + } + + public TraccarGroups(){ } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/config/operation/traccar-config.xml b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/config/operation/traccar-config.xml index 2072aca237..67de666e5e 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/config/operation/traccar-config.xml +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/test/resources/config/operation/traccar-config.xml @@ -1,7 +1,7 @@