tfuchs
Elite Observer

Feature per FeatureInstallAgent via Modul installieren - Mapping der Layer

Jump to solution

Hallo zusammen,

ich möchte in einem FSM ein Feature mitliefern, das ich per FeatureInstallAgent installieren will (in installed()). Dazu mache ich zunächst folgendes:

final SpecialistsBroker broker = environment.getBroker();

final FeatureInstallAgent installAgent = broker.requestSpecialist(FeatureInstallAgent.TYPE);

final FeatureFile featureFile;

featureFile = installAgent.uploadFeatureFile(inputStream);

final ServerActionHandle<? extends FeatureProgress, FeatureAnalyseResult> analyseHandle =

  installAgent.analyzeFeature(featureFile);

final FeatureAnalyseResult analyseResult = analyseHandle.getResult(true);

In dem Feature wird ein Schema mitgeliefert. Das muss ja auf einen Layer gemappt werden. Wie findet das Mapping statt? Das muss ja eigentlich der Admin, der das Modul installiert irgendwie auswählen, oder? Wie mache ich das?

Danke und Grüße

Timo

0 Kudos
10 Replies

Für die Welt, die Antwort:

Möglichkeit 1: neuer Layer wird angelegt:

installAgent.installFeature(featureFile, LayerMapper.CREATE_NEW_DEFAULT_LAYER_MAPPER);

Möglichkeit 2: Layer per Namen zuweisen

Map<String, String> layerMapping = new HashMap<>();

for (String layerName : analyseResult.getUnmappedLayers()) {

    layerMapping.put(layerName, moduleValues.getString(NewsletterConstants.PROP_DEFAULT_LAYERNAME));

}

installAgent.installFeature(featureFile, LayerMapper.LayerNameBasedLayerMapper.from(layerMapping));

0 Kudos