48 lines
1.1 KiB
Java
48 lines
1.1 KiB
Java
package org.gcube.smartgears.configuration.library;
|
|
|
|
import java.io.InputStream;
|
|
|
|
import javax.xml.bind.JAXBContext;
|
|
import javax.xml.bind.JAXBException;
|
|
|
|
import org.gcube.smartgears.configuration.container.ContainerConfiguration;
|
|
import org.gcube.smartgears.utils.Utils;
|
|
|
|
/**
|
|
* Binds {@link ContainerConfiguration}s to and from XML serialisations.
|
|
*
|
|
* @author Fabio Simeoni
|
|
*
|
|
*/
|
|
public class SmartGearsConfigurationBinder {
|
|
|
|
/**
|
|
* Returns a {@link ContainerConfiguration} from its XML serialisation.
|
|
*
|
|
* @param stream the serialisation
|
|
* @return the configuration
|
|
* @throws RuntimeException if the serialisation is invalid
|
|
*/
|
|
public SmartGearsConfiguration bind(InputStream stream) {
|
|
|
|
try {
|
|
|
|
JAXBContext ctx = JAXBContext.newInstance(SmartGearsConfiguration.class);
|
|
|
|
SmartGearsConfiguration config = (SmartGearsConfiguration) ctx.createUnmarshaller().unmarshal(stream);
|
|
|
|
return config;
|
|
|
|
} catch (JAXBException e) {
|
|
|
|
throw new RuntimeException("invalid library configuration", e);
|
|
|
|
}
|
|
finally {
|
|
|
|
Utils.closeSafely(stream);
|
|
}
|
|
}
|
|
|
|
}
|