3838import de .fraunhofer .iosb .ilt .frostserver .path .EditFeatures ;
3939import de .fraunhofer .iosb .ilt .frostserver .path .Version ;
4040import de .fraunhofer .iosb .ilt .frostserver .plugin .odata .MetaDataGenerator ;
41- import de .fraunhofer .iosb .ilt .frostserver .plugin .odata .PluginResultFormatOData ;
4241import de .fraunhofer .iosb .ilt .frostserver .plugin .odata .deserialize .JsonReaderOData ;
4342import de .fraunhofer .iosb .ilt .frostserver .plugin .odata .serialize .JsonWriterOdata401 ;
4443import de .fraunhofer .iosb .ilt .frostserver .service .InitResult ;
5251import de .fraunhofer .iosb .ilt .frostserver .util .Constants ;
5352import de .fraunhofer .iosb .ilt .frostserver .util .HttpMethod ;
5453import de .fraunhofer .iosb .ilt .frostserver .util .StringHelper ;
55- import de .fraunhofer .iosb .ilt .settings .ConfigDefaults ;
56- import de .fraunhofer .iosb .ilt .settings .Settings ;
54+ import de .fraunhofer .iosb .ilt .settings .ConfigProvider ;
5755import de .fraunhofer .iosb .ilt .settings .annotation .DefaultValueBoolean ;
5856import java .util .Arrays ;
5957import java .util .Collection ;
6765/**
6866 * The API of STA version 2.0.
6967 */
70- public class PluginCoreServiceV2 implements PluginRootDocument , PluginService , ConfigDefaults {
68+ public class PluginCoreServiceV2 extends ConfigProvider <PluginCoreServiceV2 > implements PluginRootDocument , PluginService {
69+
70+ private static final Logger LOGGER = LoggerFactory .getLogger (PluginCoreServiceV2 .class .getName ());
7171
7272 private static final EditFeatures INSERT_STA_20 = new EditFeatures (true , false , false );
7373 private static final EditFeatures UPDATE_STA_20 = new EditFeatures (true , true , true );
@@ -86,22 +86,22 @@ public class PluginCoreServiceV2 implements PluginRootDocument, PluginService, C
8686 .registerSytheticProperty (ModelRegistry .EP_SELFLINK )
8787 .build ();
8888
89- @ DefaultValueBoolean (true )
90- public static final String TAG_ENABLE_CORE_SERVICE_V2 = "coreServiceV2.enable" ;
89+ public static final String SETTINGS_NAMESPACE = "coreServiceV2." ;
9190
92- private static final Logger LOGGER = LoggerFactory .getLogger (PluginCoreServiceV2 .class .getName ());
91+ @ DefaultValueBoolean (true )
92+ public static final String TAG_ENABLE = "enable" ;
9393
94- private CoreSettings settings ;
94+ private CoreSettings coreSettings ;
9595 private boolean enabled ;
9696
9797 @ Override
9898 public InitResult init (CoreSettings settings ) {
99- this .settings = settings ;
100- final Settings pluginSettings = settings .getPluginSettings ();
101- enabled = pluginSettings . getBoolean (TAG_ENABLE_CORE_SERVICE_V2 , PluginCoreServiceV2 . class );
99+ this .coreSettings = settings ;
100+ setSettings ( settings .getPluginSettings (). getSubSettings ( SETTINGS_NAMESPACE ) );
101+ enabled = getBoolean (TAG_ENABLE );
102102 if (enabled ) {
103103 settings .getPluginManager ().registerPlugin (this );
104- settings .getPluginManager ().registerPlugin (new PluginResultFormatOData ());
104+ settings .getPluginManager ().registerPlugin (new PluginResultFormatV2 ());
105105 }
106106 return InitResult .INIT_OK ;
107107 }
@@ -181,7 +181,7 @@ public ServiceResponse execute(Service mainService, ServiceRequest request, Serv
181181 request .setJsonReader (new JsonReaderOData (request .getCoreSettings ().getModelRegistry (), request .getUserPrincipal ()));
182182 switch (request .getRequestType ()) {
183183 case REQUEST_TYPE_METADATA :
184- return new MetaDataGenerator (settings ).generateMetaData (request , response );
184+ return new MetaDataGenerator (coreSettings ).generateMetaData (request , response );
185185
186186 case CREATE :
187187 case UPDATE_ALL :
@@ -211,17 +211,17 @@ public void modifyServiceDocument(ServiceRequest request, Map<String, Object> re
211211
212212 Map <String , Object > serverSettings = (Map <String , Object >) result .computeIfAbsent (KEY_SERVER_SETTINGS , t -> new LinkedHashMap <>());
213213
214- final Set <Extension > enabledSettings = settings .getEnabledExtensions ();
215- Set <String > extensionList = new TreeSet <>();
216- serverSettings .put (KEY_CONFORMANCE_LIST , extensionList );
214+ final Set <Extension > enabledSettings = coreSettings .getEnabledExtensions ();
215+ Set <String > extensionList = (Set <String >) serverSettings .computeIfAbsent (KEY_CONFORMANCE_LIST , t -> new TreeSet <>());
217216 for (Extension setting : enabledSettings ) {
218217 if (setting .isExposedFeature ()) {
219218 extensionList .addAll (setting .getRequirements ());
220219 }
221220 }
221+ // ToDo: functions
222+ // ToDo: endpoint bindings
222223
223- settings .getMqttSettings ().fillServerSettings (serverSettings );
224-
224+ coreSettings .getMqttSettings ().fillServerSettings (serverSettings );
225225 }
226226
227227}
0 commit comments