package org.jfox.ejb.meta;
import java.io.IOException;
import java.io.InputStream;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class EJBEntityResolver implements EntityResolver {
private static String ejb_11 = "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN"; private static String ejb_12 = "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.2//EN"; private static String ejb_2x = "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN";
private static String ejb_1x_dtd = "ejb-jar.dtd";
private static String ejb_2x_dtd = "ejb-jar_2_0.dtd";
public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
String dtd = null;
if (publicId.equals(ejb_11) || publicId.equals(ejb_12)) {
dtd = ejb_1x_dtd;
}
else if (publicId.equals(ejb_2x)) {
dtd = ejb_2x_dtd;
}
if (dtd != null) {
try {
ClassLoader loader = Thread.currentThread().getContextClassLoader();
String dtdResource = this.getClass().getPackage().getName().replace('.','/') + "/" + dtd;
InputStream dtdStream = loader.getResourceAsStream(dtdResource);
InputSource inputSource = new InputSource(dtdStream);
return inputSource;
}
catch (Exception ignore) {
ignore.printStackTrace();
}
}
return null;
}
public static void main(String[] args) {
}
}