@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
/ *
* Copyright 2002 - 2012 the original author or authors .
* Copyright 2002 - 2015 the original author or authors .
*
* Licensed under the Apache License , Version 2 . 0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
@ -17,7 +17,6 @@
@@ -17,7 +17,6 @@
package org.springframework.beans.factory.xml ;
import java.io.IOException ;
import java.util.Arrays ;
import org.apache.commons.logging.Log ;
import org.apache.commons.logging.LogFactory ;
@ -45,7 +44,9 @@ public class BeansDtdResolver implements EntityResolver {
@@ -45,7 +44,9 @@ public class BeansDtdResolver implements EntityResolver {
private static final String DTD_EXTENSION = ".dtd" ;
private static final String [ ] DTD_NAMES = { "spring-beans-2.0" , "spring-beans" } ;
private static final String DTD_FILENAME = "spring-beans-2.0" ;
private static final String DTD_NAME = "spring-beans" ;
private static final Log logger = LogFactory . getLog ( BeansDtdResolver . class ) ;
@ -58,30 +59,28 @@ public class BeansDtdResolver implements EntityResolver {
@@ -58,30 +59,28 @@ public class BeansDtdResolver implements EntityResolver {
}
if ( systemId ! = null & & systemId . endsWith ( DTD_EXTENSION ) ) {
int lastPathSeparator = systemId . lastIndexOf ( "/" ) ;
for ( String DTD_NAME : DTD_NAMES ) {
int dtdNameStart = systemId . indexOf ( DTD_NAME ) ;
if ( dtdNameStart > lastPathSeparator ) {
String dtdFile = systemId . substring ( dtdNameStart ) ;
if ( logger . isTraceEnabled ( ) ) {
logger . trace ( "Trying to locate [" + dtdFile + "] in Spring jar" ) ;
}
try {
Resource resource = new ClassPathResource ( dtdFile , getClass ( ) ) ;
InputSource source = new InputSource ( resource . getInputStream ( ) ) ;
source . setPublicId ( publicId ) ;
source . setSystemId ( systemId ) ;
if ( logger . isDebugEnabled ( ) ) {
logger . debug ( "Found beans DTD [" + systemId + "] in classpath: " + dtdFile ) ;
}
return source ;
int dtdNameStart = systemId . indexOf ( DTD_NAME ) ;
if ( dtdNameStart > lastPathSeparator ) {
String dtdFile = DTD_FILENAME + DTD_EXTENSION ;
if ( logger . isTraceEnabled ( ) ) {
logger . trace ( "Trying to locate [" + dtdFile + "] in Spring jar on classpath" ) ;
}
try {
Resource resource = new ClassPathResource ( dtdFile , getClass ( ) ) ;
InputSource source = new InputSource ( resource . getInputStream ( ) ) ;
source . setPublicId ( publicId ) ;
source . setSystemId ( systemId ) ;
if ( logger . isDebugEnabled ( ) ) {
logger . debug ( "Found beans DTD [" + systemId + "] in classpath: " + dtdFile ) ;
}
catch ( IOException ex ) {
if ( logger . isDebugEnabled ( ) ) {
logger . debug ( "Could not resolve beans DTD [" + systemId + "]: not found in class path" , ex ) ;
}
return source ;
}
catch ( IOException ex ) {
if ( logger . isDebugEnabled ( ) ) {
logger . debug ( "Could not resolve beans DTD [" + systemId + "]: not found in classpath" , ex ) ;
}
}
}
}
@ -92,7 +91,7 @@ public class BeansDtdResolver implements EntityResolver {
@@ -92,7 +91,7 @@ public class BeansDtdResolver implements EntityResolver {
@Override
public String toString ( ) {
return "EntityResolver for DTDs " + Arrays . toString ( DTD_NAMES ) ;
return "EntityResolver for spring-beans DTD" ;
}
}