Polishing

(cherry picked from commit 22ca7ac)
This commit is contained in:
Juergen Hoeller
2016-08-17 20:43:27 +02:00
parent 3185f67b43
commit 52f21bdf54
8 changed files with 32 additions and 31 deletions
@@ -509,10 +509,12 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
//--------------------------------------------------------------------- //---------------------------------------------------------------------
public void registerResolvableDependency(Class<?> dependencyType, Object autowiredValue) { public void registerResolvableDependency(Class<?> dependencyType, Object autowiredValue) {
Assert.notNull(dependencyType, "Type must not be null"); Assert.notNull(dependencyType, "Dependency type must not be null");
if (autowiredValue != null) { if (autowiredValue != null) {
Assert.isTrue((autowiredValue instanceof ObjectFactory || dependencyType.isInstance(autowiredValue)), if (!(autowiredValue instanceof ObjectFactory || dependencyType.isInstance(autowiredValue))) {
"Value [" + autowiredValue + "] does not implement specified type [" + dependencyType.getName() + "]"); throw new IllegalArgumentException("Value [" + autowiredValue +
"] does not implement specified dependency type [" + dependencyType.getName() + "]");
}
this.resolvableDependencies.put(dependencyType, autowiredValue); this.resolvableDependencies.put(dependencyType, autowiredValue);
} }
} }
@@ -42,6 +42,7 @@ import org.springframework.util.StringUtils;
* <li>"0 0 * * * *" = the top of every hour of every day.</li> * <li>"0 0 * * * *" = the top of every hour of every day.</li>
* <li>"*&#47;10 * * * * *" = every ten seconds.</li> * <li>"*&#47;10 * * * * *" = every ten seconds.</li>
* <li>"0 0 8-10 * * *" = 8, 9 and 10 o'clock of every day.</li> * <li>"0 0 8-10 * * *" = 8, 9 and 10 o'clock of every day.</li>
* <li>"0 * 6,19 * * *" = 6:00 AM and 7:00 PM every day.</li>
* <li>"0 0/30 8-10 * * *" = 8:00, 8:30, 9:00, 9:30 and 10 o'clock every day.</li> * <li>"0 0/30 8-10 * * *" = 8:00, 8:30, 9:00, 9:30 and 10 o'clock every day.</li>
* <li>"0 0 9-17 * * MON-FRI" = on the hour nine-to-five weekdays</li> * <li>"0 0 9-17 * * MON-FRI" = on the hour nine-to-five weekdays</li>
* <li>"0 0 0 25 12 ?" = every Christmas Day at midnight</li> * <li>"0 0 0 25 12 ?" = every Christmas Day at midnight</li>
@@ -115,7 +116,7 @@ public class CronSequenceGenerator {
/* /*
The plan: The plan:
1 Round up to the next whole second 1 Start with whole second (rounding up if necessary)
2 If seconds match move on, otherwise find the next match: 2 If seconds match move on, otherwise find the next match:
2.1 If next match is in the next minute then roll forwards 2.1 If next match is in the next minute then roll forwards
@@ -127,8 +128,6 @@ public class CronSequenceGenerator {
4 If hour matches move on, otherwise find the next match 4 If hour matches move on, otherwise find the next match
4.1 If next match is in the next day then roll forwards, 4.1 If next match is in the next day then roll forwards,
4.2 Reset the minutes and seconds and go to 2 4.2 Reset the minutes and seconds and go to 2
...
*/ */
Calendar calendar = new GregorianCalendar(); Calendar calendar = new GregorianCalendar();
@@ -409,7 +408,7 @@ public class CronSequenceGenerator {
@Override @Override
public String toString() { public String toString() {
return (getClass().getSimpleName() + ": " + this.expression); return getClass().getSimpleName() + ": " + this.expression;
} }
} }
@@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2013 the original author or authors. * Copyright 2002-2016 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -39,13 +39,13 @@ import org.springframework.util.xml.DomUtils;
* Allows for objects written using dynamic languages to be easily exposed with * Allows for objects written using dynamic languages to be easily exposed with
* the {@link org.springframework.beans.factory.BeanFactory}. * the {@link org.springframework.beans.factory.BeanFactory}.
* *
* <p>The script for each object can be specified either as a reference to the Resource * <p>The script for each object can be specified either as a reference to the
* containing it (using the '{@code script-source}' attribute) or inline in the XML configuration * resource containing it (using the '{@code script-source}' attribute) or inline
* itself (using the '{@code inline-script}' attribute. * in the XML configuration itself (using the '{@code inline-script}' attribute.
* *
* <p>By default, dynamic objects created with these tags are <strong>not</strong> refreshable. * <p>By default, dynamic objects created with these tags are <strong>not</strong>
* To enable refreshing, specify the refresh check delay for each object (in milliseconds) using the * refreshable. To enable refreshing, specify the refresh check delay for each
* '{@code refresh-check-delay}' attribute. * object (in milliseconds) using the '{@code refresh-check-delay}' attribute.
* *
* @author Rob Harrop * @author Rob Harrop
* @author Rod Johnson * @author Rod Johnson
@@ -171,14 +171,13 @@ class ScriptBeanDefinitionParser extends AbstractBeanDefinitionParser {
// Attach any refresh metadata. // Attach any refresh metadata.
String refreshCheckDelay = element.getAttribute(REFRESH_CHECK_DELAY_ATTRIBUTE); String refreshCheckDelay = element.getAttribute(REFRESH_CHECK_DELAY_ATTRIBUTE);
if (StringUtils.hasText(refreshCheckDelay)) { if (StringUtils.hasText(refreshCheckDelay)) {
bd.setAttribute(ScriptFactoryPostProcessor.REFRESH_CHECK_DELAY_ATTRIBUTE, new Long(refreshCheckDelay)); bd.setAttribute(ScriptFactoryPostProcessor.REFRESH_CHECK_DELAY_ATTRIBUTE, Long.valueOf(refreshCheckDelay));
} }
// Attach any proxy target class metadata. // Attach any proxy target class metadata.
String proxyTargetClass = element.getAttribute(PROXY_TARGET_CLASS_ATTRIBUTE); String proxyTargetClass = element.getAttribute(PROXY_TARGET_CLASS_ATTRIBUTE);
if (StringUtils.hasText(proxyTargetClass)) { if (StringUtils.hasText(proxyTargetClass)) {
Boolean flag = new Boolean(proxyTargetClass); bd.setAttribute(ScriptFactoryPostProcessor.PROXY_TARGET_CLASS_ATTRIBUTE, Boolean.valueOf(proxyTargetClass));
bd.setAttribute(ScriptFactoryPostProcessor.PROXY_TARGET_CLASS_ATTRIBUTE, flag);
} }
// Add constructor arguments. // Add constructor arguments.
@@ -213,7 +212,7 @@ class ScriptBeanDefinitionParser extends AbstractBeanDefinitionParser {
*/ */
private String resolveScriptSource(Element element, XmlReaderContext readerContext) { private String resolveScriptSource(Element element, XmlReaderContext readerContext) {
boolean hasScriptSource = element.hasAttribute(SCRIPT_SOURCE_ATTRIBUTE); boolean hasScriptSource = element.hasAttribute(SCRIPT_SOURCE_ATTRIBUTE);
List elements = DomUtils.getChildElementsByTagName(element, INLINE_SCRIPT_ELEMENT); List<Element> elements = DomUtils.getChildElementsByTagName(element, INLINE_SCRIPT_ELEMENT);
if (hasScriptSource && !elements.isEmpty()) { if (hasScriptSource && !elements.isEmpty()) {
readerContext.error("Only one of 'script-source' and 'inline-script' should be specified.", element); readerContext.error("Only one of 'script-source' and 'inline-script' should be specified.", element);
return null; return null;
@@ -222,7 +221,7 @@ class ScriptBeanDefinitionParser extends AbstractBeanDefinitionParser {
return element.getAttribute(SCRIPT_SOURCE_ATTRIBUTE); return element.getAttribute(SCRIPT_SOURCE_ATTRIBUTE);
} }
else if (!elements.isEmpty()) { else if (!elements.isEmpty()) {
Element inlineElement = (Element) elements.get(0); Element inlineElement = elements.get(0);
return "inline:" + DomUtils.getTextValue(inlineElement); return "inline:" + DomUtils.getTextValue(inlineElement);
} }
else { else {
@@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2012 the original author or authors. * Copyright 2002-2016 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -40,7 +40,7 @@ public class ScriptingDefaultsParser implements BeanDefinitionParser {
LangNamespaceUtils.registerScriptFactoryPostProcessorIfNecessary(parserContext.getRegistry()); LangNamespaceUtils.registerScriptFactoryPostProcessorIfNecessary(parserContext.getRegistry());
String refreshCheckDelay = element.getAttribute(REFRESH_CHECK_DELAY_ATTRIBUTE); String refreshCheckDelay = element.getAttribute(REFRESH_CHECK_DELAY_ATTRIBUTE);
if (StringUtils.hasText(refreshCheckDelay)) { if (StringUtils.hasText(refreshCheckDelay)) {
bd.getPropertyValues().add("defaultRefreshCheckDelay", new Long(refreshCheckDelay)); bd.getPropertyValues().add("defaultRefreshCheckDelay", Long.valueOf(refreshCheckDelay));
} }
String proxyTargetClass = element.getAttribute(PROXY_TARGET_CLASS_ATTRIBUTE); String proxyTargetClass = element.getAttribute(PROXY_TARGET_CLASS_ATTRIBUTE);
if (StringUtils.hasText(proxyTargetClass)) { if (StringUtils.hasText(proxyTargetClass)) {
@@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2012 the original author or authors. * Copyright 2002-2016 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -161,9 +161,9 @@ public class ConnectionHolder extends ResourceHolderSupport {
*/ */
public boolean supportsSavepoints() throws SQLException { public boolean supportsSavepoints() throws SQLException {
if (this.savepointsSupported == null) { if (this.savepointsSupported == null) {
this.savepointsSupported = new Boolean(getConnection().getMetaData().supportsSavepoints()); this.savepointsSupported = getConnection().getMetaData().supportsSavepoints();
} }
return this.savepointsSupported.booleanValue(); return this.savepointsSupported;
} }
/** /**
@@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2012 the original author or authors. * Copyright 2002-2016 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -95,7 +95,7 @@ class JcaListenerContainerParser extends AbstractListenerContainerParser {
String prefetch = containerEle.getAttribute(PREFETCH_ATTRIBUTE); String prefetch = containerEle.getAttribute(PREFETCH_ATTRIBUTE);
if (StringUtils.hasText(prefetch)) { if (StringUtils.hasText(prefetch)) {
configDef.getPropertyValues().add("prefetchSize", new Integer(prefetch)); configDef.getPropertyValues().add("prefetchSize", Integer.valueOf(prefetch));
} }
String phase = containerEle.getAttribute(PHASE_ATTRIBUTE); String phase = containerEle.getAttribute(PHASE_ATTRIBUTE);
@@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2013 the original author or authors. * Copyright 2002-2016 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -46,6 +46,7 @@ public class SimpleMappingExceptionResolver extends AbstractHandlerExceptionReso
/** The default name of the exception attribute: "exception". */ /** The default name of the exception attribute: "exception". */
public static final String DEFAULT_EXCEPTION_ATTRIBUTE = "exception"; public static final String DEFAULT_EXCEPTION_ATTRIBUTE = "exception";
private Properties exceptionMappings; private Properties exceptionMappings;
private Class<?>[] excludedExceptions; private Class<?>[] excludedExceptions;
@@ -108,7 +109,7 @@ public class SimpleMappingExceptionResolver extends AbstractHandlerExceptionReso
public void setStatusCodes(Properties statusCodes) { public void setStatusCodes(Properties statusCodes) {
for (Enumeration<?> enumeration = statusCodes.propertyNames(); enumeration.hasMoreElements();) { for (Enumeration<?> enumeration = statusCodes.propertyNames(); enumeration.hasMoreElements();) {
String viewName = (String) enumeration.nextElement(); String viewName = (String) enumeration.nextElement();
Integer statusCode = new Integer(statusCodes.getProperty(viewName)); Integer statusCode = Integer.valueOf(statusCodes.getProperty(viewName));
this.statusCodes.put(viewName, statusCode); this.statusCodes.put(viewName, statusCode);
} }
} }
@@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2013 the original author or authors. * Copyright 2002-2016 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -312,7 +312,7 @@ public abstract class AbstractJasperReportsView extends AbstractUrlBasedView {
"'reportDataKey' for main report is required when specifying a value for 'subReportDataKeys'"); "'reportDataKey' for main report is required when specifying a value for 'subReportDataKeys'");
} }
this.subReports = new HashMap<String, JasperReport>(this.subReportUrls.size()); this.subReports = new HashMap<String, JasperReport>(this.subReportUrls.size());
for (Enumeration urls = this.subReportUrls.propertyNames(); urls.hasMoreElements();) { for (Enumeration<?> urls = this.subReportUrls.propertyNames(); urls.hasMoreElements();) {
String key = (String) urls.nextElement(); String key = (String) urls.nextElement();
String path = this.subReportUrls.getProperty(key); String path = this.subReportUrls.getProperty(key);
Resource resource = getApplicationContext().getResource(path); Resource resource = getApplicationContext().getResource(path);
@@ -383,7 +383,7 @@ public abstract class AbstractJasperReportsView extends AbstractUrlBasedView {
else if (str.length() > 0 && Character.isDigit(str.charAt(0))) { else if (str.length() > 0 && Character.isDigit(str.charAt(0))) {
// Looks like a number... let's try. // Looks like a number... let's try.
try { try {
return new Integer(str); return Integer.valueOf(str);
} }
catch (NumberFormatException ex) { catch (NumberFormatException ex) {
// OK, then let's keep it as a String value. // OK, then let's keep it as a String value.