2 * In Samsung Ukraine R&D Center (SRK under a contract between)
3 * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
4 * Copyright (C) 2017 Samsung Electronics Co., Ltd. All rights reserved.
6 package com.samsung.servermq.iotivity.extractor.impl;
8 import org.apache.log4j.Logger;
9 import org.springframework.beans.factory.annotation.Autowired;
11 import com.samsung.commons.domain.Policy;
12 import com.samsung.commons.service.PolicyService;
13 import com.samsung.servermq.iotivity.extractor.PostDataExtractor;
14 import com.samsung.servermq.utils.MessageQueueKeys;
15 import com.samsung.servermq.utils.MessageQueueUtils;
16 import com.samsung.servermq.utils.rest.DsmApi;
19 * The type Policy post data extractor.
21 * @author <A HREF="mailto:y.zozulia@samsung.com">Yevhen Zozulia</A>
23 * @see <a href="https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol"></a>
24 * @file PolicyPostDataExtractor.java
25 * @brief The type Policy post data extractor.
26 * @date Created : 7/6/2017
27 * @date Modified : 11/2/2017
28 * @par Copyright : (c) Samsung Electronics Co, Ltd 2017. All rights reserved
30 public class PolicyPostDataExtractor implements PostDataExtractor {
32 private static final Logger LOG = Logger.getLogger(PolicyPostDataExtractor.class);
35 private PolicyService policyService;
38 private DsmApi serverSender;
41 public void extract(byte[] data) {
43 String policyData = MessageQueueUtils.extractDataFromPayload(data, MessageQueueKeys.POLICY.getKey());
44 String did = MessageQueueUtils.extractDataFromPayload(data, MessageQueueKeys.DUID.getKey());
45 String agent = MessageQueueUtils.extractDataFromPayload(data, MessageQueueKeys.AGENT.getKey());
46 LOG.debug("Get policy with parameters: did = " + did + "");
47 LOG.debug("Get policy data:" + policyData);
49 if (agent == null || agent.isEmpty()) {
50 policy = policyService.setDevicePolicy(did, policyData);
51 serverSender.requestPolicy(policy.getId(), did);
54 policy = policyService.setAgentPolicy(agent, policyData);
55 serverSender.requestPolicyForAgent(policy.getId(), agent);
56 } catch (Exception e) {
57 LOG.error(e.getMessage(), e);
62 * Sets policy service.
64 * @param policyService the policy service
66 public void setPolicyService(PolicyService policyService) {
67 this.policyService = policyService;
73 * @param serverSender the server sender
75 public void setServerSender(DsmApi serverSender) {
76 this.serverSender = serverSender;