You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
common-smartgears/src/main/java/org/gcube/smartgears/configuration/library/SmartGearsConfigurationBind...

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);
}
}
}