in src/main/java/org/apache/sling/installer/factory/model/impl/InstallFeatureModelTask.java [73:111]
public void execute(final InstallationContext ctx) {
try {
final TaskResource resource = this.getResource();
ctx.log("Installing {}", resource.getEntityId());
final String featureJson = (String) resource.getAttribute(FeatureModelInstallerPlugin.ATTR_MODEL);
if (featureJson == null) {
ctx.log("Unable to install feature model resource {} : no model found", resource);
this.getResourceGroup().setFinishState(ResourceState.IGNORED, null, "No model found");
} else {
boolean success = false;
final List<InstallableResource> result = this.transform(featureJson, resource);
if (result == null) {
ctx.log("Unable to install feature model resource {} : unable to create resources", resource);
this.getResourceGroup().setFinishState(ResourceState.IGNORED, null, "Unable to create resources");
} else {
if (!result.isEmpty()) {
final OsgiInstaller installer = this.getService(OsgiInstaller.class);
if (installer != null) {
installer.registerResources(
getScheme(resource),
result.toArray(new InstallableResource[result.size()]));
} else {
ctx.log("Unable to install feature model resource {} : unable to get OSGi installer",
resource);
this.getResourceGroup().setFinishState(ResourceState.IGNORED, null, "Unable to get OSGi installer");
return;
}
}
this.getResourceGroup().setFinishState(ResourceState.INSTALLED);
success = true;
}
if ( success ) {
ctx.log("Installed {}", resource.getEntityId());
}
}
} finally {
this.cleanup();
}
}