SimpleMetadataReaderFactory simpleMetadataReaderFactory = new SimpleMetadataReaderFactory();
getLogger().debug( "springresource " + resources.length + " for pattern " + patternFinder );
for ( Resource resource : resources )
{
getLogger().debug( "springresource " + resource.getFilename() );
MetadataReader metadataReader = simpleMetadataReaderFactory.getMetadataReader( resource );
AnnotationMetadata annotationMetadata = getAnnotationMetadataIfServlet(metadataReader,
simpleMetadataReaderFactory,
pathMatchingResourcePatternResolver);
if ( annotationMetadata != null )
{
Map<String, Object> annotationAttributes = annotationMetadata
.getAnnotationAttributes( RemoteServiceRelativePath.class.getName() );
getLogger().debug( "found RemoteServiceRelativePath annotation for class "
+ metadataReader.getClassMetadata().getClassName() );
if ( StringUtils.isNotBlank( startPath ) )
{
StringBuilder path = new StringBuilder();
if ( !startPath.startsWith( "/" ) )
{
path.append( '/' );
}
path.append( startPath );
String annotationPathValue = (String) annotationAttributes.get( "value" );
if ( !annotationPathValue.startsWith( "/" ) )
{
path.append( '/' );
}
path.append( annotationPathValue );
ServletDescriptor servletDescriptor = new ServletDescriptor( path.toString(), metadataReader
.getClassMetadata().getClassName() );
servlets.add( servletDescriptor );
}
else
{
StringBuilder path = new StringBuilder();
String annotationPathValue = (String) annotationAttributes.get( "value" );
if ( !annotationPathValue.startsWith( "/" ) )
{
path.append( '/' );
}
path.append( annotationPathValue );
ServletDescriptor servletDescriptor = new ServletDescriptor( path.toString(), metadataReader
.getClassMetadata().getClassName() );
servlets.add( servletDescriptor );
}
}
}