Browse Source

Polishing

pull/1536/head
Juergen Hoeller 12 years ago
parent
commit
751c429897
  1. 15
      org.springframework.context/src/main/java/org/springframework/context/annotation/ClassPathScanningCandidateComponentProvider.java
  2. 16
      org.springframework.context/src/main/java/org/springframework/context/annotation/ComponentScanAnnotationParser.java
  3. 10
      org.springframework.core/src/main/java/org/springframework/core/type/classreading/CachingMetadataReaderFactory.java
  4. 12
      org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/RedirectView.java

15
org.springframework.context/src/main/java/org/springframework/context/annotation/ClassPathScanningCandidateComponentProvider.java

@ -25,6 +25,7 @@ import java.util.Set; @@ -25,6 +25,7 @@ import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.BeanDefinitionStoreException;
import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition;
import org.springframework.beans.factory.config.BeanDefinition;
@ -120,6 +121,13 @@ public class ClassPathScanningCandidateComponentProvider implements EnvironmentC @@ -120,6 +121,13 @@ public class ClassPathScanningCandidateComponentProvider implements EnvironmentC
this.metadataReaderFactory = new CachingMetadataReaderFactory(resourceLoader);
}
/**
* Return the ResourceLoader that this component provider uses.
*/
public final ResourceLoader getResourceLoader() {
return this.resourcePatternResolver;
}
/**
* Set the Environment to use when resolving placeholders and evaluating
* {@link Profile @Profile}-annotated component classes.
@ -134,13 +142,6 @@ public class ClassPathScanningCandidateComponentProvider implements EnvironmentC @@ -134,13 +142,6 @@ public class ClassPathScanningCandidateComponentProvider implements EnvironmentC
return this.environment;
}
/**
* Return the ResourceLoader that this component provider uses.
*/
public final ResourceLoader getResourceLoader() {
return this.resourcePatternResolver;
}
/**
* Set the resource pattern to use when scanning the classpath.
* This value will be appended to each base package name.

16
org.springframework.context/src/main/java/org/springframework/context/annotation/ComponentScanAnnotationParser.java

@ -54,8 +54,7 @@ class ComponentScanAnnotationParser { @@ -54,8 +54,7 @@ class ComponentScanAnnotationParser {
private final BeanNameGenerator beanNameGenerator;
public ComponentScanAnnotationParser(
ResourceLoader resourceLoader, Environment environment,
public ComponentScanAnnotationParser(ResourceLoader resourceLoader, Environment environment,
BeanNameGenerator beanNameGenerator, BeanDefinitionRegistry registry) {
this.resourceLoader = resourceLoader;
@ -67,7 +66,7 @@ class ComponentScanAnnotationParser { @@ -67,7 +66,7 @@ class ComponentScanAnnotationParser {
public Set<BeanDefinitionHolder> parse(AnnotationAttributes componentScan) {
ClassPathBeanDefinitionScanner scanner =
new ClassPathBeanDefinitionScanner(registry, componentScan.getBoolean("useDefaultFilters"));
new ClassPathBeanDefinitionScanner(this.registry, componentScan.getBoolean("useDefaultFilters"));
Assert.notNull(this.environment, "Environment must not be null");
scanner.setEnvironment(this.environment);
@ -77,14 +76,14 @@ class ComponentScanAnnotationParser { @@ -77,14 +76,14 @@ class ComponentScanAnnotationParser {
Class<? extends BeanNameGenerator> generatorClass = componentScan.getClass("nameGenerator");
boolean useInheritedGenerator = BeanNameGenerator.class.equals(generatorClass);
scanner.setBeanNameGenerator(useInheritedGenerator
? this.beanNameGenerator
: BeanUtils.instantiateClass(generatorClass));
scanner.setBeanNameGenerator(useInheritedGenerator ? this.beanNameGenerator :
BeanUtils.instantiateClass(generatorClass));
ScopedProxyMode scopedProxyMode = componentScan.getEnum("scopedProxy");
if (scopedProxyMode != ScopedProxyMode.DEFAULT) {
scanner.setScopedProxyMode(scopedProxyMode);
} else {
}
else {
Class<? extends ScopeMetadataResolver> resolverClass = componentScan.getClass("scopeResolver");
scanner.setScopeMetadataResolver(BeanUtils.instantiateClass(resolverClass));
}
@ -121,7 +120,7 @@ class ComponentScanAnnotationParser { @@ -121,7 +120,7 @@ class ComponentScanAnnotationParser {
throw new IllegalStateException("At least one base package must be specified");
}
return scanner.doScan(basePackages.toArray(new String[]{}));
return scanner.doScan(StringUtils.toStringArray(basePackages));
}
private List<TypeFilter> typeFiltersFor(AnnotationAttributes filterAttributes) {
@ -153,4 +152,5 @@ class ComponentScanAnnotationParser { @@ -153,4 +152,5 @@ class ComponentScanAnnotationParser {
}
return typeFilters;
}
}

10
org.springframework.core/src/main/java/org/springframework/core/type/classreading/CachingMetadataReaderFactory.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2010 the original author or authors.
* Copyright 2002-2012 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.
@ -40,7 +40,7 @@ public class CachingMetadataReaderFactory extends SimpleMetadataReaderFactory { @@ -40,7 +40,7 @@ public class CachingMetadataReaderFactory extends SimpleMetadataReaderFactory {
private volatile int cacheLimit = DEFAULT_CACHE_LIMIT;
private final Map<Resource, MetadataReader> classReaderCache =
private final Map<Resource, MetadataReader> metadataReaderCache =
new LinkedHashMap<Resource, MetadataReader>(DEFAULT_CACHE_LIMIT, 0.75f, true) {
@Override
protected boolean removeEldestEntry(Map.Entry<Resource, MetadataReader> eldest) {
@ -95,11 +95,11 @@ public class CachingMetadataReaderFactory extends SimpleMetadataReaderFactory { @@ -95,11 +95,11 @@ public class CachingMetadataReaderFactory extends SimpleMetadataReaderFactory {
if (getCacheLimit() <= 0) {
return super.getMetadataReader(resource);
}
synchronized (this.classReaderCache) {
MetadataReader metadataReader = this.classReaderCache.get(resource);
synchronized (this.metadataReaderCache) {
MetadataReader metadataReader = this.metadataReaderCache.get(resource);
if (metadataReader == null) {
metadataReader = super.getMetadataReader(resource);
this.classReaderCache.put(resource, metadataReader);
this.metadataReaderCache.put(resource, metadataReader);
}
return metadataReader;
}

12
org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/RedirectView.java

@ -28,7 +28,6 @@ import java.util.LinkedHashMap; @@ -28,7 +28,6 @@ import java.util.LinkedHashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@ -77,10 +76,6 @@ import org.springframework.web.util.WebUtils; @@ -77,10 +76,6 @@ import org.springframework.web.util.WebUtils;
*
* <p><b>NOTE when using this redirect view in a Portlet environment:</b> Make sure
* that your controller respects the Portlet <code>sendRedirect</code> constraints.
* When e.g. using {@link org.springframework.web.portlet.mvc.SimpleFormController},
* make sure to set your controller's
* {@link org.springframework.web.portlet.mvc.AbstractFormController#setRedirectAction "redirectAction"}
* property to "true", in order to make the controller base class behave accordingly.
*
* @author Rod Johnson
* @author Juergen Hoeller
@ -97,6 +92,7 @@ public class RedirectView extends AbstractUrlBasedView implements SmartView { @@ -97,6 +92,7 @@ public class RedirectView extends AbstractUrlBasedView implements SmartView {
private static final Pattern URI_TEMPLATE_VARIABLE_PATTERN = Pattern.compile("\\{([^/]+?)\\}");
private boolean contextRelative = false;
private boolean http10Compatible = true;
@ -109,6 +105,7 @@ public class RedirectView extends AbstractUrlBasedView implements SmartView { @@ -109,6 +105,7 @@ public class RedirectView extends AbstractUrlBasedView implements SmartView {
private boolean expandUriTemplateVariables = true;
/**
* Constructor for use as a bean.
*/
@ -233,7 +230,6 @@ public class RedirectView extends AbstractUrlBasedView implements SmartView { @@ -233,7 +230,6 @@ public class RedirectView extends AbstractUrlBasedView implements SmartView {
* and close curly braces "{", "}" and you don't want them interpreted
* as URI variables.
* <p>Defaults to <code>true</code>.
* @param expandUriTemplateVariables
*/
public void setExpandUriTemplateVariables(boolean expandUriTemplateVariables) {
this.expandUriTemplateVariables = expandUriTemplateVariables;
@ -265,7 +261,6 @@ public class RedirectView extends AbstractUrlBasedView implements SmartView { @@ -265,7 +261,6 @@ public class RedirectView extends AbstractUrlBasedView implements SmartView {
throws IOException {
String targetUrl = createTargetUrl(model, request);
targetUrl = updateTargetUrl(targetUrl, model, request, response);
FlashMap flashMap = RequestContextUtils.getOutputFlashMap(request);
@ -278,7 +273,7 @@ public class RedirectView extends AbstractUrlBasedView implements SmartView { @@ -278,7 +273,7 @@ public class RedirectView extends AbstractUrlBasedView implements SmartView {
FlashMapManager flashMapManager = RequestContextUtils.getFlashMapManager(request);
flashMapManager.saveOutputFlashMap(flashMap, request, response);
sendRedirect(request, response, targetUrl.toString(), this.http10Compatible);
sendRedirect(request, response, targetUrl, this.http10Compatible);
}
/**
@ -362,6 +357,7 @@ public class RedirectView extends AbstractUrlBasedView implements SmartView { @@ -362,6 +357,7 @@ public class RedirectView extends AbstractUrlBasedView implements SmartView {
* @throws UnsupportedEncodingException if string encoding failed
* @see #queryProperties
*/
@SuppressWarnings("unchecked")
protected void appendQueryProperties(StringBuilder targetUrl, Map<String, Object> model, String encodingScheme)
throws UnsupportedEncodingException {

Loading…
Cancel
Save