All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.ebeaninternal.xmlmapping.XmlMappingReader Maven / Gradle / Ivy

There is a newer version: 15.8.1
Show newest version
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