package fi.otavanopisto.muikku.plugins.data;
import java.io.File;
import java.io.IOException;
import javax.enterprise.event.Observes;
import javax.inject.Inject;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.commons.lang3.StringUtils;
import org.xml.sax.SAXException;
import fi.otavanopisto.muikku.plugin.AfterPluginsInitEvent;
import fi.otavanopisto.muikku.plugin.PluginDescriptor;
public class DataPluginDescriptor implements PluginDescriptor {
@Override
public void init() {
}
@Inject
private DataPluginController dataPluginController;
@Inject
private PermissionsPluginController permissionsPluginController;
@Override
public String getName() {
return "data";
}
public void onAfterPluginsInit(@Observes AfterPluginsInitEvent event) {
String xmlFilePaths = System.getProperty("muikku-data");
if (StringUtils.isNotBlank(xmlFilePaths)) {
try {
String[] files = xmlFilePaths.split(",");
for (String file : files) {
dataPluginController.processScripts(new File(file));
}
} catch (ParserConfigurationException | SAXException | IOException e) {
// TODO: Proper error handling
e.printStackTrace();
throw new RuntimeException(e);
}
}
// TODO: this should be in permissiondataplugindescriptor but it's dependent on
// being run after data import and as @observes cannot be prioritized we cant implement it
try {
permissionsPluginController.processPermissions();
} catch (Exception e) {
// TODO: Proper error handling
e.printStackTrace();
throw new RuntimeException(e);
}
try {
permissionsPluginController.checkForResetPermissions();
} catch (Exception e) {
// TODO: Proper error handling
e.printStackTrace();
throw new RuntimeException(e);
}
}
}