@ -175,8 +175,7 @@ public class LiveBeansView implements LiveBeansViewMBean, ApplicationContextAwar
@@ -175,8 +175,7 @@ public class LiveBeansView implements LiveBeansViewMBean, ApplicationContextAwar
else {
result . append ( "\"type\": null,\n" ) ;
}
String resource = StringUtils . replace ( bd . getResourceDescription ( ) , "\\" , "/" ) ;
result . append ( "\"resource\": \"" ) . append ( resource ) . append ( "\",\n" ) ;
result . append ( "\"resource\": \"" ) . append ( getEscapedResourceDescription ( bd ) ) . append ( "\",\n" ) ;
result . append ( "\"dependencies\": [" ) ;
String [ ] dependencies = bf . getDependenciesForBean ( beanName ) ;
if ( dependencies . length > 0 ) {
@ -213,4 +212,28 @@ public class LiveBeansView implements LiveBeansViewMBean, ApplicationContextAwar
@@ -213,4 +212,28 @@ public class LiveBeansView implements LiveBeansViewMBean, ApplicationContextAwar
( ! bd . isLazyInit ( ) | | bf . containsSingleton ( beanName ) ) ) ;
}
/ * *
* Determine a resource description for the given bean definition and
* apply basic JSON escaping ( backslashes , double quotes ) to it .
* @param bd the bean definition to build the resource description for
* @return the JSON - escaped resource description
* /
protected String getEscapedResourceDescription ( BeanDefinition bd ) {
String resourceDescription = bd . getResourceDescription ( ) ;
StringBuilder result = new StringBuilder ( resourceDescription . length ( ) + 16 ) ;
for ( int i = 0 ; i < resourceDescription . length ( ) ; i + + ) {
char character = resourceDescription . charAt ( i ) ;
if ( character = = '\\' ) {
result . append ( '/' ) ;
}
else if ( character = = '"' ) {
result . append ( "\\" ) . append ( '"' ) ;
}
else {
result . append ( character ) ;
}
}
return result . toString ( ) ;
}
}