|
|
Here, I'll walk you through the java source code, responsible for starting the [AAS Server](What-am-I-looking-at-here#aas-server). Additional startup procedures are explained in the documentation for the [`start_component.sh`](TODO) and the [`run_demo.sh`](TODO) scripts.
|
|
|
|
|
|
The discussed file can be found [here](https://gitlab.hrz.tu-chemnitz.de/s6869070--tu-dresden.de/vws-spielwiese/-/blob/b1802bdd98650bdb666f03483f1e13c7f99bf4b8/basyx.lichterkette/src/main/java/de/olipar/basyx/lichterkette/AASServer.java).
|
|
|
|
|
|
This is very similar to the [AAS Registry starter](AAS-Registry-starter-walkthrough).
|
|
|
|
|
|
We'll skip the license header, imports and comments, as they are either pretty much self explanatory or not the product of conscious development effort.
|
|
|
|
|
|
```java
|
|
|
public class AASServer {
|
|
|
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(AASServer.class);
|
|
|
```
|
|
|
At the start of the `AASServer`-class, we aquire a logger object, to which all console output will be passed. This is not only used internally by BaSyx too, but allows us to easily utilize different loglevels, such as `INFO`, `WARN` and `ERROR`, indicating severity.
|
|
|
|
|
|
```java
|
|
|
public static void main(String[] args) {
|
|
|
```
|
|
|
We then define a `main`-method, as this class is executable. It will be called to startup the AAS Server.
|
|
|
|
|
|
```java
|
|
|
final int HOSTPORT = Common.getHostPort();
|
|
|
logger.info("Local host port is set to " + HOSTPORT);
|
|
|
```
|
|
|
Here, we invoke the static method `getHostPort()` of the [`Common`-class](TODO). The port on which to host the AAS Server is grabbed from an environment variable, if present and set to a fallback value if not. The set port is then logged via the `Logger` object acquired above.
|
|
|
|
|
|
```java
|
|
|
final String REGISTRYPATH = Common.getRegistryPath();
|
|
|
logger.info("Registry path set to " + REGISTRYPATH);
|
|
|
```
|
|
|
Here, the path to the registry is set via the similar to above. More details can be found in the walkthrough of the [`Common`-class](TODO).
|
|
|
|
|
|
```java
|
|
|
startAASServer(REGISTRYPATH, HOSTPORT);
|
|
|
```
|
|
|
Lastly, we startup the AAS Server by invoking the method defined next:
|
|
|
|
|
|
```java
|
|
|
private static void startAASServer(final String REGISTRYPATH, final int HOSTPORT) {
|
|
|
```
|
|
|
This method is used to handle the actual startup of an AAS Server instance, given a registry path and port to host it on.
|
|
|
It is based on the startup method given by the BaSyx documentation in [this example](https://wiki.eclipse.org/BaSyx_/_Introductory_Examples_/_Java_/_Example_6), only the registry path and port to host it on have been parametrized.
|
|
|
|
|
|
```java
|
|
|
BaSyxContextConfiguration contextConfig = new BaSyxContextConfiguration(HOSTPORT, "/aasServer");
|
|
|
```
|
|
|
Here, we create a `BaSyxContextConfiguration`-object, storing the port to host the new AAS Server instance on and the path prefix.
|
|
|
|
|
|
```java
|
|
|
BaSyxAASServerConfiguration aasServerConfig = new BaSyxAASServerConfiguration(AASServerBackend.INMEMORY, "", REGISTRYPATH);
|
|
|
```
|
|
|
Here, we create a `BaSyxAASServerConfiguration`-object, setting the AASServerBackend to use the RAM and the registry path.
|
|
|
|
|
|
```java
|
|
|
AASServerComponent aasServer = new AASServerComponent(contextConfig, aasServerConfig);
|
|
|
```
|
|
|
Creates a new AAS Server Component, passing the configuration objects created above
|
|
|
|
|
|
```java
|
|
|
aasServer.startComponent();
|
|
|
```
|
|
|
Actually starts the AAS Server.
|
|
|
|
|
|
After startup, the AAS Server can be reached locally on `http://localhost:<HOSTPORT>/aasServer/shells/` |
|
|
\ No newline at end of file |