Static Dynamic Extension#
This example shows the enrichment of AAS data loaded from an aasx file with a dynamically created Submodel. Its code is available on GitHub
The following components are used:
In the first step an AAS-Server and a Registry-Server is started by the methodes startAASServer()
and startRegistry()
.
Then the AASXPackageManager is used to load example AASs/SMs from an .aasx file into a Set of AASBundle objects.
// Load Bundles from .aasx file
AASXPackageManager packageManager = new AASXPackageManager("aasx/01_Festo.aasx");
Set<AASBundle> bundles = packageManager.retrieveAASBundles();
A new Submodel is added to one of the bundles. The correct bundle is found by the idShort of its AAS.
// Get the correct Bundle from the Set
AASBundle bundle = findBundle(bundles, AAS_ID_SHORT);
// Add the new SubModel to the Bundle
bundle.getSubmodels().add(sm);
These bundles are then uploaded to the server using the AASBundleIntegrator.
// Load the new Bundles to the Server
AASBundleHelper.integrate(new AASAggregatorProxy(SERVER_URL), bundles);
The last step is to register the newly uploaded AAS/SM objects. This is done by a separate method registerBundles()
. It iterates over a given Set of bundles and registers all contained AASs/SMs.
// Get a RegistryProxy and register all Objects contained in the Bundles
AASRegistryProxy proxy = new AASRegistryProxy(REGISTRY_URL);
registerBundles(bundles, proxy, SERVER_URL);
An example of how to execute and use the scenario can be found in TestStaticDynamicScenario.