io.ebeaninternal.xmlmapping.XmlMappingReader Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ebean Show documentation
Show all versions of ebean Show documentation
composite of common runtime dependencies for all platforms
package io.ebeaninternal.xmlmapping;
import io.ebeaninternal.xmlmapping.model.XmEbean;
import org.avaje.classpath.scanner.Resource;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
public class XmlMappingReader {
/**
* Read and return a Migration from an xml document.
*/
public static XmEbean read(InputStream is) {
try {
JAXBContext jaxbContext = JAXBContext.newInstance(XmEbean.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
return (XmEbean) unmarshaller.unmarshal(is);
} catch (JAXBException e) {
throw new RuntimeException(e);
}
}
/**
* Read the deployment XML for the given resource name.
*/
public static List readByResourceName(ClassLoader classLoader, String resourceName){
try {
Enumeration resources = classLoader.getResources(resourceName);
List mappings = new ArrayList<>();
while (resources.hasMoreElements()) {
URL url = resources.nextElement();
try (InputStream is = url.openStream()) {
mappings.add(XmlMappingReader.read(is));
}
}
return mappings;
} catch (IOException e) {
throw new RuntimeException("Error reading ebean xml mapping", e);
}
}
/**
* Read the deployment XML for the given resources.
*/
public static List readByResourceList(List resourceList){
try {
List mappings = new ArrayList<>();
for (Resource xmlMappingRes : resourceList) {
try (InputStream is = new FileInputStream(xmlMappingRes.getLocationOnDisk())) {
mappings.add(XmlMappingReader.read(is));
}
}
return mappings;
} catch (IOException e) {
throw new RuntimeException("Error reading ebean xml mapping", e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy