diff --git a/modules/samples/doormanager/component/manager/pom.xml b/modules/samples/doormanager/component/manager/pom.xml
index 3efeb0df..130acacd 100644
--- a/modules/samples/doormanager/component/manager/pom.xml
+++ b/modules/samples/doormanager/component/manager/pom.xml
@@ -228,5 +228,10 @@
json-simple
1.1.wso2v1
+
+ com.google.code.gson
+ gson
+ 2.2.4
+
\ No newline at end of file
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 40546dc8..d7ccb5cd 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
@@ -18,9 +18,16 @@
package org.homeautomation.doormanager.manager.api;
+import com.google.gson.JsonObject;
import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.mail.util.Base64;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.SystemDefaultHttpClient;
import org.homeautomation.doormanager.manager.api.dto.UserInfo;
import org.homeautomation.doormanager.plugin.constants.DoorManagerConstants;
import org.homeautomation.doormanager.plugin.exception.DoorManagerDeviceMgtPluginException;
@@ -46,6 +53,7 @@ import org.wso2.carbon.device.mgt.iot.util.ZipUtil;
import org.wso2.carbon.user.api.UserStoreException;
import org.wso2.carbon.user.api.UserStoreManager;
import org.wso2.carbon.user.core.service.RealmService;
+import com.google.code.gson.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -54,6 +62,7 @@ import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.io.IOException;
+import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.util.*;
@@ -279,6 +288,7 @@ public class DoorManagerManagerService {
JSONObject credentials = new JSONObject();
credentials.put(DoorManagerConstants.DEVICE_PLUGIN_PROPERTY_ACCESS_TOKEN, accessToken);
credentials.put(DoorManagerConstants.DEVICE_PLUGIN_PROPERTY_ACCESS_TOKEN, accessToken);
+ sendCEPEvent(userInfo.deviceId, cardNumber, true);
return Response.ok(credentials, MediaType.APPLICATION_JSON_TYPE).build();
}
}
@@ -301,6 +311,44 @@ public class DoorManagerManagerService {
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
+ private void sendCEPEvent(String deviceId, String cardId, boolean accessStatus){
+ String cepEventReciever = " http://localhost:9763/endpoints/lockAuthorizedEvent";
+
+ 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);
+
+ event.add("metaData", metaData);
+ event.add("payloadData", payLoadData);
+
+ String eventString = "{\"event\": " + event + "}";
+
+ try {
+ StringEntity entity = new StringEntity(eventString);
+ method.setEntity(entity);
+ if (cepEventReciever.startsWith("https")) {
+ method.setHeader("Authorization", "Basic " + Base64.encode(("admin" + ":" + "admin").getBytes()));
+ }
+ httpClient.execute(method).getEntity().getContent().close();
+ } catch (UnsupportedEncodingException e) {
+ log.error("Error while constituting CEP event"+ e.getMessage());
+ } catch (ClientProtocolException e) {
+ log.error("Error while sending message to CEP "+ e.getMessage());
+ } catch (IOException e) {
+ log.error("Error while sending message to CEP "+ e.getMessage());
+ }
+
+
+ }
+
@POST
@Path("manager/get_user_info")
@Produces(MediaType.APPLICATION_JSON)