1 package org.kuali.mobility.util.mapper; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.net.URL; 6 import java.net.URLConnection; 7 8 import org.apache.log4j.Logger; 9 import org.kuali.mobility.util.mapper.entity.DataMapping; 10 import org.kuali.mobility.util.mapper.entity.MappingElement; 11 12 import com.thoughtworks.xstream.XStream; 13 14 public class DataConfig { 15 private static final Logger logger = Logger.getLogger(DataConfig.class); 16 17 public DataMapping loadConfiguation(final String fileName) throws IOException { 18 final XStream xstream = configureXstream(); 19 return (DataMapping) xstream.fromXML(getClass().getClassLoader().getResourceAsStream(fileName)); 20 } 21 22 public DataMapping loadConfiguation(final URL url, Integer connectionTimeout, Integer readTimeout) throws IOException { 23 final XStream xstream = configureXstream(); 24 25 URLConnection con = url.openConnection(); 26 con.setConnectTimeout(connectionTimeout); 27 con.setReadTimeout(readTimeout); 28 InputStream in = con.getInputStream(); 29 30 return (DataMapping) xstream.fromXML(in); 31 } 32 33 private XStream configureXstream() { 34 final XStream xstream = new XStream(); 35 xstream.alias("dataMapping", DataMapping.class); 36 xstream.addImplicitCollection(DataMapping.class, "mappings", "mapping", MappingElement.class); 37 xstream.aliasAttribute(MappingElement.class, "mapTo", "mapTo"); 38 xstream.aliasAttribute(MappingElement.class, "mapFrom", "mapFrom"); 39 xstream.aliasAttribute(MappingElement.class, "isAttribute", "attribute"); 40 xstream.aliasAttribute(MappingElement.class, "list", "list"); 41 xstream.aliasAttribute(MappingElement.class, "type", "type"); 42 xstream.processAnnotations(DataMapping.class); 43 return xstream; 44 } 45 }