use of eu.esdihumboldt.hale.common.core.io.IOProviderConfigurationException in project hale by halestudio.
the class HaleSchemaReader method execute.
@Override
protected IOReport execute(ProgressIndicator progress, IOReporter reporter) throws IOProviderConfigurationException, IOException {
progress.begin("Load schema", ProgressIndicator.UNKNOWN);
try (InputStream in = getSource().getInput();
Reader reader = new InputStreamReader(in, getCharset())) {
schema = XmlToSchema.parseSchema(reader, new OsgiClassResolver(), reporter);
reporter.setSuccess(true);
} catch (Exception e) {
reporter.error(new IOMessageImpl(e.getMessage(), e));
reporter.setSuccess(false);
} finally {
progress.end();
}
return reporter;
}
use of eu.esdihumboldt.hale.common.core.io.IOProviderConfigurationException in project hale by halestudio.
the class SLDStyleReader method execute.
/**
* @see AbstractIOProvider#execute(ProgressIndicator, IOReporter)
*/
@Override
protected IOReport execute(ProgressIndicator progress, IOReporter reporter) throws IOProviderConfigurationException, IOException {
progress.begin("Load styles from SLD", ProgressIndicator.UNKNOWN);
StyleFactory styleFactory = CommonFactoryFinder.getStyleFactory(null);
InputStream in = getSource().getInput();
try {
SLDParser stylereader = new SLDParser(styleFactory, in);
styles = stylereader.readXML();
reporter.setSuccess(true);
} catch (Exception e) {
reporter.error(new IOMessageImpl("Loading styles from SLD failed.", e));
reporter.setSuccess(false);
} finally {
in.close();
progress.end();
}
return reporter;
}
use of eu.esdihumboldt.hale.common.core.io.IOProviderConfigurationException in project hale by halestudio.
the class InstanceExportWizard method performValidation.
/**
* Run the configured validators on the exported instance. May be overriden
* to customize validation process.
*
* @return true if all validations were successful
*/
protected boolean performValidation() {
boolean success = true;
for (InstanceValidator validator : validators) {
// set schemas
List<? extends Locatable> schemas = getProvider().getValidationSchemas();
validator.setSchemas(schemas.toArray(new Locatable[schemas.size()]));
// set service provider
validator.setServiceProvider(HaleUI.getServiceProvider());
ExportTarget<?> exportTarget = getSelectTargetPage().getExportTarget();
if (exportTarget instanceof FileTarget) {
LocatableOutputSupplier<? extends OutputStream> target = getProvider().getTarget();
List<String> fileNames = new ArrayList<>();
if (target instanceof MultiLocationOutputSupplier) {
for (URI location : ((MultiLocationOutputSupplier) target).getLocations()) {
if (!"file".equals(location.getScheme())) {
continue;
}
File targetFile = new File(location);
fileNames.add(targetFile.getAbsolutePath());
}
} else {
fileNames.add(((FileTarget<?>) exportTarget).getTargetFileName());
}
for (String fileName : fileNames) {
LocatableInputSupplier<? extends InputStream> source = new FileIOSupplier(new File(fileName));
validator.setSource(source);
validator.setContentType(getContentType());
IOReporter defReport = validator.createReporter();
// validate and execute provider
try {
// validate configuration
validator.validate();
IOReport report = execute(validator, defReport);
if (report != null) {
// add report to report server
ReportService repService = PlatformUI.getWorkbench().getService(ReportService.class);
repService.addReport(report);
if (report.isSuccess()) {
log.info(report.getSummary());
} else {
log.error(report.getSummary());
success = false;
}
}
} catch (IOProviderConfigurationException e) {
log.error(MessageFormat.format("The validator '{0}' could not be executed", validator.getClass().getCanonicalName()), e);
success = false;
}
}
} else {
log.error("No input can be provided for validation (no file target)");
success = false;
}
}
if (success) {
log.userInfo("All validations completed successfully.");
} else {
log.userError("There were validation failures. Please check the report for more details.");
}
return success;
}
use of eu.esdihumboldt.hale.common.core.io.IOProviderConfigurationException in project hale by halestudio.
the class InstanceExportWizard method getFactories.
/**
* @see IOWizard#getFactories()
*/
@Override
public List<IOProviderDescriptor> getFactories() {
if (cachedFactories != null) {
return cachedFactories;
}
List<IOProviderDescriptor> providers = super.getFactories();
IOAdvisor<InstanceWriter> advisor = getAdvisor();
if (advisor == null) {
return providers;
}
List<IOProviderDescriptor> result = new ArrayList<IOProviderDescriptor>();
for (IOProviderDescriptor providerFactory : providers) {
// create a dummy provider
InstanceWriter provider;
try {
provider = (InstanceWriter) providerFactory.createExtensionObject();
} catch (Exception e) {
log.error("Error creating an instance writer: " + providerFactory.getIdentifier(), e);
// ignore this provider as it cannot be created
continue;
}
// assign the basic configuration
advisor.prepareProvider(provider);
advisor.updateConfiguration(provider);
// and check the compatibility
try {
provider.checkCompatibility();
result.add(providerFactory);
} catch (IOProviderConfigurationException e) {
// ignore this export provider, it is not compatible
}
}
cachedFactories = result;
return cachedFactories;
}
Aggregations