[Ejtools-cvs] CVS: applications/deployment/src/main/net/sourceforge/ejtools/deploy/xml DTDResolver.j
Brought to you by:
letiemble
From: Laurent E. <let...@us...> - 2002-04-30 21:23:20
|
Update of /cvsroot/ejtools/applications/deployment/src/main/net/sourceforge/ejtools/deploy/xml In directory usw-pr-cvs1:/tmp/cvs-serv11965/applications/deployment/src/main/net/sourceforge/ejtools/deploy/xml Added Files: DTDResolver.java Log Message: Initial Import --- NEW FILE: DTDResolver.java --- package net.sourceforge.ejtools.deploy.xml; import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.IOException; import java.util.Hashtable; import org.xml.sax.InputSource; import org.xml.sax.EntityResolver; /** * Description of the Class * * @author letiembl * @created 13 décembre 2001 */ public class DTDResolver implements EntityResolver { protected static Hashtable dtds = new Hashtable(); public DTDResolver() { } public InputSource resolveEntity (String publicId, String systemId) { byte[] data = (byte[])dtds.get(publicId); if(data != null) { return new InputSource(new ByteArrayInputStream(data)); } else { } return null; } static { dtds.put("-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN", loadDTD("ejb-jar_1_1.dtd")); dtds.put("-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN", loadDTD("ejb-jar_2_0.dtd")); dtds.put("-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN", loadDTD("application_1_2.dtd")); dtds.put("-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN", loadDTD("application_1_3.dtd")); dtds.put("-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN", loadDTD("web-app_2_3.dtd")); } private static byte[] loadDTD(String name) { InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(name); if(in == null) { in = DTDResolver.class.getClassLoader().getResourceAsStream(name); } if(in != null) { return loadBytes(in); } return null; } private static byte[] loadBytes(InputStream source) { byte[] buf = new byte[1024]; try { BufferedInputStream in = new BufferedInputStream(source); ByteArrayOutputStream out = new ByteArrayOutputStream(); int count; while((count = in.read(buf)) > -1) out.write(buf, 0, count); in.close(); out.close(); return out.toByteArray(); } catch(IOException e) { return null; } } } |