diff --git a/modules/samples/doormanager/component/controller/src/main/java/org.homeautomation/doormanager/controller/api/DoorManagerControllerService.java b/modules/samples/doormanager/component/controller/src/main/java/org.homeautomation/doormanager/controller/api/DoorManagerControllerService.java index 2924a442..eb51bf19 100644 --- a/modules/samples/doormanager/component/controller/src/main/java/org.homeautomation/doormanager/controller/api/DoorManagerControllerService.java +++ b/modules/samples/doormanager/component/controller/src/main/java/org.homeautomation/doormanager/controller/api/DoorManagerControllerService.java @@ -147,11 +147,13 @@ public class DoorManagerControllerService { @FormParam("policy") String policy, @FormParam("cardNumber") String cardNumber, @FormParam("userName") String userName, + @FormParam("emailAddress") String emailAddress, @Context HttpServletResponse response) { try { if (userName != null && cardNumber != null && deviceId != null) { try { UserStoreManager userStoreManager = this.getUserStoreManager(); + DoorLockSafe doorLockSafe = new DoorLockSafe(); if (userStoreManager.isExistingUser(userName)) { TokenClient accessTokenClient = new TokenClient(DoorManagerConstants.DEVICE_TYPE); AccessTokenInfo accessTokenInfo = accessTokenClient.getAccessToken(deviceId, userName); @@ -165,7 +167,35 @@ public class DoorManagerControllerService { claims.put("http://wso2.org/claims/lock/refreshtoken", accessTokenInfo.getRefresh_token()); claims.put("http://wso2.org/claims/lock/cardnumber", cardNumber); userStoreManager.setUserClaimValues(userName, claims, null); - //TODO: Add content to dto + doorLockSafe.setAccessToken(accessTokenInfo.getAccess_token()); + doorLockSafe.setRefreshToken(accessTokenInfo.getRefresh_token()); + doorLockSafe.setDeviceId(deviceId); + doorLockSafe.setOwner(owner); + doorLockSafe.setEmailAddress(emailAddress); + doorLockSafe.setUIDofUser(cardNumber); + doorLockSafe.setPolicy(policy); + doorLockSafe.setSerialNumber(deviceId); + boolean status; + try { + DoorManagerDAO.beginTransaction(); + status = DOOR_MANAGER_DAO.getAutomaticDoorLockerDeviceDAO().registerDoorLockSafe(doorLockSafe); + DoorManagerDAO.commitTransaction(); + if (status) { + response.setStatus(Response.Status.OK.getStatusCode()); + } else { + response.setStatus(Response.Status.FORBIDDEN.getStatusCode()); + } + } catch (DoorManagerDeviceMgtPluginException e) { + try { + DoorManagerDAO.rollbackTransaction(); + } catch (DoorManagerDeviceMgtPluginException e1) { + String msg = "Error while updating the enrollment of the Door Manager Locker device : " + + doorLockSafe.getOwner(); + response.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); + log.error(msg, e); + } + } + response.setStatus(Response.Status.OK.getStatusCode()); } else { response.setStatus(Response.Status.NOT_FOUND.getStatusCode()); @@ -184,7 +214,7 @@ public class DoorManagerControllerService { } } - @Path("controller/registerNewUser") + /* @Path("controller/registerNewUser") @POST @Feature(code = "registerNewUser", name = "Assign to new user", type = "operation", description = "Assign to new user") @@ -241,7 +271,7 @@ public class DoorManagerControllerService { response.setStatus(Response.Status.BAD_REQUEST.getStatusCode()); log.error(e); } - } + }*/ /*@Path("controller/registerNewUser") @POST diff --git a/modules/samples/doormanager/component/controller/src/main/java/org.homeautomation/doormanager/controller/api/util/DoorManagerMQTTConnector.java b/modules/samples/doormanager/component/controller/src/main/java/org.homeautomation/doormanager/controller/api/util/DoorManagerMQTTConnector.java index fd1919a2..bf61fdb8 100644 --- a/modules/samples/doormanager/component/controller/src/main/java/org.homeautomation/doormanager/controller/api/util/DoorManagerMQTTConnector.java +++ b/modules/samples/doormanager/component/controller/src/main/java/org.homeautomation/doormanager/controller/api/util/DoorManagerMQTTConnector.java @@ -12,6 +12,7 @@ import org.wso2.carbon.device.mgt.iot.sensormgt.SensorDataManager; import org.wso2.carbon.device.mgt.iot.transport.TransportHandlerException; import org.wso2.carbon.device.mgt.iot.transport.mqtt.MQTTTransportHandler; +import javax.ws.rs.core.Response; import java.io.File; import java.util.Calendar; import java.util.UUID; @@ -80,12 +81,16 @@ public class DoorManagerMQTTConnector extends MQTTTransportHandler { } if (messageData.length == 2) { log.warn("-------------------------------------------"); - log.warn(messageData[2]); + log.warn(messageData[0]); log.warn(messageData[1]); String lockerCurrentState = messageData[1]; try { SensorDataManager.getInstance().setSensorRecord(deviceId, "door_locker_state", String.valueOf(1), Calendar.getInstance().getTimeInMillis()); + if (!DoorManagerServiceUtils.publishToDASCurrent(owner, deviceId, 1)) { + log.warn("An error occured whilst trying to publish with ID [" + deviceId + + "] of owner [" + owner + "]"); + } } catch(Exception e){ log.error(e); } @@ -110,6 +115,21 @@ public class DoorManagerMQTTConnector extends MQTTTransportHandler { String payload = operation + param; try { publishToAutomaticDoorLocker(topic, payload, 2, false); + if(param.equals("LOCK")){ + if (!DoorManagerServiceUtils.publishToDASCurrent(deviceOwner, deviceId, 0)) { + log.warn("An error occured whilst trying to publish with ID [" + deviceId + + "] of owner [" + deviceOwner + "]"); + } + }else{ + if (!DoorManagerServiceUtils.publishToDASCurrent(deviceOwner, deviceId, 1)) { + log.warn("An error occured whilst trying to publish with ID [" + deviceId + + "] of owner [" + deviceOwner + "]"); + } + } + if (!DoorManagerServiceUtils.publishToDASCurrent(deviceOwner, deviceId, 1)) { + log.warn("An error occured whilst trying to publish with ID [" + deviceId + + "] of owner [" + deviceOwner + "]"); + } } catch (TransportHandlerException e) { String errorMessage = "Error publishing data to device with ID " + deviceId; throw new DoorManagerException(errorMessage, e); diff --git a/modules/samples/doormanager/component/controller/src/main/java/org.homeautomation/doormanager/controller/api/util/DoorManagerServiceUtils.java b/modules/samples/doormanager/component/controller/src/main/java/org.homeautomation/doormanager/controller/api/util/DoorManagerServiceUtils.java new file mode 100644 index 00000000..7775005a --- /dev/null +++ b/modules/samples/doormanager/component/controller/src/main/java/org.homeautomation/doormanager/controller/api/util/DoorManagerServiceUtils.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.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.homeautomation.doormanager.controller.api.util; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.homeautomation.doormanager.plugin.constants.DoorManagerConstants; +import org.wso2.carbon.context.PrivilegedCarbonContext; +import org.wso2.carbon.device.mgt.analytics.exception.DataPublisherConfigurationException; +import org.wso2.carbon.device.mgt.analytics.service.DeviceAnalyticsService; + +public class DoorManagerServiceUtils { + private static final Log log = LogFactory.getLog(DoorManagerServiceUtils.class); + + //TODO; replace this tenant domain + private static final String SUPER_TENANT = "carbon.super"; + private static final String CURRENT_STREAM_DEFINITION = "org.wso2.iot.devices.sensor"; + + public static boolean publishToDASCurrent(String owner, String deviceId, float current) { + PrivilegedCarbonContext.startTenantFlow(); + PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext(); + ctx.setTenantDomain(SUPER_TENANT, true); + DeviceAnalyticsService deviceAnalyticsService = (DeviceAnalyticsService) ctx.getOSGiService( + DeviceAnalyticsService.class, null); + Object metdaData[] = {owner, DoorManagerConstants.DEVICE_TYPE, deviceId, System.currentTimeMillis()}; + Object payloadCurrent[] = {current}; + + try { + deviceAnalyticsService.publishEvent(CURRENT_STREAM_DEFINITION, "1.0.0", metdaData, new Object[0], payloadCurrent); + } catch (DataPublisherConfigurationException e) { + return false; + } finally { + PrivilegedCarbonContext.endTenantFlow(); + } + return true; + } + +} diff --git a/modules/samples/doormanager/component/manager/src/main/java/org.homeautomation/doormanager/manager/api/DoorManagerManagerService.java b/modules/samples/doormanager/component/manager/src/main/java/org.homeautomation/doormanager/manager/api/DoorManagerManagerService.java index c7461a7b..a6183dc3 100644 --- a/modules/samples/doormanager/component/manager/src/main/java/org.homeautomation/doormanager/manager/api/DoorManagerManagerService.java +++ b/modules/samples/doormanager/component/manager/src/main/java/org.homeautomation/doormanager/manager/api/DoorManagerManagerService.java @@ -273,14 +273,14 @@ public class DoorManagerManagerService { log.warn(userInfo.userName); log.warn(userInfo.cardNumber); log.warn(userInfo.deviceId); - response.addHeader("REMOTE_USER", "ppppppppppppppppppppp"); - //response.addDateHeader("Authentication","55555555555555555555"); if (userInfo.userName != null && userInfo.cardNumber != null && userInfo.deviceId != null) { try { UserStoreManager userStoreManager = this.getUserStoreManager(); if (userStoreManager.isExistingUser(userInfo.userName)) { String accessToken = userStoreManager.getUserClaimValue(userInfo.userName, "http://wso2.org/claims/lock/accesstoken", null); String cardNumber = userStoreManager.getUserClaimValue(userInfo.userName, "http://wso2.org/claims/lock/cardnumber", null); + log.warn(accessToken); + log.warn(cardNumber); if(cardNumber.equals(userInfo.cardNumber)){ if(accessToken != null && doorManagerDAO.getAutomaticDoorLockerDeviceDAO(). checkCardDoorAssociation(cardNumber, userInfo.deviceId)){ @@ -288,6 +288,7 @@ public class DoorManagerManagerService { credentials.put(DoorManagerConstants.DEVICE_PLUGIN_PROPERTY_ACCESS_TOKEN, accessToken); credentials.put(DoorManagerConstants.DEVICE_PLUGIN_PROPERTY_ACCESS_TOKEN, accessToken); sendCEPEvent(userInfo.deviceId, cardNumber, true); + log.warn(doorManagerDAO.getAutomaticDoorLockerDeviceDAO().getUserEmailAddress(cardNumber)); return Response.ok(credentials, MediaType.APPLICATION_JSON_TYPE).build(); } } @@ -311,22 +312,17 @@ public class DoorManagerManagerService { } private void sendCEPEvent(String deviceId, String cardId, boolean accessStatus){ - String cepEventReciever = " http://localhost:9763/endpoints/lockAuthorizedEvent"; + String cepEventReciever = "http://localhost:9768/endpoints/LockEventReciever"; HttpClient httpClient = new SystemDefaultHttpClient(); HttpPost method = new HttpPost(cepEventReciever); JsonObject event = new JsonObject(); JsonObject metaData = new JsonObject(); - JsonObject payLoadData = new JsonObject(); - metaData.addProperty("timestamp", System.currentTimeMillis()); - metaData.addProperty("sensorName", "deviceLock"); - - payLoadData.addProperty("deviceID", deviceId); - payLoadData.addProperty("cardID", cardId); + metaData.addProperty("deviceID", deviceId); + metaData.addProperty("cardID", cardId); event.add("metaData", metaData); - event.add("payloadData", payLoadData); String eventString = "{\"event\": " + event + "}"; diff --git a/modules/samples/doormanager/component/plugin/src/main/java/org.homeautomation/doormanager/plugin/impl/dao/impl/DoorManagerDAOImpl.java b/modules/samples/doormanager/component/plugin/src/main/java/org.homeautomation/doormanager/plugin/impl/dao/impl/DoorManagerDAOImpl.java index 56ee8906..56d5affa 100644 --- a/modules/samples/doormanager/component/plugin/src/main/java/org.homeautomation/doormanager/plugin/impl/dao/impl/DoorManagerDAOImpl.java +++ b/modules/samples/doormanager/component/plugin/src/main/java/org.homeautomation/doormanager/plugin/impl/dao/impl/DoorManagerDAOImpl.java @@ -262,33 +262,55 @@ public class DoorManagerDAOImpl { } public boolean checkCardDoorAssociation(String cardNum, String deviceID) throws DoorManagerDeviceMgtPluginException { - boolean status = false; - Connection conn = null; + Connection conn; PreparedStatement stmt = null; + ResultSet resultSet = null; try { conn = DoorManagerDAO.getConnection(); - String createDBQuery = "SELECT * FROM SHARED_DOORLOCK_SAFE WHERE" + - " DOORMANAGER_DEVICE_ID = ? AND SERIAL_NUMBER = ?"; - stmt = conn.prepareStatement(createDBQuery); + String selectDBQuery = "SELECT * FROM REGISTERED_DOORLOCK_SAFE WHERE UID_of_USER = ? AND doormanager_DEVICE_ID = ?"; + stmt = conn.prepareStatement(selectDBQuery); stmt.setString(1, cardNum); stmt.setString(2, deviceID); - int rows = stmt.executeUpdate(); - if (rows > 0) { - status = true; - if (log.isDebugEnabled()) { - log.debug("Lock : "+ deviceID + " is associated with card no : "+cardNum); - } + resultSet = stmt.executeQuery(); + String result; + if(resultSet.next()){ + return true; + }else{ + return false; } } catch (SQLException e) { String msg = "No associations were found between lock : "+ deviceID +" and card : "+ cardNum; - log.error(msg, e); throw new DoorManagerDeviceMgtPluginException(msg, e); } finally { DoorManagerUtils.cleanupResources(stmt, null); } - return status; } + + public String getUserEmailAddress(String cardNum) throws DoorManagerDeviceMgtPluginException { + Connection conn; + PreparedStatement stmt = null; + ResultSet resultSet = null; + String email; + try { + conn = DoorManagerDAO.getConnection(); + String selectDBQuery = "SELECT EMAIL_ADDRESS FROM REGISTERED_DOORLOCK_SAFE WHERE UID_of_USER = ?"; + stmt = conn.prepareStatement(selectDBQuery); + stmt.setString(1, cardNum); + resultSet = stmt.executeQuery(); + if(resultSet.next()){ + email = resultSet.getString("EMAIL_ADDRESS"); + log.warn(email); + return email; + } + return null; + } catch (SQLException e) { + String msg = "No email found for the and card : "+ cardNum; + throw new DoorManagerDeviceMgtPluginException(msg, e); + } finally { + DoorManagerUtils.cleanupResources(stmt, null); + } + } public List getUserCredentials(String deviceId, String UIDofUser) throws DoorManagerDeviceMgtPluginException { Connection conn = null; diff --git a/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/device-view.hbs b/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/device-view.hbs index 7506942d..4fc403d6 100644 --- a/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/device-view.hbs +++ b/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/device-view.hbs @@ -25,7 +25,7 @@ {{/zone}} {{#zone "device-thumbnail"}} - + {{/zone}} {{#zone "operation-status"}} diff --git a/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/public/images/doormanager-icon.png b/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/public/images/doormanager-icon.png index fe706514..a44f50fc 100644 Binary files a/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/public/images/doormanager-icon.png and b/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/public/images/doormanager-icon.png differ diff --git a/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/public/images/thumb.png b/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/public/images/thumb.png index 510859d8..a44f50fc 100644 Binary files a/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/public/images/thumb.png and b/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/public/images/thumb.png differ diff --git a/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/doormanager-icon.png b/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/doormanager-icon.png new file mode 100644 index 00000000..a44f50fc Binary files /dev/null and b/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/doormanager-icon.png differ diff --git a/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/myDevices_analytics.png b/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/myDevices_analytics.png index ee5152dc..dc5f9a7d 100644 Binary files a/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/myDevices_analytics.png and b/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/myDevices_analytics.png differ diff --git a/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/thumb.png b/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/thumb.png index b74b20f9..a44f50fc 100644 Binary files a/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/thumb.png and b/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/thumb.png differ diff --git a/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/type-view.hbs b/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/type-view.hbs index 16c36759..cab924e0 100644 --- a/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/type-view.hbs +++ b/modules/samples/doormanager/component/ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/type-view.hbs @@ -4,7 +4,7 @@
- +
diff --git a/modules/samples/doormanager/feature/feature/src/main/resources/carbonapps/Sensor.car b/modules/samples/doormanager/feature/feature/src/main/resources/carbonapps/Sensor.car new file mode 100644 index 00000000..af22e266 Binary files /dev/null and b/modules/samples/doormanager/feature/feature/src/main/resources/carbonapps/Sensor.car differ diff --git a/modules/samples/doormanager/feature/feature/src/main/resources/database/doormanagerDM_DB.h2.db b/modules/samples/doormanager/feature/feature/src/main/resources/database/doormanagerDM_DB.h2.db new file mode 100644 index 00000000..6be5a907 Binary files /dev/null and b/modules/samples/doormanager/feature/feature/src/main/resources/database/doormanagerDM_DB.h2.db differ diff --git a/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/public/images/doorManager-icon.png b/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/public/images/doorManager-icon.png new file mode 100644 index 00000000..a44f50fc Binary files /dev/null and b/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/public/images/doorManager-icon.png differ diff --git a/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/public/images/doormanager-icon.png b/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/public/images/doormanager-icon.png index fe706514..a44f50fc 100644 Binary files a/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/public/images/doormanager-icon.png and b/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.device-view/public/images/doormanager-icon.png differ diff --git a/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/doorManager-icon.png b/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/doorManager-icon.png index 0c7744ff..a44f50fc 100644 Binary files a/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/doorManager-icon.png and b/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/doorManager-icon.png differ diff --git a/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/doormanager-icon.png b/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/doormanager-icon.png new file mode 100644 index 00000000..a44f50fc Binary files /dev/null and b/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/doormanager-icon.png differ diff --git a/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/myDevices_analytics.png b/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/myDevices_analytics.png index ee5152dc..dc5f9a7d 100644 Binary files a/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/myDevices_analytics.png and b/modules/samples/doormanager/feature/feature/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.doormanager.type-view/public/images/myDevices_analytics.png differ diff --git a/modules/samples/doormanager/pom.xml b/modules/samples/doormanager/pom.xml index 506af0cf..d3f1f1fd 100644 --- a/modules/samples/doormanager/pom.xml +++ b/modules/samples/doormanager/pom.xml @@ -140,6 +140,11 @@ 4.1 provided + + com.google.code.gson + gson + 2.2.4 + @@ -254,4 +259,4 @@ 1.8 1.7.2 - \ No newline at end of file +