Skip to content

Commit

Permalink
Fixed #55: Navigation links are partially expanded in MQTT messages.
Browse files Browse the repository at this point in the history
  • Loading branch information
hylkevds committed May 28, 2018
1 parent 8c038a3 commit ff864e0
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 9 deletions.
Expand Up @@ -17,6 +17,9 @@
*/
package de.fraunhofer.iosb.ilt.sta.messagebus;

import de.fraunhofer.iosb.ilt.sta.model.core.Entity;
import de.fraunhofer.iosb.ilt.sta.path.EntityType;
import de.fraunhofer.iosb.ilt.sta.path.NavigationProperty;
import de.fraunhofer.iosb.ilt.sta.settings.BusSettings;
import de.fraunhofer.iosb.ilt.sta.settings.CoreSettings;
import de.fraunhofer.iosb.ilt.sta.settings.Settings;
Expand Down Expand Up @@ -81,6 +84,17 @@ public void stop() {

@Override
public void sendMessage(EntityChangedMessage message) {
Entity entity = message.getEntity();
EntityType entityType = entity.getEntityType();
// We directly hand the entity on without serialization step.
// The receivers expect the navigation entities to not be exportable.
for (NavigationProperty property : entityType.getNavigationEntities()) {
Object parentObject = entity.getProperty(property);
if (parentObject instanceof Entity) {
Entity parentEntity = (Entity) parentObject;
parentEntity.setExportObject(false);
}
}
if (!entityChangedMessageQueue.offer(message)) {
LOGGER.error("Failed to add message to queue. Increase the queue size to allow a bigger buffer, or increase the worker pool size to empty the buffer quicker.");
}
Expand Down
Expand Up @@ -23,9 +23,9 @@
import de.fraunhofer.iosb.ilt.sta.model.core.AbstractEntity;
import de.fraunhofer.iosb.ilt.sta.model.core.EntitySet;
import de.fraunhofer.iosb.ilt.sta.model.core.EntitySetImpl;
import de.fraunhofer.iosb.ilt.sta.model.core.Id;
import de.fraunhofer.iosb.ilt.sta.model.ext.TimeInterval;
import de.fraunhofer.iosb.ilt.sta.model.ext.UnitOfMeasurement;
import de.fraunhofer.iosb.ilt.sta.model.core.Id;
import de.fraunhofer.iosb.ilt.sta.path.EntityPathElement;
import de.fraunhofer.iosb.ilt.sta.path.EntitySetPathElement;
import de.fraunhofer.iosb.ilt.sta.path.EntityType;
Expand Down Expand Up @@ -74,8 +74,14 @@ public class Datastream extends AbstractEntity {
private boolean setProperties;

public Datastream() {
this(false);
}

public Datastream(boolean onlyId) {
this.observations = new EntitySetImpl<>(EntityType.Observation);
this.unitOfMeasurement = new UnitOfMeasurement();
if (!onlyId) {
this.unitOfMeasurement = new UnitOfMeasurement();
}
}

public Datastream(Id id,
Expand Down
Expand Up @@ -19,7 +19,6 @@

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mysema.commons.lang.CloseableIterator;
import com.querydsl.core.Tuple;
import com.querydsl.core.types.Expression;
Expand Down Expand Up @@ -714,7 +713,7 @@ private static Datastream datastreamFromId(Long id) {
if (id == null) {
return null;
}
Datastream ds = new Datastream();
Datastream ds = new Datastream(true);
ds.setId(new IdLong(id));
ds.setExportObject(false);
return ds;
Expand Down
Expand Up @@ -19,7 +19,6 @@

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mysema.commons.lang.CloseableIterator;
import com.querydsl.core.Tuple;
import com.querydsl.core.types.Expression;
Expand All @@ -39,11 +38,11 @@
import de.fraunhofer.iosb.ilt.sta.model.core.Entity;
import de.fraunhofer.iosb.ilt.sta.model.core.EntitySet;
import de.fraunhofer.iosb.ilt.sta.model.core.EntitySetImpl;
import de.fraunhofer.iosb.ilt.sta.model.core.IdString;
import de.fraunhofer.iosb.ilt.sta.model.ext.TimeInstant;
import de.fraunhofer.iosb.ilt.sta.model.ext.TimeInterval;
import de.fraunhofer.iosb.ilt.sta.model.ext.TimeValue;
import de.fraunhofer.iosb.ilt.sta.model.ext.UnitOfMeasurement;
import de.fraunhofer.iosb.ilt.sta.model.core.IdString;
import de.fraunhofer.iosb.ilt.sta.path.EntityProperty;
import de.fraunhofer.iosb.ilt.sta.path.EntityType;
import de.fraunhofer.iosb.ilt.sta.path.Property;
Expand Down Expand Up @@ -714,7 +713,7 @@ private static Datastream datastreamFromId(String id) {
if (id == null) {
return null;
}
Datastream ds = new Datastream();
Datastream ds = new Datastream(true);
ds.setId(new IdString(id));
ds.setExportObject(false);
return ds;
Expand Down
Expand Up @@ -19,7 +19,6 @@

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mysema.commons.lang.CloseableIterator;
import com.querydsl.core.Tuple;
import com.querydsl.core.types.Expression;
Expand Down Expand Up @@ -715,7 +714,7 @@ private static Datastream datastreamFromId(UUID id) {
if (id == null) {
return null;
}
Datastream ds = new Datastream();
Datastream ds = new Datastream(true);
ds.setId(new UuidId(id));
ds.setExportObject(false);
return ds;
Expand Down

0 comments on commit ff864e0

Please sign in to comment.