Commit 55fb8d68fded9d5e3fe02b563e246c6e25fb46da

Authored by Andrew Shvayka
2 parents 97acafa3 b5cef88a

Merge branch 'master' of github.com:thingsboard/thingsboard

... ... @@ -130,10 +130,8 @@ public class DefaultActorService implements ActorService {
130 130
131 131 @Override
132 132 public void process(SessionAwareMsg msg) {
133   - if (msg instanceof SessionAwareMsg) {
134   - log.debug("Processing session aware msg: {}", msg);
135   - sessionManagerActor.tell(msg, ActorRef.noSender());
136   - }
  133 + log.debug("Processing session aware msg: {}", msg);
  134 + sessionManagerActor.tell(msg, ActorRef.noSender());
137 135 }
138 136
139 137 @Override
... ...
... ... @@ -50,7 +50,9 @@ public class SessionManagerActor extends ContextAwareActor {
50 50
51 51 @Override
52 52 public void onReceive(Object msg) throws Exception {
53   - if (msg instanceof SessionAwareMsg) {
  53 + if (msg instanceof SessionCtrlMsg) {
  54 + onSessionCtrlMsg((SessionCtrlMsg) msg);
  55 + } else if (msg instanceof SessionAwareMsg) {
54 56 forwardToSessionActor((SessionAwareMsg) msg);
55 57 } else if (msg instanceof SessionTerminationMsg) {
56 58 onSessionTermination((SessionTerminationMsg) msg);
... ... @@ -58,8 +60,6 @@ public class SessionManagerActor extends ContextAwareActor {
58 60 onTermination((Terminated) msg);
59 61 } else if (msg instanceof SessionTimeoutMsg) {
60 62 onSessionTimeout((SessionTimeoutMsg) msg);
61   - } else if (msg instanceof SessionCtrlMsg) {
62   - onSessionCtrlMsg((SessionCtrlMsg) msg);
63 63 } else if (msg instanceof ClusterEventMsg) {
64 64 broadcast(msg);
65 65 }
... ...
... ... @@ -102,7 +102,7 @@ public class JpaBaseEventDao extends JpaAbstractSearchTimeDao<EventEntity, Event
102 102
103 103 @Override
104 104 public List<Event> findEvents(UUID tenantId, EntityId entityId, String eventType, TimePageLink pageLink) {
105   - Specification<EventEntity> timeSearchSpec = JpaAbstractSearchTimeDao.<EventEntity>getTimeSearchPageSpec(pageLink, "id");
  105 + Specification<EventEntity> timeSearchSpec = JpaAbstractSearchTimeDao.getTimeSearchPageSpec(pageLink, "id");
106 106 Specification<EventEntity> fieldsSpec = getEntityFieldsSpec(tenantId, entityId, eventType);
107 107 Sort.Direction sortDirection = pageLink.isAscOrder() ? Sort.Direction.ASC : Sort.Direction.DESC;
108 108 Pageable pageable = new PageRequest(0, pageLink.getLimit(), sortDirection, ID_PROPERTY);
... ... @@ -129,26 +129,23 @@ public class JpaBaseEventDao extends JpaAbstractSearchTimeDao<EventEntity, Event
129 129 }
130 130
131 131 private Specification<EventEntity> getEntityFieldsSpec(UUID tenantId, EntityId entityId, String eventType) {
132   - return new Specification<EventEntity>() {
133   - @Override
134   - public Predicate toPredicate(Root<EventEntity> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
135   - List<Predicate> predicates = new ArrayList<Predicate>();
136   - if (tenantId != null) {
137   - Predicate tenantIdPredicate = criteriaBuilder.equal(root.get("tenantId"), UUIDConverter.fromTimeUUID(tenantId));
138   - predicates.add(tenantIdPredicate);
139   - }
140   - if (entityId != null) {
141   - Predicate entityTypePredicate = criteriaBuilder.equal(root.get("entityType"), entityId.getEntityType());
142   - predicates.add(entityTypePredicate);
143   - Predicate entityIdPredicate = criteriaBuilder.equal(root.get("entityId"), UUIDConverter.fromTimeUUID(entityId.getId()));
144   - predicates.add(entityIdPredicate);
145   - }
146   - if (eventType != null) {
147   - Predicate eventTypePredicate = criteriaBuilder.equal(root.get("eventType"), eventType);
148   - predicates.add(eventTypePredicate);
149   - }
150   - return criteriaBuilder.and(predicates.toArray(new Predicate[]{}));
  132 + return (root, criteriaQuery, criteriaBuilder) -> {
  133 + List<Predicate> predicates = new ArrayList<>();
  134 + if (tenantId != null) {
  135 + Predicate tenantIdPredicate = criteriaBuilder.equal(root.get("tenantId"), UUIDConverter.fromTimeUUID(tenantId));
  136 + predicates.add(tenantIdPredicate);
151 137 }
  138 + if (entityId != null) {
  139 + Predicate entityTypePredicate = criteriaBuilder.equal(root.get("entityType"), entityId.getEntityType());
  140 + predicates.add(entityTypePredicate);
  141 + Predicate entityIdPredicate = criteriaBuilder.equal(root.get("entityId"), UUIDConverter.fromTimeUUID(entityId.getId()));
  142 + predicates.add(entityIdPredicate);
  143 + }
  144 + if (eventType != null) {
  145 + Predicate eventTypePredicate = criteriaBuilder.equal(root.get("eventType"), eventType);
  146 + predicates.add(eventTypePredicate);
  147 + }
  148 + return criteriaBuilder.and(predicates.toArray(new Predicate[]{}));
152 149 };
153 150 }
154 151 }
... ...
... ... @@ -160,43 +160,36 @@ public class JpaRelationDao extends JpaAbstractDaoListeningExecutorService imple
160 160
161 161 @Override
162 162 public ListenableFuture<List<EntityRelation>> findRelations(EntityId from, String relationType, RelationTypeGroup typeGroup, EntityType childType, TimePageLink pageLink) {
163   - Specification<RelationEntity> timeSearchSpec = JpaAbstractSearchTimeDao.<RelationEntity>getTimeSearchPageSpec(pageLink, "toId");
  163 + Specification<RelationEntity> timeSearchSpec = JpaAbstractSearchTimeDao.getTimeSearchPageSpec(pageLink, "toId");
164 164 Specification<RelationEntity> fieldsSpec = getEntityFieldsSpec(from, relationType, typeGroup, childType);
165   - Pageable pageable = new PageRequest(0, pageLink.getLimit(),
166   - new Sort(
167   - new Order(ASC, "relationTypeGroup"),
168   - new Order(ASC, "relationType"),
169   - new Order(ASC, "toType"))
170   - );
  165 + Sort.Direction sortDirection = pageLink.isAscOrder() ? Sort.Direction.ASC : Sort.Direction.DESC;
  166 + Pageable pageable = new PageRequest(0, pageLink.getLimit(), sortDirection, "toId");
171 167 return service.submit(() ->
172 168 DaoUtil.convertDataList(relationRepository.findAll(where(timeSearchSpec).and(fieldsSpec), pageable).getContent()));
173 169 }
174 170
175 171 private Specification<RelationEntity> getEntityFieldsSpec(EntityId from, String relationType, RelationTypeGroup typeGroup, EntityType childType) {
176   - return new Specification<RelationEntity>() {
177   - @Override
178   - public Predicate toPredicate(Root<RelationEntity> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
179   - List<Predicate> predicates = new ArrayList<>();
180   - if (from != null) {
181   - Predicate fromIdPredicate = criteriaBuilder.equal(root.get("fromId"), UUIDConverter.fromTimeUUID(from.getId()));
182   - predicates.add(fromIdPredicate);
183   - Predicate fromEntityTypePredicate = criteriaBuilder.equal(root.get("fromType"), from.getEntityType().name());
184   - predicates.add(fromEntityTypePredicate);
185   - }
186   - if (relationType != null) {
187   - Predicate relationTypePredicate = criteriaBuilder.equal(root.get("relationType"), relationType);
188   - predicates.add(relationTypePredicate);
189   - }
190   - if (typeGroup != null) {
191   - Predicate typeGroupPredicate = criteriaBuilder.equal(root.get("relationTypeGroup"), typeGroup.name());
192   - predicates.add(typeGroupPredicate);
193   - }
194   - if (childType != null) {
195   - Predicate childTypePredicate = criteriaBuilder.equal(root.get("toType"), childType.name());
196   - predicates.add(childTypePredicate);
197   - }
198   - return criteriaBuilder.and(predicates.toArray(new Predicate[0]));
  172 + return (root, criteriaQuery, criteriaBuilder) -> {
  173 + List<Predicate> predicates = new ArrayList<>();
  174 + if (from != null) {
  175 + Predicate fromIdPredicate = criteriaBuilder.equal(root.get("fromId"), UUIDConverter.fromTimeUUID(from.getId()));
  176 + predicates.add(fromIdPredicate);
  177 + Predicate fromEntityTypePredicate = criteriaBuilder.equal(root.get("fromType"), from.getEntityType().name());
  178 + predicates.add(fromEntityTypePredicate);
199 179 }
  180 + if (relationType != null) {
  181 + Predicate relationTypePredicate = criteriaBuilder.equal(root.get("relationType"), relationType);
  182 + predicates.add(relationTypePredicate);
  183 + }
  184 + if (typeGroup != null) {
  185 + Predicate typeGroupPredicate = criteriaBuilder.equal(root.get("relationTypeGroup"), typeGroup.name());
  186 + predicates.add(typeGroupPredicate);
  187 + }
  188 + if (childType != null) {
  189 + Predicate childTypePredicate = criteriaBuilder.equal(root.get("toType"), childType.name());
  190 + predicates.add(childTypePredicate);
  191 + }
  192 + return criteriaBuilder.and(predicates.toArray(new Predicate[0]));
200 193 };
201 194 }
202 195 }
... ...