Skip to content

Commit b606b42

Browse files
committed
Fixed landing-page modifications for core model / service
1 parent 036fda2 commit b606b42

5 files changed

Lines changed: 36 additions & 45 deletions

File tree

FROST-Server.Tests/src/test/java/de/fraunhofer/iosb/ilt/statests/v2cud/ReferenceTests11.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,7 @@ private static void cleanup() throws ServiceFailureException {
126126
* This method is run after all the tests of this class is run and clean the
127127
* database.
128128
*
129-
* @throws
130-
* de.fraunhofer.iosb.ilt.frostclient.exception.ServiceFailureException
129+
* @throws ServiceFailureException
131130
*/
132131
@AfterAll
133132
public static void deleteEverything() throws ServiceFailureException {

Plugins/CoreModel/src/main/java/de/fraunhofer/iosb/ilt/frostserver/plugin/coremodel/PluginCoreModel.java

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,8 @@
2424
import static de.fraunhofer.iosb.ilt.frostserver.property.type.TypeSimplePrimitive.EDM_DATETIMEOFFSET;
2525
import static de.fraunhofer.iosb.ilt.frostserver.property.type.TypeSimplePrimitive.EDM_STRING;
2626
import static de.fraunhofer.iosb.ilt.frostserver.property.type.TypeSimplePrimitive.EDM_UNTYPED;
27-
import static de.fraunhofer.iosb.ilt.frostserver.service.Service.KEY_CONFORMANCE_LIST;
2827
import static de.fraunhofer.iosb.ilt.frostserver.service.Service.KEY_SERVER_SETTINGS;
2928

30-
import de.fraunhofer.iosb.ilt.frostserver.extensions.Extension;
3129
import de.fraunhofer.iosb.ilt.frostserver.model.EntityType;
3230
import de.fraunhofer.iosb.ilt.frostserver.model.ModelRegistry;
3331
import de.fraunhofer.iosb.ilt.frostserver.model.ext.TimeInstant;
@@ -237,28 +235,11 @@ public boolean isFullyInitialised() {
237235
@Override
238236
public void modifyServiceDocument(ServiceRequest request, Map<String, Object> result) {
239237
Version version = request.getVersion();
240-
if (version == PluginCoreService.V_1_1) {
241-
Map<String, Object> serverSettings = new LinkedHashMap<>();
242-
result.put(KEY_SERVER_SETTINGS, serverSettings);
243-
244-
final Set<Extension> enabledSettings = settings.getEnabledExtensions();
245-
Set<String> extensionList = new TreeSet<>();
246-
serverSettings.put(KEY_CONFORMANCE_LIST, extensionList);
247-
for (Extension setting : enabledSettings) {
248-
if (setting.isExposedFeature()) {
249-
extensionList.addAll(setting.getRequirements());
250-
}
251-
}
252-
253-
settings.getMqttSettings().fillServerSettings(serverSettings);
254-
}
255-
256-
Map<String, Object> serverSettings = (Map<String, Object>) result.get(Service.KEY_SERVER_SETTINGS);
257-
if (serverSettings == null) {
258-
// Nothing to add to.
238+
if (version == PluginCoreService.V_1_0) {
259239
return;
260240
}
261-
Set<String> extensionList = (Set<String>) serverSettings.get(Service.KEY_CONFORMANCE_LIST);
241+
Map<String, Object> serverSettings = (Map<String, Object>) result.computeIfAbsent(KEY_SERVER_SETTINGS, t -> new LinkedHashMap<>());
242+
Set<String> extensionList = (Set<String>) serverSettings.computeIfAbsent(Service.KEY_CONFORMANCE_LIST, t -> new TreeSet<>());
262243
extensionList.addAll(REQUIREMENTS_CORE_MODEL);
263244
}
264245

Plugins/CoreModel/src/main/java/de/fraunhofer/iosb/ilt/frostserver/plugin/coremodel/PluginCoreService.java

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,17 @@
2929
import static de.fraunhofer.iosb.ilt.frostserver.service.RequestTypeUtils.UPDATE_ALL;
3030
import static de.fraunhofer.iosb.ilt.frostserver.service.RequestTypeUtils.UPDATE_CHANGES;
3131
import static de.fraunhofer.iosb.ilt.frostserver.service.RequestTypeUtils.UPDATE_CHANGESET;
32+
import static de.fraunhofer.iosb.ilt.frostserver.service.Service.KEY_CONFORMANCE_LIST;
33+
import static de.fraunhofer.iosb.ilt.frostserver.service.Service.KEY_SERVER_SETTINGS;
3234
import static de.fraunhofer.iosb.ilt.frostserver.util.Constants.CONTENT_TYPE_APPLICATION_JSONPATCH;
3335
import static de.fraunhofer.iosb.ilt.frostserver.util.Constants.REQUEST_PARAM_FORMAT;
3436

37+
import de.fraunhofer.iosb.ilt.frostserver.extensions.Extension;
3538
import de.fraunhofer.iosb.ilt.frostserver.model.ModelRegistry;
3639
import de.fraunhofer.iosb.ilt.frostserver.path.EditFeatures;
3740
import de.fraunhofer.iosb.ilt.frostserver.path.Version;
3841
import de.fraunhofer.iosb.ilt.frostserver.service.InitResult;
42+
import de.fraunhofer.iosb.ilt.frostserver.service.PluginRootDocument;
3943
import de.fraunhofer.iosb.ilt.frostserver.service.PluginService;
4044
import de.fraunhofer.iosb.ilt.frostserver.service.RequestTypeUtils;
4145
import de.fraunhofer.iosb.ilt.frostserver.service.Service;
@@ -49,14 +53,17 @@
4953
import de.fraunhofer.iosb.ilt.frostserver.util.StringHelper;
5054
import java.util.Arrays;
5155
import java.util.Collection;
56+
import java.util.LinkedHashMap;
57+
import java.util.Map;
58+
import java.util.Set;
59+
import java.util.TreeSet;
5260
import org.slf4j.Logger;
5361
import org.slf4j.LoggerFactory;
5462

5563
/**
56-
*
57-
* @author hylke
64+
* The API of STA version 1.0 and 1.1.
5865
*/
59-
public class PluginCoreService implements PluginService, ConfigDefaults {
66+
public class PluginCoreService implements PluginRootDocument, PluginService, ConfigDefaults {
6067

6168
private static final EditFeatures INSERT_STA_11 = new EditFeatures(true, false, false);
6269
private static final EditFeatures UPDATE_STA_11 = new EditFeatures(false, false, false);
@@ -92,12 +99,14 @@ public class PluginCoreService implements PluginService, ConfigDefaults {
9299
private static final Logger LOGGER = LoggerFactory.getLogger(PluginCoreService.class.getName());
93100

94101
private boolean enabled;
102+
private CoreSettings settings;
95103

96104
@Override
97105
public InitResult init(CoreSettings settings) {
98106
final Settings pluginSettings = settings.getPluginSettings();
99107
enabled = pluginSettings.getBoolean(TAG_ENABLE_CORE_SERVICE, PluginCoreService.class);
100108
if (enabled) {
109+
this.settings = settings;
101110
settings.getPluginManager().registerPlugin(this);
102111
settings.getPluginManager().registerPlugin(new PluginResultFormatSta());
103112
}
@@ -109,6 +118,25 @@ public boolean isEnabled() {
109118
return enabled;
110119
}
111120

121+
@Override
122+
public void modifyServiceDocument(ServiceRequest request, Map<String, Object> result) {
123+
Version version = request.getVersion();
124+
if (version != PluginCoreService.V_1_1) {
125+
return;
126+
}
127+
Map<String, Object> serverSettings = (Map<String, Object>) result.computeIfAbsent(KEY_SERVER_SETTINGS, t -> new LinkedHashMap<>());
128+
129+
final Set<Extension> enabledSettings = settings.getEnabledExtensions();
130+
Set<String> extensionList = new TreeSet<>();
131+
serverSettings.put(KEY_CONFORMANCE_LIST, extensionList);
132+
for (Extension setting : enabledSettings) {
133+
if (setting.isExposedFeature()) {
134+
extensionList.addAll(setting.getRequirements());
135+
}
136+
}
137+
settings.getMqttSettings().fillServerSettings(serverSettings);
138+
}
139+
112140
@Override
113141
public Collection<Version> getVersions() {
114142
return Arrays.asList(V_1_0, V_1_1);

Plugins/CoreModelV2/src/main/java/de/fraunhofer/iosb/ilt/frostserver/plugin/coremodelv2/PluginCoreModelV2.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020
import static de.fraunhofer.iosb.ilt.frostserver.plugin.coremodel.CoreModelSettings.TAG_ENABLE_CORE_MODEL;
2121
import static de.fraunhofer.iosb.ilt.frostserver.service.InitResult.INIT_DELAY;
2222

23-
import de.fraunhofer.iosb.ilt.frostserver.extensions.Extension;
24-
import de.fraunhofer.iosb.ilt.frostserver.path.Version;
2523
import de.fraunhofer.iosb.ilt.frostserver.plugin.coremodel.CoreModelSettings;
2624
import de.fraunhofer.iosb.ilt.frostserver.plugin.modelloader.PluginModelLoader;
2725
import de.fraunhofer.iosb.ilt.frostserver.service.InitResult;
@@ -100,22 +98,8 @@ public boolean isEnabled() {
10098

10199
@Override
102100
public void modifyServiceDocument(ServiceRequest request, Map<String, Object> result) {
103-
Version version = request.getVersion();
104-
if (version != PluginCoreServiceV2.VERSION_STA_2_0) {
105-
return;
106-
}
107101
Map<String, Object> serverSettings = (Map<String, Object>) result.computeIfAbsent(Service.KEY_SERVER_SETTINGS, t -> new LinkedHashMap<>());
108-
109-
final Set<Extension> enabledSettings = settings.getEnabledExtensions();
110102
Set<String> extensionList = (Set<String>) serverSettings.computeIfAbsent(Service.KEY_CONFORMANCE_LIST, t -> new TreeSet<>());
111-
for (Extension setting : enabledSettings) {
112-
if (setting.isExposedFeature()) {
113-
extensionList.addAll(setting.getRequirements());
114-
}
115-
}
116-
117-
settings.getMqttSettings().fillServerSettings(serverSettings);
118-
119103
extensionList.addAll(REQUIREMENTS_CORE_MODEL);
120104
}
121105

Plugins/CoreModelV2/src/main/java/de/fraunhofer/iosb/ilt/frostserver/plugin/coremodelv2/PluginCoreServiceV2.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,7 @@
6565
import org.slf4j.LoggerFactory;
6666

6767
/**
68-
*
69-
* @author hylke
68+
* The API of STA version 2.0.
7069
*/
7170
public class PluginCoreServiceV2 implements PluginRootDocument, PluginService, ConfigDefaults {
7271

0 commit comments

Comments
 (0)