4.4. Plugins - Extension Points

Plugins können Extension Points von SmartMES nutzen, um die Funktionen von smartMES an bestimmten stellen zu erweitern.

So kann

Allgemeine Verwendung

Ein Extension Point ist als ein Interface und leitet stets vom Interface ExtensionPoint ab.

Um ein Extension Point zu implementieren, muss 

  • das Interface implementiert werden
  • @Extension als Annotation an die Klasse gehängt werden

Folgendes Beispiel zeigt z.B. die Verwendung des EndpointExtension, um Fertigungsaufträge

@Extension
public class AppConnectorEndpoint implements EndpointExtension {


    @EndpointMapping(value = "/orders/{id}", method = EndpointType.GET)
    public EndpointResult<?> getProductionOrder(Long id) throws ServiceException {
        ProductionOrderADO result = SmartMES.getService().productionOrderService().getProductionOrder(id);
        if (result != null) {
            return EndpointResult.ok(result);
        } else {
            return EndpointResult.notFound();
        }
    }


}

Die @Extension Annotation kann ein "Ordinal"-Wert übergeben werden, um die Reihenfolge zu bestimmen in der ExtensionPoints geladen werden, wenn es mehrere Plugins mit demselben ExtensionPoint gibt. 

Extension Points

Folgende Extension Points sind derzeit vorhanden:

EndpointExtension

Erlaubt es, eigene REST-Endpooints zu definieren.

Zur Beschreibung

ProductionJobExtension

Erweitert das System um Vorlagen für Arbeitspläne

Zur Beschreibung

DeviceExtension

Erweitert das System um Vorlagen für Arbeitspläne

Zur Beschreibung