+ */ \r
+ \r\r\rpackage simgrid.msg;
+\r\rimport java.io.InputStream;
+\rimport org.xml.sax.EntityResolver;
+\rimport org.xml.sax.InputSource;
+\rimport org.xml.sax.SAXException;
+\r\rpublic class DTDResolver implements EntityResolver {
+ \r\rpublic InputSource resolveEntity(String publicID, String systemID) \r
+ throws SAXException {
+ \r\r\rif (!systemID.endsWith("surfxml.dtd")) {
+ \rSystem.out.
+ println("\n MSG - Warning - the platform used seams invalid\n");
+ \rreturn null;
+ \r}
+ \r\r
+ /* try to get the DTD from the classpath */ \r
+ InputStream in = getClass().getResourceAsStream("/surfxml.dtd");
+ \r\rif (null == in)
+ \r
+ /* try to get the DTD from the surf dir in the jar */ \r
+ in = getClass().getResourceAsStream("/surf/surfxml.dtd");
+ \rif (null == in)
+ \r
+ /* try to get the DTD from the directory Simgrid */ \r
+ in = getClass().getResourceAsStream("/Simgrid/surfxml.dtd");
+ \r\rif (null == in)
+ \r
+ /* try to get the DTD from the directory Simgrid/msg */ \r
+ in = getClass().getResourceAsStream("/Simgrid/msg/surfxml.dtd");
+ \r\rif (null == in) {
+ \rSystem.err.println("\nMSG - XML DTD not found (" +
+ systemID.toString() +
+ ").\n\nPlease put this file in one of the following destinations :\n\n"
+ + \r" - classpath;\n" +
+ \r" - the directory Simgrid;\n" +
+ \r" - the directory Simgrid/msg;\n" +
+ \r" - the directory of you simulation.\n\n" +
+ \r"Once the DTD puted in one of the previouse destinations, retry you simulation.\n");
+ \r\r
+ /* \r
+ * If not founded, returning null makes process continue normally (try to get \r
+ * the DTD from the current directory \r
+ */ \r
+ return null;
+ \r}
+ \r\rreturn new InputSource(in);
+ \r}
+\r}
+