diff --git a/spring-aop/src/main/java/org/springframework/aop/TargetSource.java b/spring-aop/src/main/java/org/springframework/aop/TargetSource.java index 9633b4b33b1a..8e5ccc1fa6c5 100644 --- a/spring-aop/src/main/java/org/springframework/aop/TargetSource.java +++ b/spring-aop/src/main/java/org/springframework/aop/TargetSource.java @@ -39,6 +39,7 @@ public interface TargetSource extends TargetClassAware { * target class. * @return the type of targets returned by this {@link TargetSource} */ + @Override Class getTargetClass(); /** diff --git a/spring-aop/src/main/java/org/springframework/aop/TrueClassFilter.java b/spring-aop/src/main/java/org/springframework/aop/TrueClassFilter.java index 248e2f641671..1d622196f7a8 100644 --- a/spring-aop/src/main/java/org/springframework/aop/TrueClassFilter.java +++ b/spring-aop/src/main/java/org/springframework/aop/TrueClassFilter.java @@ -34,6 +34,7 @@ class TrueClassFilter implements ClassFilter, Serializable { private TrueClassFilter() { } + @Override public boolean matches(Class clazz) { return true; } diff --git a/spring-aop/src/main/java/org/springframework/aop/TrueMethodMatcher.java b/spring-aop/src/main/java/org/springframework/aop/TrueMethodMatcher.java index a8bf94dcae4c..b4722cdf00d5 100644 --- a/spring-aop/src/main/java/org/springframework/aop/TrueMethodMatcher.java +++ b/spring-aop/src/main/java/org/springframework/aop/TrueMethodMatcher.java @@ -35,14 +35,17 @@ class TrueMethodMatcher implements MethodMatcher, Serializable { private TrueMethodMatcher() { } + @Override public boolean isRuntime() { return false; } + @Override public boolean matches(Method method, Class targetClass) { return true; } + @Override public boolean matches(Method method, Class targetClass, Object[] args) { // Should never be invoked as isRuntime returns false. throw new UnsupportedOperationException(); diff --git a/spring-aop/src/main/java/org/springframework/aop/TruePointcut.java b/spring-aop/src/main/java/org/springframework/aop/TruePointcut.java index 553b0e9d6dd1..1a44c2ac2684 100644 --- a/spring-aop/src/main/java/org/springframework/aop/TruePointcut.java +++ b/spring-aop/src/main/java/org/springframework/aop/TruePointcut.java @@ -34,10 +34,12 @@ class TruePointcut implements Pointcut, Serializable { private TruePointcut() { } + @Override public ClassFilter getClassFilter() { return ClassFilter.TRUE; } + @Override public MethodMatcher getMethodMatcher() { return MethodMatcher.TRUE; } diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/AbstractAspectJAdvice.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/AbstractAspectJAdvice.java index 515358c3e32e..3a6436c7f892 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/AbstractAspectJAdvice.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/AbstractAspectJAdvice.java @@ -203,6 +203,7 @@ public final ClassLoader getAspectClassLoader() { return this.aspectInstanceFactory.getAspectClassLoader(); } + @Override public int getOrder() { return this.aspectInstanceFactory.getOrder(); } @@ -212,6 +213,7 @@ public void setAspectName(String name) { this.aspectName = name; } + @Override public String getAspectName() { return this.aspectName; } @@ -223,6 +225,7 @@ public void setDeclarationOrder(int order) { this.declarationOrder = order; } + @Override public int getDeclarationOrder() { return this.declarationOrder; } @@ -678,6 +681,7 @@ public AdviceExcludingMethodMatcher(Method adviceMethod) { this.adviceMethod = adviceMethod; } + @Override public boolean matches(Method method, Class targetClass) { return !this.adviceMethod.equals(method); } diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAdviceParameterNameDiscoverer.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAdviceParameterNameDiscoverer.java index 42a2c6f729fc..0fbeed07b84f 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAdviceParameterNameDiscoverer.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAdviceParameterNameDiscoverer.java @@ -222,6 +222,7 @@ public void setThrowingName(String throwingName) { * @param method the target {@link Method} * @return the parameter names */ + @Override public String[] getParameterNames(Method method) { this.argumentTypes = method.getParameterTypes(); this.numberOfRemainingUnboundArguments = this.argumentTypes.length; @@ -309,6 +310,7 @@ public String[] getParameterNames(Method method) { * @throws UnsupportedOperationException if * {@link #setRaiseExceptions(boolean) raiseExceptions} has been set to {@code true} */ + @Override public String[] getParameterNames(Constructor ctor) { if (this.raiseExceptions) { throw new UnsupportedOperationException("An advice method can never be a constructor"); diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAfterAdvice.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAfterAdvice.java index fd5b0d64c4aa..c6669af25112 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAfterAdvice.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAfterAdvice.java @@ -37,6 +37,7 @@ public AspectJAfterAdvice( super(aspectJBeforeAdviceMethod, pointcut, aif); } + @Override public Object invoke(MethodInvocation mi) throws Throwable { try { return mi.proceed(); @@ -46,10 +47,12 @@ public Object invoke(MethodInvocation mi) throws Throwable { } } + @Override public boolean isBeforeAdvice() { return false; } + @Override public boolean isAfterAdvice() { return true; } diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAfterReturningAdvice.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAfterReturningAdvice.java index 56adc943c152..6ae24d5d7bbf 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAfterReturningAdvice.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAfterReturningAdvice.java @@ -40,10 +40,12 @@ public AspectJAfterReturningAdvice( super(aspectJBeforeAdviceMethod, pointcut, aif); } + @Override public boolean isBeforeAdvice() { return false; } + @Override public boolean isAfterAdvice() { return true; } @@ -53,6 +55,7 @@ public void setReturningName(String name) { setReturningNameNoCheck(name); } + @Override public void afterReturning(Object returnValue, Method method, Object[] args, Object target) throws Throwable { if (shouldInvokeOnReturnValueOf(method, returnValue)) { invokeAdviceMethod(getJoinPointMatch(), returnValue, null); diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAfterThrowingAdvice.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAfterThrowingAdvice.java index dbdec73fbd63..a7bef4b2136a 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAfterThrowingAdvice.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAfterThrowingAdvice.java @@ -37,10 +37,12 @@ public AspectJAfterThrowingAdvice( super(aspectJBeforeAdviceMethod, pointcut, aif); } + @Override public boolean isBeforeAdvice() { return false; } + @Override public boolean isAfterAdvice() { return true; } @@ -50,6 +52,7 @@ public void setThrowingName(String name) { setThrowingNameNoCheck(name); } + @Override public Object invoke(MethodInvocation mi) throws Throwable { try { return mi.proceed(); diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAroundAdvice.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAroundAdvice.java index 64059d88a900..b9c546342b53 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAroundAdvice.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJAroundAdvice.java @@ -41,10 +41,12 @@ public AspectJAroundAdvice( super(aspectJAroundAdviceMethod, pointcut, aif); } + @Override public boolean isBeforeAdvice() { return false; } + @Override public boolean isAfterAdvice() { return false; } @@ -55,6 +57,7 @@ protected boolean supportsProceedingJoinPoint() { } + @Override public Object invoke(MethodInvocation mi) throws Throwable { if (!(mi instanceof ProxyMethodInvocation)) { throw new IllegalStateException("MethodInvocation is not a Spring ProxyMethodInvocation: " + mi); diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcut.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcut.java index e14f2546121b..fa9cc2f523e8 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcut.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcut.java @@ -155,16 +155,19 @@ public void setParameterTypes(Class[] types) { this.pointcutParameterTypes = types; } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } + @Override public ClassFilter getClassFilter() { checkReadyToMatch(); return this; } + @Override public MethodMatcher getMethodMatcher() { checkReadyToMatch(); return this; @@ -244,6 +247,7 @@ public PointcutExpression getPointcutExpression() { return this.pointcutExpression; } + @Override public boolean matches(Class targetClass) { checkReadyToMatch(); try { @@ -267,6 +271,7 @@ public boolean matches(Class targetClass) { } } + @Override public boolean matches(Method method, Class targetClass, boolean beanHasIntroductions) { checkReadyToMatch(); Method targetMethod = AopUtils.getMostSpecificMethod(method, targetClass); @@ -287,15 +292,18 @@ else if (shadowMatch.neverMatches()) { } } + @Override public boolean matches(Method method, Class targetClass) { return matches(method, targetClass, false); } + @Override public boolean isRuntime() { checkReadyToMatch(); return this.pointcutExpression.mayNeedDynamicTest(); } + @Override public boolean matches(Method method, Class targetClass, Object[] args) { checkReadyToMatch(); ShadowMatch shadowMatch = getShadowMatch(AopUtils.getMostSpecificMethod(method, targetClass), method); @@ -506,10 +514,12 @@ private class BeanNamePointcutDesignatorHandler implements PointcutDesignatorHan private static final String BEAN_DESIGNATOR_NAME = "bean"; + @Override public String getDesignatorName() { return BEAN_DESIGNATOR_NAME; } + @Override public ContextBasedMatcher parse(String expression) { return new BeanNameContextMatcher(expression); } @@ -531,22 +541,27 @@ public BeanNameContextMatcher(String expression) { this.expressionPattern = new NamePattern(expression); } + @Override public boolean couldMatchJoinPointsInType(Class someClass) { return (contextMatch(someClass) == FuzzyBoolean.YES); } + @Override public boolean couldMatchJoinPointsInType(Class someClass, MatchingContext context) { return (contextMatch(someClass) == FuzzyBoolean.YES); } + @Override public boolean matchesDynamically(MatchingContext context) { return true; } + @Override public FuzzyBoolean matchesStatically(MatchingContext context) { return contextMatch(null); } + @Override public boolean mayNeedDynamicTest() { return false; } @@ -611,18 +626,22 @@ public DefensiveShadowMatch(ShadowMatch primary, ShadowMatch other) { this.other = other; } + @Override public boolean alwaysMatches() { return primary.alwaysMatches(); } + @Override public boolean maybeMatches() { return primary.maybeMatches(); } + @Override public boolean neverMatches() { return primary.neverMatches(); } + @Override public JoinPointMatch matchesJoinPoint(Object thisObject, Object targetObject, Object[] args) { try { @@ -632,6 +651,7 @@ public JoinPointMatch matchesJoinPoint(Object thisObject, } } + @Override public void setMatchingContext(MatchingContext aMatchContext) { primary.setMatchingContext(aMatchContext); other.setMatchingContext(aMatchContext); diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcutAdvisor.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcutAdvisor.java index 70b6575076bc..5354360cd4e9 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcutAdvisor.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcutAdvisor.java @@ -31,6 +31,7 @@ public class AspectJExpressionPointcutAdvisor extends AbstractGenericPointcutAdv private final AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut(); + @Override public Pointcut getPointcut() { return this.pointcut; } diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJMethodBeforeAdvice.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJMethodBeforeAdvice.java index a9c5556d9e5d..6f7ce26b3957 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJMethodBeforeAdvice.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJMethodBeforeAdvice.java @@ -35,14 +35,17 @@ public AspectJMethodBeforeAdvice( super(aspectJBeforeAdviceMethod, pointcut, aif); } + @Override public void before(Method method, Object[] args, Object target) throws Throwable { invokeAdviceMethod(getJoinPointMatch(), null, null); } + @Override public boolean isBeforeAdvice() { return true; } + @Override public boolean isAfterAdvice() { return false; } diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJPointcutAdvisor.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJPointcutAdvisor.java index ea3205524807..14ad6c67a91d 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJPointcutAdvisor.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJPointcutAdvisor.java @@ -56,18 +56,22 @@ public void setOrder(int order) { } + @Override public boolean isPerInstance() { return true; } + @Override public Advice getAdvice() { return this.advice; } + @Override public Pointcut getPointcut() { return this.pointcut; } + @Override public int getOrder() { if (this.order != null) { return this.order; diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJWeaverMessageHandler.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJWeaverMessageHandler.java index 678c87baebf7..58d3958ec841 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJWeaverMessageHandler.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJWeaverMessageHandler.java @@ -48,6 +48,7 @@ public class AspectJWeaverMessageHandler implements IMessageHandler { private static final Log LOGGER = LogFactory.getLog("AspectJ Weaver"); + @Override public boolean handleMessage(IMessage message) throws AbortException { Kind messageKind = message.getKind(); @@ -89,15 +90,18 @@ private String makeMessageFor(IMessage aMessage) { return AJ_ID + aMessage.getMessage(); } + @Override public boolean isIgnoring(Kind messageKind) { // We want to see everything, and allow configuration of log levels dynamically. return false; } + @Override public void dontIgnore(Kind messageKind) { // We weren't ignoring anything anyway... } + @Override public void ignore(Kind kind) { // We weren't ignoring anything anyway... } diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/DeclareParentsAdvisor.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/DeclareParentsAdvisor.java index 27618c9b4661..0d1a84247bac 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/DeclareParentsAdvisor.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/DeclareParentsAdvisor.java @@ -77,6 +77,7 @@ private DeclareParentsAdvisor(Class interfaceType, String typePattern, Class imp // Excludes methods implemented. ClassFilter exclusion = new ClassFilter() { + @Override public boolean matches(Class clazz) { return !(introducedInterface.isAssignableFrom(clazz)); } @@ -87,22 +88,27 @@ public boolean matches(Class clazz) { } + @Override public ClassFilter getClassFilter() { return this.typePatternClassFilter; } + @Override public void validateInterfaces() throws IllegalArgumentException { // Do nothing } + @Override public boolean isPerInstance() { return true; } + @Override public Advice getAdvice() { return this.advice; } + @Override public Class[] getInterfaces() { return new Class[] {this.introducedInterface}; } diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/MethodInvocationProceedingJoinPoint.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/MethodInvocationProceedingJoinPoint.java index fbdcf093131c..a681815fa25b 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/MethodInvocationProceedingJoinPoint.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/MethodInvocationProceedingJoinPoint.java @@ -72,14 +72,17 @@ public MethodInvocationProceedingJoinPoint(ProxyMethodInvocation methodInvocatio this.methodInvocation = methodInvocation; } + @Override public void set$AroundClosure(AroundClosure aroundClosure) { throw new UnsupportedOperationException(); } + @Override public Object proceed() throws Throwable { return this.methodInvocation.invocableClone().proceed(); } + @Override public Object proceed(Object[] arguments) throws Throwable { Assert.notNull(arguments, "Argument array passed to proceed cannot be null"); if (arguments.length != this.methodInvocation.getArguments().length) { @@ -94,6 +97,7 @@ public Object proceed(Object[] arguments) throws Throwable { /** * Returns the Spring AOP proxy. Cannot be {@code null}. */ + @Override public Object getThis() { return this.methodInvocation.getProxy(); } @@ -101,10 +105,12 @@ public Object getThis() { /** * Returns the Spring AOP target. May be {@code null} if there is no target. */ + @Override public Object getTarget() { return this.methodInvocation.getThis(); } + @Override public Object[] getArgs() { if (this.defensiveCopyOfArgs == null) { Object[] argsSource = this.methodInvocation.getArguments(); @@ -114,6 +120,7 @@ public Object[] getArgs() { return this.defensiveCopyOfArgs; } + @Override public Signature getSignature() { if (this.signature == null) { this.signature = new MethodSignatureImpl(); @@ -121,6 +128,7 @@ public Signature getSignature() { return signature; } + @Override public SourceLocation getSourceLocation() { if (this.sourceLocation == null) { this.sourceLocation = new SourceLocationImpl(); @@ -128,27 +136,33 @@ public SourceLocation getSourceLocation() { return this.sourceLocation; } + @Override public String getKind() { return ProceedingJoinPoint.METHOD_EXECUTION; } + @Override public int getId() { // TODO: It's just an adapter but returning 0 might still have side effects... return 0; } + @Override public JoinPoint.StaticPart getStaticPart() { return this; } + @Override public String toShortString() { return "execution(" + getSignature().toShortString() + ")"; } + @Override public String toLongString() { return "execution(" + getSignature().toLongString() + ")"; } + @Override public String toString() { return "execution(" + getSignature().toString() + ")"; } @@ -161,34 +175,42 @@ private class MethodSignatureImpl implements MethodSignature { private volatile String[] parameterNames; + @Override public String getName() { return methodInvocation.getMethod().getName(); } + @Override public int getModifiers() { return methodInvocation.getMethod().getModifiers(); } + @Override public Class getDeclaringType() { return methodInvocation.getMethod().getDeclaringClass(); } + @Override public String getDeclaringTypeName() { return methodInvocation.getMethod().getDeclaringClass().getName(); } + @Override public Class getReturnType() { return methodInvocation.getMethod().getReturnType(); } + @Override public Method getMethod() { return methodInvocation.getMethod(); } + @Override public Class[] getParameterTypes() { return methodInvocation.getMethod().getParameterTypes(); } + @Override public String[] getParameterNames() { if (this.parameterNames == null) { this.parameterNames = (new LocalVariableTableParameterNameDiscoverer()).getParameterNames(getMethod()); @@ -196,18 +218,22 @@ public String[] getParameterNames() { return this.parameterNames; } + @Override public Class[] getExceptionTypes() { return methodInvocation.getMethod().getExceptionTypes(); } + @Override public String toShortString() { return toString(false, false, false, false); } + @Override public String toLongString() { return toString(true, true, true, true); } + @Override public String toString() { return toString(false, true, false, true); } @@ -267,6 +293,7 @@ private void appendType(StringBuilder sb, Class type, boolean useLongTypeName */ private class SourceLocationImpl implements SourceLocation { + @Override public Class getWithinType() { if (methodInvocation.getThis() == null) { throw new UnsupportedOperationException("No source location joinpoint available: target is null"); @@ -274,14 +301,17 @@ public Class getWithinType() { return methodInvocation.getThis().getClass(); } + @Override public String getFileName() { throw new UnsupportedOperationException(); } + @Override public int getLine() { throw new UnsupportedOperationException(); } + @Override public int getColumn() { throw new UnsupportedOperationException(); } diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/RuntimeTestWalker.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/RuntimeTestWalker.java index fa470759cdde..7d52c0361540 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/RuntimeTestWalker.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/RuntimeTestWalker.java @@ -106,35 +106,44 @@ private static class TestVisitorAdapter implements ITestVisitor { protected static final int AT_TARGET_VAR = 4; protected static final int AT_ANNOTATION_VAR = 8; + @Override public void visit(And e) { e.getLeft().accept(this); e.getRight().accept(this); } + @Override public void visit(Or e) { e.getLeft().accept(this); e.getRight().accept(this); } + @Override public void visit(Not e) { e.getBody().accept(this); } + @Override public void visit(Instanceof i) { } + @Override public void visit(Literal literal) { } + @Override public void visit(Call call) { } + @Override public void visit(FieldGetCall fieldGetCall) { } + @Override public void visit(HasAnnotation hasAnnotation) { } + @Override public void visit(MatchingContextBasedTest matchingContextTest) { } diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/SimpleAspectInstanceFactory.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/SimpleAspectInstanceFactory.java index 40049e978e05..dfb36d6a72ea 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/SimpleAspectInstanceFactory.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/SimpleAspectInstanceFactory.java @@ -49,6 +49,7 @@ public final Class getAspectClass() { } + @Override public final Object getAspectInstance() { try { return this.aspectClass.newInstance(); @@ -61,6 +62,7 @@ public final Object getAspectInstance() { } } + @Override public ClassLoader getAspectClassLoader() { return this.aspectClass.getClassLoader(); } @@ -73,6 +75,7 @@ public ClassLoader getAspectClassLoader() { * @see org.springframework.core.Ordered * @see #getOrderForAspectClass */ + @Override public int getOrder() { return getOrderForAspectClass(this.aspectClass); } diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/SingletonAspectInstanceFactory.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/SingletonAspectInstanceFactory.java index 7f550a333d11..1e8f723efb1d 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/SingletonAspectInstanceFactory.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/SingletonAspectInstanceFactory.java @@ -44,10 +44,12 @@ public SingletonAspectInstanceFactory(Object aspectInstance) { } + @Override public final Object getAspectInstance() { return this.aspectInstance; } + @Override public ClassLoader getAspectClassLoader() { return this.aspectInstance.getClass().getClassLoader(); } @@ -60,6 +62,7 @@ public ClassLoader getAspectClassLoader() { * @see org.springframework.core.Ordered * @see #getOrderForAspectClass */ + @Override public int getOrder() { if (this.aspectInstance instanceof Ordered) { return ((Ordered) this.aspectInstance).getOrder(); diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/TypePatternClassFilter.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/TypePatternClassFilter.java index adb8c4db3723..f2893fc58324 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/TypePatternClassFilter.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/TypePatternClassFilter.java @@ -93,6 +93,7 @@ public String getTypePattern() { * @return whether the advice should apply to this candidate target class * @throws IllegalStateException if no {@link #setTypePattern(String)} has been set */ + @Override public boolean matches(Class clazz) { if (this.aspectJTypePatternMatcher == null) { throw new IllegalStateException("No 'typePattern' has been set via ctor/setter."); diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactory.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactory.java index 5b3f48bce876..add6c5fac2a1 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactory.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactory.java @@ -111,6 +111,7 @@ protected AbstractAspectJAdvisorFactory() { * is that aspects written in the code-style (AspectJ language) also have the annotation present * when compiled by ajc with the -1.5 flag, yet they cannot be consumed by Spring AOP. */ + @Override public boolean isAspect(Class clazz) { return (hasAspectAnnotation(clazz) && !compiledByAjc(clazz)); } @@ -135,6 +136,7 @@ private boolean compiledByAjc(Class clazz) { return false; } + @Override public void validate(Class aspectClass) throws AopConfigException { // If the parent has the annotation and isn't abstract it's an error if (aspectClass.getSuperclass().getAnnotation(Aspect.class) != null && @@ -309,6 +311,7 @@ public String toString() { */ private static class AspectJAnnotationParameterNameDiscoverer implements ParameterNameDiscoverer { + @Override public String[] getParameterNames(Method method) { if (method.getParameterTypes().length == 0) { return new String[0]; @@ -330,6 +333,7 @@ public String[] getParameterNames(Method method) { } } + @Override public String[] getParameterNames(Constructor ctor) { throw new UnsupportedOperationException("Spring AOP cannot handle constructor advice"); } diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/BeanFactoryAspectInstanceFactory.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/BeanFactoryAspectInstanceFactory.java index 81a6c2a3ad16..855af772168c 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/BeanFactoryAspectInstanceFactory.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/BeanFactoryAspectInstanceFactory.java @@ -72,10 +72,12 @@ public BeanFactoryAspectInstanceFactory(BeanFactory beanFactory, String name, Cl } + @Override public Object getAspectInstance() { return this.beanFactory.getBean(this.name); } + @Override public ClassLoader getAspectClassLoader() { if (this.beanFactory instanceof ConfigurableBeanFactory) { return ((ConfigurableBeanFactory) this.beanFactory).getBeanClassLoader(); @@ -85,6 +87,7 @@ public ClassLoader getAspectClassLoader() { } } + @Override public AspectMetadata getAspectMetadata() { return this.aspectMetadata; } @@ -99,6 +102,7 @@ public AspectMetadata getAspectMetadata() { * @see org.springframework.core.Ordered * @see org.springframework.core.annotation.Order */ + @Override public int getOrder() { Class type = this.beanFactory.getType(this.name); if (type != null) { diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/InstantiationModelAwarePointcutAdvisorImpl.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/InstantiationModelAwarePointcutAdvisorImpl.java index 65e296f594c6..e2dc0893da65 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/InstantiationModelAwarePointcutAdvisorImpl.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/InstantiationModelAwarePointcutAdvisorImpl.java @@ -97,6 +97,7 @@ public InstantiationModelAwarePointcutAdvisorImpl(AspectJAdvisorFactory af, Aspe * The pointcut for Spring AOP to use. Actual behaviour of the pointcut will change * depending on the state of the advice. */ + @Override public Pointcut getPointcut() { return this.pointcut; } @@ -106,6 +107,7 @@ public Pointcut getPointcut() { * are much richer. In AspectJ terminology, all a return of {@code true} * means here is that the aspect is not a SINGLETON. */ + @Override public boolean isPerInstance() { return (getAspectMetadata().getAjType().getPerClause().getKind() != PerClauseKind.SINGLETON); } @@ -120,6 +122,7 @@ public AspectMetadata getAspectMetadata() { /** * Lazily instantiate advice if necessary. */ + @Override public synchronized Advice getAdvice() { if (this.instantiatedAdvice == null) { this.instantiatedAdvice = instantiateAdvice(this.declaredPointcut); @@ -127,10 +130,12 @@ public synchronized Advice getAdvice() { return this.instantiatedAdvice; } + @Override public boolean isLazy() { return this.lazy; } + @Override public synchronized boolean isAdviceInstantiated() { return (this.instantiatedAdvice != null); } @@ -149,18 +154,22 @@ public AspectJExpressionPointcut getDeclaredPointcut() { return this.declaredPointcut; } + @Override public int getOrder() { return this.aspectInstanceFactory.getOrder(); } + @Override public String getAspectName() { return this.aspectName; } + @Override public int getDeclarationOrder() { return this.declarationOrder; } + @Override public boolean isBeforeAdvice() { if (this.isBeforeAdvice == null) { determineAdviceType(); @@ -168,6 +177,7 @@ public boolean isBeforeAdvice() { return this.isBeforeAdvice; } + @Override public boolean isAfterAdvice() { if (this.isAfterAdvice == null) { determineAdviceType(); @@ -245,6 +255,7 @@ public boolean matches(Method method, Class targetClass) { this.preInstantiationPointcut.getMethodMatcher().matches(method, targetClass); } + @Override public boolean matches(Method method, Class targetClass, Object[] args) { // This can match only on declared pointcut. return (isAspectMaterialized() && this.declaredPointcut.matches(method, targetClass)); diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/LazySingletonAspectInstanceFactoryDecorator.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/LazySingletonAspectInstanceFactoryDecorator.java index d4f0709b6186..36bb4eeb42ed 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/LazySingletonAspectInstanceFactoryDecorator.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/LazySingletonAspectInstanceFactoryDecorator.java @@ -42,6 +42,7 @@ public LazySingletonAspectInstanceFactoryDecorator(MetadataAwareAspectInstanceFa } + @Override public synchronized Object getAspectInstance() { if (this.materialized == null) { synchronized (this) { @@ -57,14 +58,17 @@ public boolean isMaterialized() { return (this.materialized != null); } + @Override public ClassLoader getAspectClassLoader() { return this.maaif.getAspectClassLoader(); } + @Override public AspectMetadata getAspectMetadata() { return this.maaif.getAspectMetadata(); } + @Override public int getOrder() { return this.maaif.getOrder(); } diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/ReflectiveAspectJAdvisorFactory.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/ReflectiveAspectJAdvisorFactory.java index f8d684bc3b1c..35ed1e284784 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/ReflectiveAspectJAdvisorFactory.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/ReflectiveAspectJAdvisorFactory.java @@ -75,6 +75,7 @@ public class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFacto new InstanceComparator( Around.class, Before.class, After.class, AfterReturning.class, AfterThrowing.class), new Converter() { + @Override public Annotation convert(Method method) { AspectJAnnotation annotation = AbstractAspectJAdvisorFactory.findAspectJAnnotationOnMethod(method); return annotation == null ? null : annotation.getAnnotation(); @@ -82,6 +83,7 @@ public Annotation convert(Method method) { })); comparator.addComparator(new ConvertingComparator( new Converter() { + @Override public String convert(Method method) { return method.getName(); } @@ -90,6 +92,7 @@ public String convert(Method method) { } + @Override public List getAdvisors(MetadataAwareAspectInstanceFactory maaif) { final Class aspectClass = maaif.getAspectMetadata().getAspectClass(); final String aspectName = maaif.getAspectMetadata().getAspectName(); @@ -128,6 +131,7 @@ public List getAdvisors(MetadataAwareAspectInstanceFactory maaif) { private List getAdvisorMethods(Class aspectClass) { final List methods = new LinkedList(); ReflectionUtils.doWithMethods(aspectClass, new ReflectionUtils.MethodCallback() { + @Override public void doWith(Method method) throws IllegalArgumentException { // Exclude pointcuts if (AnnotationUtils.getAnnotation(method, Pointcut.class) == null) { @@ -164,6 +168,7 @@ private Advisor getDeclareParentsAdvisor(Field introductionField) { } + @Override public Advisor getAdvisor(Method candidateAdviceMethod, MetadataAwareAspectInstanceFactory aif, int declarationOrderInAspect, String aspectName) { @@ -191,6 +196,7 @@ private AspectJExpressionPointcut getPointcut(Method candidateAdviceMethod, Clas } + @Override public Advice getAdvice(Method candidateAdviceMethod, AspectJExpressionPointcut ajexp, MetadataAwareAspectInstanceFactory aif, int declarationOrderInAspect, String aspectName) { @@ -272,6 +278,7 @@ protected static class SyntheticInstantiationAdvisor extends DefaultPointcutAdvi public SyntheticInstantiationAdvisor(final MetadataAwareAspectInstanceFactory aif) { super(aif.getAspectMetadata().getPerClausePointcut(), new MethodBeforeAdvice() { + @Override public void before(Method method, Object[] args, Object target) { // Simply instantiate the aspect aif.getAspectInstance(); diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/SimpleMetadataAwareAspectInstanceFactory.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/SimpleMetadataAwareAspectInstanceFactory.java index bb623b372b7f..70ff5e653216 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/SimpleMetadataAwareAspectInstanceFactory.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/SimpleMetadataAwareAspectInstanceFactory.java @@ -45,6 +45,7 @@ public SimpleMetadataAwareAspectInstanceFactory(Class aspectClass, String aspect } + @Override public final AspectMetadata getAspectMetadata() { return this.metadata; } diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/SingletonMetadataAwareAspectInstanceFactory.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/SingletonMetadataAwareAspectInstanceFactory.java index ef9014a1445c..31f1e18f27eb 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/SingletonMetadataAwareAspectInstanceFactory.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/annotation/SingletonMetadataAwareAspectInstanceFactory.java @@ -47,6 +47,7 @@ public SingletonMetadataAwareAspectInstanceFactory(Object aspectInstance, String } + @Override public final AspectMetadata getAspectMetadata() { return this.metadata; } diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/autoproxy/AspectJAwareAdvisorAutoProxyCreator.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/autoproxy/AspectJAwareAdvisorAutoProxyCreator.java index 271d961088b5..f25f2d1811b4 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/autoproxy/AspectJAwareAdvisorAutoProxyCreator.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/autoproxy/AspectJAwareAdvisorAutoProxyCreator.java @@ -126,11 +126,13 @@ public PartiallyComparableAdvisorHolder(Advisor advisor, Comparator com this.comparator = comparator; } + @Override public int compareTo(Object obj) { Advisor otherAdvisor = ((PartiallyComparableAdvisorHolder) obj).advisor; return this.comparator.compare(this.advisor, otherAdvisor); } + @Override public int fallbackCompareTo(Object obj) { return 0; } diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/autoproxy/AspectJPrecedenceComparator.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/autoproxy/AspectJPrecedenceComparator.java index 31fdb83f7d87..25d84db560d1 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/autoproxy/AspectJPrecedenceComparator.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/autoproxy/AspectJPrecedenceComparator.java @@ -75,6 +75,7 @@ public AspectJPrecedenceComparator(Comparator advisorComparator } + @Override public int compare(Object o1, Object o2) { if (!(o1 instanceof Advisor && o2 instanceof Advisor)) { throw new IllegalArgumentException( diff --git a/spring-aop/src/main/java/org/springframework/aop/config/AbstractInterceptorDrivenBeanDefinitionDecorator.java b/spring-aop/src/main/java/org/springframework/aop/config/AbstractInterceptorDrivenBeanDefinitionDecorator.java index 6e58344f80fd..65169d1a8d04 100644 --- a/spring-aop/src/main/java/org/springframework/aop/config/AbstractInterceptorDrivenBeanDefinitionDecorator.java +++ b/spring-aop/src/main/java/org/springframework/aop/config/AbstractInterceptorDrivenBeanDefinitionDecorator.java @@ -58,6 +58,7 @@ */ public abstract class AbstractInterceptorDrivenBeanDefinitionDecorator implements BeanDefinitionDecorator { + @Override public final BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definitionHolder, ParserContext parserContext) { BeanDefinitionRegistry registry = parserContext.getRegistry(); diff --git a/spring-aop/src/main/java/org/springframework/aop/config/AdvisorComponentDefinition.java b/spring-aop/src/main/java/org/springframework/aop/config/AdvisorComponentDefinition.java index 374e40290a61..bd86b2ea2e9a 100644 --- a/spring-aop/src/main/java/org/springframework/aop/config/AdvisorComponentDefinition.java +++ b/spring-aop/src/main/java/org/springframework/aop/config/AdvisorComponentDefinition.java @@ -91,6 +91,7 @@ private String buildDescription(BeanReference adviceReference, BeanReference poi } + @Override public String getName() { return this.advisorBeanName; } @@ -110,6 +111,7 @@ public BeanReference[] getBeanReferences() { return this.beanReferences; } + @Override public Object getSource() { return this.advisorDefinition.getSource(); } diff --git a/spring-aop/src/main/java/org/springframework/aop/config/AopNamespaceHandler.java b/spring-aop/src/main/java/org/springframework/aop/config/AopNamespaceHandler.java index 611376efb926..459c394219ea 100644 --- a/spring-aop/src/main/java/org/springframework/aop/config/AopNamespaceHandler.java +++ b/spring-aop/src/main/java/org/springframework/aop/config/AopNamespaceHandler.java @@ -59,6 +59,7 @@ public class AopNamespaceHandler extends NamespaceHandlerSupport { * '{@code config}', '{@code spring-configured}', '{@code aspectj-autoproxy}' * and '{@code scoped-proxy}' tags. */ + @Override public void init() { // In 2.0 XSD as well as in 2.1 XSD. registerBeanDefinitionParser("config", new ConfigBeanDefinitionParser()); diff --git a/spring-aop/src/main/java/org/springframework/aop/config/AspectJAutoProxyBeanDefinitionParser.java b/spring-aop/src/main/java/org/springframework/aop/config/AspectJAutoProxyBeanDefinitionParser.java index aa3d70d11e79..95371f59b79d 100644 --- a/spring-aop/src/main/java/org/springframework/aop/config/AspectJAutoProxyBeanDefinitionParser.java +++ b/spring-aop/src/main/java/org/springframework/aop/config/AspectJAutoProxyBeanDefinitionParser.java @@ -37,6 +37,7 @@ */ class AspectJAutoProxyBeanDefinitionParser implements BeanDefinitionParser { + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { AopNamespaceUtils.registerAspectJAnnotationAutoProxyCreatorIfNecessary(parserContext, element); extendBeanDefinition(element, parserContext); diff --git a/spring-aop/src/main/java/org/springframework/aop/config/ConfigBeanDefinitionParser.java b/spring-aop/src/main/java/org/springframework/aop/config/ConfigBeanDefinitionParser.java index 9f75cba9be98..c7cb6735d677 100644 --- a/spring-aop/src/main/java/org/springframework/aop/config/ConfigBeanDefinitionParser.java +++ b/spring-aop/src/main/java/org/springframework/aop/config/ConfigBeanDefinitionParser.java @@ -95,6 +95,7 @@ class ConfigBeanDefinitionParser implements BeanDefinitionParser { private ParseState parseState = new ParseState(); + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { CompositeComponentDefinition compositeDef = new CompositeComponentDefinition(element.getTagName(), parserContext.extractSource(element)); diff --git a/spring-aop/src/main/java/org/springframework/aop/config/MethodLocatingFactoryBean.java b/spring-aop/src/main/java/org/springframework/aop/config/MethodLocatingFactoryBean.java index 2db62fc3b582..abb26930cb82 100644 --- a/spring-aop/src/main/java/org/springframework/aop/config/MethodLocatingFactoryBean.java +++ b/spring-aop/src/main/java/org/springframework/aop/config/MethodLocatingFactoryBean.java @@ -57,6 +57,7 @@ public void setMethodName(String methodName) { this.methodName = methodName; } + @Override public void setBeanFactory(BeanFactory beanFactory) { if (!StringUtils.hasText(this.targetBeanName)) { throw new IllegalArgumentException("Property 'targetBeanName' is required"); @@ -78,14 +79,17 @@ public void setBeanFactory(BeanFactory beanFactory) { } + @Override public Method getObject() throws Exception { return this.method; } + @Override public Class getObjectType() { return Method.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-aop/src/main/java/org/springframework/aop/config/PointcutComponentDefinition.java b/spring-aop/src/main/java/org/springframework/aop/config/PointcutComponentDefinition.java index 1c26f378109b..3cbf472e588f 100644 --- a/spring-aop/src/main/java/org/springframework/aop/config/PointcutComponentDefinition.java +++ b/spring-aop/src/main/java/org/springframework/aop/config/PointcutComponentDefinition.java @@ -46,6 +46,7 @@ public PointcutComponentDefinition(String pointcutBeanName, BeanDefinition point } + @Override public String getName() { return this.pointcutBeanName; } @@ -60,6 +61,7 @@ public BeanDefinition[] getBeanDefinitions() { return new BeanDefinition[] {this.pointcutDefinition}; } + @Override public Object getSource() { return this.pointcutDefinition.getSource(); } diff --git a/spring-aop/src/main/java/org/springframework/aop/config/ScopedProxyBeanDefinitionDecorator.java b/spring-aop/src/main/java/org/springframework/aop/config/ScopedProxyBeanDefinitionDecorator.java index 0d2daf364f57..0acf968b5190 100644 --- a/spring-aop/src/main/java/org/springframework/aop/config/ScopedProxyBeanDefinitionDecorator.java +++ b/spring-aop/src/main/java/org/springframework/aop/config/ScopedProxyBeanDefinitionDecorator.java @@ -39,6 +39,7 @@ class ScopedProxyBeanDefinitionDecorator implements BeanDefinitionDecorator { private static final String PROXY_TARGET_CLASS = "proxy-target-class"; + @Override public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext) { boolean proxyTargetClass = true; if (node instanceof Element) { diff --git a/spring-aop/src/main/java/org/springframework/aop/config/SimpleBeanFactoryAwareAspectInstanceFactory.java b/spring-aop/src/main/java/org/springframework/aop/config/SimpleBeanFactoryAwareAspectInstanceFactory.java index cd6dd5a29320..64cc673bab7b 100644 --- a/spring-aop/src/main/java/org/springframework/aop/config/SimpleBeanFactoryAwareAspectInstanceFactory.java +++ b/spring-aop/src/main/java/org/springframework/aop/config/SimpleBeanFactoryAwareAspectInstanceFactory.java @@ -47,6 +47,7 @@ public void setAspectBeanName(String aspectBeanName) { this.aspectBeanName = aspectBeanName; } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; if (!StringUtils.hasText(this.aspectBeanName)) { @@ -59,10 +60,12 @@ public void setBeanFactory(BeanFactory beanFactory) { * Look up the aspect bean from the {@link BeanFactory} and returns it. * @see #setAspectBeanName */ + @Override public Object getAspectInstance() { return this.beanFactory.getBean(this.aspectBeanName); } + @Override public ClassLoader getAspectClassLoader() { if (this.beanFactory instanceof ConfigurableBeanFactory) { return ((ConfigurableBeanFactory) this.beanFactory).getBeanClassLoader(); @@ -72,6 +75,7 @@ public ClassLoader getAspectClassLoader() { } } + @Override public int getOrder() { if (this.beanFactory.isSingleton(this.aspectBeanName) && this.beanFactory.isTypeMatch(this.aspectBeanName, Ordered.class)) { diff --git a/spring-aop/src/main/java/org/springframework/aop/config/SpringConfiguredBeanDefinitionParser.java b/spring-aop/src/main/java/org/springframework/aop/config/SpringConfiguredBeanDefinitionParser.java index 21bf0edd5be3..59aed08e0ed2 100644 --- a/spring-aop/src/main/java/org/springframework/aop/config/SpringConfiguredBeanDefinitionParser.java +++ b/spring-aop/src/main/java/org/springframework/aop/config/SpringConfiguredBeanDefinitionParser.java @@ -50,6 +50,7 @@ class SpringConfiguredBeanDefinitionParser implements BeanDefinitionParser { "org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect"; + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { if (!parserContext.getRegistry().containsBeanDefinition(BEAN_CONFIGURER_ASPECT_BEAN_NAME)) { RootBeanDefinition def = new RootBeanDefinition(); diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/AbstractAdvisingBeanPostProcessor.java b/spring-aop/src/main/java/org/springframework/aop/framework/AbstractAdvisingBeanPostProcessor.java index 01b0fe856c37..1ef225f22fe8 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/AbstractAdvisingBeanPostProcessor.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/AbstractAdvisingBeanPostProcessor.java @@ -65,6 +65,7 @@ public void setBeforeExistingAdvisors(boolean beforeExistingAdvisors) { this.beforeExistingAdvisors = beforeExistingAdvisors; } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } @@ -73,15 +74,18 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) { return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) { if (bean instanceof AopInfrastructureBean) { // Ignore AOP infrastructure such as scoped proxies. diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/AbstractSingletonProxyFactoryBean.java b/spring-aop/src/main/java/org/springframework/aop/framework/AbstractSingletonProxyFactoryBean.java index 8617107350e8..261d1cab604d 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/AbstractSingletonProxyFactoryBean.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/AbstractSingletonProxyFactoryBean.java @@ -122,6 +122,7 @@ public void setProxyClassLoader(ClassLoader classLoader) { this.proxyClassLoader = classLoader; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { if (this.proxyClassLoader == null) { this.proxyClassLoader = classLoader; @@ -129,6 +130,7 @@ public void setBeanClassLoader(ClassLoader classLoader) { } + @Override public void afterPropertiesSet() { if (this.target == null) { throw new IllegalArgumentException("Property 'target' is required"); @@ -190,6 +192,7 @@ protected TargetSource createTargetSource(Object target) { } + @Override public Object getObject() { if (this.proxy == null) { throw new FactoryBeanNotInitializedException(); @@ -197,6 +200,7 @@ public Object getObject() { return this.proxy; } + @Override public Class getObjectType() { if (this.proxy != null) { return this.proxy.getClass(); @@ -213,6 +217,7 @@ public Class getObjectType() { return null; } + @Override public final boolean isSingleton() { return true; } diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java b/spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java index 460c75ff411b..da1d2c1690a6 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java @@ -137,10 +137,12 @@ public void setTarget(Object target) { setTargetSource(new SingletonTargetSource(target)); } + @Override public void setTargetSource(TargetSource targetSource) { this.targetSource = (targetSource != null ? targetSource : EMPTY_TARGET_SOURCE); } + @Override public TargetSource getTargetSource() { return this.targetSource; } @@ -162,14 +164,17 @@ public void setTargetClass(Class targetClass) { this.targetSource = EmptyTargetSource.forClass(targetClass); } + @Override public Class getTargetClass() { return this.targetSource.getTargetClass(); } + @Override public void setPreFiltered(boolean preFiltered) { this.preFiltered = preFiltered; } + @Override public boolean isPreFiltered() { return this.preFiltered; } @@ -228,10 +233,12 @@ public boolean removeInterface(Class intf) { return this.interfaces.remove(intf); } + @Override public Class[] getProxiedInterfaces() { return this.interfaces.toArray(new Class[this.interfaces.size()]); } + @Override public boolean isInterfaceProxied(Class intf) { for (Class proxyIntf : this.interfaces) { if (intf.isAssignableFrom(proxyIntf)) { @@ -242,15 +249,18 @@ public boolean isInterfaceProxied(Class intf) { } + @Override public final Advisor[] getAdvisors() { return this.advisorArray; } + @Override public void addAdvisor(Advisor advisor) { int pos = this.advisors.size(); addAdvisor(pos, advisor); } + @Override public void addAdvisor(int pos, Advisor advisor) throws AopConfigException { if (advisor instanceof IntroductionAdvisor) { validateIntroductionAdvisor((IntroductionAdvisor) advisor); @@ -258,6 +268,7 @@ public void addAdvisor(int pos, Advisor advisor) throws AopConfigException { addAdvisorInternal(pos, advisor); } + @Override public boolean removeAdvisor(Advisor advisor) { int index = indexOf(advisor); if (index == -1) { @@ -269,6 +280,7 @@ public boolean removeAdvisor(Advisor advisor) { } } + @Override public void removeAdvisor(int index) throws AopConfigException { if (isFrozen()) { throw new AopConfigException("Cannot remove Advisor: Configuration is frozen."); @@ -292,11 +304,13 @@ public void removeAdvisor(int index) throws AopConfigException { adviceChanged(); } + @Override public int indexOf(Advisor advisor) { Assert.notNull(advisor, "Advisor must not be null"); return this.advisors.indexOf(advisor); } + @Override public boolean replaceAdvisor(Advisor a, Advisor b) throws AopConfigException { Assert.notNull(a, "Advisor a must not be null"); Assert.notNull(b, "Advisor b must not be null"); @@ -378,6 +392,7 @@ protected final List getAdvisorsInternal() { } + @Override public void addAdvice(Advice advice) throws AopConfigException { int pos = this.advisors.size(); addAdvice(pos, advice); @@ -386,6 +401,7 @@ public void addAdvice(Advice advice) throws AopConfigException { /** * Cannot add introductions this way unless the advice implements IntroductionInfo. */ + @Override public void addAdvice(int pos, Advice advice) throws AopConfigException { Assert.notNull(advice, "Advice must not be null"); if (advice instanceof IntroductionInfo) { @@ -402,6 +418,7 @@ else if (advice instanceof DynamicIntroductionAdvice) { } } + @Override public boolean removeAdvice(Advice advice) throws AopConfigException { int index = indexOf(advice); if (index == -1) { @@ -413,6 +430,7 @@ public boolean removeAdvice(Advice advice) throws AopConfigException { } } + @Override public int indexOf(Advice advice) { Assert.notNull(advice, "Advice must not be null"); for (int i = 0; i < this.advisors.size(); i++) { @@ -544,6 +562,7 @@ private void readObject(ObjectInputStream ois) throws IOException, ClassNotFound } + @Override public String toProxyConfigString() { return toString(); } diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/CglibAopProxy.java b/spring-aop/src/main/java/org/springframework/aop/framework/CglibAopProxy.java index 5801458ff0f7..6ee9f6d450fa 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/CglibAopProxy.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/CglibAopProxy.java @@ -146,10 +146,12 @@ public void setConstructorArguments(Object[] constructorArgs, Class[] constru } + @Override public Object getProxy() { return getProxy(null); } + @Override public Object getProxy(ClassLoader classLoader) { if (logger.isDebugEnabled()) { logger.debug("Creating CGLIB proxy: target source is " + this.advised.getTargetSource()); @@ -386,6 +388,7 @@ public StaticUnadvisedInterceptor(Object target) { this.target = target; } + @Override public Object intercept(Object proxy, Method method, Object[] args, MethodProxy methodProxy) throws Throwable { Object retVal = methodProxy.invoke(this.target, args); return processReturnType(proxy, this.target, method, retVal); @@ -405,6 +408,7 @@ public StaticUnadvisedExposedInterceptor(Object target) { this.target = target; } + @Override public Object intercept(Object proxy, Method method, Object[] args, MethodProxy methodProxy) throws Throwable { Object oldProxy = null; try { @@ -432,6 +436,7 @@ public DynamicUnadvisedInterceptor(TargetSource targetSource) { this.targetSource = targetSource; } + @Override public Object intercept(Object proxy, Method method, Object[] args, MethodProxy methodProxy) throws Throwable { Object target = this.targetSource.getTarget(); try { @@ -456,6 +461,7 @@ public DynamicUnadvisedExposedInterceptor(TargetSource targetSource) { this.targetSource = targetSource; } + @Override public Object intercept(Object proxy, Method method, Object[] args, MethodProxy methodProxy) throws Throwable { Object oldProxy = null; Object target = this.targetSource.getTarget(); @@ -485,6 +491,7 @@ public StaticDispatcher(Object target) { this.target = target; } + @Override public Object loadObject() { return this.target; } @@ -502,6 +509,7 @@ public AdvisedDispatcher(AdvisedSupport advised) { this.advised = advised; } + @Override public Object loadObject() throws Exception { return this.advised; } @@ -520,6 +528,7 @@ public EqualsInterceptor(AdvisedSupport advised) { this.advised = advised; } + @Override public Object intercept(Object proxy, Method method, Object[] args, MethodProxy methodProxy) { Object other = args[0]; if (proxy == other) { @@ -552,6 +561,7 @@ public HashCodeInterceptor(AdvisedSupport advised) { this.advised = advised; } + @Override public Object intercept(Object proxy, Method method, Object[] args, MethodProxy methodProxy) { return CglibAopProxy.class.hashCode() * 13 + this.advised.getTargetSource().hashCode(); } @@ -575,6 +585,7 @@ public FixedChainStaticTargetInterceptor(List adviceChain, Object target this.targetClass = targetClass; } + @Override public Object intercept(Object proxy, Method method, Object[] args, MethodProxy methodProxy) throws Throwable { MethodInvocation invocation = new CglibMethodInvocation(proxy, this.target, method, args, this.targetClass, this.adviceChain, methodProxy); @@ -598,6 +609,7 @@ public DynamicAdvisedInterceptor(AdvisedSupport advised) { this.advised = advised; } + @Override public Object intercept(Object proxy, Method method, Object[] args, MethodProxy methodProxy) throws Throwable { Object oldProxy = null; boolean setProxyContext = false; @@ -754,6 +766,7 @@ public ProxyCallbackFilter(AdvisedSupport advised, Map fixedInt * DynamicUnadvisedInterceptor already considers this. * */ + @Override public int accept(Method method) { if (AopUtils.isFinalizeMethod(method)) { logger.debug("Found finalize() method - using NO_OVERRIDE"); diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/DefaultAdvisorChainFactory.java b/spring-aop/src/main/java/org/springframework/aop/framework/DefaultAdvisorChainFactory.java index 90eeef7b48c7..3eef11bd9ba6 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/DefaultAdvisorChainFactory.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/DefaultAdvisorChainFactory.java @@ -46,6 +46,7 @@ @SuppressWarnings("serial") public class DefaultAdvisorChainFactory implements AdvisorChainFactory, Serializable { + @Override public List getInterceptorsAndDynamicInterceptionAdvice( Advised config, Method method, Class targetClass) { diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/DefaultAopProxyFactory.java b/spring-aop/src/main/java/org/springframework/aop/framework/DefaultAopProxyFactory.java index 8b95e3303b37..5d3640677af3 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/DefaultAopProxyFactory.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/DefaultAopProxyFactory.java @@ -49,6 +49,7 @@ public class DefaultAopProxyFactory implements AopProxyFactory, Serializable { + @Override public AopProxy createAopProxy(AdvisedSupport config) throws AopConfigException { if (config.isOptimize() || config.isProxyTargetClass() || hasNoUserSuppliedProxyInterfaces(config)) { Class targetClass = config.getTargetClass(); diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/JdkDynamicAopProxy.java b/spring-aop/src/main/java/org/springframework/aop/framework/JdkDynamicAopProxy.java index 7e10c4c2283a..ad36cd8934cb 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/JdkDynamicAopProxy.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/JdkDynamicAopProxy.java @@ -106,10 +106,12 @@ public JdkDynamicAopProxy(AdvisedSupport config) throws AopConfigException { } + @Override public Object getProxy() { return getProxy(ClassUtils.getDefaultClassLoader()); } + @Override public Object getProxy(ClassLoader classLoader) { if (logger.isDebugEnabled()) { logger.debug("Creating JDK dynamic proxy: target source is " + this.advised.getTargetSource()); @@ -147,6 +149,7 @@ private void findDefinedEqualsAndHashCodeMethods(Class[] proxiedInterfaces) { *

Callers will see exactly the exception thrown by the target, * unless a hook method throws an exception. */ + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { MethodInvocation invocation; Object oldProxy = null; diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/ProxyFactoryBean.java b/spring-aop/src/main/java/org/springframework/aop/framework/ProxyFactoryBean.java index a369f56c8246..7e626783405f 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/ProxyFactoryBean.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/ProxyFactoryBean.java @@ -218,12 +218,14 @@ public void setProxyClassLoader(ClassLoader classLoader) { this.classLoaderConfigured = (classLoader != null); } + @Override public void setBeanClassLoader(ClassLoader classLoader) { if (!this.classLoaderConfigured) { this.proxyClassLoader = classLoader; } } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; checkInterceptorNames(); @@ -237,6 +239,7 @@ public void setBeanFactory(BeanFactory beanFactory) { * {@code getObject()} for a proxy. * @return a fresh AOP proxy reflecting the current state of this factory */ + @Override public Object getObject() throws BeansException { initializeAdvisorChain(); if (isSingleton()) { @@ -257,6 +260,7 @@ public Object getObject() throws BeansException { * a single one), the target bean type, or the TargetSource's target class. * @see org.springframework.aop.TargetSource#getTargetClass */ + @Override public Class getObjectType() { synchronized (this) { if (this.singletonInstance != null) { @@ -278,6 +282,7 @@ else if (this.targetName != null && this.beanFactory != null) { } } + @Override public boolean isSingleton() { return this.singleton; } @@ -638,10 +643,12 @@ public String getBeanName() { return beanName; } + @Override public Advice getAdvice() { throw new UnsupportedOperationException("Cannot invoke methods: " + this.message); } + @Override public boolean isPerInstance() { throw new UnsupportedOperationException("Cannot invoke methods: " + this.message); } diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/ReflectiveMethodInvocation.java b/spring-aop/src/main/java/org/springframework/aop/framework/ReflectiveMethodInvocation.java index c9ac099b484c..8556823d924f 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/ReflectiveMethodInvocation.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/ReflectiveMethodInvocation.java @@ -114,14 +114,17 @@ protected ReflectiveMethodInvocation( } + @Override public final Object getProxy() { return this.proxy; } + @Override public final Object getThis() { return this.target; } + @Override public final AccessibleObject getStaticPart() { return this.method; } @@ -131,19 +134,23 @@ public final AccessibleObject getStaticPart() { * May or may not correspond with a method invoked on an underlying * implementation of that interface. */ + @Override public final Method getMethod() { return this.method; } + @Override public final Object[] getArguments() { return (this.arguments != null ? this.arguments : new Object[0]); } + @Override public void setArguments(Object[] arguments) { this.arguments = arguments; } + @Override public Object proceed() throws Throwable { // We start with an index of -1 and increment early. if (this.currentInterceptorIndex == this.interceptorsAndDynamicMethodMatchers.size() - 1) { @@ -192,6 +199,7 @@ protected Object invokeJoinpoint() throws Throwable { * current interceptor index. * @see java.lang.Object#clone() */ + @Override public MethodInvocation invocableClone() { Object[] cloneArguments = null; if (this.arguments != null) { @@ -210,6 +218,7 @@ public MethodInvocation invocableClone() { * current interceptor index. * @see java.lang.Object#clone() */ + @Override public MethodInvocation invocableClone(Object[] arguments) { // Force initialization of the user attributes Map, // for having a shared Map reference in the clone. @@ -230,6 +239,7 @@ public MethodInvocation invocableClone(Object[] arguments) { } + @Override public void setUserAttribute(String key, Object value) { if (value != null) { if (this.userAttributes == null) { @@ -244,6 +254,7 @@ public void setUserAttribute(String key, Object value) { } } + @Override public Object getUserAttribute(String key) { return (this.userAttributes != null ? this.userAttributes.get(key) : null); } diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/AdvisorAdapterRegistrationManager.java b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/AdvisorAdapterRegistrationManager.java index 76b1d7c2d3e2..4ef00db86c07 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/AdvisorAdapterRegistrationManager.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/AdvisorAdapterRegistrationManager.java @@ -48,10 +48,12 @@ public void setAdvisorAdapterRegistry(AdvisorAdapterRegistry advisorAdapterRegis } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof AdvisorAdapter){ this.advisorAdapterRegistry.registerAdvisorAdapter((AdvisorAdapter) bean); diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/AfterReturningAdviceAdapter.java b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/AfterReturningAdviceAdapter.java index a921e6e50951..de562f4fbedb 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/AfterReturningAdviceAdapter.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/AfterReturningAdviceAdapter.java @@ -34,10 +34,12 @@ @SuppressWarnings("serial") class AfterReturningAdviceAdapter implements AdvisorAdapter, Serializable { + @Override public boolean supportsAdvice(Advice advice) { return (advice instanceof AfterReturningAdvice); } + @Override public MethodInterceptor getInterceptor(Advisor advisor) { AfterReturningAdvice advice = (AfterReturningAdvice) advisor.getAdvice(); return new AfterReturningAdviceInterceptor(advice); diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/AfterReturningAdviceInterceptor.java b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/AfterReturningAdviceInterceptor.java index 9f8f698faf50..5e0bd1d23d03 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/AfterReturningAdviceInterceptor.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/AfterReturningAdviceInterceptor.java @@ -47,6 +47,7 @@ public AfterReturningAdviceInterceptor(AfterReturningAdvice advice) { this.advice = advice; } + @Override public Object invoke(MethodInvocation mi) throws Throwable { Object retVal = mi.proceed(); this.advice.afterReturning(retVal, mi.getMethod(), mi.getArguments(), mi.getThis()); diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/DefaultAdvisorAdapterRegistry.java b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/DefaultAdvisorAdapterRegistry.java index 136f004586bc..0925b818afb1 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/DefaultAdvisorAdapterRegistry.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/DefaultAdvisorAdapterRegistry.java @@ -53,6 +53,7 @@ public DefaultAdvisorAdapterRegistry() { } + @Override public Advisor wrap(Object adviceObject) throws UnknownAdviceTypeException { if (adviceObject instanceof Advisor) { return (Advisor) adviceObject; @@ -74,6 +75,7 @@ public Advisor wrap(Object adviceObject) throws UnknownAdviceTypeException { throw new UnknownAdviceTypeException(advice); } + @Override public MethodInterceptor[] getInterceptors(Advisor advisor) throws UnknownAdviceTypeException { List interceptors = new ArrayList(3); Advice advice = advisor.getAdvice(); @@ -91,6 +93,7 @@ public MethodInterceptor[] getInterceptors(Advisor advisor) throws UnknownAdvice return interceptors.toArray(new MethodInterceptor[interceptors.size()]); } + @Override public void registerAdvisorAdapter(AdvisorAdapter adapter) { this.adapters.add(adapter); } diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/MethodBeforeAdviceAdapter.java b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/MethodBeforeAdviceAdapter.java index 6fc3cdef5ed5..57e0e16af7a2 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/MethodBeforeAdviceAdapter.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/MethodBeforeAdviceAdapter.java @@ -34,10 +34,12 @@ @SuppressWarnings("serial") class MethodBeforeAdviceAdapter implements AdvisorAdapter, Serializable { + @Override public boolean supportsAdvice(Advice advice) { return (advice instanceof MethodBeforeAdvice); } + @Override public MethodInterceptor getInterceptor(Advisor advisor) { MethodBeforeAdvice advice = (MethodBeforeAdvice) advisor.getAdvice(); return new MethodBeforeAdviceInterceptor(advice); diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/MethodBeforeAdviceInterceptor.java b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/MethodBeforeAdviceInterceptor.java index 83d7b8e851a4..8b3fd0ce20ef 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/MethodBeforeAdviceInterceptor.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/MethodBeforeAdviceInterceptor.java @@ -46,6 +46,7 @@ public MethodBeforeAdviceInterceptor(MethodBeforeAdvice advice) { this.advice = advice; } + @Override public Object invoke(MethodInvocation mi) throws Throwable { this.advice.before(mi.getMethod(), mi.getArguments(), mi.getThis() ); return mi.proceed(); diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/ThrowsAdviceAdapter.java b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/ThrowsAdviceAdapter.java index 687a6d5f8ba1..822b789b540d 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/ThrowsAdviceAdapter.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/ThrowsAdviceAdapter.java @@ -34,10 +34,12 @@ @SuppressWarnings("serial") class ThrowsAdviceAdapter implements AdvisorAdapter, Serializable { + @Override public boolean supportsAdvice(Advice advice) { return (advice instanceof ThrowsAdvice); } + @Override public MethodInterceptor getInterceptor(Advisor advisor) { return new ThrowsAdviceInterceptor(advisor.getAdvice()); } diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/ThrowsAdviceInterceptor.java b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/ThrowsAdviceInterceptor.java index 69b0bd1cc57d..de2767be2cb0 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/adapter/ThrowsAdviceInterceptor.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/adapter/ThrowsAdviceInterceptor.java @@ -119,6 +119,7 @@ private Method getExceptionHandler(Throwable exception) { return handler; } + @Override public Object invoke(MethodInvocation mi) throws Throwable { try { return mi.proceed(); diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/AbstractAutoProxyCreator.java b/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/AbstractAutoProxyCreator.java index d21944041d06..806b34b52696 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/AbstractAutoProxyCreator.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/AbstractAutoProxyCreator.java @@ -157,6 +157,7 @@ public final void setOrder(int order) { this.order = order; } + @Override public final int getOrder() { return this.order; } @@ -234,12 +235,14 @@ public void setProxyClassLoader(ClassLoader classLoader) { this.classLoaderConfigured = (classLoader != null); } + @Override public void setBeanClassLoader(ClassLoader classLoader) { if (!this.classLoaderConfigured) { this.proxyClassLoader = classLoader; } } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } @@ -253,21 +256,25 @@ protected BeanFactory getBeanFactory() { } + @Override public Class predictBeanType(Class beanClass, String beanName) { Object cacheKey = getCacheKey(beanClass, beanName); return this.proxyTypes.get(cacheKey); } + @Override public Constructor[] determineCandidateConstructors(Class beanClass, String beanName) throws BeansException { return null; } + @Override public Object getEarlyBeanReference(Object bean, String beanName) throws BeansException { Object cacheKey = getCacheKey(bean.getClass(), beanName); this.earlyProxyReferences.add(cacheKey); return wrapIfNecessary(bean, beanName, cacheKey); } + @Override public Object postProcessBeforeInstantiation(Class beanClass, String beanName) throws BeansException { Object cacheKey = getCacheKey(beanClass, beanName); @@ -298,16 +305,19 @@ public Object postProcessBeforeInstantiation(Class beanClass, String beanName return null; } + @Override public boolean postProcessAfterInstantiation(Object bean, String beanName) { return true; } + @Override public PropertyValues postProcessPropertyValues( PropertyValues pvs, PropertyDescriptor[] pds, Object bean, String beanName) { return pvs; } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) { return bean; } @@ -317,6 +327,7 @@ public Object postProcessBeforeInitialization(Object bean, String beanName) { * identified as one to proxy by the subclass. * @see #getAdvicesAndAdvisorsForBean */ + @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (bean != null) { Object cacheKey = getCacheKey(bean.getClass(), beanName); diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/DefaultAdvisorAutoProxyCreator.java b/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/DefaultAdvisorAutoProxyCreator.java index 953a751d3201..044c7bbc1168 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/DefaultAdvisorAutoProxyCreator.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/DefaultAdvisorAutoProxyCreator.java @@ -79,6 +79,7 @@ public String getAdvisorBeanNamePrefix() { return this.advisorBeanNamePrefix; } + @Override public void setBeanName(String name) { // If no infrastructure bean name prefix has been set, override it. if (this.advisorBeanNamePrefix == null) { diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/target/AbstractBeanFactoryBasedTargetSourceCreator.java b/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/target/AbstractBeanFactoryBasedTargetSourceCreator.java index c1ef00cbe28d..3735ba06e7ea 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/target/AbstractBeanFactoryBasedTargetSourceCreator.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/target/AbstractBeanFactoryBasedTargetSourceCreator.java @@ -66,6 +66,7 @@ public abstract class AbstractBeanFactoryBasedTargetSourceCreator new HashMap(); + @Override public final void setBeanFactory(BeanFactory beanFactory) { if (!(beanFactory instanceof ConfigurableBeanFactory)) { throw new IllegalStateException("Cannot do auto-TargetSource creation with a BeanFactory " + @@ -86,6 +87,7 @@ protected final BeanFactory getBeanFactory() { // Implementation of the TargetSourceCreator interface //--------------------------------------------------------------------- + @Override public final TargetSource getTargetSource(Class beanClass, String beanName) { AbstractBeanFactoryBasedTargetSource targetSource = createBeanFactoryBasedTargetSource(beanClass, beanName); @@ -159,6 +161,7 @@ protected DefaultListableBeanFactory buildInternalBeanFactory(ConfigurableBeanFa * Destroys the internal BeanFactory on shutdown of the TargetSourceCreator. * @see #getInternalBeanFactoryForBean */ + @Override public void destroy() { synchronized (this.internalBeanFactories) { for (DefaultListableBeanFactory bf : this.internalBeanFactories.values()) { diff --git a/spring-aop/src/main/java/org/springframework/aop/interceptor/AbstractTraceInterceptor.java b/spring-aop/src/main/java/org/springframework/aop/interceptor/AbstractTraceInterceptor.java index 7c29c775bce7..1ba6dca904d5 100644 --- a/spring-aop/src/main/java/org/springframework/aop/interceptor/AbstractTraceInterceptor.java +++ b/spring-aop/src/main/java/org/springframework/aop/interceptor/AbstractTraceInterceptor.java @@ -105,6 +105,7 @@ public void setHideProxyClassNames(boolean hideProxyClassNames) { * to the {@code invokeUnderTrace} method for handling. * @see #invokeUnderTrace(org.aopalliance.intercept.MethodInvocation, org.apache.commons.logging.Log) */ + @Override public Object invoke(MethodInvocation invocation) throws Throwable { Log logger = getLoggerForInvocation(invocation); if (isInterceptorEnabled(invocation, logger)) { diff --git a/spring-aop/src/main/java/org/springframework/aop/interceptor/AsyncExecutionAspectSupport.java b/spring-aop/src/main/java/org/springframework/aop/interceptor/AsyncExecutionAspectSupport.java index 7fbfbf560445..ae9cfa917943 100644 --- a/spring-aop/src/main/java/org/springframework/aop/interceptor/AsyncExecutionAspectSupport.java +++ b/spring-aop/src/main/java/org/springframework/aop/interceptor/AsyncExecutionAspectSupport.java @@ -80,6 +80,7 @@ public void setExecutor(Executor defaultExecutor) { /** * Set the {@link BeanFactory} to be used when looking up executors by qualifier. */ + @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { this.beanFactory = beanFactory; } diff --git a/spring-aop/src/main/java/org/springframework/aop/interceptor/AsyncExecutionInterceptor.java b/spring-aop/src/main/java/org/springframework/aop/interceptor/AsyncExecutionInterceptor.java index daa23a329364..08e38d650e4c 100644 --- a/spring-aop/src/main/java/org/springframework/aop/interceptor/AsyncExecutionInterceptor.java +++ b/spring-aop/src/main/java/org/springframework/aop/interceptor/AsyncExecutionInterceptor.java @@ -77,6 +77,7 @@ public AsyncExecutionInterceptor(Executor executor) { * @return {@link Future} if the original method returns {@code Future}; {@code null} * otherwise. */ + @Override public Object invoke(final MethodInvocation invocation) throws Throwable { Class targetClass = (invocation.getThis() != null ? AopUtils.getTargetClass(invocation.getThis()) : null); Method specificMethod = ClassUtils.getMostSpecificMethod(invocation.getMethod(), targetClass); @@ -84,6 +85,7 @@ public Object invoke(final MethodInvocation invocation) throws Throwable { Future result = determineAsyncExecutor(specificMethod).submit( new Callable() { + @Override public Object call() throws Exception { try { Object result = invocation.proceed(); @@ -119,6 +121,7 @@ protected String getExecutorQualifier(Method method) { return null; } + @Override public int getOrder() { return Ordered.HIGHEST_PRECEDENCE; } diff --git a/spring-aop/src/main/java/org/springframework/aop/interceptor/ConcurrencyThrottleInterceptor.java b/spring-aop/src/main/java/org/springframework/aop/interceptor/ConcurrencyThrottleInterceptor.java index 8f6f3ee479ae..ad57e4c6359d 100644 --- a/spring-aop/src/main/java/org/springframework/aop/interceptor/ConcurrencyThrottleInterceptor.java +++ b/spring-aop/src/main/java/org/springframework/aop/interceptor/ConcurrencyThrottleInterceptor.java @@ -47,6 +47,7 @@ public ConcurrencyThrottleInterceptor() { setConcurrencyLimit(1); } + @Override public Object invoke(MethodInvocation methodInvocation) throws Throwable { beforeAccess(); try { diff --git a/spring-aop/src/main/java/org/springframework/aop/interceptor/ExposeBeanNameAdvisors.java b/spring-aop/src/main/java/org/springframework/aop/interceptor/ExposeBeanNameAdvisors.java index a4ce58d5282c..78479765ca6c 100644 --- a/spring-aop/src/main/java/org/springframework/aop/interceptor/ExposeBeanNameAdvisors.java +++ b/spring-aop/src/main/java/org/springframework/aop/interceptor/ExposeBeanNameAdvisors.java @@ -109,6 +109,7 @@ public ExposeBeanNameInterceptor(String beanName) { this.beanName = beanName; } + @Override public Object invoke(MethodInvocation mi) throws Throwable { if (!(mi instanceof ProxyMethodInvocation)) { throw new IllegalStateException("MethodInvocation is not a Spring ProxyMethodInvocation: " + mi); @@ -142,6 +143,7 @@ public Object invoke(MethodInvocation mi) throws Throwable { return super.invoke(mi); } + @Override public String getBeanName() { return this.beanName; } diff --git a/spring-aop/src/main/java/org/springframework/aop/interceptor/ExposeInvocationInterceptor.java b/spring-aop/src/main/java/org/springframework/aop/interceptor/ExposeInvocationInterceptor.java index c5443e7dc31f..9f9d887e7a9f 100644 --- a/spring-aop/src/main/java/org/springframework/aop/interceptor/ExposeInvocationInterceptor.java +++ b/spring-aop/src/main/java/org/springframework/aop/interceptor/ExposeInvocationInterceptor.java @@ -84,6 +84,7 @@ public static MethodInvocation currentInvocation() throws IllegalStateException private ExposeInvocationInterceptor() { } + @Override public Object invoke(MethodInvocation mi) throws Throwable { MethodInvocation oldInvocation = invocation.get(); invocation.set(mi); @@ -95,6 +96,7 @@ public Object invoke(MethodInvocation mi) throws Throwable { } } + @Override public int getOrder() { return Ordered.HIGHEST_PRECEDENCE + 1; } diff --git a/spring-aop/src/main/java/org/springframework/aop/scope/DefaultScopedObject.java b/spring-aop/src/main/java/org/springframework/aop/scope/DefaultScopedObject.java index 95009495ba39..337c660022c6 100644 --- a/spring-aop/src/main/java/org/springframework/aop/scope/DefaultScopedObject.java +++ b/spring-aop/src/main/java/org/springframework/aop/scope/DefaultScopedObject.java @@ -55,10 +55,12 @@ public DefaultScopedObject(ConfigurableBeanFactory beanFactory, String targetBea } + @Override public Object getTargetObject() { return this.beanFactory.getBean(this.targetBeanName); } + @Override public void removeFromScope() { this.beanFactory.destroyScopedBean(this.targetBeanName); } diff --git a/spring-aop/src/main/java/org/springframework/aop/scope/ScopedProxyFactoryBean.java b/spring-aop/src/main/java/org/springframework/aop/scope/ScopedProxyFactoryBean.java index 34bc7b9b7409..a0c6fee7b67a 100644 --- a/spring-aop/src/main/java/org/springframework/aop/scope/ScopedProxyFactoryBean.java +++ b/spring-aop/src/main/java/org/springframework/aop/scope/ScopedProxyFactoryBean.java @@ -78,6 +78,7 @@ public void setTargetBeanName(String targetBeanName) { this.scopedTargetSource.setTargetBeanName(targetBeanName); } + @Override public void setBeanFactory(BeanFactory beanFactory) { if (!(beanFactory instanceof ConfigurableBeanFactory)) { throw new IllegalStateException("Not running in a ConfigurableBeanFactory: " + beanFactory); @@ -111,6 +112,7 @@ public void setBeanFactory(BeanFactory beanFactory) { } + @Override public Object getObject() { if (this.proxy == null) { throw new FactoryBeanNotInitializedException(); @@ -118,6 +120,7 @@ public Object getObject() { return this.proxy; } + @Override public Class getObjectType() { if (this.proxy != null) { return this.proxy.getClass(); @@ -128,6 +131,7 @@ public Class getObjectType() { return null; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/AbstractBeanFactoryPointcutAdvisor.java b/spring-aop/src/main/java/org/springframework/aop/support/AbstractBeanFactoryPointcutAdvisor.java index 3715a9ca7028..e46ee28c2659 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/AbstractBeanFactoryPointcutAdvisor.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/AbstractBeanFactoryPointcutAdvisor.java @@ -69,6 +69,7 @@ public String getAdviceBeanName() { return this.adviceBeanName; } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } @@ -79,6 +80,7 @@ public void setAdvice(Advice advice) { } } + @Override public Advice getAdvice() { synchronized (this.adviceMonitor) { if (this.advice == null && this.adviceBeanName != null) { diff --git a/spring-aop/src/main/java/org/springframework/aop/support/AbstractExpressionPointcut.java b/spring-aop/src/main/java/org/springframework/aop/support/AbstractExpressionPointcut.java index 74a62a7ba9b0..535b70a1e6c9 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/AbstractExpressionPointcut.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/AbstractExpressionPointcut.java @@ -83,6 +83,7 @@ protected void onSetExpression(String expression) throws IllegalArgumentExceptio /** * Return this pointcut's expression. */ + @Override public String getExpression() { return this.expression; } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/AbstractGenericPointcutAdvisor.java b/spring-aop/src/main/java/org/springframework/aop/support/AbstractGenericPointcutAdvisor.java index 53494a14ce51..f3a9137b15b9 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/AbstractGenericPointcutAdvisor.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/AbstractGenericPointcutAdvisor.java @@ -39,6 +39,7 @@ public void setAdvice(Advice advice) { this.advice = advice; } + @Override public Advice getAdvice() { return this.advice; } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/AbstractPointcutAdvisor.java b/spring-aop/src/main/java/org/springframework/aop/support/AbstractPointcutAdvisor.java index 8dc2fb0a3eaa..06f9b9dc64e4 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/AbstractPointcutAdvisor.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/AbstractPointcutAdvisor.java @@ -44,6 +44,7 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { if (this.order != null) { return this.order; @@ -55,6 +56,7 @@ public int getOrder() { return Ordered.LOWEST_PRECEDENCE; } + @Override public boolean isPerInstance() { return true; } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/AbstractRegexpMethodPointcut.java b/spring-aop/src/main/java/org/springframework/aop/support/AbstractRegexpMethodPointcut.java index b7527ca6af63..c5aa32ada513 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/AbstractRegexpMethodPointcut.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/AbstractRegexpMethodPointcut.java @@ -124,6 +124,7 @@ public String[] getExcludedPatterns() { * of the target class as well as against the method's declaring class, * plus the name of the method. */ + @Override public boolean matches(Method method, Class targetClass) { return ((targetClass != null && matchesPattern(targetClass.getName() + "." + method.getName())) || matchesPattern(method.getDeclaringClass().getName() + "." + method.getName())); diff --git a/spring-aop/src/main/java/org/springframework/aop/support/ClassFilters.java b/spring-aop/src/main/java/org/springframework/aop/support/ClassFilters.java index 1dea2cb113b0..bde74d3a275f 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/ClassFilters.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/ClassFilters.java @@ -96,6 +96,7 @@ public UnionClassFilter(ClassFilter[] filters) { this.filters = filters; } + @Override public boolean matches(Class clazz) { for (int i = 0; i < this.filters.length; i++) { if (this.filters[i].matches(clazz)) { @@ -130,6 +131,7 @@ public IntersectionClassFilter(ClassFilter[] filters) { this.filters = filters; } + @Override public boolean matches(Class clazz) { for (int i = 0; i < this.filters.length; i++) { if (!this.filters[i].matches(clazz)) { diff --git a/spring-aop/src/main/java/org/springframework/aop/support/ComposablePointcut.java b/spring-aop/src/main/java/org/springframework/aop/support/ComposablePointcut.java index b537a6ab8e55..4d2747c1489c 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/ComposablePointcut.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/ComposablePointcut.java @@ -170,10 +170,12 @@ public ComposablePointcut intersection(Pointcut other) { } + @Override public ClassFilter getClassFilter() { return this.classFilter; } + @Override public MethodMatcher getMethodMatcher() { return this.methodMatcher; } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/ControlFlowPointcut.java b/spring-aop/src/main/java/org/springframework/aop/support/ControlFlowPointcut.java index 4de481fcba0c..bc1e153bdfcd 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/ControlFlowPointcut.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/ControlFlowPointcut.java @@ -71,6 +71,7 @@ public ControlFlowPointcut(Class clazz, String methodName) { /** * Subclasses can override this for greater filtering (and performance). */ + @Override public boolean matches(Class clazz) { return true; } @@ -79,14 +80,17 @@ public boolean matches(Class clazz) { * Subclasses can override this if it's possible to filter out * some candidate classes. */ + @Override public boolean matches(Method method, Class targetClass) { return true; } + @Override public boolean isRuntime() { return true; } + @Override public boolean matches(Method method, Class targetClass, Object[] args) { ++this.evaluations; ControlFlow cflow = ControlFlowFactory.createControlFlow(); @@ -101,10 +105,12 @@ public int getEvaluations() { } + @Override public ClassFilter getClassFilter() { return this; } + @Override public MethodMatcher getMethodMatcher() { return this; } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/DefaultBeanFactoryPointcutAdvisor.java b/spring-aop/src/main/java/org/springframework/aop/support/DefaultBeanFactoryPointcutAdvisor.java index 92fb3c455252..bcfef02343de 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/DefaultBeanFactoryPointcutAdvisor.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/DefaultBeanFactoryPointcutAdvisor.java @@ -47,6 +47,7 @@ public void setPointcut(Pointcut pointcut) { this.pointcut = (pointcut != null ? pointcut : Pointcut.TRUE); } + @Override public Pointcut getPointcut() { return this.pointcut; } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/DefaultIntroductionAdvisor.java b/spring-aop/src/main/java/org/springframework/aop/support/DefaultIntroductionAdvisor.java index e1aad6a17018..11bdcf5207ce 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/DefaultIntroductionAdvisor.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/DefaultIntroductionAdvisor.java @@ -102,10 +102,12 @@ public void addInterface(Class intf) { this.interfaces.add(intf); } + @Override public Class[] getInterfaces() { return this.interfaces.toArray(new Class[this.interfaces.size()]); } + @Override public void validateInterfaces() throws IllegalArgumentException { for (Class ifc : this.interfaces) { if (this.advice instanceof DynamicIntroductionAdvice && @@ -121,23 +123,28 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } + @Override public Advice getAdvice() { return this.advice; } + @Override public boolean isPerInstance() { return true; } + @Override public ClassFilter getClassFilter() { return this; } + @Override public boolean matches(Class clazz) { return true; } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/DefaultPointcutAdvisor.java b/spring-aop/src/main/java/org/springframework/aop/support/DefaultPointcutAdvisor.java index f4b16915f946..7dabc1a006e7 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/DefaultPointcutAdvisor.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/DefaultPointcutAdvisor.java @@ -77,6 +77,7 @@ public void setPointcut(Pointcut pointcut) { this.pointcut = (pointcut != null ? pointcut : Pointcut.TRUE); } + @Override public Pointcut getPointcut() { return this.pointcut; } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/DelegatePerTargetObjectIntroductionInterceptor.java b/spring-aop/src/main/java/org/springframework/aop/support/DelegatePerTargetObjectIntroductionInterceptor.java index 5eeeea60d60c..a17e2734f58b 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/DelegatePerTargetObjectIntroductionInterceptor.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/DelegatePerTargetObjectIntroductionInterceptor.java @@ -83,6 +83,7 @@ public DelegatePerTargetObjectIntroductionInterceptor(Class defaultImplType, Cla * behaviour in around advice. However, subclasses should invoke this * method, which handles introduced interfaces and forwarding to the target. */ + @Override public Object invoke(MethodInvocation mi) throws Throwable { if (isMethodOnIntroducedInterface(mi)) { Object delegate = getIntroductionDelegateFor(mi.getThis()); diff --git a/spring-aop/src/main/java/org/springframework/aop/support/DelegatingIntroductionInterceptor.java b/spring-aop/src/main/java/org/springframework/aop/support/DelegatingIntroductionInterceptor.java index a695d98e4c02..ce8c4043df30 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/DelegatingIntroductionInterceptor.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/DelegatingIntroductionInterceptor.java @@ -99,6 +99,7 @@ private void init(Object delegate) { * behaviour in around advice. However, subclasses should invoke this * method, which handles introduced interfaces and forwarding to the target. */ + @Override public Object invoke(MethodInvocation mi) throws Throwable { if (isMethodOnIntroducedInterface(mi)) { // Using the following method rather than direct reflection, we diff --git a/spring-aop/src/main/java/org/springframework/aop/support/DynamicMethodMatcher.java b/spring-aop/src/main/java/org/springframework/aop/support/DynamicMethodMatcher.java index 9427a647debe..78b230d8f026 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/DynamicMethodMatcher.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/DynamicMethodMatcher.java @@ -26,6 +26,7 @@ */ public abstract class DynamicMethodMatcher implements MethodMatcher { + @Override public final boolean isRuntime() { return true; } @@ -34,6 +35,7 @@ public final boolean isRuntime() { * Can override to add preconditions for dynamic matching. This implementation * always returns true. */ + @Override public boolean matches(Method method, Class targetClass) { return true; } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/DynamicMethodMatcherPointcut.java b/spring-aop/src/main/java/org/springframework/aop/support/DynamicMethodMatcherPointcut.java index 35d765c2977f..df3963dc8530 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/DynamicMethodMatcherPointcut.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/DynamicMethodMatcherPointcut.java @@ -30,10 +30,12 @@ */ public abstract class DynamicMethodMatcherPointcut extends DynamicMethodMatcher implements Pointcut { + @Override public ClassFilter getClassFilter() { return ClassFilter.TRUE; } + @Override public final MethodMatcher getMethodMatcher() { return this; } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/IntroductionInfoSupport.java b/spring-aop/src/main/java/org/springframework/aop/support/IntroductionInfoSupport.java index c8807f763930..e10c0c9921b4 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/IntroductionInfoSupport.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/IntroductionInfoSupport.java @@ -59,6 +59,7 @@ public void suppressInterface(Class intf) { this.publishedInterfaces.remove(intf); } + @Override public Class[] getInterfaces() { return this.publishedInterfaces.toArray(new Class[this.publishedInterfaces.size()]); } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/MethodMatchers.java b/spring-aop/src/main/java/org/springframework/aop/support/MethodMatchers.java index be8b5bca7f83..160496c07474 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/MethodMatchers.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/MethodMatchers.java @@ -112,11 +112,13 @@ public UnionMethodMatcher(MethodMatcher mm1, MethodMatcher mm2) { this.mm2 = mm2; } + @Override public boolean matches(Method method, Class targetClass, boolean hasIntroductions) { return (matchesClass1(targetClass) && MethodMatchers.matches(this.mm1, method, targetClass, hasIntroductions)) || (matchesClass2(targetClass) && MethodMatchers.matches(this.mm2, method, targetClass, hasIntroductions)); } + @Override public boolean matches(Method method, Class targetClass) { return (matchesClass1(targetClass) && this.mm1.matches(method, targetClass)) || (matchesClass2(targetClass) && this.mm2.matches(method, targetClass)); @@ -130,10 +132,12 @@ protected boolean matchesClass2(Class targetClass) { return true; } + @Override public boolean isRuntime() { return this.mm1.isRuntime() || this.mm2.isRuntime(); } + @Override public boolean matches(Method method, Class targetClass, Object[] args) { return this.mm1.matches(method, targetClass, args) || this.mm2.matches(method, targetClass, args); } @@ -216,19 +220,23 @@ public IntersectionMethodMatcher(MethodMatcher mm1, MethodMatcher mm2) { this.mm2 = mm2; } + @Override public boolean matches(Method method, Class targetClass, boolean hasIntroductions) { return MethodMatchers.matches(this.mm1, method, targetClass, hasIntroductions) && MethodMatchers.matches(this.mm2, method, targetClass, hasIntroductions); } + @Override public boolean matches(Method method, Class targetClass) { return this.mm1.matches(method, targetClass) && this.mm2.matches(method, targetClass); } + @Override public boolean isRuntime() { return this.mm1.isRuntime() || this.mm2.isRuntime(); } + @Override public boolean matches(Method method, Class targetClass, Object[] args) { // Because a dynamic intersection may be composed of a static and dynamic part, // we must avoid calling the 3-arg matches method on a dynamic matcher, as diff --git a/spring-aop/src/main/java/org/springframework/aop/support/NameMatchMethodPointcut.java b/spring-aop/src/main/java/org/springframework/aop/support/NameMatchMethodPointcut.java index 69389d0bf57d..26ffedaf5a6e 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/NameMatchMethodPointcut.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/NameMatchMethodPointcut.java @@ -77,6 +77,7 @@ public NameMatchMethodPointcut addMethodName(String name) { } + @Override public boolean matches(Method method, Class targetClass) { for (String mappedName : this.mappedNames) { if (mappedName.equals(method.getName()) || isMatch(method.getName(), mappedName)) { diff --git a/spring-aop/src/main/java/org/springframework/aop/support/NameMatchMethodPointcutAdvisor.java b/spring-aop/src/main/java/org/springframework/aop/support/NameMatchMethodPointcutAdvisor.java index c2f85b58811e..375ecdeac7bd 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/NameMatchMethodPointcutAdvisor.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/NameMatchMethodPointcutAdvisor.java @@ -85,6 +85,7 @@ public NameMatchMethodPointcut addMethodName(String name) { } + @Override public Pointcut getPointcut() { return this.pointcut; } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/Pointcuts.java b/spring-aop/src/main/java/org/springframework/aop/support/Pointcuts.java index 2bfbcb1c323f..957f5d319ea9 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/Pointcuts.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/Pointcuts.java @@ -96,6 +96,7 @@ private static class SetterPointcut extends StaticMethodMatcherPointcut implemen public static SetterPointcut INSTANCE = new SetterPointcut(); + @Override public boolean matches(Method method, Class targetClass) { return method.getName().startsWith("set") && method.getParameterTypes().length == 1 && @@ -116,6 +117,7 @@ private static class GetterPointcut extends StaticMethodMatcherPointcut implemen public static GetterPointcut INSTANCE = new GetterPointcut(); + @Override public boolean matches(Method method, Class targetClass) { return method.getName().startsWith("get") && method.getParameterTypes().length == 0; diff --git a/spring-aop/src/main/java/org/springframework/aop/support/RegexpMethodPointcutAdvisor.java b/spring-aop/src/main/java/org/springframework/aop/support/RegexpMethodPointcutAdvisor.java index 1edb2d746b25..177fe9b277b9 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/RegexpMethodPointcutAdvisor.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/RegexpMethodPointcutAdvisor.java @@ -116,6 +116,7 @@ public void setPatterns(String[] patterns) { /** * Initialize the singleton Pointcut held within this Advisor. */ + @Override public Pointcut getPointcut() { synchronized (this.pointcutMonitor) { if (this.pointcut == null) { diff --git a/spring-aop/src/main/java/org/springframework/aop/support/RootClassFilter.java b/spring-aop/src/main/java/org/springframework/aop/support/RootClassFilter.java index 461252e6179d..c232b2826b22 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/RootClassFilter.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/RootClassFilter.java @@ -35,6 +35,7 @@ public RootClassFilter(Class clazz) { this.clazz = clazz; } + @Override public boolean matches(Class candidate) { return clazz.isAssignableFrom(candidate); } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/StaticMethodMatcher.java b/spring-aop/src/main/java/org/springframework/aop/support/StaticMethodMatcher.java index 6efebf1106b1..8bb1d74d7363 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/StaticMethodMatcher.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/StaticMethodMatcher.java @@ -26,10 +26,12 @@ */ public abstract class StaticMethodMatcher implements MethodMatcher { + @Override public final boolean isRuntime() { return false; } + @Override public final boolean matches(Method method, Class targetClass, Object[] args) { // should never be invoked because isRuntime() returns false throw new UnsupportedOperationException("Illegal MethodMatcher usage"); diff --git a/spring-aop/src/main/java/org/springframework/aop/support/StaticMethodMatcherPointcut.java b/spring-aop/src/main/java/org/springframework/aop/support/StaticMethodMatcherPointcut.java index 5d8e0c6576d0..1c2f1106cb5c 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/StaticMethodMatcherPointcut.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/StaticMethodMatcherPointcut.java @@ -43,11 +43,13 @@ public void setClassFilter(ClassFilter classFilter) { this.classFilter = classFilter; } + @Override public ClassFilter getClassFilter() { return this.classFilter; } + @Override public final MethodMatcher getMethodMatcher() { return this; } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/StaticMethodMatcherPointcutAdvisor.java b/spring-aop/src/main/java/org/springframework/aop/support/StaticMethodMatcherPointcutAdvisor.java index 5ff78837c566..9dbe10dbf4fe 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/StaticMethodMatcherPointcutAdvisor.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/StaticMethodMatcherPointcutAdvisor.java @@ -63,6 +63,7 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } @@ -71,14 +72,17 @@ public void setAdvice(Advice advice) { this.advice = advice; } + @Override public Advice getAdvice() { return this.advice; } + @Override public boolean isPerInstance() { return true; } + @Override public Pointcut getPointcut() { return this; } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/annotation/AnnotationClassFilter.java b/spring-aop/src/main/java/org/springframework/aop/support/annotation/AnnotationClassFilter.java index e12438c447fd..aacf645c3fcb 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/annotation/AnnotationClassFilter.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/annotation/AnnotationClassFilter.java @@ -59,6 +59,7 @@ public AnnotationClassFilter(Class annotationType, boolean } + @Override public boolean matches(Class clazz) { return (this.checkInherited ? (AnnotationUtils.findAnnotation(clazz, this.annotationType) != null) : diff --git a/spring-aop/src/main/java/org/springframework/aop/support/annotation/AnnotationMatchingPointcut.java b/spring-aop/src/main/java/org/springframework/aop/support/annotation/AnnotationMatchingPointcut.java index acdbbeff881b..46c6f69e3e8f 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/annotation/AnnotationMatchingPointcut.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/annotation/AnnotationMatchingPointcut.java @@ -90,10 +90,12 @@ public AnnotationMatchingPointcut( } + @Override public ClassFilter getClassFilter() { return this.classFilter; } + @Override public MethodMatcher getMethodMatcher() { return this.methodMatcher; } diff --git a/spring-aop/src/main/java/org/springframework/aop/support/annotation/AnnotationMethodMatcher.java b/spring-aop/src/main/java/org/springframework/aop/support/annotation/AnnotationMethodMatcher.java index 4f4dd6c391a3..9b557473ff94 100644 --- a/spring-aop/src/main/java/org/springframework/aop/support/annotation/AnnotationMethodMatcher.java +++ b/spring-aop/src/main/java/org/springframework/aop/support/annotation/AnnotationMethodMatcher.java @@ -47,6 +47,7 @@ public AnnotationMethodMatcher(Class annotationType) { } + @Override public boolean matches(Method method, Class targetClass) { if (method.isAnnotationPresent(this.annotationType)) { return true; diff --git a/spring-aop/src/main/java/org/springframework/aop/target/AbstractBeanFactoryBasedTargetSource.java b/spring-aop/src/main/java/org/springframework/aop/target/AbstractBeanFactoryBasedTargetSource.java index 3192fab5fe97..0928b54b894b 100644 --- a/spring-aop/src/main/java/org/springframework/aop/target/AbstractBeanFactoryBasedTargetSource.java +++ b/spring-aop/src/main/java/org/springframework/aop/target/AbstractBeanFactoryBasedTargetSource.java @@ -105,6 +105,7 @@ public void setTargetClass(Class targetClass) { * Set the owning BeanFactory. We need to save a reference so that we can * use the {@code getBean} method on every invocation. */ + @Override public void setBeanFactory(BeanFactory beanFactory) { if (this.targetBeanName == null) { throw new IllegalStateException("Property'targetBeanName' is required"); @@ -120,6 +121,7 @@ public BeanFactory getBeanFactory() { } + @Override public synchronized Class getTargetClass() { if (this.targetClass == null && this.beanFactory != null) { // Determine type of the target bean. @@ -137,10 +139,12 @@ public synchronized Class getTargetClass() { return this.targetClass; } + @Override public boolean isStatic() { return false; } + @Override public void releaseTarget(Object target) throws Exception { // Nothing to do here. } diff --git a/spring-aop/src/main/java/org/springframework/aop/target/AbstractLazyCreationTargetSource.java b/spring-aop/src/main/java/org/springframework/aop/target/AbstractLazyCreationTargetSource.java index 6fdd24ef92ea..97f3ae8732d1 100644 --- a/spring-aop/src/main/java/org/springframework/aop/target/AbstractLazyCreationTargetSource.java +++ b/spring-aop/src/main/java/org/springframework/aop/target/AbstractLazyCreationTargetSource.java @@ -64,10 +64,12 @@ public synchronized boolean isInitialized() { * a meaningful value when the target is still {@code null}. * @see #isInitialized() */ + @Override public synchronized Class getTargetClass() { return (this.lazyTarget != null ? this.lazyTarget.getClass() : null); } + @Override public boolean isStatic() { return false; } @@ -77,6 +79,7 @@ public boolean isStatic() { * creating it on-the-fly if it doesn't exist already. * @see #createObject() */ + @Override public synchronized Object getTarget() throws Exception { if (this.lazyTarget == null) { logger.debug("Initializing lazy target object"); @@ -85,6 +88,7 @@ public synchronized Object getTarget() throws Exception { return this.lazyTarget; } + @Override public void releaseTarget(Object target) throws Exception { // nothing to do } diff --git a/spring-aop/src/main/java/org/springframework/aop/target/AbstractPoolingTargetSource.java b/spring-aop/src/main/java/org/springframework/aop/target/AbstractPoolingTargetSource.java index 91e1b72ee7a7..c0bef77145a8 100644 --- a/spring-aop/src/main/java/org/springframework/aop/target/AbstractPoolingTargetSource.java +++ b/spring-aop/src/main/java/org/springframework/aop/target/AbstractPoolingTargetSource.java @@ -68,6 +68,7 @@ public void setMaxSize(int maxSize) { /** * Return the maximum size of the pool. */ + @Override public int getMaxSize() { return this.maxSize; } @@ -97,6 +98,7 @@ public final void setBeanFactory(BeanFactory beanFactory) throws BeansException * @throws Exception we may need to deal with checked exceptions from pool * APIs, so we're forgiving with our exception signature */ + @Override public abstract Object getTarget() throws Exception; /** diff --git a/spring-aop/src/main/java/org/springframework/aop/target/CommonsPoolTargetSource.java b/spring-aop/src/main/java/org/springframework/aop/target/CommonsPoolTargetSource.java index 47a35f756e89..08f16258a178 100644 --- a/spring-aop/src/main/java/org/springframework/aop/target/CommonsPoolTargetSource.java +++ b/spring-aop/src/main/java/org/springframework/aop/target/CommonsPoolTargetSource.java @@ -252,10 +252,12 @@ public void releaseTarget(Object target) throws Exception { this.pool.returnObject(target); } + @Override public int getActiveCount() throws UnsupportedOperationException { return this.pool.getNumActive(); } + @Override public int getIdleCount() throws UnsupportedOperationException { return this.pool.getNumIdle(); } @@ -264,6 +266,7 @@ public int getIdleCount() throws UnsupportedOperationException { /** * Closes the underlying {@code ObjectPool} when destroying this object. */ + @Override public void destroy() throws Exception { logger.debug("Closing Commons ObjectPool"); this.pool.close(); @@ -274,21 +277,26 @@ public void destroy() throws Exception { // Implementation of org.apache.commons.pool.PoolableObjectFactory interface //---------------------------------------------------------------------------- + @Override public Object makeObject() throws BeansException { return newPrototypeInstance(); } + @Override public void destroyObject(Object obj) throws Exception { destroyPrototypeInstance(obj); } + @Override public boolean validateObject(Object obj) { return true; } + @Override public void activateObject(Object obj) { } + @Override public void passivateObject(Object obj) { } diff --git a/spring-aop/src/main/java/org/springframework/aop/target/EmptyTargetSource.java b/spring-aop/src/main/java/org/springframework/aop/target/EmptyTargetSource.java index 193259ba8dbf..826917a56154 100644 --- a/spring-aop/src/main/java/org/springframework/aop/target/EmptyTargetSource.java +++ b/spring-aop/src/main/java/org/springframework/aop/target/EmptyTargetSource.java @@ -89,6 +89,7 @@ private EmptyTargetSource(Class targetClass, boolean isStatic) { /** * Always returns the specified target Class, or {@code null} if none. */ + @Override public Class getTargetClass() { return this.targetClass; } @@ -96,6 +97,7 @@ public Class getTargetClass() { /** * Always returns {@code true}. */ + @Override public boolean isStatic() { return this.isStatic; } @@ -103,6 +105,7 @@ public boolean isStatic() { /** * Always returns {@code null}. */ + @Override public Object getTarget() { return null; } @@ -110,6 +113,7 @@ public Object getTarget() { /** * Nothing to release. */ + @Override public void releaseTarget(Object target) { } diff --git a/spring-aop/src/main/java/org/springframework/aop/target/HotSwappableTargetSource.java b/spring-aop/src/main/java/org/springframework/aop/target/HotSwappableTargetSource.java index 50c877804289..9f7e5fc26399 100644 --- a/spring-aop/src/main/java/org/springframework/aop/target/HotSwappableTargetSource.java +++ b/spring-aop/src/main/java/org/springframework/aop/target/HotSwappableTargetSource.java @@ -59,18 +59,22 @@ public HotSwappableTargetSource(Object initialTarget) { * Return the type of the current target object. *

The returned type should usually be constant across all target objects. */ + @Override public synchronized Class getTargetClass() { return this.target.getClass(); } + @Override public final boolean isStatic() { return false; } + @Override public synchronized Object getTarget() { return this.target; } + @Override public void releaseTarget(Object target) { // nothing to do } diff --git a/spring-aop/src/main/java/org/springframework/aop/target/LazyInitTargetSource.java b/spring-aop/src/main/java/org/springframework/aop/target/LazyInitTargetSource.java index dcb6108e871c..bad59acf1b0d 100644 --- a/spring-aop/src/main/java/org/springframework/aop/target/LazyInitTargetSource.java +++ b/spring-aop/src/main/java/org/springframework/aop/target/LazyInitTargetSource.java @@ -62,6 +62,7 @@ public class LazyInitTargetSource extends AbstractBeanFactoryBasedTargetSource { private Object target; + @Override public synchronized Object getTarget() throws BeansException { if (this.target == null) { this.target = getBeanFactory().getBean(getTargetBeanName()); diff --git a/spring-aop/src/main/java/org/springframework/aop/target/PrototypeTargetSource.java b/spring-aop/src/main/java/org/springframework/aop/target/PrototypeTargetSource.java index 81642f6b2e4d..a404a9323493 100644 --- a/spring-aop/src/main/java/org/springframework/aop/target/PrototypeTargetSource.java +++ b/spring-aop/src/main/java/org/springframework/aop/target/PrototypeTargetSource.java @@ -37,6 +37,7 @@ public class PrototypeTargetSource extends AbstractPrototypeBasedTargetSource { * Obtain a new prototype instance for every call. * @see #newPrototypeInstance() */ + @Override public Object getTarget() throws BeansException { return newPrototypeInstance(); } diff --git a/spring-aop/src/main/java/org/springframework/aop/target/SimpleBeanTargetSource.java b/spring-aop/src/main/java/org/springframework/aop/target/SimpleBeanTargetSource.java index 14560404c478..805f1a0562d7 100644 --- a/spring-aop/src/main/java/org/springframework/aop/target/SimpleBeanTargetSource.java +++ b/spring-aop/src/main/java/org/springframework/aop/target/SimpleBeanTargetSource.java @@ -30,6 +30,7 @@ @SuppressWarnings("serial") public class SimpleBeanTargetSource extends AbstractBeanFactoryBasedTargetSource { + @Override public Object getTarget() throws Exception { return getBeanFactory().getBean(getTargetBeanName()); } diff --git a/spring-aop/src/main/java/org/springframework/aop/target/SingletonTargetSource.java b/spring-aop/src/main/java/org/springframework/aop/target/SingletonTargetSource.java index cd2dfb0c0c0b..439e59509a8e 100644 --- a/spring-aop/src/main/java/org/springframework/aop/target/SingletonTargetSource.java +++ b/spring-aop/src/main/java/org/springframework/aop/target/SingletonTargetSource.java @@ -55,18 +55,22 @@ public SingletonTargetSource(Object target) { } + @Override public Class getTargetClass() { return this.target.getClass(); } + @Override public Object getTarget() { return this.target; } + @Override public void releaseTarget(Object target) { // nothing to do } + @Override public boolean isStatic() { return true; } diff --git a/spring-aop/src/main/java/org/springframework/aop/target/ThreadLocalTargetSource.java b/spring-aop/src/main/java/org/springframework/aop/target/ThreadLocalTargetSource.java index 7b100fe0daa5..af22df411d0b 100644 --- a/spring-aop/src/main/java/org/springframework/aop/target/ThreadLocalTargetSource.java +++ b/spring-aop/src/main/java/org/springframework/aop/target/ThreadLocalTargetSource.java @@ -75,6 +75,7 @@ public class ThreadLocalTargetSource extends AbstractPrototypeBasedTargetSource * We look for a target held in a ThreadLocal. If we don't find one, * we create one and bind it to the thread. No synchronization is required. */ + @Override public Object getTarget() throws BeansException { ++this.invocationCount; Object target = this.targetInThread.get(); @@ -102,6 +103,7 @@ public Object getTarget() throws BeansException { * Dispose of targets if necessary; clear ThreadLocal. * @see #destroyPrototypeInstance */ + @Override public void destroy() { logger.debug("Destroying ThreadLocalTargetSource bindings"); synchronized (this.targetSet) { @@ -115,14 +117,17 @@ public void destroy() { } + @Override public int getInvocationCount() { return this.invocationCount; } + @Override public int getHitCount() { return this.hitCount; } + @Override public int getObjectCount() { synchronized (this.targetSet) { return this.targetSet.size(); diff --git a/spring-aop/src/main/java/org/springframework/aop/target/dynamic/AbstractRefreshableTargetSource.java b/spring-aop/src/main/java/org/springframework/aop/target/dynamic/AbstractRefreshableTargetSource.java index 7aba951ee57f..c96c21e19312 100644 --- a/spring-aop/src/main/java/org/springframework/aop/target/dynamic/AbstractRefreshableTargetSource.java +++ b/spring-aop/src/main/java/org/springframework/aop/target/dynamic/AbstractRefreshableTargetSource.java @@ -63,6 +63,7 @@ public void setRefreshCheckDelay(long refreshCheckDelay) { } + @Override public synchronized Class getTargetClass() { if (this.targetObject == null) { refresh(); @@ -73,10 +74,12 @@ public synchronized Class getTargetClass() { /** * Not static. */ + @Override public boolean isStatic() { return false; } + @Override public final synchronized Object getTarget() { if ((refreshCheckDelayElapsed() && requiresRefresh()) || this.targetObject == null) { refresh(); @@ -87,10 +90,12 @@ public final synchronized Object getTarget() { /** * No need to release target. */ + @Override public void releaseTarget(Object object) { } + @Override public final synchronized void refresh() { logger.debug("Attempting to refresh target"); @@ -101,10 +106,12 @@ public final synchronized void refresh() { logger.debug("Target refreshed successfully"); } + @Override public synchronized long getRefreshCount() { return this.refreshCount; } + @Override public synchronized long getLastRefreshTime() { return this.lastRefreshTime; } diff --git a/spring-aop/src/test/java/org/springframework/aop/framework/MethodInvocationTests.java b/spring-aop/src/test/java/org/springframework/aop/framework/MethodInvocationTests.java index 139ef6c415ed..4cf3c22239d5 100644 --- a/spring-aop/src/test/java/org/springframework/aop/framework/MethodInvocationTests.java +++ b/spring-aop/src/test/java/org/springframework/aop/framework/MethodInvocationTests.java @@ -60,6 +60,7 @@ public Object invoke(MethodInvocation invocation) throws Throwable { @Test public void testToStringDoesntHitTarget() throws Throwable { Object target = new TestBean() { + @Override public String toString() { throw new UnsupportedOperationException("toString"); } diff --git a/spring-aop/src/test/java/org/springframework/aop/support/DelegatingIntroductionInterceptorTests.java b/spring-aop/src/test/java/org/springframework/aop/support/DelegatingIntroductionInterceptorTests.java index cf959b324ca7..e6f96cf0f22a 100644 --- a/spring-aop/src/test/java/org/springframework/aop/support/DelegatingIntroductionInterceptorTests.java +++ b/spring-aop/src/test/java/org/springframework/aop/support/DelegatingIntroductionInterceptorTests.java @@ -184,6 +184,7 @@ public void testIntroductionInterceptorDoesntReplaceToString() throws Exception TimeStamped ts = new SerializableTimeStamped(0); factory.addAdvisor(0, new DefaultIntroductionAdvisor(new DelegatingIntroductionInterceptor(ts) { + @Override public String toString() { throw new UnsupportedOperationException("Shouldn't be invoked"); } diff --git a/spring-aop/src/test/java/org/springframework/tests/aop/advice/MethodCounter.java b/spring-aop/src/test/java/org/springframework/tests/aop/advice/MethodCounter.java index 931b0ec6681f..ce7ac5da4a24 100644 --- a/spring-aop/src/test/java/org/springframework/tests/aop/advice/MethodCounter.java +++ b/spring-aop/src/test/java/org/springframework/tests/aop/advice/MethodCounter.java @@ -59,10 +59,12 @@ public int getCalls() { * Doesn't worry about counts. * @see java.lang.Object#equals(java.lang.Object) */ + @Override public boolean equals(Object other) { return (other != null && other.getClass() == this.getClass()); } + @Override public int hashCode() { return getClass().hashCode(); } diff --git a/spring-aop/src/test/java/org/springframework/tests/aop/interceptor/NopInterceptor.java b/spring-aop/src/test/java/org/springframework/tests/aop/interceptor/NopInterceptor.java index d152719261c8..9d4cbf82a9c7 100644 --- a/spring-aop/src/test/java/org/springframework/tests/aop/interceptor/NopInterceptor.java +++ b/spring-aop/src/test/java/org/springframework/tests/aop/interceptor/NopInterceptor.java @@ -46,6 +46,7 @@ protected void increment() { ++count; } + @Override public boolean equals(Object other) { if (!(other instanceof NopInterceptor)) { return false; diff --git a/spring-aop/src/test/java/org/springframework/tests/sample/beans/SerializablePerson.java b/spring-aop/src/test/java/org/springframework/tests/sample/beans/SerializablePerson.java index 2730d50c8ec1..eb2dddef971d 100644 --- a/spring-aop/src/test/java/org/springframework/tests/sample/beans/SerializablePerson.java +++ b/spring-aop/src/test/java/org/springframework/tests/sample/beans/SerializablePerson.java @@ -59,6 +59,7 @@ public Object echo(Object o) throws Throwable { return o; } + @Override public boolean equals(Object other) { if (!(other instanceof SerializablePerson)) { return false; diff --git a/spring-aspects/src/test/java/org/springframework/beans/factory/aspectj/AbstractBeanConfigurerTests.java b/spring-aspects/src/test/java/org/springframework/beans/factory/aspectj/AbstractBeanConfigurerTests.java index 71a10afcaf1b..14ec00c01294 100644 --- a/spring-aspects/src/test/java/org/springframework/beans/factory/aspectj/AbstractBeanConfigurerTests.java +++ b/spring-aspects/src/test/java/org/springframework/beans/factory/aspectj/AbstractBeanConfigurerTests.java @@ -416,14 +416,17 @@ public CircularFactoryBean() { assertNull(autowired.getRamnivas()); } + @Override public Object getObject() throws Exception { return new TestBean(); } + @Override public Class getObjectType() { return TestBean.class; } + @Override public boolean isSingleton() { return false; } @@ -559,6 +562,7 @@ public static class PricingStrategy { public static class LineItem implements PricingStrategyClient { private PricingStrategy pricingStrategy; + @Override public void setPricingStrategy(PricingStrategy pricingStrategy) { this.pricingStrategy = pricingStrategy; } @@ -568,6 +572,7 @@ public void setPricingStrategy(PricingStrategy pricingStrategy) { public static class Order implements MailSenderClient, Serializable { private transient MailSender mailSender; + @Override public void setMailSender(MailSender mailSender) { this.mailSender = mailSender; } @@ -577,10 +582,12 @@ public static class ShoppingCart implements MailSenderClient, PaymentProcessorCl private transient MailSender mailSender; private transient PaymentProcessor paymentProcessor; + @Override public void setMailSender(MailSender mailSender) { this.mailSender = mailSender; } + @Override public void setPaymentProcessor(PaymentProcessor paymentProcessor) { this.paymentProcessor = paymentProcessor; } diff --git a/spring-aspects/src/test/java/org/springframework/cache/aspectj/AspectJAnnotationTests.java b/spring-aspects/src/test/java/org/springframework/cache/aspectj/AspectJAnnotationTests.java index c85d84d08337..9dece28ea673 100644 --- a/spring-aspects/src/test/java/org/springframework/cache/aspectj/AspectJAnnotationTests.java +++ b/spring-aspects/src/test/java/org/springframework/cache/aspectj/AspectJAnnotationTests.java @@ -46,6 +46,7 @@ public void testKeyStrategy() throws Exception { Assert.assertSame(ctx.getBean("keyGenerator"), aspect.getKeyGenerator()); } + @Override public void testMultiEvict(CacheableService service) { Object o1 = new Object(); diff --git a/spring-aspects/src/test/java/org/springframework/cache/config/AnnotatedClassCacheableService.java b/spring-aspects/src/test/java/org/springframework/cache/config/AnnotatedClassCacheableService.java index b81080517983..8c7d3a522b49 100644 --- a/spring-aspects/src/test/java/org/springframework/cache/config/AnnotatedClassCacheableService.java +++ b/spring-aspects/src/test/java/org/springframework/cache/config/AnnotatedClassCacheableService.java @@ -33,109 +33,132 @@ public class AnnotatedClassCacheableService implements CacheableService private final AtomicLong counter = new AtomicLong(); public static final AtomicLong nullInvocations = new AtomicLong(); + @Override public Object cache(Object arg1) { return counter.getAndIncrement(); } + @Override public Object conditional(int field) { return null; } + @Override public Object unless(int arg) { return arg; } + @Override @CacheEvict("default") public void invalidate(Object arg1) { } + @Override @CacheEvict("default") public void evictWithException(Object arg1) { throw new RuntimeException("exception thrown - evict should NOT occur"); } + @Override @CacheEvict(value = "default", allEntries = true) public void evictAll(Object arg1) { } + @Override @CacheEvict(value = "default", beforeInvocation = true) public void evictEarly(Object arg1) { throw new RuntimeException("exception thrown - evict should still occur"); } + @Override @CacheEvict(value = "default", key = "#p0") public void evict(Object arg1, Object arg2) { } + @Override @CacheEvict(value = "default", key = "#p0", beforeInvocation = true) public void invalidateEarly(Object arg1, Object arg2) { throw new RuntimeException("exception thrown - evict should still occur"); } + @Override @Cacheable(value = "default", key = "#p0") public Object key(Object arg1, Object arg2) { return counter.getAndIncrement(); } + @Override @Cacheable(value = "default", key = "#root.methodName + #root.caches[0].name") public Object name(Object arg1) { return counter.getAndIncrement(); } + @Override @Cacheable(value = "default", key = "#root.methodName + #root.method.name + #root.targetClass + #root.target") public Object rootVars(Object arg1) { return counter.getAndIncrement(); } + @Override @CachePut("default") public Object update(Object arg1) { return counter.getAndIncrement(); } + @Override @CachePut(value = "default", condition = "#arg.equals(3)") public Object conditionalUpdate(Object arg) { return arg; } + @Override public Object nullValue(Object arg1) { nullInvocations.incrementAndGet(); return null; } + @Override public Number nullInvocations() { return nullInvocations.get(); } + @Override public Long throwChecked(Object arg1) throws Exception { throw new UnsupportedOperationException(arg1.toString()); } + @Override public Long throwUnchecked(Object arg1) { throw new UnsupportedOperationException(); } // multi annotations + @Override @Caching(cacheable = { @Cacheable("primary"), @Cacheable("secondary") }) public Object multiCache(Object arg1) { return counter.getAndIncrement(); } + @Override @Caching(evict = { @CacheEvict("primary"), @CacheEvict(value = "secondary", key = "#p0") }) public Object multiEvict(Object arg1) { return counter.getAndIncrement(); } + @Override @Caching(cacheable = { @Cacheable(value = "primary", key = "#root.methodName") }, evict = { @CacheEvict("secondary") }) public Object multiCacheAndEvict(Object arg1) { return counter.getAndIncrement(); } + @Override @Caching(cacheable = { @Cacheable(value = "primary", condition = "#p0 == 3") }, evict = { @CacheEvict("secondary") }) public Object multiConditionalCacheAndEvict(Object arg1) { return counter.getAndIncrement(); } + @Override @Caching(put = { @CachePut("primary"), @CachePut("secondary") }) public Object multiUpdate(Object arg1) { return arg1; diff --git a/spring-aspects/src/test/java/org/springframework/transaction/aspectj/TransactionAspectTests.java b/spring-aspects/src/test/java/org/springframework/transaction/aspectj/TransactionAspectTests.java index b69e861933ac..166baebcca2b 100644 --- a/spring-aspects/src/test/java/org/springframework/transaction/aspectj/TransactionAspectTests.java +++ b/spring-aspects/src/test/java/org/springframework/transaction/aspectj/TransactionAspectTests.java @@ -125,6 +125,7 @@ public void testDefaultCommitOnAnnotatedClass() throws Throwable { final Exception ex = new Exception(); try { testRollback(new TransactionOperationCallback() { + @Override public Object performTransactionalOperation() throws Throwable { return annotationOnlyOnClassWithNoInterface.echo(ex); } @@ -140,6 +141,7 @@ public void testDefaultRollbackOnAnnotatedClass() throws Throwable { final RuntimeException ex = new RuntimeException(); try { testRollback(new TransactionOperationCallback() { + @Override public Object performTransactionalOperation() throws Throwable { return annotationOnlyOnClassWithNoInterface.echo(ex); } @@ -156,6 +158,7 @@ public void testDefaultCommitOnSubclassOfAnnotatedClass() throws Throwable { final Exception ex = new Exception(); try { testRollback(new TransactionOperationCallback() { + @Override public Object performTransactionalOperation() throws Throwable { return new SubclassOfClassWithTransactionalAnnotation().echo(ex); } @@ -171,6 +174,7 @@ public void testDefaultCommitOnSubclassOfClassWithTransactionalMethodAnnotated() final Exception ex = new Exception(); try { testRollback(new TransactionOperationCallback() { + @Override public Object performTransactionalOperation() throws Throwable { return new SubclassOfClassWithTransactionalMethodAnnotation().echo(ex); } @@ -191,6 +195,7 @@ public void testDefaultCommitOnImplementationOfAnnotatedInterface() throws Throw final Exception ex = new Exception(); testNotTransactional(new TransactionOperationCallback() { + @Override public Object performTransactionalOperation() throws Throwable { return new ImplementsAnnotatedInterface().echo(ex); } @@ -221,6 +226,7 @@ public void testDefaultRollbackOnImplementationOfAnnotatedInterface() throws Thr final Exception rollbackProvokingException = new RuntimeException(); testNotTransactional(new TransactionOperationCallback() { + @Override public Object performTransactionalOperation() throws Throwable { return new ImplementsAnnotatedInterface().echo(rollbackProvokingException); } @@ -275,6 +281,7 @@ public static class SubclassOfClassWithTransactionalMethodAnnotation extends Met public static class ImplementsAnnotatedInterface implements ITransactional { + @Override public Object echo(Throwable t) throws Throwable { if (t != null) { throw t; diff --git a/spring-beans/src/main/java/org/springframework/beans/AbstractPropertyAccessor.java b/spring-beans/src/main/java/org/springframework/beans/AbstractPropertyAccessor.java index 258313c90f30..8be616c7dd8b 100644 --- a/spring-beans/src/main/java/org/springframework/beans/AbstractPropertyAccessor.java +++ b/spring-beans/src/main/java/org/springframework/beans/AbstractPropertyAccessor.java @@ -36,31 +36,38 @@ public abstract class AbstractPropertyAccessor extends TypeConverterSupport impl private boolean extractOldValueForEditor = false; + @Override public void setExtractOldValueForEditor(boolean extractOldValueForEditor) { this.extractOldValueForEditor = extractOldValueForEditor; } + @Override public boolean isExtractOldValueForEditor() { return this.extractOldValueForEditor; } + @Override public void setPropertyValue(PropertyValue pv) throws BeansException { setPropertyValue(pv.getName(), pv.getValue()); } + @Override public void setPropertyValues(Map map) throws BeansException { setPropertyValues(new MutablePropertyValues(map)); } + @Override public void setPropertyValues(PropertyValues pvs) throws BeansException { setPropertyValues(pvs, false, false); } + @Override public void setPropertyValues(PropertyValues pvs, boolean ignoreUnknown) throws BeansException { setPropertyValues(pvs, ignoreUnknown, false); } + @Override public void setPropertyValues(PropertyValues pvs, boolean ignoreUnknown, boolean ignoreInvalid) throws BeansException { @@ -118,6 +125,7 @@ public Class getPropertyType(String propertyPath) { * @throws PropertyAccessException if the property was valid but the * accessor method failed */ + @Override public abstract Object getPropertyValue(String propertyName) throws BeansException; /** @@ -129,6 +137,7 @@ public Class getPropertyType(String propertyPath) { * @throws PropertyAccessException if the property was valid but the * accessor method failed or a type mismatch occured */ + @Override public abstract void setPropertyValue(String propertyName, Object value) throws BeansException; } diff --git a/spring-beans/src/main/java/org/springframework/beans/BeanMetadataAttribute.java b/spring-beans/src/main/java/org/springframework/beans/BeanMetadataAttribute.java index f806b9f6a5e2..366256452c35 100644 --- a/spring-beans/src/main/java/org/springframework/beans/BeanMetadataAttribute.java +++ b/spring-beans/src/main/java/org/springframework/beans/BeanMetadataAttribute.java @@ -69,6 +69,7 @@ public void setSource(Object source) { this.source = source; } + @Override public Object getSource() { return this.source; } diff --git a/spring-beans/src/main/java/org/springframework/beans/BeanMetadataAttributeAccessor.java b/spring-beans/src/main/java/org/springframework/beans/BeanMetadataAttributeAccessor.java index c683f50ab8a1..d08a8fa3413b 100644 --- a/spring-beans/src/main/java/org/springframework/beans/BeanMetadataAttributeAccessor.java +++ b/spring-beans/src/main/java/org/springframework/beans/BeanMetadataAttributeAccessor.java @@ -40,6 +40,7 @@ public void setSource(Object source) { this.source = source; } + @Override public Object getSource() { return this.source; } diff --git a/spring-beans/src/main/java/org/springframework/beans/BeanWrapperImpl.java b/spring-beans/src/main/java/org/springframework/beans/BeanWrapperImpl.java index df5def12a8d3..464323cbb920 100644 --- a/spring-beans/src/main/java/org/springframework/beans/BeanWrapperImpl.java +++ b/spring-beans/src/main/java/org/springframework/beans/BeanWrapperImpl.java @@ -219,10 +219,12 @@ public void setWrappedInstance(Object object, String nestedPath, Object rootObje setIntrospectionClass(object.getClass()); } + @Override public final Object getWrappedInstance() { return this.object; } + @Override public final Class getWrappedClass() { return (this.object != null ? this.object.getClass() : null); } @@ -257,6 +259,7 @@ public final Class getRootClass() { * enables auto-growth of collection elements when accessing an out-of-bounds index. *

Default is "false" on a plain BeanWrapper. */ + @Override public void setAutoGrowNestedPaths(boolean autoGrowNestedPaths) { this.autoGrowNestedPaths = autoGrowNestedPaths; } @@ -264,6 +267,7 @@ public void setAutoGrowNestedPaths(boolean autoGrowNestedPaths) { /** * Return whether "auto-growing" of nested paths has been activated. */ + @Override public boolean isAutoGrowNestedPaths() { return this.autoGrowNestedPaths; } @@ -272,6 +276,7 @@ public boolean isAutoGrowNestedPaths() { * Specify a limit for array and collection auto-growing. *

Default is unlimited on a plain BeanWrapper. */ + @Override public void setAutoGrowCollectionLimit(int autoGrowCollectionLimit) { this.autoGrowCollectionLimit = autoGrowCollectionLimit; } @@ -279,6 +284,7 @@ public void setAutoGrowCollectionLimit(int autoGrowCollectionLimit) { /** * Return the limit for array and collection auto-growing. */ + @Override public int getAutoGrowCollectionLimit() { return this.autoGrowCollectionLimit; } @@ -324,10 +330,12 @@ private CachedIntrospectionResults getCachedIntrospectionResults() { } + @Override public PropertyDescriptor[] getPropertyDescriptors() { return getCachedIntrospectionResults().getPropertyDescriptors(); } + @Override public PropertyDescriptor getPropertyDescriptor(String propertyName) throws BeansException { PropertyDescriptor pd = getPropertyDescriptorInternal(propertyName); if (pd == null) { @@ -378,6 +386,7 @@ public Class getPropertyType(String propertyName) throws BeansException { return null; } + @Override public TypeDescriptor getPropertyTypeDescriptor(String propertyName) throws BeansException { try { BeanWrapperImpl nestedBw = getBeanWrapperForPropertyPath(propertyName); @@ -402,6 +411,7 @@ public TypeDescriptor getPropertyTypeDescriptor(String propertyName) throws Bean return null; } + @Override public boolean isReadableProperty(String propertyName) { try { PropertyDescriptor pd = getPropertyDescriptorInternal(propertyName); @@ -422,6 +432,7 @@ public boolean isReadableProperty(String propertyName) { return false; } + @Override public boolean isWritableProperty(String propertyName) { try { PropertyDescriptor pd = getPropertyDescriptorInternal(propertyName); @@ -711,6 +722,7 @@ private Object getPropertyValue(PropertyTokenHolder tokens) throws BeansExceptio if (!Modifier.isPublic(readMethod.getDeclaringClass().getModifiers()) && !readMethod.isAccessible()) { if (System.getSecurityManager() != null) { AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { readMethod.setAccessible(true); return null; @@ -726,6 +738,7 @@ public Object run() { if (System.getSecurityManager() != null) { try { value = AccessController.doPrivileged(new PrivilegedExceptionAction() { + @Override public Object run() throws Exception { return readMethod.invoke(object, (Object[]) null); } @@ -1062,6 +1075,7 @@ else if (propValue instanceof Map) { !readMethod.isAccessible()) { if (System.getSecurityManager()!= null) { AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { readMethod.setAccessible(true); return null; @@ -1075,6 +1089,7 @@ public Object run() { try { if (System.getSecurityManager() != null) { oldValue = AccessController.doPrivileged(new PrivilegedExceptionAction() { + @Override public Object run() throws Exception { return readMethod.invoke(object); } @@ -1104,6 +1119,7 @@ public Object run() throws Exception { if (!Modifier.isPublic(writeMethod.getDeclaringClass().getModifiers()) && !writeMethod.isAccessible()) { if (System.getSecurityManager()!= null) { AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { writeMethod.setAccessible(true); return null; @@ -1118,6 +1134,7 @@ public Object run() { if (System.getSecurityManager() != null) { try { AccessController.doPrivileged(new PrivilegedExceptionAction() { + @Override public Object run() throws Exception { writeMethod.invoke(object, value); return null; diff --git a/spring-beans/src/main/java/org/springframework/beans/DirectFieldAccessor.java b/spring-beans/src/main/java/org/springframework/beans/DirectFieldAccessor.java index d7913aa90699..9e6c67703c36 100644 --- a/spring-beans/src/main/java/org/springframework/beans/DirectFieldAccessor.java +++ b/spring-beans/src/main/java/org/springframework/beans/DirectFieldAccessor.java @@ -59,6 +59,7 @@ public DirectFieldAccessor(final Object target) { Assert.notNull(target, "Target object must not be null"); this.target = target; ReflectionUtils.doWithFields(this.target.getClass(), new ReflectionUtils.FieldCallback() { + @Override public void doWith(Field field) { if (fieldMap.containsKey(field.getName())) { // ignore superclass declarations of fields already found in a subclass @@ -74,10 +75,12 @@ public void doWith(Field field) { } + @Override public boolean isReadableProperty(String propertyName) throws BeansException { return this.fieldMap.containsKey(propertyName); } + @Override public boolean isWritableProperty(String propertyName) throws BeansException { return this.fieldMap.containsKey(propertyName); } @@ -91,6 +94,7 @@ public Class getPropertyType(String propertyName) throws BeansException { return null; } + @Override public TypeDescriptor getPropertyTypeDescriptor(String propertyName) throws BeansException { Field field = this.fieldMap.get(propertyName); if (field != null) { diff --git a/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfo.java b/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfo.java index f89350cfe49f..8ad4876c1b6d 100644 --- a/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfo.java +++ b/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfo.java @@ -121,6 +121,7 @@ private List findCandidateWriteMethods(MethodDescriptor[] methodDescript // non-deterministic sorting of methods returned from Class#getDeclaredMethods // under JDK 7. See http://bugs.sun.com/view_bug.do?bug_id=7023180 Collections.sort(matches, new Comparator() { + @Override public int compare(Method m1, Method m2) { return m2.toString().compareTo(m1.toString()); } @@ -220,35 +221,43 @@ private String propertyNameFor(Method method) { * method found during construction. * @see #ExtendedBeanInfo(BeanInfo) */ + @Override public PropertyDescriptor[] getPropertyDescriptors() { return this.propertyDescriptors.toArray( new PropertyDescriptor[this.propertyDescriptors.size()]); } + @Override public BeanInfo[] getAdditionalBeanInfo() { return delegate.getAdditionalBeanInfo(); } + @Override public BeanDescriptor getBeanDescriptor() { return delegate.getBeanDescriptor(); } + @Override public int getDefaultEventIndex() { return delegate.getDefaultEventIndex(); } + @Override public int getDefaultPropertyIndex() { return delegate.getDefaultPropertyIndex(); } + @Override public EventSetDescriptor[] getEventSetDescriptors() { return delegate.getEventSetDescriptors(); } + @Override public Image getIcon(int iconKind) { return delegate.getIcon(iconKind); } + @Override public MethodDescriptor[] getMethodDescriptors() { return delegate.getMethodDescriptors(); } @@ -658,6 +667,7 @@ public static boolean compareMethods(Method a, Method b) { */ class PropertyDescriptorComparator implements Comparator { + @Override public int compare(PropertyDescriptor desc1, PropertyDescriptor desc2) { String left = desc1.getName(); String right = desc2.getName(); diff --git a/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfoFactory.java b/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfoFactory.java index 183ffe4e2a37..20444d2f3c35 100644 --- a/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfoFactory.java +++ b/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfoFactory.java @@ -40,6 +40,7 @@ public class ExtendedBeanInfoFactory implements Ordered, BeanInfoFactory { /** * Return a new {@link ExtendedBeanInfo} for the given bean class. */ + @Override public BeanInfo getBeanInfo(Class beanClass) throws IntrospectionException { return supports(beanClass) ? new ExtendedBeanInfo(Introspector.getBeanInfo(beanClass)) : null; @@ -58,6 +59,7 @@ private boolean supports(Class beanClass) { return false; } + @Override public int getOrder() { return Ordered.LOWEST_PRECEDENCE; } diff --git a/spring-beans/src/main/java/org/springframework/beans/MethodInvocationException.java b/spring-beans/src/main/java/org/springframework/beans/MethodInvocationException.java index e079bb0f56e1..e82daabbcb1a 100644 --- a/spring-beans/src/main/java/org/springframework/beans/MethodInvocationException.java +++ b/spring-beans/src/main/java/org/springframework/beans/MethodInvocationException.java @@ -42,6 +42,7 @@ public MethodInvocationException(PropertyChangeEvent propertyChangeEvent, Throwa super(propertyChangeEvent, "Property '" + propertyChangeEvent.getPropertyName() + "' threw exception", cause); } + @Override public String getErrorCode() { return ERROR_CODE; } diff --git a/spring-beans/src/main/java/org/springframework/beans/MutablePropertyValues.java b/spring-beans/src/main/java/org/springframework/beans/MutablePropertyValues.java index 390b3f8a12f4..56bf9bb374c1 100644 --- a/spring-beans/src/main/java/org/springframework/beans/MutablePropertyValues.java +++ b/spring-beans/src/main/java/org/springframework/beans/MutablePropertyValues.java @@ -244,10 +244,12 @@ public void removePropertyValue(String propertyName) { } + @Override public PropertyValue[] getPropertyValues() { return this.propertyValueList.toArray(new PropertyValue[this.propertyValueList.size()]); } + @Override public PropertyValue getPropertyValue(String propertyName) { for (PropertyValue pv : this.propertyValueList) { if (pv.getName().equals(propertyName)) { @@ -257,6 +259,7 @@ public PropertyValue getPropertyValue(String propertyName) { return null; } + @Override public PropertyValues changesSince(PropertyValues old) { MutablePropertyValues changes = new MutablePropertyValues(); if (old == this) { @@ -278,11 +281,13 @@ else if (!pvOld.equals(newPv)) { return changes; } + @Override public boolean contains(String propertyName) { return (getPropertyValue(propertyName) != null || (this.processedProperties != null && this.processedProperties.contains(propertyName))); } + @Override public boolean isEmpty() { return this.propertyValueList.isEmpty(); } diff --git a/spring-beans/src/main/java/org/springframework/beans/PropertyEditorRegistrySupport.java b/spring-beans/src/main/java/org/springframework/beans/PropertyEditorRegistrySupport.java index ce3b595737cf..1281e903288f 100644 --- a/spring-beans/src/main/java/org/springframework/beans/PropertyEditorRegistrySupport.java +++ b/spring-beans/src/main/java/org/springframework/beans/PropertyEditorRegistrySupport.java @@ -266,10 +266,12 @@ protected void copyDefaultEditorsTo(PropertyEditorRegistrySupport target) { // Management of custom editors //--------------------------------------------------------------------- + @Override public void registerCustomEditor(Class requiredType, PropertyEditor propertyEditor) { registerCustomEditor(requiredType, null, propertyEditor); } + @Override public void registerCustomEditor(Class requiredType, String propertyPath, PropertyEditor propertyEditor) { if (requiredType == null && propertyPath == null) { throw new IllegalArgumentException("Either requiredType or propertyPath is required"); @@ -289,6 +291,7 @@ public void registerCustomEditor(Class requiredType, String propertyPath, Pro } } + @Override public PropertyEditor findCustomEditor(Class requiredType, String propertyPath) { Class requiredTypeToUse = requiredType; if (propertyPath != null) { diff --git a/spring-beans/src/main/java/org/springframework/beans/TypeConverterSupport.java b/spring-beans/src/main/java/org/springframework/beans/TypeConverterSupport.java index 61fb062afe5f..ec1f5a2b4cf0 100644 --- a/spring-beans/src/main/java/org/springframework/beans/TypeConverterSupport.java +++ b/spring-beans/src/main/java/org/springframework/beans/TypeConverterSupport.java @@ -35,16 +35,19 @@ public abstract class TypeConverterSupport extends PropertyEditorRegistrySupport TypeConverterDelegate typeConverterDelegate; + @Override public T convertIfNecessary(Object value, Class requiredType) throws TypeMismatchException { return doConvert(value, requiredType, null, null); } + @Override public T convertIfNecessary(Object value, Class requiredType, MethodParameter methodParam) throws TypeMismatchException { return doConvert(value, requiredType, methodParam, null); } + @Override public T convertIfNecessary(Object value, Class requiredType, Field field) throws TypeMismatchException { diff --git a/spring-beans/src/main/java/org/springframework/beans/TypeMismatchException.java b/spring-beans/src/main/java/org/springframework/beans/TypeMismatchException.java index d1b7c48130c7..83883a31a153 100644 --- a/spring-beans/src/main/java/org/springframework/beans/TypeMismatchException.java +++ b/spring-beans/src/main/java/org/springframework/beans/TypeMismatchException.java @@ -107,6 +107,7 @@ public Class getRequiredType() { return this.requiredType; } + @Override public String getErrorCode() { return ERROR_CODE; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/access/SingletonBeanFactoryLocator.java b/spring-beans/src/main/java/org/springframework/beans/factory/access/SingletonBeanFactoryLocator.java index 1dc32578192c..c9536c772941 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/access/SingletonBeanFactoryLocator.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/access/SingletonBeanFactoryLocator.java @@ -349,6 +349,7 @@ protected SingletonBeanFactoryLocator(String resourceLocation) { this.resourceLocation = resourceLocation; } + @Override public BeanFactoryReference useBeanFactory(String factoryKey) throws BeansException { synchronized (this.bfgInstancesByKey) { BeanFactoryGroup bfg = this.bfgInstancesByKey.get(this.resourceLocation); @@ -500,11 +501,13 @@ public CountingBeanFactoryReference(BeanFactory beanFactory, BeanFactory groupCo this.groupContextRef = groupContext; } + @Override public BeanFactory getFactory() { return this.beanFactory; } // Note that it's legal to call release more than once! + @Override public void release() throws FatalBeanException { synchronized (bfgInstancesByKey) { BeanFactory savedRef = this.groupContextRef; diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AnnotatedGenericBeanDefinition.java b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AnnotatedGenericBeanDefinition.java index 53c1011b8ca4..a5afead31838 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AnnotatedGenericBeanDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AnnotatedGenericBeanDefinition.java @@ -75,6 +75,7 @@ public AnnotatedGenericBeanDefinition(AnnotationMetadata metadata) { } + @Override public final AnnotationMetadata getMetadata() { return this.metadata; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AnnotationBeanWiringInfoResolver.java b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AnnotationBeanWiringInfoResolver.java index 75a00b70cd4d..78fe8fe86af1 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AnnotationBeanWiringInfoResolver.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AnnotationBeanWiringInfoResolver.java @@ -36,6 +36,7 @@ */ public class AnnotationBeanWiringInfoResolver implements BeanWiringInfoResolver { + @Override public BeanWiringInfo resolveWiringInfo(Object beanInstance) { Assert.notNull(beanInstance, "Bean instance must not be null"); Configurable annotation = beanInstance.getClass().getAnnotation(Configurable.class); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.java b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.java index 6775dd78edcd..3ce408c99288 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.java @@ -199,10 +199,12 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } + @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { if (!(beanFactory instanceof ConfigurableListableBeanFactory)) { throw new IllegalArgumentException( @@ -212,6 +214,7 @@ public void setBeanFactory(BeanFactory beanFactory) throws BeansException { } + @Override public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, Class beanType, String beanName) { if (beanType != null) { InjectionMetadata metadata = findAutowiringMetadata(beanType); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/CustomAutowireConfigurer.java b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/CustomAutowireConfigurer.java index 51489330841d..2d6934de0ca5 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/CustomAutowireConfigurer.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/CustomAutowireConfigurer.java @@ -59,10 +59,12 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } @@ -82,6 +84,7 @@ public void setCustomQualifierTypes(Set customQualifierTypes) { } + @Override @SuppressWarnings("unchecked") public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { if (this.customQualifierTypes != null) { diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor.java b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor.java index 62f62dccd9e8..222a2ccd5146 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor.java @@ -112,11 +112,13 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } + @Override public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, Class beanType, String beanName) { if (beanType != null) { LifecycleMetadata metadata = findLifecycleMetadata(beanType); @@ -124,6 +126,7 @@ public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, C } } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { LifecycleMetadata metadata = findLifecycleMetadata(bean.getClass()); try { @@ -138,10 +141,12 @@ public Object postProcessBeforeInitialization(Object bean, String beanName) thro return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { return bean; } + @Override public void postProcessBeforeDestruction(Object bean, String beanName) throws BeansException { LifecycleMetadata metadata = findLifecycleMetadata(bean.getClass()); try { diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver.java b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver.java index 657ee22666b0..2a7f122f9d0f 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/QualifierAnnotationAutowireCandidateResolver.java @@ -126,6 +126,7 @@ public void setValueAnnotationType(Class valueAnnotationTy this.valueAnnotationType = valueAnnotationType; } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } @@ -143,6 +144,7 @@ public void setBeanFactory(BeanFactory beanFactory) { * attribute does not match. * @see Qualifier */ + @Override public boolean isAutowireCandidate(BeanDefinitionHolder bdHolder, DependencyDescriptor descriptor) { if (!bdHolder.getBeanDefinition().isAutowireCandidate()) { // if explicitly false, do not proceed with qualifier check @@ -293,6 +295,7 @@ protected boolean checkQualifier( * Determine whether the given dependency carries a value annotation. * @see Value */ + @Override public Object getSuggestedValue(DependencyDescriptor descriptor) { Object value = findValue(descriptor.getAnnotations()); if (value == null) { diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/RequiredAnnotationBeanPostProcessor.java b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/RequiredAnnotationBeanPostProcessor.java index 6876beda4861..3f8aeb6a42c4 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/RequiredAnnotationBeanPostProcessor.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/RequiredAnnotationBeanPostProcessor.java @@ -117,6 +117,7 @@ protected Class getRequiredAnnotationType() { return this.requiredAnnotationType; } + @Override public void setBeanFactory(BeanFactory beanFactory) { if (beanFactory instanceof ConfigurableListableBeanFactory) { this.beanFactory = (ConfigurableListableBeanFactory) beanFactory; @@ -127,11 +128,13 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } + @Override public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, Class beanType, String beanName) { } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/AbstractFactoryBean.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/AbstractFactoryBean.java index 5c1ad4b751b0..2dda2ca735af 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/AbstractFactoryBean.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/AbstractFactoryBean.java @@ -84,14 +84,17 @@ public void setSingleton(boolean singleton) { this.singleton = singleton; } + @Override public boolean isSingleton() { return this.singleton; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } @@ -124,6 +127,7 @@ protected TypeConverter getBeanTypeConverter() { /** * Eagerly create the singleton instance, if necessary. */ + @Override public void afterPropertiesSet() throws Exception { if (isSingleton()) { this.initialized = true; @@ -138,6 +142,7 @@ public void afterPropertiesSet() throws Exception { * @see #createInstance() * @see #getEarlySingletonInterfaces() */ + @Override public final T getObject() throws Exception { if (isSingleton()) { return (this.initialized ? this.singletonInstance : getEarlySingletonInstance()); @@ -181,6 +186,7 @@ private T getSingletonInstance() throws IllegalStateException { * Destroy the singleton instance, if any. * @see #destroyInstance(Object) */ + @Override public void destroy() throws Exception { if (isSingleton()) { destroyInstance(this.singletonInstance); @@ -193,6 +199,7 @@ public void destroy() throws Exception { * interface, for a consistent offering of abstract template methods. * @see org.springframework.beans.factory.FactoryBean#getObjectType() */ + @Override public abstract Class getObjectType(); /** @@ -241,6 +248,7 @@ protected void destroyInstance(T instance) throws Exception { */ private class EarlySingletonInvocationHandler implements InvocationHandler { + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (ReflectionUtils.isEqualsMethod(method)) { // Only consider equal when proxies are identical. diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/BeanDefinitionHolder.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/BeanDefinitionHolder.java index c9d442c3355a..0f8148f06074 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/BeanDefinitionHolder.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/BeanDefinitionHolder.java @@ -108,6 +108,7 @@ public String[] getAliases() { * Expose the bean definition's source object. * @see BeanDefinition#getSource() */ + @Override public Object getSource() { return this.beanDefinition.getSource(); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/BeanReferenceFactoryBean.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/BeanReferenceFactoryBean.java index bbe7ddf804d4..f637b891e1e3 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/BeanReferenceFactoryBean.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/BeanReferenceFactoryBean.java @@ -65,6 +65,7 @@ public void setTargetBeanName(String targetBeanName) { this.targetBeanName = targetBeanName; } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; if (this.targetBeanName == null) { @@ -76,6 +77,7 @@ public void setBeanFactory(BeanFactory beanFactory) { } + @Override public Object getObject() throws BeansException { if (this.beanFactory == null) { throw new FactoryBeanNotInitializedException(); @@ -83,6 +85,7 @@ public Object getObject() throws BeansException { return this.beanFactory.getBean(this.targetBeanName); } + @Override public Class getObjectType() { if (this.beanFactory == null) { return null; @@ -90,6 +93,7 @@ public Class getObjectType() { return this.beanFactory.getType(this.targetBeanName); } + @Override public boolean isSingleton() { if (this.beanFactory == null) { throw new FactoryBeanNotInitializedException(); @@ -97,6 +101,7 @@ public boolean isSingleton() { return this.beanFactory.isSingleton(this.targetBeanName); } + @Override public boolean isPrototype() { if (this.beanFactory == null) { throw new FactoryBeanNotInitializedException(); @@ -104,6 +109,7 @@ public boolean isPrototype() { return this.beanFactory.isPrototype(this.targetBeanName); } + @Override public boolean isEagerInit() { return false; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/CommonsLogFactoryBean.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/CommonsLogFactoryBean.java index d0e93c8b0c83..c49cb6db32a6 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/CommonsLogFactoryBean.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/CommonsLogFactoryBean.java @@ -53,20 +53,24 @@ public void setLogName(String logName) { } + @Override public void afterPropertiesSet() { if (this.log == null) { throw new IllegalArgumentException("'logName' is required"); } } + @Override public Log getObject() { return this.log; } + @Override public Class getObjectType() { return (this.log != null ? this.log.getClass() : Log.class); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/ConstructorArgumentValues.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/ConstructorArgumentValues.java index 1e59e7d134c7..795ef04a5c2c 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/ConstructorArgumentValues.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/ConstructorArgumentValues.java @@ -519,6 +519,7 @@ public void setSource(Object source) { this.source = source; } + @Override public Object getSource() { return this.source; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/CustomEditorConfigurer.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/CustomEditorConfigurer.java index 914046954c45..f11795d22efe 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/CustomEditorConfigurer.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/CustomEditorConfigurer.java @@ -109,6 +109,7 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } @@ -138,6 +139,7 @@ public void setCustomEditors(Map, Class> cust } + @Override @SuppressWarnings("unchecked") public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { if (this.propertyEditorRegistrars != null) { diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/CustomScopeConfigurer.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/CustomScopeConfigurer.java index 8d820ac04d1c..0d5a281925e1 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/CustomScopeConfigurer.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/CustomScopeConfigurer.java @@ -65,15 +65,18 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } + @Override @SuppressWarnings("unchecked") public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { if (this.scopes != null) { diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/DeprecatedBeanWarner.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/DeprecatedBeanWarner.java index 815173b6bea1..893e4c201610 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/DeprecatedBeanWarner.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/DeprecatedBeanWarner.java @@ -52,6 +52,7 @@ public void setLoggerName(String loggerName) { } + @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { if (isLogEnabled()) { String[] beanNames = beanFactory.getBeanDefinitionNames(); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/FieldRetrievingFactoryBean.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/FieldRetrievingFactoryBean.java index 31edfa914490..b5471cb4e171 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/FieldRetrievingFactoryBean.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/FieldRetrievingFactoryBean.java @@ -142,15 +142,18 @@ public void setStaticField(String staticField) { * nor "targetField" have been specified. * This allows for concise bean definitions with just an id/name. */ + @Override public void setBeanName(String beanName) { this.beanName = StringUtils.trimAllWhitespace(BeanFactoryUtils.originalBeanName(beanName)); } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public void afterPropertiesSet() throws ClassNotFoundException, NoSuchFieldException { if (this.targetClass != null && this.targetObject != null) { throw new IllegalArgumentException("Specify either targetClass or targetObject, not both"); @@ -191,6 +194,7 @@ else if (this.targetField == null) { } + @Override public Object getObject() throws IllegalAccessException { if (this.fieldObject == null) { throw new FactoryBeanNotInitializedException(); @@ -206,10 +210,12 @@ public Object getObject() throws IllegalAccessException { } } + @Override public Class getObjectType() { return (this.fieldObject != null ? this.fieldObject.getType() : null); } + @Override public boolean isSingleton() { return false; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/InstantiationAwareBeanPostProcessorAdapter.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/InstantiationAwareBeanPostProcessorAdapter.java index 7846d91bdd57..3e02846fcb5b 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/InstantiationAwareBeanPostProcessorAdapter.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/InstantiationAwareBeanPostProcessorAdapter.java @@ -39,26 +39,32 @@ */ public abstract class InstantiationAwareBeanPostProcessorAdapter implements SmartInstantiationAwareBeanPostProcessor { + @Override public Class predictBeanType(Class beanClass, String beanName) { return null; } + @Override public Constructor[] determineCandidateConstructors(Class beanClass, String beanName) throws BeansException { return null; } + @Override public Object getEarlyBeanReference(Object bean, String beanName) throws BeansException { return bean; } + @Override public Object postProcessBeforeInstantiation(Class beanClass, String beanName) throws BeansException { return null; } + @Override public boolean postProcessAfterInstantiation(Object bean, String beanName) throws BeansException { return true; } + @Override public PropertyValues postProcessPropertyValues( PropertyValues pvs, PropertyDescriptor[] pds, Object bean, String beanName) throws BeansException { @@ -66,10 +72,12 @@ public PropertyValues postProcessPropertyValues( return pvs; } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { return bean; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/MethodInvokingFactoryBean.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/MethodInvokingFactoryBean.java index 1615a8125f65..0e6ad68f07b1 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/MethodInvokingFactoryBean.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/MethodInvokingFactoryBean.java @@ -110,10 +110,12 @@ public void setSingleton(boolean singleton) { this.singleton = singleton; } + @Override public boolean isSingleton() { return this.singleton; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -123,6 +125,7 @@ protected Class resolveClassName(String className) throws ClassNotFoundException return ClassUtils.forName(className, this.beanClassLoader); } + @Override public void setBeanFactory(BeanFactory beanFactory) { if (beanFactory instanceof ConfigurableBeanFactory) { this.beanFactory = (ConfigurableBeanFactory) beanFactory; @@ -145,6 +148,7 @@ protected TypeConverter getDefaultTypeConverter() { } + @Override public void afterPropertiesSet() throws Exception { prepare(); if (this.singleton) { @@ -178,6 +182,7 @@ private Object doInvoke() throws Exception { * to "true", otherwise returns the value returned from invoking the * specified method on the fly. */ + @Override public Object getObject() throws Exception { if (this.singleton) { if (!this.initialized) { @@ -196,6 +201,7 @@ public Object getObject() throws Exception { * Return the type of object that this FactoryBean creates, * or {@code null} if not known in advance. */ + @Override public Class getObjectType() { if (!isPrepared()) { // Not fully initialized yet -> return null to indicate "not known yet". diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/ObjectFactoryCreatingFactoryBean.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/ObjectFactoryCreatingFactoryBean.java index 710eeddae68e..5c3ed7725759 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/ObjectFactoryCreatingFactoryBean.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/ObjectFactoryCreatingFactoryBean.java @@ -143,6 +143,7 @@ public TargetBeanObjectFactory(BeanFactory beanFactory, String targetBeanName) { this.targetBeanName = targetBeanName; } + @Override public Object getObject() throws BeansException { return this.beanFactory.getBean(this.targetBeanName); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/PlaceholderConfigurerSupport.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/PlaceholderConfigurerSupport.java index 2f6bd6865a11..55be5e0c94b0 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/PlaceholderConfigurerSupport.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/PlaceholderConfigurerSupport.java @@ -174,6 +174,7 @@ public void setIgnoreUnresolvablePlaceholders(boolean ignoreUnresolvablePlacehol * @see #setLocations * @see org.springframework.core.io.ResourceEditor */ + @Override public void setBeanName(String beanName) { this.beanName = beanName; } @@ -186,6 +187,7 @@ public void setBeanName(String beanName) { * @see #setLocations * @see org.springframework.core.io.ResourceEditor */ + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/PreferencesPlaceholderConfigurer.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/PreferencesPlaceholderConfigurer.java index c1fd6a8e6bfc..c8de04029b65 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/PreferencesPlaceholderConfigurer.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/PreferencesPlaceholderConfigurer.java @@ -74,6 +74,7 @@ public void setUserTreePath(String userTreePath) { * This implementation eagerly fetches the Preferences instances * for the required system and user tree nodes. */ + @Override public void afterPropertiesSet() { this.systemPrefs = (this.systemTreePath != null) ? Preferences.systemRoot().node(this.systemTreePath) : Preferences.systemRoot(); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/PropertiesFactoryBean.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/PropertiesFactoryBean.java index 87bc2591d2ca..93a97a8dcf20 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/PropertiesFactoryBean.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/PropertiesFactoryBean.java @@ -59,17 +59,20 @@ public final void setSingleton(boolean singleton) { this.singleton = singleton; } + @Override public final boolean isSingleton() { return this.singleton; } + @Override public final void afterPropertiesSet() throws IOException { if (this.singleton) { this.singletonInstance = createProperties(); } } + @Override public final Properties getObject() throws IOException { if (this.singleton) { return this.singletonInstance; @@ -79,6 +82,7 @@ public final Properties getObject() throws IOException { } } + @Override public Class getObjectType() { return Properties.class; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/PropertyPathFactoryBean.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/PropertyPathFactoryBean.java index b9b822e2e2ee..4b8703abf0b9 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/PropertyPathFactoryBean.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/PropertyPathFactoryBean.java @@ -147,11 +147,13 @@ public void setResultType(Class resultType) { * "targetBeanName" nor "propertyPath" have been specified. * This allows for concise bean definitions with just an id/name. */ + @Override public void setBeanName(String beanName) { this.beanName = StringUtils.trimAllWhitespace(BeanFactoryUtils.originalBeanName(beanName)); } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; @@ -190,6 +192,7 @@ else if (this.propertyPath == null) { } + @Override public Object getObject() throws BeansException { BeanWrapper target = this.targetBeanWrapper; if (target != null) { @@ -208,6 +211,7 @@ public Object getObject() throws BeansException { return target.getPropertyValue(this.propertyPath); } + @Override public Class getObjectType() { return this.resultType; } @@ -218,6 +222,7 @@ public Class getObjectType() { * for each call, so we have to assume that we're not returning the * same object for each {@link #getObject()} call. */ + @Override public boolean isSingleton() { return false; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/PropertyPlaceholderConfigurer.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/PropertyPlaceholderConfigurer.java index bf9474138f1f..c9d39f3bf5fc 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/PropertyPlaceholderConfigurer.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/PropertyPlaceholderConfigurer.java @@ -251,6 +251,7 @@ public PlaceholderResolvingStringValueResolver(Properties props) { this.resolver = new PropertyPlaceholderConfigurerResolver(props); } + @Override public String resolveStringValue(String strVal) throws BeansException { String value = this.helper.replacePlaceholders(strVal, this.resolver); return (value.equals(nullValue) ? null : value); @@ -266,6 +267,7 @@ private PropertyPlaceholderConfigurerResolver(Properties props) { this.props = props; } + @Override public String resolvePlaceholder(String placeholderName) { return PropertyPlaceholderConfigurer.this.resolvePlaceholder(placeholderName, props, systemPropertiesMode); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/PropertyResourceConfigurer.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/PropertyResourceConfigurer.java index b2ac31703335..a84bdc067a23 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/PropertyResourceConfigurer.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/PropertyResourceConfigurer.java @@ -63,6 +63,7 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } @@ -73,6 +74,7 @@ public int getOrder() { * {@linkplain #processProperties process} properties against the given bean factory. * @throws BeanInitializationException if any properties cannot be loaded */ + @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { try { Properties mergedProps = mergeProperties(); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/ProviderCreatingFactoryBean.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/ProviderCreatingFactoryBean.java index b64f38ffe2b0..c0d25370422e 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/ProviderCreatingFactoryBean.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/ProviderCreatingFactoryBean.java @@ -88,6 +88,7 @@ public TargetBeanProvider(BeanFactory beanFactory, String targetBeanName) { this.targetBeanName = targetBeanName; } + @Override public Object get() throws BeansException { return this.beanFactory.getBean(this.targetBeanName); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/RuntimeBeanNameReference.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/RuntimeBeanNameReference.java index b23c93e97fd3..e6f4a2f9d278 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/RuntimeBeanNameReference.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/RuntimeBeanNameReference.java @@ -44,6 +44,7 @@ public RuntimeBeanNameReference(String beanName) { this.beanName = beanName; } + @Override public String getBeanName() { return this.beanName; } @@ -56,6 +57,7 @@ public void setSource(Object source) { this.source = source; } + @Override public Object getSource() { return this.source; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/RuntimeBeanReference.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/RuntimeBeanReference.java index e9e5e60a7a5d..15904919920c 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/RuntimeBeanReference.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/RuntimeBeanReference.java @@ -61,6 +61,7 @@ public RuntimeBeanReference(String beanName, boolean toParent) { } + @Override public String getBeanName() { return this.beanName; } @@ -81,6 +82,7 @@ public void setSource(Object source) { this.source = source; } + @Override public Object getSource() { return this.source; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/ServiceLocatorFactoryBean.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/ServiceLocatorFactoryBean.java index e6b143a1ef07..7800a4d346a0 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/ServiceLocatorFactoryBean.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/ServiceLocatorFactoryBean.java @@ -245,6 +245,7 @@ public void setServiceMappings(Properties serviceMappings) { this.serviceMappings = serviceMappings; } + @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { if (!(beanFactory instanceof ListableBeanFactory)) { throw new FatalBeanException( @@ -253,6 +254,7 @@ public void setBeanFactory(BeanFactory beanFactory) throws BeansException { this.beanFactory = (ListableBeanFactory) beanFactory; } + @Override public void afterPropertiesSet() { if (this.serviceLocatorInterface == null) { throw new IllegalArgumentException("Property 'serviceLocatorInterface' is required"); @@ -322,14 +324,17 @@ else if (paramTypes[i].isInstance(cause)) { } + @Override public Object getObject() { return this.proxy; } + @Override public Class getObjectType() { return this.serviceLocatorInterface; } + @Override public boolean isSingleton() { return true; } @@ -340,6 +345,7 @@ public boolean isSingleton() { */ private class ServiceLocatorInvocationHandler implements InvocationHandler { + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (ReflectionUtils.isEqualsMethod(method)) { // Only consider equal when proxies are identical. diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/TypedStringValue.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/TypedStringValue.java index e4f27fec8b2e..a9ff4fdbfba9 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/TypedStringValue.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/TypedStringValue.java @@ -171,6 +171,7 @@ public void setSource(Object source) { this.source = source; } + @Override public Object getSource() { return this.source; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/AbstractComponentDefinition.java b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/AbstractComponentDefinition.java index 0b47dba2f84d..08d4aa43c12b 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/AbstractComponentDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/AbstractComponentDefinition.java @@ -35,6 +35,7 @@ public abstract class AbstractComponentDefinition implements ComponentDefinition /** * Delegates to {@link #getName}. */ + @Override public String getDescription() { return getName(); } @@ -42,6 +43,7 @@ public String getDescription() { /** * Returns an empty array. */ + @Override public BeanDefinition[] getBeanDefinitions() { return new BeanDefinition[0]; } @@ -49,6 +51,7 @@ public BeanDefinition[] getBeanDefinitions() { /** * Returns an empty array. */ + @Override public BeanDefinition[] getInnerBeanDefinitions() { return new BeanDefinition[0]; } @@ -56,6 +59,7 @@ public BeanDefinition[] getInnerBeanDefinitions() { /** * Returns an empty array. */ + @Override public BeanReference[] getBeanReferences() { return new BeanReference[0]; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/AliasDefinition.java b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/AliasDefinition.java index 828cdc8257ca..06d037c5d7f0 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/AliasDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/AliasDefinition.java @@ -73,6 +73,7 @@ public final String getAlias() { return this.alias; } + @Override public final Object getSource() { return this.source; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/BeanComponentDefinition.java b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/BeanComponentDefinition.java index d281d86cd440..2b88d827657d 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/BeanComponentDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/BeanComponentDefinition.java @@ -94,22 +94,27 @@ else if (value instanceof BeanReference) { } + @Override public String getName() { return getBeanName(); } + @Override public String getDescription() { return getShortDescription(); } + @Override public BeanDefinition[] getBeanDefinitions() { return new BeanDefinition[] {getBeanDefinition()}; } + @Override public BeanDefinition[] getInnerBeanDefinitions() { return this.innerBeanDefinitions; } + @Override public BeanReference[] getBeanReferences() { return this.beanReferences; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/CompositeComponentDefinition.java b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/CompositeComponentDefinition.java index 70e9ba209ce2..550ae761c226 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/CompositeComponentDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/CompositeComponentDefinition.java @@ -51,10 +51,12 @@ public CompositeComponentDefinition(String name, Object source) { } + @Override public String getName() { return this.name; } + @Override public Object getSource() { return this.source; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/EmptyReaderEventListener.java b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/EmptyReaderEventListener.java index 26cc3c0c4041..f27831a63fde 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/EmptyReaderEventListener.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/EmptyReaderEventListener.java @@ -25,18 +25,22 @@ */ public class EmptyReaderEventListener implements ReaderEventListener { + @Override public void defaultsRegistered(DefaultsDefinition defaultsDefinition) { // no-op } + @Override public void componentRegistered(ComponentDefinition componentDefinition) { // no-op } + @Override public void aliasRegistered(AliasDefinition aliasDefinition) { // no-op } + @Override public void importProcessed(ImportDefinition importDefinition) { // no-op } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/FailFastProblemReporter.java b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/FailFastProblemReporter.java index 76f3a2fd8a7d..859d611f1456 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/FailFastProblemReporter.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/FailFastProblemReporter.java @@ -55,6 +55,7 @@ public void setLogger(Log logger) { * that has occurred. * @param problem the source of the error */ + @Override public void fatal(Problem problem) { throw new BeanDefinitionParsingException(problem); } @@ -64,6 +65,7 @@ public void fatal(Problem problem) { * that has occurred. * @param problem the source of the error */ + @Override public void error(Problem problem) { throw new BeanDefinitionParsingException(problem); } @@ -72,6 +74,7 @@ public void error(Problem problem) { * Writes the supplied {@link Problem} to the {@link Log} at {@code WARN} level. * @param problem the source of the warning */ + @Override public void warning(Problem problem) { this.logger.warn(problem, problem.getRootCause()); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/ImportDefinition.java b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/ImportDefinition.java index ffc1cb2a1e19..85eea69610e8 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/ImportDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/ImportDefinition.java @@ -77,6 +77,7 @@ public final Resource[] getActualResources() { return this.actualResources; } + @Override public final Object getSource() { return this.source; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/NullSourceExtractor.java b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/NullSourceExtractor.java index 66dfae23d90a..3e3fa6252447 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/NullSourceExtractor.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/NullSourceExtractor.java @@ -33,6 +33,7 @@ public class NullSourceExtractor implements SourceExtractor { /** * This implementation simply returns {@code null} for any input. */ + @Override public Object extractSource(Object sourceCandidate, Resource definitionResource) { return null; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/PassThroughSourceExtractor.java b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/PassThroughSourceExtractor.java index 4611365c0778..a9f56dbfbb60 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/parsing/PassThroughSourceExtractor.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/parsing/PassThroughSourceExtractor.java @@ -39,6 +39,7 @@ public class PassThroughSourceExtractor implements SourceExtractor { * @param sourceCandidate the source metadata * @return the supplied {@code sourceCandidate} */ + @Override public Object extractSource(Object sourceCandidate, Resource definingResource) { return sourceCandidate; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java index b589b1a6c6b1..4e5e6da511da 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java @@ -280,6 +280,7 @@ public void copyConfigurationFrom(ConfigurableBeanFactory otherFactory) { // Typical methods for creating and populating external bean instances //------------------------------------------------------------------------- + @Override @SuppressWarnings("unchecked") public T createBean(Class beanClass) throws BeansException { // Use prototype bean definition, to avoid registering bean as dependent bean. @@ -289,6 +290,7 @@ public T createBean(Class beanClass) throws BeansException { return (T) createBean(beanClass.getName(), bd, null); } + @Override public void autowireBean(Object existingBean) { // Use non-singleton bean definition, to avoid registering bean as dependent bean. RootBeanDefinition bd = new RootBeanDefinition(ClassUtils.getUserClass(existingBean)); @@ -299,6 +301,7 @@ public void autowireBean(Object existingBean) { populateBean(bd.getBeanClass().getName(), bd, bw); } + @Override public Object configureBean(Object existingBean, String beanName) throws BeansException { markBeanAsCreated(beanName); BeanDefinition mbd = getMergedBeanDefinition(beanName); @@ -320,6 +323,7 @@ public Object configureBean(Object existingBean, String beanName) throws BeansEx return initializeBean(beanName, existingBean, bd); } + @Override public Object resolveDependency(DependencyDescriptor descriptor, String beanName) throws BeansException { return resolveDependency(descriptor, beanName, null, null); } @@ -329,6 +333,7 @@ public Object resolveDependency(DependencyDescriptor descriptor, String beanName // Specialized methods for fine-grained control over the bean lifecycle //------------------------------------------------------------------------- + @Override public Object createBean(Class beanClass, int autowireMode, boolean dependencyCheck) throws BeansException { // Use non-singleton bean definition, to avoid registering bean as dependent bean. RootBeanDefinition bd = new RootBeanDefinition(beanClass, autowireMode, dependencyCheck); @@ -336,6 +341,7 @@ public Object createBean(Class beanClass, int autowireMode, boolean dependencyCh return createBean(beanClass.getName(), bd, null); } + @Override public Object autowire(Class beanClass, int autowireMode, boolean dependencyCheck) throws BeansException { // Use non-singleton bean definition, to avoid registering bean as dependent bean. final RootBeanDefinition bd = new RootBeanDefinition(beanClass, autowireMode, dependencyCheck); @@ -350,6 +356,7 @@ public Object autowire(Class beanClass, int autowireMode, boolean dependencyChec if (System.getSecurityManager() != null) { bean = AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { return getInstantiationStrategy().instantiate(bd, null, parent); } @@ -364,6 +371,7 @@ public Object run() { } } + @Override public void autowireBeanProperties(Object existingBean, int autowireMode, boolean dependencyCheck) throws BeansException { @@ -379,6 +387,7 @@ public void autowireBeanProperties(Object existingBean, int autowireMode, boolea populateBean(bd.getBeanClass().getName(), bd, bw); } + @Override public void applyBeanPropertyValues(Object existingBean, String beanName) throws BeansException { markBeanAsCreated(beanName); BeanDefinition bd = getMergedBeanDefinition(beanName); @@ -387,10 +396,12 @@ public void applyBeanPropertyValues(Object existingBean, String beanName) throws applyPropertyValues(beanName, bd, bw, bd.getPropertyValues()); } + @Override public Object initializeBean(Object existingBean, String beanName) { return initializeBean(beanName, existingBean, null); } + @Override public Object applyBeanPostProcessorsBeforeInitialization(Object existingBean, String beanName) throws BeansException { @@ -404,6 +415,7 @@ public Object applyBeanPostProcessorsBeforeInitialization(Object existingBean, S return result; } + @Override public Object applyBeanPostProcessorsAfterInitialization(Object existingBean, String beanName) throws BeansException { @@ -417,6 +429,7 @@ public Object applyBeanPostProcessorsAfterInitialization(Object existingBean, St return result; } + @Override public void destroyBean(Object existingBean) { new DisposableBeanAdapter(existingBean, getBeanPostProcessors(), getAccessControlContext()).destroy(); } @@ -514,6 +527,7 @@ protected Object doCreateBean(final String beanName, final RootBeanDefinition mb "' to allow for resolving potential circular references"); } addSingletonFactory(beanName, new ObjectFactory() { + @Override public Object getObject() throws BeansException { return getEarlyBeanReference(beanName, mbd, bean); } @@ -701,6 +715,7 @@ class Holder { Class value = null; } // @Bean methods, there may be parameters present. ReflectionUtils.doWithMethods(fbClass, new ReflectionUtils.MethodCallback() { + @Override public void doWith(Method method) throws IllegalArgumentException, IllegalAccessException { if (method.getName().equals(factoryMethodName) && FactoryBean.class.isAssignableFrom(method.getReturnType())) { @@ -1001,6 +1016,7 @@ protected BeanWrapper instantiateBean(final String beanName, final RootBeanDefin final BeanFactory parent = this; if (System.getSecurityManager() != null) { beanInstance = AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { return getInstantiationStrategy().instantiate(mbd, beanName, parent); } @@ -1470,6 +1486,7 @@ private Object convertForProperty(Object value, String propertyName, BeanWrapper protected Object initializeBean(final String beanName, final Object bean, RootBeanDefinition mbd) { if (System.getSecurityManager() != null) { AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { invokeAwareMethods(beanName, bean); return null; @@ -1537,6 +1554,7 @@ protected void invokeInitMethods(String beanName, final Object bean, RootBeanDef if (System.getSecurityManager() != null) { try { AccessController.doPrivileged(new PrivilegedExceptionAction() { + @Override public Object run() throws Exception { ((InitializingBean) bean).afterPropertiesSet(); return null; @@ -1594,6 +1612,7 @@ protected void invokeCustomInitMethod(String beanName, final Object bean, RootBe if (System.getSecurityManager() != null) { AccessController.doPrivileged(new PrivilegedExceptionAction() { + @Override public Object run() throws Exception { ReflectionUtils.makeAccessible(initMethod); return null; @@ -1601,6 +1620,7 @@ public Object run() throws Exception { }); try { AccessController.doPrivileged(new PrivilegedExceptionAction() { + @Override public Object run() throws Exception { initMethod.invoke(bean); return null; diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanDefinition.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanDefinition.java index 021941271cee..2ed4d28570a6 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanDefinition.java @@ -360,10 +360,12 @@ public Class getBeanClass() throws IllegalStateException { return (Class) beanClassObject; } + @Override public void setBeanClassName(String beanClassName) { this.beanClass = beanClassName; } + @Override public String getBeanClassName() { Object beanClassObject = this.beanClass; if (beanClassObject instanceof Class) { @@ -403,6 +405,7 @@ public Class resolveBeanClass(ClassLoader classLoader) throws ClassNotFoundExcep * @see #SCOPE_SINGLETON * @see #SCOPE_PROTOTYPE */ + @Override public void setScope(String scope) { this.scope = scope; } @@ -410,6 +413,7 @@ public void setScope(String scope) { /** * Return the name of the target scope for the bean. */ + @Override public String getScope() { return this.scope; } @@ -419,6 +423,7 @@ public String getScope() { * returned from all calls. * @see #SCOPE_SINGLETON */ + @Override public boolean isSingleton() { return SCOPE_SINGLETON.equals(scope) || SCOPE_DEFAULT.equals(scope); } @@ -428,6 +433,7 @@ public boolean isSingleton() { * returned for each call. * @see #SCOPE_PROTOTYPE */ + @Override public boolean isPrototype() { return SCOPE_PROTOTYPE.equals(scope); } @@ -446,6 +452,7 @@ public void setAbstract(boolean abstractFlag) { * Return whether this bean is "abstract", i.e. not meant to be instantiated * itself but rather just serving as parent for concrete child bean definitions. */ + @Override public boolean isAbstract() { return this.abstractFlag; } @@ -455,6 +462,7 @@ public boolean isAbstract() { *

If {@code false}, the bean will get instantiated on startup by bean * factories that perform eager initialization of singletons. */ + @Override public void setLazyInit(boolean lazyInit) { this.lazyInit = lazyInit; } @@ -463,6 +471,7 @@ public void setLazyInit(boolean lazyInit) { * Return whether this bean should be lazily initialized, i.e. not * eagerly instantiated on startup. Only applicable to a singleton bean. */ + @Override public boolean isLazyInit() { return this.lazyInit; } @@ -543,6 +552,7 @@ public int getDependencyCheck() { * constructor arguments. This property should just be necessary for other kinds * of dependencies like statics (*ugh*) or database preparation on startup. */ + @Override public void setDependsOn(String[] dependsOn) { this.dependsOn = dependsOn; } @@ -550,6 +560,7 @@ public void setDependsOn(String[] dependsOn) { /** * Return the bean names that this bean depends on. */ + @Override public String[] getDependsOn() { return this.dependsOn; } @@ -557,6 +568,7 @@ public String[] getDependsOn() { /** * Set whether this bean is a candidate for getting autowired into some other bean. */ + @Override public void setAutowireCandidate(boolean autowireCandidate) { this.autowireCandidate = autowireCandidate; } @@ -564,6 +576,7 @@ public void setAutowireCandidate(boolean autowireCandidate) { /** * Return whether this bean is a candidate for getting autowired into some other bean. */ + @Override public boolean isAutowireCandidate() { return this.autowireCandidate; } @@ -573,6 +586,7 @@ public boolean isAutowireCandidate() { * If this value is true for exactly one bean among multiple * matching candidates, it will serve as a tie-breaker. */ + @Override public void setPrimary(boolean primary) { this.primary = primary; } @@ -582,6 +596,7 @@ public void setPrimary(boolean primary) { * If this value is true for exactly one bean among multiple * matching candidates, it will serve as a tie-breaker. */ + @Override public boolean isPrimary() { return this.primary; } @@ -676,6 +691,7 @@ public void setConstructorArgumentValues(ConstructorArgumentValues constructorAr /** * Return constructor argument values for this bean (never {@code null}). */ + @Override public ConstructorArgumentValues getConstructorArgumentValues() { return this.constructorArgumentValues; } @@ -697,6 +713,7 @@ public void setPropertyValues(MutablePropertyValues propertyValues) { /** * Return property values for this bean (never {@code null}). */ + @Override public MutablePropertyValues getPropertyValues() { return this.propertyValues; } @@ -718,18 +735,22 @@ public MethodOverrides getMethodOverrides() { } + @Override public void setFactoryBeanName(String factoryBeanName) { this.factoryBeanName = factoryBeanName; } + @Override public String getFactoryBeanName() { return this.factoryBeanName; } + @Override public void setFactoryMethodName(String factoryMethodName) { this.factoryMethodName = factoryMethodName; } + @Override public String getFactoryMethodName() { return this.factoryMethodName; } @@ -826,6 +847,7 @@ public void setRole(int role) { /** * Return the role hint for this {@code BeanDefinition}. */ + @Override public int getRole() { return this.role; } @@ -838,6 +860,7 @@ public void setDescription(String description) { this.description = description; } + @Override public String getDescription() { return this.description; } @@ -865,6 +888,7 @@ public void setResourceDescription(String resourceDescription) { this.resource = new DescriptiveResource(resourceDescription); } + @Override public String getResourceDescription() { return (this.resource != null ? this.resource.getDescription() : null); } @@ -876,6 +900,7 @@ public void setOriginatingBeanDefinition(BeanDefinition originatingBd) { this.resource = new BeanDefinitionResource(originatingBd); } + @Override public BeanDefinition getOriginatingBeanDefinition() { return (this.resource instanceof BeanDefinitionResource ? ((BeanDefinitionResource) this.resource).getBeanDefinition() : null); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanDefinitionReader.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanDefinitionReader.java index b07e211d163b..3f81a2a2b066 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanDefinitionReader.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanDefinitionReader.java @@ -102,6 +102,7 @@ public final BeanDefinitionRegistry getBeanFactory() { return this.registry; } + @Override public final BeanDefinitionRegistry getRegistry() { return this.registry; } @@ -121,6 +122,7 @@ public void setResourceLoader(ResourceLoader resourceLoader) { this.resourceLoader = resourceLoader; } + @Override public ResourceLoader getResourceLoader() { return this.resourceLoader; } @@ -136,6 +138,7 @@ public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } + @Override public ClassLoader getBeanClassLoader() { return this.beanClassLoader; } @@ -149,6 +152,7 @@ public void setEnvironment(Environment environment) { this.environment = environment; } + @Override public Environment getEnvironment() { return this.environment; } @@ -162,11 +166,13 @@ public void setBeanNameGenerator(BeanNameGenerator beanNameGenerator) { this.beanNameGenerator = (beanNameGenerator != null ? beanNameGenerator : new DefaultBeanNameGenerator()); } + @Override public BeanNameGenerator getBeanNameGenerator() { return this.beanNameGenerator; } + @Override public int loadBeanDefinitions(Resource... resources) throws BeanDefinitionStoreException { Assert.notNull(resources, "Resource array must not be null"); int counter = 0; @@ -176,6 +182,7 @@ public int loadBeanDefinitions(Resource... resources) throws BeanDefinitionStore return counter; } + @Override public int loadBeanDefinitions(String location) throws BeanDefinitionStoreException { return loadBeanDefinitions(location, null); } @@ -236,6 +243,7 @@ public int loadBeanDefinitions(String location, Set actualResources) t } } + @Override public int loadBeanDefinitions(String... locations) throws BeanDefinitionStoreException { Assert.notNull(locations, "Location array must not be null"); int counter = 0; diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java index 6e23d449a9a0..0c422557927a 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java @@ -190,14 +190,17 @@ public AbstractBeanFactory(BeanFactory parentBeanFactory) { // Implementation of BeanFactory interface //--------------------------------------------------------------------- + @Override public Object getBean(String name) throws BeansException { return doGetBean(name, null, null, false); } + @Override public T getBean(String name, Class requiredType) throws BeansException { return doGetBean(name, requiredType, null, false); } + @Override public Object getBean(String name, Object... args) throws BeansException { return doGetBean(name, null, args, false); } @@ -290,6 +293,7 @@ protected T doGetBean( // Create bean instance. if (mbd.isSingleton()) { sharedInstance = getSingleton(beanName, new ObjectFactory() { + @Override public Object getObject() throws BeansException { try { return createBean(beanName, mbd, args); @@ -327,6 +331,7 @@ else if (mbd.isPrototype()) { } try { Object scopedInstance = scope.get(beanName, new ObjectFactory() { + @Override public Object getObject() throws BeansException { beforePrototypeCreation(beanName); try { @@ -364,6 +369,7 @@ public Object getObject() throws BeansException { return (T) bean; } + @Override public boolean containsBean(String name) { String beanName = transformedBeanName(name); if (containsSingleton(beanName) || containsBeanDefinition(beanName)) { @@ -374,6 +380,7 @@ public boolean containsBean(String name) { return (parentBeanFactory != null && parentBeanFactory.containsBean(originalBeanName(name))); } + @Override public boolean isSingleton(String name) throws NoSuchBeanDefinitionException { String beanName = transformedBeanName(name); @@ -419,6 +426,7 @@ else if (containsSingleton(beanName)) { } } + @Override public boolean isPrototype(String name) throws NoSuchBeanDefinitionException { String beanName = transformedBeanName(name); @@ -443,6 +451,7 @@ public boolean isPrototype(String name) throws NoSuchBeanDefinitionException { final FactoryBean factoryBean = (FactoryBean) getBean(FACTORY_BEAN_PREFIX + beanName); if (System.getSecurityManager() != null) { return AccessController.doPrivileged(new PrivilegedAction() { + @Override public Boolean run() { return ((factoryBean instanceof SmartFactoryBean && ((SmartFactoryBean) factoryBean).isPrototype()) || !factoryBean.isSingleton()); @@ -460,6 +469,7 @@ public Boolean run() { } } + @Override public boolean isTypeMatch(String name, Class targetType) throws NoSuchBeanDefinitionException { String beanName = transformedBeanName(name); Class typeToMatch = (targetType != null ? targetType : Object.class); @@ -534,6 +544,7 @@ else if (containsSingleton(beanName) && !containsBeanDefinition(beanName)) { } } + @Override public Class getType(String name) throws NoSuchBeanDefinitionException { String beanName = transformedBeanName(name); @@ -624,10 +635,12 @@ public String[] getAliases(String name) { // Implementation of HierarchicalBeanFactory interface //--------------------------------------------------------------------- + @Override public BeanFactory getParentBeanFactory() { return this.parentBeanFactory; } + @Override public boolean containsLocalBean(String name) { String beanName = transformedBeanName(name); return ((containsSingleton(beanName) || containsBeanDefinition(beanName)) && @@ -639,6 +652,7 @@ public boolean containsLocalBean(String name) { // Implementation of ConfigurableBeanFactory interface //--------------------------------------------------------------------- + @Override public void setParentBeanFactory(BeanFactory parentBeanFactory) { if (this.parentBeanFactory != null && this.parentBeanFactory != parentBeanFactory) { throw new IllegalStateException("Already associated with parent BeanFactory: " + this.parentBeanFactory); @@ -646,46 +660,57 @@ public void setParentBeanFactory(BeanFactory parentBeanFactory) { this.parentBeanFactory = parentBeanFactory; } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = (beanClassLoader != null ? beanClassLoader : ClassUtils.getDefaultClassLoader()); } + @Override public ClassLoader getBeanClassLoader() { return this.beanClassLoader; } + @Override public void setTempClassLoader(ClassLoader tempClassLoader) { this.tempClassLoader = tempClassLoader; } + @Override public ClassLoader getTempClassLoader() { return this.tempClassLoader; } + @Override public void setCacheBeanMetadata(boolean cacheBeanMetadata) { this.cacheBeanMetadata = cacheBeanMetadata; } + @Override public boolean isCacheBeanMetadata() { return this.cacheBeanMetadata; } + @Override public void setBeanExpressionResolver(BeanExpressionResolver resolver) { this.beanExpressionResolver = resolver; } + @Override public BeanExpressionResolver getBeanExpressionResolver() { return this.beanExpressionResolver; } + @Override public void setConversionService(ConversionService conversionService) { this.conversionService = conversionService; } + @Override public ConversionService getConversionService() { return this.conversionService; } + @Override public void addPropertyEditorRegistrar(PropertyEditorRegistrar registrar) { Assert.notNull(registrar, "PropertyEditorRegistrar must not be null"); this.propertyEditorRegistrars.add(registrar); @@ -698,12 +723,14 @@ public Set getPropertyEditorRegistrars() { return this.propertyEditorRegistrars; } + @Override public void registerCustomEditor(Class requiredType, Class propertyEditorClass) { Assert.notNull(requiredType, "Required type must not be null"); Assert.isAssignable(PropertyEditor.class, propertyEditorClass); this.customEditors.put(requiredType, propertyEditorClass); } + @Override public void copyRegisteredEditorsTo(PropertyEditorRegistry registry) { registerCustomEditors(registry); } @@ -715,6 +742,7 @@ public Map, Class> getCustomEditors() { return this.customEditors; } + @Override public void setTypeConverter(TypeConverter typeConverter) { this.typeConverter = typeConverter; } @@ -727,6 +755,7 @@ protected TypeConverter getCustomTypeConverter() { return this.typeConverter; } + @Override public TypeConverter getTypeConverter() { TypeConverter customConverter = getCustomTypeConverter(); if (customConverter != null) { @@ -741,11 +770,13 @@ public TypeConverter getTypeConverter() { } } + @Override public void addEmbeddedValueResolver(StringValueResolver valueResolver) { Assert.notNull(valueResolver, "StringValueResolver must not be null"); this.embeddedValueResolvers.add(valueResolver); } + @Override public String resolveEmbeddedValue(String value) { String result = value; for (StringValueResolver resolver : this.embeddedValueResolvers) { @@ -757,6 +788,7 @@ public String resolveEmbeddedValue(String value) { return result; } + @Override public void addBeanPostProcessor(BeanPostProcessor beanPostProcessor) { Assert.notNull(beanPostProcessor, "BeanPostProcessor must not be null"); this.beanPostProcessors.remove(beanPostProcessor); @@ -769,6 +801,7 @@ public void addBeanPostProcessor(BeanPostProcessor beanPostProcessor) { } } + @Override public int getBeanPostProcessorCount() { return this.beanPostProcessors.size(); } @@ -801,6 +834,7 @@ protected boolean hasDestructionAwareBeanPostProcessors() { return this.hasDestructionAwareBeanPostProcessors; } + @Override public void registerScope(String scopeName, Scope scope) { Assert.notNull(scopeName, "Scope identifier must not be null"); Assert.notNull(scope, "Scope must not be null"); @@ -810,10 +844,12 @@ public void registerScope(String scopeName, Scope scope) { this.scopes.put(scopeName, scope); } + @Override public String[] getRegisteredScopeNames() { return StringUtils.toStringArray(this.scopes.keySet()); } + @Override public Scope getRegisteredScope(String scopeName) { Assert.notNull(scopeName, "Scope identifier must not be null"); return this.scopes.get(scopeName); @@ -839,6 +875,7 @@ public AccessControlContext getAccessControlContext() { AccessController.getContext()); } + @Override public void copyConfigurationFrom(ConfigurableBeanFactory otherFactory) { Assert.notNull(otherFactory, "BeanFactory must not be null"); setBeanClassLoader(otherFactory.getBeanClassLoader()); @@ -872,6 +909,7 @@ public void copyConfigurationFrom(ConfigurableBeanFactory otherFactory) { * @throws NoSuchBeanDefinitionException if there is no bean with the given name * @throws BeanDefinitionStoreException in case of an invalid bean definition */ + @Override public BeanDefinition getMergedBeanDefinition(String name) throws BeansException { String beanName = transformedBeanName(name); @@ -883,6 +921,7 @@ public BeanDefinition getMergedBeanDefinition(String name) throws BeansException return getMergedLocalBeanDefinition(beanName); } + @Override public boolean isFactoryBean(String name) throws NoSuchBeanDefinitionException { String beanName = transformedBeanName(name); @@ -965,6 +1004,7 @@ else if (curVal instanceof Set) { } } + @Override public void destroyBean(String beanName, Object beanInstance) { destroyBean(beanName, beanInstance, getMergedLocalBeanDefinition(beanName)); } @@ -980,6 +1020,7 @@ protected void destroyBean(String beanName, Object beanInstance, RootBeanDefinit new DisposableBeanAdapter(beanInstance, beanName, mbd, getBeanPostProcessors(), getAccessControlContext()).destroy(); } + @Override public void destroyScopedBean(String beanName) { RootBeanDefinition mbd = getMergedLocalBeanDefinition(beanName); if (mbd.isSingleton() || mbd.isPrototype()) { @@ -1252,6 +1293,7 @@ protected Class resolveBeanClass(final RootBeanDefinition mbd, String beanNam } if (System.getSecurityManager() != null) { return AccessController.doPrivileged(new PrivilegedExceptionAction>() { + @Override public Class run() throws Exception { return doResolveBeanClass(mbd, typesToMatch); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/AutowireUtils.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/AutowireUtils.java index f8ffd5798b52..140e11569cc2 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/AutowireUtils.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/AutowireUtils.java @@ -51,6 +51,7 @@ abstract class AutowireUtils { */ public static void sortConstructors(Constructor[] constructors) { Arrays.sort(constructors, new Comparator() { + @Override public int compare(Constructor c1, Constructor c2) { boolean p1 = Modifier.isPublic(c1.getModifiers()); boolean p2 = Modifier.isPublic(c2.getModifiers()); @@ -73,6 +74,7 @@ public int compare(Constructor c1, Constructor c2) { */ public static void sortFactoryMethods(Method[] factoryMethods) { Arrays.sort(factoryMethods, new Comparator() { + @Override public int compare(Method fm1, Method fm2) { boolean p1 = Modifier.isPublic(fm1.getModifiers()); boolean p2 = Modifier.isPublic(fm2.getModifiers()); @@ -162,6 +164,7 @@ public ObjectFactoryDelegatingInvocationHandler(ObjectFactory objectFactory) { this.objectFactory = objectFactory; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String methodName = method.getName(); if (methodName.equals("equals")) { diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/BeanDefinitionResource.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/BeanDefinitionResource.java index 330b699096bf..7de75a1be606 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/BeanDefinitionResource.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/BeanDefinitionResource.java @@ -64,11 +64,13 @@ public boolean isReadable() { return false; } + @Override public InputStream getInputStream() throws IOException { throw new FileNotFoundException( "Resource cannot be opened because it points to " + getDescription()); } + @Override public String getDescription() { return "BeanDefinition defined in " + this.beanDefinition.getResourceDescription(); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/CglibSubclassingInstantiationStrategy.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/CglibSubclassingInstantiationStrategy.java index dc601c3bd4be..8c802f09d2b9 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/CglibSubclassingInstantiationStrategy.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/CglibSubclassingInstantiationStrategy.java @@ -153,6 +153,7 @@ public int hashCode() { */ private class LookupOverrideMethodInterceptor extends CglibIdentitySupport implements MethodInterceptor { + @Override public Object intercept(Object obj, Method method, Object[] args, MethodProxy mp) throws Throwable { // Cast is safe, as CallbackFilter filters are used selectively. LookupOverride lo = (LookupOverride) beanDefinition.getMethodOverrides().getOverride(method); @@ -167,6 +168,7 @@ public Object intercept(Object obj, Method method, Object[] args, MethodProxy mp */ private class ReplaceOverrideMethodInterceptor extends CglibIdentitySupport implements MethodInterceptor { + @Override public Object intercept(Object obj, Method method, Object[] args, MethodProxy mp) throws Throwable { ReplaceOverride ro = (ReplaceOverride) beanDefinition.getMethodOverrides().getOverride(method); // TODO could cache if a singleton for minor performance optimization @@ -181,6 +183,7 @@ public Object intercept(Object obj, Method method, Object[] args, MethodProxy mp */ private class CallbackFilterImpl extends CglibIdentitySupport implements CallbackFilter { + @Override public int accept(Method method) { MethodOverride methodOverride = beanDefinition.getMethodOverrides().getOverride(method); if (logger.isTraceEnabled()) { diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/ChildBeanDefinition.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/ChildBeanDefinition.java index b03ca67dcd5b..cbc43acfbe13 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/ChildBeanDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/ChildBeanDefinition.java @@ -132,10 +132,12 @@ public ChildBeanDefinition(ChildBeanDefinition original) { } + @Override public void setParentName(String parentName) { this.parentName = parentName; } + @Override public String getParentName() { return this.parentName; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java index 384866ffdd78..6bc665b03e2f 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java @@ -270,6 +270,7 @@ else if (ambiguousConstructors != null && !mbd.isLenientConstructorResolution()) final Constructor ctorToUse = constructorToUse; final Object[] argumentsToUse = argsToUse; beanInstance = AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { return beanFactory.getInstantiationStrategy().instantiate( mbd, beanName, beanFactory, ctorToUse, argumentsToUse); @@ -402,6 +403,7 @@ public BeanWrapper instantiateUsingFactoryMethod(final String beanName, final Ro final Class factoryClazz = factoryClass; if (System.getSecurityManager() != null) { rawCandidates = AccessController.doPrivileged(new PrivilegedAction() { + @Override public Method[] run() { return (mbd.isNonPublicAccessAllowed() ? ReflectionUtils.getAllDeclaredMethods(factoryClazz) : factoryClazz.getMethods()); @@ -560,6 +562,7 @@ else if (ambiguousFactoryMethods != null && !mbd.isLenientConstructorResolution( final Method factoryMethod = factoryMethodToUse; final Object[] args = argsToUse; beanInstance = AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { return beanFactory.getInstantiationStrategy().instantiate( mbd, beanName, beanFactory, fb, factoryMethod, args); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultBeanNameGenerator.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultBeanNameGenerator.java index d2ed06dd66b0..ebd7a7022d49 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultBeanNameGenerator.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultBeanNameGenerator.java @@ -27,6 +27,7 @@ */ public class DefaultBeanNameGenerator implements BeanNameGenerator { + @Override public String generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry) { return BeanDefinitionReaderUtils.generateBeanName(definition, registry); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java index e88e04f46903..840e4b816fc7 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java @@ -217,6 +217,7 @@ public void setAutowireCandidateResolver(final AutowireCandidateResolver autowir if (System.getSecurityManager() != null) { final BeanFactory target = this; AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { ((BeanFactoryAware) autowireCandidateResolver).setBeanFactory(target); return null; @@ -255,6 +256,7 @@ public void copyConfigurationFrom(ConfigurableBeanFactory otherFactory) { // Implementation of ListableBeanFactory interface //--------------------------------------------------------------------- + @Override public T getBean(Class requiredType) throws BeansException { Assert.notNull(requiredType, "Required type must not be null"); String[] beanNames = getBeanNamesForType(requiredType); @@ -303,10 +305,12 @@ public boolean containsBeanDefinition(String beanName) { return this.beanDefinitionMap.containsKey(beanName); } + @Override public int getBeanDefinitionCount() { return this.beanDefinitionMap.size(); } + @Override public String[] getBeanDefinitionNames() { synchronized (this.beanDefinitionMap) { if (this.frozenBeanDefinitionNames != null) { @@ -318,10 +322,12 @@ public String[] getBeanDefinitionNames() { } } + @Override public String[] getBeanNamesForType(Class type) { return getBeanNamesForType(type, true, true); } + @Override public String[] getBeanNamesForType(Class type, boolean includeNonSingletons, boolean allowEagerInit) { if (!isConfigurationFrozen() || type == null || !allowEagerInit) { return doGetBeanNamesForType(type, includeNonSingletons, allowEagerInit); @@ -425,10 +431,12 @@ private boolean requiresEagerInitForType(String factoryBeanName) { return (factoryBeanName != null && isFactoryBean(factoryBeanName) && !containsSingleton(factoryBeanName)); } + @Override public Map getBeansOfType(Class type) throws BeansException { return getBeansOfType(type, true, true); } + @Override public Map getBeansOfType(Class type, boolean includeNonSingletons, boolean allowEagerInit) throws BeansException { @@ -459,6 +467,7 @@ public Map getBeansOfType(Class type, boolean includeNonSingle return result; } + @Override public Map getBeansWithAnnotation(Class annotationType) { Set beanNames = new LinkedHashSet(getBeanDefinitionCount()); beanNames.addAll(Arrays.asList(getBeanDefinitionNames())); @@ -478,6 +487,7 @@ public Map getBeansWithAnnotation(Class an * found on the given class itself, as well as checking its raw bean class * if not found on the exposed bean reference (e.g. in case of a proxy). */ + @Override public A findAnnotationOnBean(String beanName, Class annotationType) { A ann = null; Class beanType = getType(beanName); @@ -501,6 +511,7 @@ public A findAnnotationOnBean(String beanName, Class a // Implementation of ConfigurableListableBeanFactory interface //--------------------------------------------------------------------- + @Override public void registerResolvableDependency(Class dependencyType, Object autowiredValue) { Assert.notNull(dependencyType, "Type must not be null"); if (autowiredValue != null) { @@ -510,6 +521,7 @@ public void registerResolvableDependency(Class dependencyType, Object autowir } } + @Override public boolean isAutowireCandidate(String beanName, DependencyDescriptor descriptor) throws NoSuchBeanDefinitionException { @@ -570,6 +582,7 @@ public BeanDefinition getBeanDefinition(String beanName) throws NoSuchBeanDefini return bd; } + @Override public void freezeConfiguration() { this.configurationFrozen = true; synchronized (this.beanDefinitionMap) { @@ -577,6 +590,7 @@ public void freezeConfiguration() { } } + @Override public boolean isConfigurationFrozen() { return this.configurationFrozen; } @@ -591,6 +605,7 @@ protected boolean isBeanEligibleForMetadataCaching(String beanName) { return (this.configurationFrozen || super.isBeanEligibleForMetadataCaching(beanName)); } + @Override public void preInstantiateSingletons() throws BeansException { if (this.logger.isInfoEnabled()) { this.logger.info("Pre-instantiating singletons in " + this); @@ -609,6 +624,7 @@ public void preInstantiateSingletons() throws BeansException { boolean isEagerInit; if (System.getSecurityManager() != null && factory instanceof SmartFactoryBean) { isEagerInit = AccessController.doPrivileged(new PrivilegedAction() { + @Override public Boolean run() { return ((SmartFactoryBean) factory).isEagerInit(); } @@ -634,6 +650,7 @@ public Boolean run() { // Implementation of BeanDefinitionRegistry interface //--------------------------------------------------------------------- + @Override public void registerBeanDefinition(String beanName, BeanDefinition beanDefinition) throws BeanDefinitionStoreException { @@ -675,6 +692,7 @@ public void registerBeanDefinition(String beanName, BeanDefinition beanDefinitio resetBeanDefinition(beanName); } + @Override public void removeBeanDefinition(String beanName) throws NoSuchBeanDefinitionException { Assert.hasText(beanName, "'beanName' must not be empty"); @@ -754,6 +772,7 @@ private void clearByTypeCache() { // Dependency resolution functionality //--------------------------------------------------------------------- + @Override public Object resolveDependency(DependencyDescriptor descriptor, String beanName, Set autowiredBeanNames, TypeConverter typeConverter) throws BeansException { @@ -1068,6 +1087,7 @@ public DependencyObjectFactory(DependencyDescriptor descriptor, String beanName) this.beanName = beanName; } + @Override public Object getObject() throws BeansException { return doResolveDependency(this.descriptor, this.descriptor.getDependencyType(), this.beanName, null, null); } @@ -1083,6 +1103,7 @@ public DependencyProvider(DependencyDescriptor descriptor, String beanName) { super(descriptor, beanName); } + @Override public Object get() throws BeansException { return getObject(); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultSingletonBeanRegistry.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultSingletonBeanRegistry.java index 71d2ac891fff..450f11a5ce6f 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultSingletonBeanRegistry.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultSingletonBeanRegistry.java @@ -120,6 +120,7 @@ public class DefaultSingletonBeanRegistry extends SimpleAliasRegistry implements private final Map> dependenciesForBeanMap = new ConcurrentHashMap>(64); + @Override public void registerSingleton(String beanName, Object singletonObject) throws IllegalStateException { Assert.notNull(beanName, "'beanName' must not be null"); synchronized (this.singletonObjects) { @@ -166,6 +167,7 @@ protected void addSingletonFactory(String beanName, ObjectFactory singletonFacto } } + @Override public Object getSingleton(String beanName) { return getSingleton(beanName, true); } @@ -273,16 +275,19 @@ protected void removeSingleton(String beanName) { } } + @Override public boolean containsSingleton(String beanName) { return (this.singletonObjects.containsKey(beanName)); } + @Override public String[] getSingletonNames() { synchronized (this.singletonObjects) { return StringUtils.toStringArray(this.registeredSingletons); } } + @Override public int getSingletonCount() { synchronized (this.singletonObjects) { return this.registeredSingletons.size(); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/DisposableBeanAdapter.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/DisposableBeanAdapter.java index 672c8924311f..65b5bfc35153 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/DisposableBeanAdapter.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/DisposableBeanAdapter.java @@ -226,10 +226,12 @@ private List filterPostProcessors(List() { + @Override public Object run() throws Exception { ((DisposableBean) bean).destroy(); return null; @@ -281,6 +284,7 @@ private Method determineDestroyMethod() { try { if (System.getSecurityManager() != null) { return AccessController.doPrivileged(new PrivilegedAction() { + @Override public Method run() { return findDestroyMethod(); } @@ -321,6 +325,7 @@ private void invokeCustomDestroyMethod(final Method destroyMethod) { try { if (System.getSecurityManager() != null) { AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { ReflectionUtils.makeAccessible(destroyMethod); return null; @@ -328,6 +333,7 @@ public Object run() { }); try { AccessController.doPrivileged(new PrivilegedExceptionAction() { + @Override public Object run() throws Exception { destroyMethod.invoke(bean, args); return null; diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/FactoryBeanRegistrySupport.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/FactoryBeanRegistrySupport.java index 71a22243f774..286765a80df9 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/FactoryBeanRegistrySupport.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/FactoryBeanRegistrySupport.java @@ -56,6 +56,7 @@ protected Class getTypeForFactoryBean(final FactoryBean factoryBean) { try { if (System.getSecurityManager() != null) { return AccessController.doPrivileged(new PrivilegedAction() { + @Override public Class run() { return factoryBean.getObjectType(); } @@ -129,6 +130,7 @@ private Object doGetObjectFromFactoryBean( AccessControlContext acc = getAccessControlContext(); try { object = AccessController.doPrivileged(new PrivilegedExceptionAction() { + @Override public Object run() throws Exception { return factory.getObject(); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/GenericBeanDefinition.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/GenericBeanDefinition.java index 82fddd210662..5953236d6c19 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/GenericBeanDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/GenericBeanDefinition.java @@ -66,10 +66,12 @@ public GenericBeanDefinition(BeanDefinition original) { } + @Override public void setParentName(String parentName) { this.parentName = parentName; } + @Override public String getParentName() { return this.parentName; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/ManagedList.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/ManagedList.java index 5c9aa550113f..d01b649bca2a 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/ManagedList.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/ManagedList.java @@ -57,6 +57,7 @@ public void setSource(Object source) { this.source = source; } + @Override public Object getSource() { return this.source; } @@ -83,10 +84,12 @@ public void setMergeEnabled(boolean mergeEnabled) { this.mergeEnabled = mergeEnabled; } + @Override public boolean isMergeEnabled() { return this.mergeEnabled; } + @Override @SuppressWarnings("unchecked") public List merge(Object parent) { if (!this.mergeEnabled) { diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/ManagedMap.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/ManagedMap.java index 4529b7144172..464676659659 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/ManagedMap.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/ManagedMap.java @@ -58,6 +58,7 @@ public void setSource(Object source) { this.source = source; } + @Override public Object getSource() { return this.source; } @@ -98,10 +99,12 @@ public void setMergeEnabled(boolean mergeEnabled) { this.mergeEnabled = mergeEnabled; } + @Override public boolean isMergeEnabled() { return this.mergeEnabled; } + @Override @SuppressWarnings("unchecked") public Object merge(Object parent) { if (!this.mergeEnabled) { diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/ManagedProperties.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/ManagedProperties.java index 95b444721b8a..dadaac3e0cce 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/ManagedProperties.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/ManagedProperties.java @@ -45,6 +45,7 @@ public void setSource(Object source) { this.source = source; } + @Override public Object getSource() { return this.source; } @@ -57,11 +58,13 @@ public void setMergeEnabled(boolean mergeEnabled) { this.mergeEnabled = mergeEnabled; } + @Override public boolean isMergeEnabled() { return this.mergeEnabled; } + @Override public Object merge(Object parent) { if (!this.mergeEnabled) { throw new IllegalStateException("Not allowed to merge when the 'mergeEnabled' property is set to 'false'"); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/ManagedSet.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/ManagedSet.java index 654cadc9fc61..570963c17a6c 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/ManagedSet.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/ManagedSet.java @@ -56,6 +56,7 @@ public void setSource(Object source) { this.source = source; } + @Override public Object getSource() { return this.source; } @@ -82,10 +83,12 @@ public void setMergeEnabled(boolean mergeEnabled) { this.mergeEnabled = mergeEnabled; } + @Override public boolean isMergeEnabled() { return this.mergeEnabled; } + @Override @SuppressWarnings("unchecked") public Set merge(Object parent) { if (!this.mergeEnabled) { diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/MethodOverride.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/MethodOverride.java index ecc984a7cec4..96f41279f23b 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/MethodOverride.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/MethodOverride.java @@ -83,6 +83,7 @@ public void setSource(Object source) { this.source = source; } + @Override public Object getSource() { return this.source; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/PropertiesBeanDefinitionReader.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/PropertiesBeanDefinitionReader.java index d51dc55fa723..bbdc65d43716 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/PropertiesBeanDefinitionReader.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/PropertiesBeanDefinitionReader.java @@ -204,6 +204,7 @@ public PropertiesPersister getPropertiesPersister() { * @throws BeanDefinitionStoreException in case of loading or parsing errors * @see #loadBeanDefinitions(org.springframework.core.io.Resource, String) */ + @Override public int loadBeanDefinitions(Resource resource) throws BeanDefinitionStoreException { return loadBeanDefinitions(new EncodedResource(resource), null); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java index 2034d5aa7ad7..7bfb84bc1bee 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java @@ -191,10 +191,12 @@ public RootBeanDefinition(RootBeanDefinition original) { } + @Override public String getParentName() { return null; } + @Override public void setParentName(String parentName) { if (parentName != null) { throw new IllegalArgumentException("Root bean cannot be changed into a child bean with parent reference"); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/SimpleAutowireCandidateResolver.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/SimpleAutowireCandidateResolver.java index 4a7a1604e1de..3570305d9dfe 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/SimpleAutowireCandidateResolver.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/SimpleAutowireCandidateResolver.java @@ -37,10 +37,12 @@ public class SimpleAutowireCandidateResolver implements AutowireCandidateResolve *

To be considered a candidate the bean's autowire-candidate * attribute must not have been set to 'false'. */ + @Override public boolean isAutowireCandidate(BeanDefinitionHolder bdHolder, DependencyDescriptor descriptor) { return bdHolder.getBeanDefinition().isAutowireCandidate(); } + @Override public Object getSuggestedValue(DependencyDescriptor descriptor) { return null; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/SimpleBeanDefinitionRegistry.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/SimpleBeanDefinitionRegistry.java index 8a42fc233e1f..b792c6cda893 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/SimpleBeanDefinitionRegistry.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/SimpleBeanDefinitionRegistry.java @@ -40,6 +40,7 @@ public class SimpleBeanDefinitionRegistry extends SimpleAliasRegistry implements private final Map beanDefinitionMap = new ConcurrentHashMap(64); + @Override public void registerBeanDefinition(String beanName, BeanDefinition beanDefinition) throws BeanDefinitionStoreException { @@ -48,12 +49,14 @@ public void registerBeanDefinition(String beanName, BeanDefinition beanDefinitio this.beanDefinitionMap.put(beanName, beanDefinition); } + @Override public void removeBeanDefinition(String beanName) throws NoSuchBeanDefinitionException { if (this.beanDefinitionMap.remove(beanName) == null) { throw new NoSuchBeanDefinitionException(beanName); } } + @Override public BeanDefinition getBeanDefinition(String beanName) throws NoSuchBeanDefinitionException { BeanDefinition bd = this.beanDefinitionMap.get(beanName); if (bd == null) { @@ -62,18 +65,22 @@ public BeanDefinition getBeanDefinition(String beanName) throws NoSuchBeanDefini return bd; } + @Override public boolean containsBeanDefinition(String beanName) { return this.beanDefinitionMap.containsKey(beanName); } + @Override public String[] getBeanDefinitionNames() { return StringUtils.toStringArray(this.beanDefinitionMap.keySet()); } + @Override public int getBeanDefinitionCount() { return this.beanDefinitionMap.size(); } + @Override public boolean isBeanNameInUse(String beanName) { return isAlias(beanName) || containsBeanDefinition(beanName); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/SimpleInstantiationStrategy.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/SimpleInstantiationStrategy.java index b06904221f1e..4dd5a1a1ca6f 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/SimpleInstantiationStrategy.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/SimpleInstantiationStrategy.java @@ -55,6 +55,7 @@ public static Method getCurrentlyInvokedFactoryMethod() { } + @Override public Object instantiate(RootBeanDefinition beanDefinition, String beanName, BeanFactory owner) { // Don't override the class with CGLIB if no overrides. if (beanDefinition.getMethodOverrides().isEmpty()) { @@ -69,6 +70,7 @@ public Object instantiate(RootBeanDefinition beanDefinition, String beanName, Be try { if (System.getSecurityManager() != null) { constructorToUse = AccessController.doPrivileged(new PrivilegedExceptionAction() { + @Override public Constructor run() throws Exception { return clazz.getDeclaredConstructor((Class[]) null); } @@ -105,6 +107,7 @@ protected Object instantiateWithMethodInjection( "Method Injection not supported in SimpleInstantiationStrategy"); } + @Override public Object instantiate(RootBeanDefinition beanDefinition, String beanName, BeanFactory owner, final Constructor ctor, Object[] args) { @@ -112,6 +115,7 @@ public Object instantiate(RootBeanDefinition beanDefinition, String beanName, Be if (System.getSecurityManager() != null) { // use own privileged to change accessibility (when security is on) AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { ReflectionUtils.makeAccessible(ctor); return null; @@ -138,12 +142,14 @@ protected Object instantiateWithMethodInjection(RootBeanDefinition beanDefinitio "Method Injection not supported in SimpleInstantiationStrategy"); } + @Override public Object instantiate(RootBeanDefinition beanDefinition, String beanName, BeanFactory owner, Object factoryBean, final Method factoryMethod, Object[] args) { try { if (System.getSecurityManager() != null) { AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { ReflectionUtils.makeAccessible(factoryMethod); return null; diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/SimpleSecurityContextProvider.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/SimpleSecurityContextProvider.java index edb954ae7f8a..15aed4c50d05 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/SimpleSecurityContextProvider.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/SimpleSecurityContextProvider.java @@ -51,6 +51,7 @@ public SimpleSecurityContextProvider(AccessControlContext acc) { } + @Override public AccessControlContext getAccessControlContext() { return (this.acc != null ? acc : AccessController.getContext()); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/StaticListableBeanFactory.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/StaticListableBeanFactory.java index 4eef1b4751f1..f61b87e1af8b 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/StaticListableBeanFactory.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/StaticListableBeanFactory.java @@ -76,6 +76,7 @@ public void addBean(String name, Object bean) { // Implementation of BeanFactory interface //--------------------------------------------------------------------- + @Override public Object getBean(String name) throws BeansException { String beanName = BeanFactoryUtils.transformedBeanName(name); Object bean = this.beans.get(beanName); @@ -104,6 +105,7 @@ public Object getBean(String name) throws BeansException { } } + @Override @SuppressWarnings("unchecked") public T getBean(String name, Class requiredType) throws BeansException { Object bean = getBean(name); @@ -113,6 +115,7 @@ public T getBean(String name, Class requiredType) throws BeansException { return (T) bean; } + @Override public T getBean(Class requiredType) throws BeansException { String[] beanNames = getBeanNamesForType(requiredType); if (beanNames.length == 1) { @@ -126,6 +129,7 @@ else if (beanNames.length > 1) { } } + @Override public Object getBean(String name, Object... args) throws BeansException { if (args != null) { throw new UnsupportedOperationException( @@ -134,16 +138,19 @@ public Object getBean(String name, Object... args) throws BeansException { return getBean(name); } + @Override public boolean containsBean(String name) { return this.beans.containsKey(name); } + @Override public boolean isSingleton(String name) throws NoSuchBeanDefinitionException { Object bean = getBean(name); // In case of FactoryBean, return singleton status of created object. return (bean instanceof FactoryBean && ((FactoryBean) bean).isSingleton()); } + @Override public boolean isPrototype(String name) throws NoSuchBeanDefinitionException { Object bean = getBean(name); // In case of FactoryBean, return prototype status of created object. @@ -151,11 +158,13 @@ public boolean isPrototype(String name) throws NoSuchBeanDefinitionException { (bean instanceof FactoryBean && !((FactoryBean) bean).isSingleton())); } + @Override public boolean isTypeMatch(String name, Class targetType) throws NoSuchBeanDefinitionException { Class type = getType(name); return (targetType == null || (type != null && targetType.isAssignableFrom(type))); } + @Override public Class getType(String name) throws NoSuchBeanDefinitionException { String beanName = BeanFactoryUtils.transformedBeanName(name); @@ -172,6 +181,7 @@ public Class getType(String name) throws NoSuchBeanDefinitionException { return bean.getClass(); } + @Override public String[] getAliases(String name) { return new String[0]; } @@ -181,22 +191,27 @@ public String[] getAliases(String name) { // Implementation of ListableBeanFactory interface //--------------------------------------------------------------------- + @Override public boolean containsBeanDefinition(String name) { return this.beans.containsKey(name); } + @Override public int getBeanDefinitionCount() { return this.beans.size(); } + @Override public String[] getBeanDefinitionNames() { return StringUtils.toStringArray(this.beans.keySet()); } + @Override public String[] getBeanNamesForType(Class type) { return getBeanNamesForType(type, true, true); } + @Override public String[] getBeanNamesForType(Class type, boolean includeNonSingletons, boolean includeFactoryBeans) { boolean isFactoryType = (type != null && FactoryBean.class.isAssignableFrom(type)); List matches = new ArrayList(); @@ -219,10 +234,12 @@ public String[] getBeanNamesForType(Class type, boolean includeNonSingletons, bo return StringUtils.toStringArray(matches); } + @Override public Map getBeansOfType(Class type) throws BeansException { return getBeansOfType(type, true, true); } + @Override @SuppressWarnings("unchecked") public Map getBeansOfType(Class type, boolean includeNonSingletons, boolean includeFactoryBeans) throws BeansException { @@ -259,6 +276,7 @@ public Map getBeansOfType(Class type, boolean includeNonSingle return matches; } + @Override public Map getBeansWithAnnotation(Class annotationType) throws BeansException { @@ -271,6 +289,7 @@ public Map getBeansWithAnnotation(Class an return results; } + @Override public A findAnnotationOnBean(String beanName, Class annotationType) { return AnnotationUtils.findAnnotation(getType(beanName), annotationType); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/wiring/BeanConfigurerSupport.java b/spring-beans/src/main/java/org/springframework/beans/factory/wiring/BeanConfigurerSupport.java index 81fa4242b2f6..ccfd90f96a95 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/wiring/BeanConfigurerSupport.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/wiring/BeanConfigurerSupport.java @@ -71,6 +71,7 @@ public void setBeanWiringInfoResolver(BeanWiringInfoResolver beanWiringInfoResol /** * Set the {@link BeanFactory} in which this aspect must configure beans. */ + @Override public void setBeanFactory(BeanFactory beanFactory) { if (!(beanFactory instanceof ConfigurableListableBeanFactory)) { throw new IllegalArgumentException( @@ -95,6 +96,7 @@ protected BeanWiringInfoResolver createDefaultBeanWiringInfoResolver() { /** * Check that a {@link BeanFactory} has been set. */ + @Override public void afterPropertiesSet() { Assert.notNull(this.beanFactory, "BeanFactory must be set"); } @@ -103,6 +105,7 @@ public void afterPropertiesSet() { * Release references to the {@link BeanFactory} and * {@link BeanWiringInfoResolver} when the container is destroyed. */ + @Override public void destroy() { this.beanFactory = null; this.beanWiringInfoResolver = null; diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/wiring/ClassNameBeanWiringInfoResolver.java b/spring-beans/src/main/java/org/springframework/beans/factory/wiring/ClassNameBeanWiringInfoResolver.java index 3ddfbe5a0cf9..b458dfe84ab2 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/wiring/ClassNameBeanWiringInfoResolver.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/wiring/ClassNameBeanWiringInfoResolver.java @@ -31,6 +31,7 @@ */ public class ClassNameBeanWiringInfoResolver implements BeanWiringInfoResolver { + @Override public BeanWiringInfo resolveWiringInfo(Object beanInstance) { Assert.notNull(beanInstance, "Bean instance must not be null"); return new BeanWiringInfo(ClassUtils.getUserClass(beanInstance).getName(), true); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/AbstractBeanDefinitionParser.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/AbstractBeanDefinitionParser.java index 91c94990ccf1..38dba2c10e3e 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/AbstractBeanDefinitionParser.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/AbstractBeanDefinitionParser.java @@ -55,6 +55,7 @@ public abstract class AbstractBeanDefinitionParser implements BeanDefinitionPars /** Constant for the name attribute */ public static final String NAME_ATTRIBUTE = "name"; + @Override public final BeanDefinition parse(Element element, ParserContext parserContext) { AbstractBeanDefinition definition = parseInternal(element, parserContext); if (definition != null && !parserContext.isNested()) { diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeansDtdResolver.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeansDtdResolver.java index d7fcfc9e4d9b..6f3386cb862e 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeansDtdResolver.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeansDtdResolver.java @@ -50,6 +50,7 @@ public class BeansDtdResolver implements EntityResolver { private static final Log logger = LogFactory.getLog(BeansDtdResolver.class); + @Override public InputSource resolveEntity(String publicId, String systemId) throws IOException { if (logger.isTraceEnabled()) { logger.trace("Trying to resolve XML entity with public ID [" + publicId + diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/DefaultBeanDefinitionDocumentReader.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/DefaultBeanDefinitionDocumentReader.java index a422d5b4fcd4..456c614f55ad 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/DefaultBeanDefinitionDocumentReader.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/DefaultBeanDefinitionDocumentReader.java @@ -90,6 +90,7 @@ public class DefaultBeanDefinitionDocumentReader implements BeanDefinitionDocume * {@code } element with a {@code profile} attribute present. * @see #doRegisterBeanDefinitions */ + @Override public void setEnvironment(Environment environment) { this.environment = environment; } @@ -101,6 +102,7 @@ public void setEnvironment(Environment environment) { *

Opens a DOM Document; then initializes the default settings * specified at the {@code } level; then parses the contained bean definitions. */ + @Override public void registerBeanDefinitions(Document doc, XmlReaderContext readerContext) { this.readerContext = readerContext; logger.debug("Loading bean definitions"); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/DefaultDocumentLoader.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/DefaultDocumentLoader.java index f800eba8b11f..f86765cb620a 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/DefaultDocumentLoader.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/DefaultDocumentLoader.java @@ -64,6 +64,7 @@ public class DefaultDocumentLoader implements DocumentLoader { * Load the {@link Document} at the supplied {@link InputSource} using the standard JAXP-configured * XML parser. */ + @Override public Document loadDocument(InputSource inputSource, EntityResolver entityResolver, ErrorHandler errorHandler, int validationMode, boolean namespaceAware) throws Exception { diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/DefaultNamespaceHandlerResolver.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/DefaultNamespaceHandlerResolver.java index 6699253594d6..fd7d64cc8cdd 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/DefaultNamespaceHandlerResolver.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/DefaultNamespaceHandlerResolver.java @@ -109,6 +109,7 @@ public DefaultNamespaceHandlerResolver(ClassLoader classLoader, String handlerMa * @param namespaceUri the relevant namespace URI * @return the located {@link NamespaceHandler}, or {@code null} if none found */ + @Override public NamespaceHandler resolve(String namespaceUri) { Map handlerMappings = getHandlerMappings(); Object handlerOrClassName = handlerMappings.get(namespaceUri); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/DelegatingEntityResolver.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/DelegatingEntityResolver.java index 3bd9e1d85e92..019b9c16a2de 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/DelegatingEntityResolver.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/DelegatingEntityResolver.java @@ -76,6 +76,7 @@ public DelegatingEntityResolver(EntityResolver dtdResolver, EntityResolver schem } + @Override public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { if (systemId != null) { if (systemId.endsWith(DTD_SUFFIX)) { diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/DocumentDefaultsDefinition.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/DocumentDefaultsDefinition.java index 874eeaf0348f..ba31c92aaabb 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/DocumentDefaultsDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/DocumentDefaultsDefinition.java @@ -153,6 +153,7 @@ public void setSource(Object source) { this.source = source; } + @Override public Object getSource() { return this.source; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/NamespaceHandlerSupport.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/NamespaceHandlerSupport.java index ae992c27b2c0..b9f89b2369f7 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/NamespaceHandlerSupport.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/NamespaceHandlerSupport.java @@ -69,6 +69,7 @@ public abstract class NamespaceHandlerSupport implements NamespaceHandler { * Parses the supplied {@link Element} by delegating to the {@link BeanDefinitionParser} that is * registered for that {@link Element}. */ + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { return findParserForElement(element, parserContext).parse(element, parserContext); } @@ -91,6 +92,7 @@ private BeanDefinitionParser findParserForElement(Element element, ParserContext * Decorates the supplied {@link Node} by delegating to the {@link BeanDefinitionDecorator} that * is registered to handle that {@link Node}. */ + @Override public BeanDefinitionHolder decorate( Node node, BeanDefinitionHolder definition, ParserContext parserContext) { diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/PluggableSchemaResolver.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/PluggableSchemaResolver.java index 8c0d2e77a002..6cfefe7559b6 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/PluggableSchemaResolver.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/PluggableSchemaResolver.java @@ -100,6 +100,7 @@ public PluggableSchemaResolver(ClassLoader classLoader, String schemaMappingsLoc this.schemaMappingsLocation = schemaMappingsLocation; } + @Override public InputSource resolveEntity(String publicId, String systemId) throws IOException { if (logger.isTraceEnabled()) { logger.trace("Trying to resolve XML entity with public id [" + publicId + diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/SimpleConstructorNamespaceHandler.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/SimpleConstructorNamespaceHandler.java index 4110ed0a220d..e9f4b1c22eb0 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/SimpleConstructorNamespaceHandler.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/SimpleConstructorNamespaceHandler.java @@ -59,15 +59,18 @@ public class SimpleConstructorNamespaceHandler implements NamespaceHandler { private static final String REF_SUFFIX = "-ref"; private static final String DELIMITER_PREFIX = "_"; + @Override public void init() { } + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { parserContext.getReaderContext().error( "Class [" + getClass().getName() + "] does not support custom elements.", element); return null; } + @Override public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext) { if (node instanceof Attr) { Attr attr = (Attr) node; diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/SimplePropertyNamespaceHandler.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/SimplePropertyNamespaceHandler.java index 27d861bcb83b..e6716d2900b5 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/SimplePropertyNamespaceHandler.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/SimplePropertyNamespaceHandler.java @@ -52,15 +52,18 @@ public class SimplePropertyNamespaceHandler implements NamespaceHandler { private static final String REF_SUFFIX = "-ref"; + @Override public void init() { } + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { parserContext.getReaderContext().error( "Class [" + getClass().getName() + "] does not support custom elements.", element); return null; } + @Override public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext) { if (node instanceof Attr) { Attr attr = (Attr) node; diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/UtilNamespaceHandler.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/UtilNamespaceHandler.java index 39676dc24d80..4d33f236ce95 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/UtilNamespaceHandler.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/UtilNamespaceHandler.java @@ -45,6 +45,7 @@ public class UtilNamespaceHandler extends NamespaceHandlerSupport { private static final String SCOPE_ATTRIBUTE = "scope"; + @Override public void init() { registerBeanDefinitionParser("constant", new ConstantBeanDefinitionParser()); registerBeanDefinitionParser("property-path", new PropertyPathBeanDefinitionParser()); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/XmlBeanDefinitionReader.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/XmlBeanDefinitionReader.java index 16b58500bc13..0021ed45b09b 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/XmlBeanDefinitionReader.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/XmlBeanDefinitionReader.java @@ -298,6 +298,7 @@ public void setDocumentReaderClass(Class documentReaderClass) { * @return the number of bean definitions found * @throws BeanDefinitionStoreException in case of loading or parsing errors */ + @Override public int loadBeanDefinitions(Resource resource) throws BeanDefinitionStoreException { return loadBeanDefinitions(new EncodedResource(resource)); } diff --git a/spring-beans/src/main/java/org/springframework/beans/support/MutableSortDefinition.java b/spring-beans/src/main/java/org/springframework/beans/support/MutableSortDefinition.java index 2c64bf5252f3..4f59e4d30e8e 100644 --- a/spring-beans/src/main/java/org/springframework/beans/support/MutableSortDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/support/MutableSortDefinition.java @@ -104,6 +104,7 @@ public void setProperty(String property) { } } + @Override public String getProperty() { return this.property; } @@ -115,6 +116,7 @@ public void setIgnoreCase(boolean ignoreCase) { this.ignoreCase = ignoreCase; } + @Override public boolean isIgnoreCase() { return this.ignoreCase; } @@ -126,6 +128,7 @@ public void setAscending(boolean ascending) { this.ascending = ascending; } + @Override public boolean isAscending() { return this.ascending; } diff --git a/spring-beans/src/main/java/org/springframework/beans/support/PropertyComparator.java b/spring-beans/src/main/java/org/springframework/beans/support/PropertyComparator.java index afe74eac66ee..bbea12861acc 100644 --- a/spring-beans/src/main/java/org/springframework/beans/support/PropertyComparator.java +++ b/spring-beans/src/main/java/org/springframework/beans/support/PropertyComparator.java @@ -72,6 +72,7 @@ public final SortDefinition getSortDefinition() { } + @Override public int compare(Object o1, Object o2) { Object v1 = getPropertyValue(o1); Object v2 = getPropertyValue(o2); diff --git a/spring-beans/src/main/java/org/springframework/beans/support/ResourceEditorRegistrar.java b/spring-beans/src/main/java/org/springframework/beans/support/ResourceEditorRegistrar.java index 3f4abc656852..2db246e47dab 100644 --- a/spring-beans/src/main/java/org/springframework/beans/support/ResourceEditorRegistrar.java +++ b/spring-beans/src/main/java/org/springframework/beans/support/ResourceEditorRegistrar.java @@ -106,6 +106,7 @@ public ResourceEditorRegistrar(ResourceLoader resourceLoader, PropertyResolver p * @see org.springframework.beans.propertyeditors.ClassArrayEditor * @see org.springframework.core.io.support.ResourceArrayPropertyEditor */ + @Override public void registerCustomEditors(PropertyEditorRegistry registry) { ResourceEditor baseEditor = new ResourceEditor(this.resourceLoader, this.propertyResolver); doRegisterEditor(registry, Resource.class, baseEditor); diff --git a/spring-beans/src/test/java/org/springframework/beans/ExtendedBeanInfoTests.java b/spring-beans/src/test/java/org/springframework/beans/ExtendedBeanInfoTests.java index 30b2013d072e..653d5a138956 100644 --- a/spring-beans/src/test/java/org/springframework/beans/ExtendedBeanInfoTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/ExtendedBeanInfoTests.java @@ -193,6 +193,7 @@ public Number getProperty1() { } } class Child extends Parent { + @Override public Integer getProperty1() { return 2; } @@ -214,6 +215,7 @@ interface Spr9453 { @Test public void cornerSpr9453() throws IntrospectionException { final class Bean implements Spr9453> { + @Override public Class getProp() { return null; } @@ -603,7 +605,9 @@ public void subclassWriteMethodWithCovariantReturnType() throws IntrospectionExc public Number setFoo(String foo) { return null; } } class C extends B { + @Override public String getFoo() { return null; } + @Override public Integer setFoo(String foo) { return null; } } @@ -875,6 +879,7 @@ interface BookOperations { } interface TextBookOperations extends BookOperations { + @Override TextBook getBook(); } @@ -884,6 +889,7 @@ public void setBook(Book book) { } } class LawLibrary extends Library implements TextBookOperations { + @Override public LawBook getBook() { return null; } } @@ -898,6 +904,7 @@ public boolean isTargetMethod() { } class B extends A { + @Override public boolean isTargetMethod() { return false; } diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java index 9197e0083e54..97c069bb76f6 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java @@ -2632,6 +2632,7 @@ public String getName() { return this.name; } + @Override public boolean equals(Object obj) { if (obj == this) { return true; @@ -2643,6 +2644,7 @@ public boolean equals(Object obj) { return this.name.equals(p.name); } + @Override public int hashCode() { return this.name.hashCode(); } diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/support/security/CallbacksSecurityTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/support/security/CallbacksSecurityTests.java index d0439fa93eff..687b3d17eadd 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/support/security/CallbacksSecurityTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/support/security/CallbacksSecurityTests.java @@ -262,6 +262,7 @@ public String getName() { return this.name; } + @Override public boolean equals(Object obj) { if (obj == this) { return true; @@ -273,6 +274,7 @@ public boolean equals(Object obj) { return this.name.equals(p.name); } + @Override public int hashCode() { return this.name.hashCode(); } diff --git a/spring-beans/src/test/java/org/springframework/beans/support/PagedListHolderTests.java b/spring-beans/src/test/java/org/springframework/beans/support/PagedListHolderTests.java index 7e7694767c64..3e22df61f953 100644 --- a/spring-beans/src/test/java/org/springframework/beans/support/PagedListHolderTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/support/PagedListHolderTests.java @@ -197,6 +197,7 @@ public void setExtendedInfo(String extendedInfo) { this.extendedInfo = extendedInfo; } + @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof MockFilter)) return false; @@ -210,6 +211,7 @@ public boolean equals(Object o) { return true; } + @Override public int hashCode() { int result; result = name.hashCode(); diff --git a/spring-beans/src/test/java/org/springframework/tests/sample/beans/CustomEnum.java b/spring-beans/src/test/java/org/springframework/tests/sample/beans/CustomEnum.java index 66a863772fff..2ded8f9bae1e 100644 --- a/spring-beans/src/test/java/org/springframework/tests/sample/beans/CustomEnum.java +++ b/spring-beans/src/test/java/org/springframework/tests/sample/beans/CustomEnum.java @@ -23,6 +23,7 @@ public enum CustomEnum { VALUE_1, VALUE_2; + @Override public String toString() { return "CustomEnum: " + name(); } diff --git a/spring-beans/src/test/java/org/springframework/tests/sample/beans/NestedTestBean.java b/spring-beans/src/test/java/org/springframework/tests/sample/beans/NestedTestBean.java index 844c5ea6921c..9b4a07c87a6e 100644 --- a/spring-beans/src/test/java/org/springframework/tests/sample/beans/NestedTestBean.java +++ b/spring-beans/src/test/java/org/springframework/tests/sample/beans/NestedTestBean.java @@ -42,6 +42,7 @@ public String getCompany() { return company; } + @Override public boolean equals(Object obj) { if (!(obj instanceof NestedTestBean)) { return false; @@ -50,10 +51,12 @@ public boolean equals(Object obj) { return this.company.equals(ntb.company); } + @Override public int hashCode() { return this.company.hashCode(); } + @Override public String toString() { return "NestedTestBean: " + this.company; } diff --git a/spring-beans/src/test/java/org/springframework/tests/sample/beans/Pet.java b/spring-beans/src/test/java/org/springframework/tests/sample/beans/Pet.java index 61563f0dd8a0..f280ed25bc99 100644 --- a/spring-beans/src/test/java/org/springframework/tests/sample/beans/Pet.java +++ b/spring-beans/src/test/java/org/springframework/tests/sample/beans/Pet.java @@ -32,10 +32,12 @@ public String getName() { return name; } + @Override public String toString() { return getName(); } + @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; @@ -47,6 +49,7 @@ public boolean equals(Object o) { return true; } + @Override public int hashCode() { return (name != null ? name.hashCode() : 0); } diff --git a/spring-beans/src/test/java/org/springframework/tests/sample/beans/TestBean.java b/spring-beans/src/test/java/org/springframework/tests/sample/beans/TestBean.java index cb276da9cbdc..eb18ea6a9f53 100644 --- a/spring-beans/src/test/java/org/springframework/tests/sample/beans/TestBean.java +++ b/spring-beans/src/test/java/org/springframework/tests/sample/beans/TestBean.java @@ -255,10 +255,12 @@ public void setStringArray(String[] stringArray) { this.stringArray = stringArray; } + @Override public Integer[] getSomeIntegerArray() { return someIntegerArray; } + @Override public void setSomeIntegerArray(Integer[] someIntegerArray) { this.someIntegerArray = someIntegerArray; } @@ -461,6 +463,7 @@ public boolean wasDestroyed() { } + @Override public boolean equals(Object other) { if (this == other) { return true; @@ -472,6 +475,7 @@ public boolean equals(Object other) { return (ObjectUtils.nullSafeEquals(this.name, tb2.name) && this.age == tb2.age); } + @Override public int hashCode() { return this.age; } @@ -486,6 +490,7 @@ public int compareTo(Object other) { } } + @Override public String toString() { return this.name; } diff --git a/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheCache.java b/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheCache.java index eb02a84e2a75..fa28b2913c74 100644 --- a/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheCache.java +++ b/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheCache.java @@ -49,27 +49,33 @@ public EhCacheCache(Ehcache ehcache) { } + @Override public String getName() { return this.cache.getName(); } + @Override public Ehcache getNativeCache() { return this.cache; } + @Override public ValueWrapper get(Object key) { Element element = this.cache.get(key); return (element != null ? new SimpleValueWrapper(element.getObjectValue()) : null); } + @Override public void put(Object key, Object value) { this.cache.put(new Element(key, value)); } + @Override public void evict(Object key) { this.cache.remove(key); } + @Override public void clear() { this.cache.removeAll(); } diff --git a/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheFactoryBean.java b/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheFactoryBean.java index 435e780e9389..665e97317655 100644 --- a/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheFactoryBean.java +++ b/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheFactoryBean.java @@ -206,11 +206,13 @@ public void setDisabled(boolean disabled) { this.disabled = disabled; } + @Override public void setBeanName(String name) { this.beanName = name; } + @Override public void afterPropertiesSet() throws CacheException, IOException { // If no cache name given, use bean name as cache name. String cacheName = getName(); @@ -295,6 +297,7 @@ protected Ehcache decorateCache(Ehcache cache) { } + @Override public Ehcache getObject() { return this.cache; } @@ -304,6 +307,7 @@ public Ehcache getObject() { * {@link #getObject()} based on logic in {@link #createCache()} and * {@link #decorateCache(Ehcache)} as orchestrated by {@link #afterPropertiesSet()}. */ + @Override public Class getObjectType() { if (this.cache != null) { return this.cache.getClass(); @@ -322,6 +326,7 @@ public Class getObjectType() { return Cache.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheManagerFactoryBean.java b/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheManagerFactoryBean.java index ea134b57aa7d..f6663b48a89f 100644 --- a/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheManagerFactoryBean.java +++ b/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheManagerFactoryBean.java @@ -98,6 +98,7 @@ public void setCacheManagerName(String cacheManagerName) { } + @Override public void afterPropertiesSet() throws IOException, CacheException { logger.info("Initializing EhCache CacheManager"); InputStream is = (this.configLocation != null ? this.configLocation.getInputStream() : null); @@ -117,19 +118,23 @@ public void afterPropertiesSet() throws IOException, CacheException { } + @Override public CacheManager getObject() { return this.cacheManager; } + @Override public Class getObjectType() { return (this.cacheManager != null ? this.cacheManager.getClass() : CacheManager.class); } + @Override public boolean isSingleton() { return true; } + @Override public void destroy() { logger.info("Shutting down EhCache CacheManager"); this.cacheManager.shutdown(); diff --git a/spring-context-support/src/main/java/org/springframework/cache/jcache/JCacheCache.java b/spring-context-support/src/main/java/org/springframework/cache/jcache/JCacheCache.java index d47e3dcb9279..8b0a731c4e84 100644 --- a/spring-context-support/src/main/java/org/springframework/cache/jcache/JCacheCache.java +++ b/spring-context-support/src/main/java/org/springframework/cache/jcache/JCacheCache.java @@ -64,10 +64,12 @@ public JCacheCache(javax.cache.Cache jcache, boolean allowNullValues) { } + @Override public String getName() { return this.cache.getName(); } + @Override public javax.cache.Cache getNativeCache() { return this.cache; } @@ -76,22 +78,26 @@ public boolean isAllowNullValues() { return this.allowNullValues; } + @Override @SuppressWarnings("unchecked") public ValueWrapper get(Object key) { Object value = this.cache.get(key); return (value != null ? new SimpleValueWrapper(fromStoreValue(value)) : null); } + @Override @SuppressWarnings("unchecked") public void put(Object key, Object value) { this.cache.put(key, toStoreValue(value)); } + @Override @SuppressWarnings("unchecked") public void evict(Object key) { this.cache.remove(key); } + @Override public void clear() { this.cache.removeAll(); } diff --git a/spring-context-support/src/main/java/org/springframework/cache/jcache/JCacheManagerFactoryBean.java b/spring-context-support/src/main/java/org/springframework/cache/jcache/JCacheManagerFactoryBean.java index b43c1d75b84e..0bf1c5cb6c28 100644 --- a/spring-context-support/src/main/java/org/springframework/cache/jcache/JCacheManagerFactoryBean.java +++ b/spring-context-support/src/main/java/org/springframework/cache/jcache/JCacheManagerFactoryBean.java @@ -53,10 +53,12 @@ public void setCacheManagerName(String cacheManagerName) { this.cacheManagerName = cacheManagerName; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public void afterPropertiesSet() { this.cacheManager = (this.beanClassLoader != null ? Caching.getCacheManager(this.beanClassLoader, this.cacheManagerName) : @@ -64,19 +66,23 @@ public void afterPropertiesSet() { } + @Override public CacheManager getObject() { return this.cacheManager; } + @Override public Class getObjectType() { return (this.cacheManager != null ? this.cacheManager.getClass() : CacheManager.class); } + @Override public boolean isSingleton() { return true; } + @Override public void destroy() { this.cacheManager.shutdown(); } diff --git a/spring-context-support/src/main/java/org/springframework/cache/transaction/TransactionAwareCacheDecorator.java b/spring-context-support/src/main/java/org/springframework/cache/transaction/TransactionAwareCacheDecorator.java index 7b7ac52f9728..abda2b7caf89 100644 --- a/spring-context-support/src/main/java/org/springframework/cache/transaction/TransactionAwareCacheDecorator.java +++ b/spring-context-support/src/main/java/org/springframework/cache/transaction/TransactionAwareCacheDecorator.java @@ -47,18 +47,22 @@ public TransactionAwareCacheDecorator(Cache targetCache) { } + @Override public String getName() { return this.targetCache.getName(); } + @Override public Object getNativeCache() { return this.targetCache.getNativeCache(); } + @Override public ValueWrapper get(Object key) { return this.targetCache.get(key); } + @Override public void put(final Object key, final Object value) { if (TransactionSynchronizationManager.isSynchronizationActive()) { TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() { @@ -73,6 +77,7 @@ public void afterCommit() { } } + @Override public void evict(final Object key) { if (TransactionSynchronizationManager.isSynchronizationActive()) { TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() { @@ -87,6 +92,7 @@ public void afterCommit() { } } + @Override public void clear() { this.targetCache.clear(); } diff --git a/spring-context-support/src/main/java/org/springframework/cache/transaction/TransactionAwareCacheManagerProxy.java b/spring-context-support/src/main/java/org/springframework/cache/transaction/TransactionAwareCacheManagerProxy.java index efcfd8f54c30..2813c0d334a5 100644 --- a/spring-context-support/src/main/java/org/springframework/cache/transaction/TransactionAwareCacheManagerProxy.java +++ b/spring-context-support/src/main/java/org/springframework/cache/transaction/TransactionAwareCacheManagerProxy.java @@ -65,6 +65,7 @@ public void setTargetCacheManager(CacheManager targetCacheManager) { this.targetCacheManager = targetCacheManager; } + @Override public void afterPropertiesSet() { if (this.targetCacheManager == null) { throw new IllegalStateException("'targetCacheManager' is required"); @@ -72,10 +73,12 @@ public void afterPropertiesSet() { } + @Override public Cache getCache(String name) { return new TransactionAwareCacheDecorator(this.targetCacheManager.getCache(name)); } + @Override public Collection getCacheNames() { return this.targetCacheManager.getCacheNames(); } diff --git a/spring-context-support/src/main/java/org/springframework/mail/SimpleMailMessage.java b/spring-context-support/src/main/java/org/springframework/mail/SimpleMailMessage.java index 7cc61122bb5c..65dc4d08ee1c 100644 --- a/spring-context-support/src/main/java/org/springframework/mail/SimpleMailMessage.java +++ b/spring-context-support/src/main/java/org/springframework/mail/SimpleMailMessage.java @@ -89,6 +89,7 @@ public SimpleMailMessage(SimpleMailMessage original) { } + @Override public void setFrom(String from) { this.from = from; } @@ -97,6 +98,7 @@ public String getFrom() { return this.from; } + @Override public void setReplyTo(String replyTo) { this.replyTo = replyTo; } @@ -105,10 +107,12 @@ public String getReplyTo() { return replyTo; } + @Override public void setTo(String to) { this.to = new String[] {to}; } + @Override public void setTo(String[] to) { this.to = to; } @@ -117,10 +121,12 @@ public String[] getTo() { return this.to; } + @Override public void setCc(String cc) { this.cc = new String[] {cc}; } + @Override public void setCc(String[] cc) { this.cc = cc; } @@ -129,10 +135,12 @@ public String[] getCc() { return cc; } + @Override public void setBcc(String bcc) { this.bcc = new String[] {bcc}; } + @Override public void setBcc(String[] bcc) { this.bcc = bcc; } @@ -141,6 +149,7 @@ public String[] getBcc() { return bcc; } + @Override public void setSentDate(Date sentDate) { this.sentDate = sentDate; } @@ -149,6 +158,7 @@ public Date getSentDate() { return sentDate; } + @Override public void setSubject(String subject) { this.subject = subject; } @@ -157,6 +167,7 @@ public String getSubject() { return this.subject; } + @Override public void setText(String text) { this.text = text; } diff --git a/spring-context-support/src/main/java/org/springframework/mail/javamail/ConfigurableMimeFileTypeMap.java b/spring-context-support/src/main/java/org/springframework/mail/javamail/ConfigurableMimeFileTypeMap.java index a5f406281021..29bf3f096c33 100644 --- a/spring-context-support/src/main/java/org/springframework/mail/javamail/ConfigurableMimeFileTypeMap.java +++ b/spring-context-support/src/main/java/org/springframework/mail/javamail/ConfigurableMimeFileTypeMap.java @@ -101,6 +101,7 @@ public void setMappings(String[] mappings) { /** * Creates the final merged mapping set. */ + @Override public void afterPropertiesSet() { getFileTypeMap(); } diff --git a/spring-context-support/src/main/java/org/springframework/mail/javamail/JavaMailSenderImpl.java b/spring-context-support/src/main/java/org/springframework/mail/javamail/JavaMailSenderImpl.java index 257b15b78e78..3993d28ee076 100644 --- a/spring-context-support/src/main/java/org/springframework/mail/javamail/JavaMailSenderImpl.java +++ b/spring-context-support/src/main/java/org/springframework/mail/javamail/JavaMailSenderImpl.java @@ -292,10 +292,12 @@ public FileTypeMap getDefaultFileTypeMap() { // Implementation of MailSender //--------------------------------------------------------------------- + @Override public void send(SimpleMailMessage simpleMessage) throws MailException { send(new SimpleMailMessage[] { simpleMessage }); } + @Override public void send(SimpleMailMessage[] simpleMessages) throws MailException { List mimeMessages = new ArrayList(simpleMessages.length); for (SimpleMailMessage simpleMessage : simpleMessages) { @@ -319,10 +321,12 @@ public void send(SimpleMailMessage[] simpleMessages) throws MailException { * @see #setDefaultEncoding * @see #setDefaultFileTypeMap */ + @Override public MimeMessage createMimeMessage() { return new SmartMimeMessage(getSession(), getDefaultEncoding(), getDefaultFileTypeMap()); } + @Override public MimeMessage createMimeMessage(InputStream contentStream) throws MailException { try { return new MimeMessage(getSession(), contentStream); @@ -332,18 +336,22 @@ public MimeMessage createMimeMessage(InputStream contentStream) throws MailExcep } } + @Override public void send(MimeMessage mimeMessage) throws MailException { send(new MimeMessage[] {mimeMessage}); } + @Override public void send(MimeMessage[] mimeMessages) throws MailException { doSend(mimeMessages, null); } + @Override public void send(MimeMessagePreparator mimeMessagePreparator) throws MailException { send(new MimeMessagePreparator[] { mimeMessagePreparator }); } + @Override public void send(MimeMessagePreparator[] mimeMessagePreparators) throws MailException { try { List mimeMessages = new ArrayList(mimeMessagePreparators.length); diff --git a/spring-context-support/src/main/java/org/springframework/mail/javamail/MimeMailMessage.java b/spring-context-support/src/main/java/org/springframework/mail/javamail/MimeMailMessage.java index 01c6df2dc767..6a483168ebb9 100644 --- a/spring-context-support/src/main/java/org/springframework/mail/javamail/MimeMailMessage.java +++ b/spring-context-support/src/main/java/org/springframework/mail/javamail/MimeMailMessage.java @@ -73,6 +73,7 @@ public final MimeMessage getMimeMessage() { } + @Override public void setFrom(String from) throws MailParseException { try { this.helper.setFrom(from); @@ -82,6 +83,7 @@ public void setFrom(String from) throws MailParseException { } } + @Override public void setReplyTo(String replyTo) throws MailParseException { try { this.helper.setReplyTo(replyTo); @@ -91,6 +93,7 @@ public void setReplyTo(String replyTo) throws MailParseException { } } + @Override public void setTo(String to) throws MailParseException { try { this.helper.setTo(to); @@ -100,6 +103,7 @@ public void setTo(String to) throws MailParseException { } } + @Override public void setTo(String[] to) throws MailParseException { try { this.helper.setTo(to); @@ -109,6 +113,7 @@ public void setTo(String[] to) throws MailParseException { } } + @Override public void setCc(String cc) throws MailParseException { try { this.helper.setCc(cc); @@ -118,6 +123,7 @@ public void setCc(String cc) throws MailParseException { } } + @Override public void setCc(String[] cc) throws MailParseException { try { this.helper.setCc(cc); @@ -127,6 +133,7 @@ public void setCc(String[] cc) throws MailParseException { } } + @Override public void setBcc(String bcc) throws MailParseException { try { this.helper.setBcc(bcc); @@ -136,6 +143,7 @@ public void setBcc(String bcc) throws MailParseException { } } + @Override public void setBcc(String[] bcc) throws MailParseException { try { this.helper.setBcc(bcc); @@ -145,6 +153,7 @@ public void setBcc(String[] bcc) throws MailParseException { } } + @Override public void setSentDate(Date sentDate) throws MailParseException { try { this.helper.setSentDate(sentDate); @@ -154,6 +163,7 @@ public void setSentDate(Date sentDate) throws MailParseException { } } + @Override public void setSubject(String subject) throws MailParseException { try { this.helper.setSubject(subject); @@ -163,6 +173,7 @@ public void setSubject(String subject) throws MailParseException { } } + @Override public void setText(String text) throws MailParseException { try { this.helper.setText(text); diff --git a/spring-context-support/src/main/java/org/springframework/mail/javamail/MimeMessageHelper.java b/spring-context-support/src/main/java/org/springframework/mail/javamail/MimeMessageHelper.java index 4184b2f3b41b..9b755e843e30 100644 --- a/spring-context-support/src/main/java/org/springframework/mail/javamail/MimeMessageHelper.java +++ b/spring-context-support/src/main/java/org/springframework/mail/javamail/MimeMessageHelper.java @@ -1088,15 +1088,19 @@ protected DataSource createDataSource( final InputStreamSource inputStreamSource, final String contentType, final String name) { return new DataSource() { + @Override public InputStream getInputStream() throws IOException { return inputStreamSource.getInputStream(); } + @Override public OutputStream getOutputStream() { throw new UnsupportedOperationException("Read-only javax.activation.DataSource"); } + @Override public String getContentType() { return contentType; } + @Override public String getName() { return name; } diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/commonj/DelegatingTimerListener.java b/spring-context-support/src/main/java/org/springframework/scheduling/commonj/DelegatingTimerListener.java index 54f3534e40a6..5d0e444715b2 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/commonj/DelegatingTimerListener.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/commonj/DelegatingTimerListener.java @@ -47,6 +47,7 @@ public DelegatingTimerListener(Runnable runnable) { /** * Delegates execution to the underlying Runnable. */ + @Override public void timerExpired(Timer timer) { this.runnable.run(); } diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/commonj/DelegatingWork.java b/spring-context-support/src/main/java/org/springframework/scheduling/commonj/DelegatingWork.java index 80a0b556ea0b..d748203698e2 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/commonj/DelegatingWork.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/commonj/DelegatingWork.java @@ -57,6 +57,7 @@ public final Runnable getDelegate() { /** * Delegates execution to the underlying Runnable. */ + @Override public void run() { this.delegate.run(); } @@ -66,6 +67,7 @@ public void run() { * {@link org.springframework.scheduling.SchedulingAwareRunnable#isLongLived()}, * if available. */ + @Override public boolean isDaemon() { return (this.delegate instanceof SchedulingAwareRunnable && ((SchedulingAwareRunnable) this.delegate).isLongLived()); @@ -75,6 +77,7 @@ public boolean isDaemon() { * This implementation is empty, since we expect the Runnable * to terminate based on some specific shutdown signal. */ + @Override public void release() { } diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/commonj/TimerManagerAccessor.java b/spring-context-support/src/main/java/org/springframework/scheduling/commonj/TimerManagerAccessor.java index 8167f6a709c7..728350db8e2a 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/commonj/TimerManagerAccessor.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/commonj/TimerManagerAccessor.java @@ -95,6 +95,7 @@ public void setShared(boolean shared) { } + @Override public void afterPropertiesSet() throws NamingException { if (this.timerManager == null) { if (this.timerManagerName == null) { @@ -117,6 +118,7 @@ protected final TimerManager getTimerManager() { * Resumes the underlying TimerManager (if not shared). * @see commonj.timers.TimerManager#resume() */ + @Override public void start() { if (!this.shared) { this.timerManager.resume(); @@ -127,6 +129,7 @@ public void start() { * Suspends the underlying TimerManager (if not shared). * @see commonj.timers.TimerManager#suspend() */ + @Override public void stop() { if (!this.shared) { this.timerManager.suspend(); @@ -139,6 +142,7 @@ public void stop() { * @see commonj.timers.TimerManager#isSuspending() * @see commonj.timers.TimerManager#isStopping() */ + @Override public boolean isRunning() { return (!this.timerManager.isSuspending() && !this.timerManager.isStopping()); } @@ -152,6 +156,7 @@ public boolean isRunning() { * Stops the underlying TimerManager (if not shared). * @see commonj.timers.TimerManager#stop() */ + @Override public void destroy() { // Stop the entire TimerManager, if necessary. if (!this.shared) { diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/commonj/TimerManagerFactoryBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/commonj/TimerManagerFactoryBean.java index 99a848366d11..3b67a93f95a0 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/commonj/TimerManagerFactoryBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/commonj/TimerManagerFactoryBean.java @@ -76,6 +76,7 @@ public void setScheduledTimerListeners(ScheduledTimerListener[] scheduledTimerLi // Implementation of InitializingBean interface //--------------------------------------------------------------------- + @Override public void afterPropertiesSet() throws NamingException { super.afterPropertiesSet(); if (this.scheduledTimerListeners != null) { @@ -105,15 +106,18 @@ public void afterPropertiesSet() throws NamingException { // Implementation of FactoryBean interface //--------------------------------------------------------------------- + @Override public TimerManager getObject() { return getTimerManager(); } + @Override public Class getObjectType() { TimerManager timerManager = getTimerManager(); return (timerManager != null ? timerManager.getClass() : TimerManager.class); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/commonj/TimerManagerTaskScheduler.java b/spring-context-support/src/main/java/org/springframework/scheduling/commonj/TimerManagerTaskScheduler.java index 76714ce5f23a..3801e703c08a 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/commonj/TimerManagerTaskScheduler.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/commonj/TimerManagerTaskScheduler.java @@ -52,10 +52,12 @@ public void setErrorHandler(ErrorHandler errorHandler) { } + @Override public ScheduledFuture schedule(Runnable task, Trigger trigger) { return new ReschedulingTimerListener(errorHandlingTask(task, true), trigger).schedule(); } + @Override public ScheduledFuture schedule(Runnable task, Date startTime) { TimerScheduledFuture futureTask = new TimerScheduledFuture(errorHandlingTask(task, false)); Timer timer = getTimerManager().schedule(futureTask, startTime); @@ -63,6 +65,7 @@ public ScheduledFuture schedule(Runnable task, Date startTime) { return futureTask; } + @Override public ScheduledFuture scheduleAtFixedRate(Runnable task, Date startTime, long period) { TimerScheduledFuture futureTask = new TimerScheduledFuture(errorHandlingTask(task, true)); Timer timer = getTimerManager().scheduleAtFixedRate(futureTask, startTime, period); @@ -70,6 +73,7 @@ public ScheduledFuture scheduleAtFixedRate(Runnable task, Date startTime, long p return futureTask; } + @Override public ScheduledFuture scheduleAtFixedRate(Runnable task, long period) { TimerScheduledFuture futureTask = new TimerScheduledFuture(errorHandlingTask(task, true)); Timer timer = getTimerManager().scheduleAtFixedRate(futureTask, 0, period); @@ -77,6 +81,7 @@ public ScheduledFuture scheduleAtFixedRate(Runnable task, long period) { return futureTask; } + @Override public ScheduledFuture scheduleWithFixedDelay(Runnable task, Date startTime, long delay) { TimerScheduledFuture futureTask = new TimerScheduledFuture(errorHandlingTask(task, true)); Timer timer = getTimerManager().schedule(futureTask, startTime, delay); @@ -84,6 +89,7 @@ public ScheduledFuture scheduleWithFixedDelay(Runnable task, Date startTime, lon return futureTask; } + @Override public ScheduledFuture scheduleWithFixedDelay(Runnable task, long delay) { TimerScheduledFuture futureTask = new TimerScheduledFuture(errorHandlingTask(task, true)); Timer timer = getTimerManager().schedule(futureTask, 0, delay); @@ -113,6 +119,7 @@ public void setTimer(Timer timer) { this.timer = timer; } + @Override public void timerExpired(Timer timer) { runAndReset(); } @@ -125,10 +132,12 @@ public boolean cancel(boolean mayInterruptIfRunning) { return result; } + @Override public long getDelay(TimeUnit unit) { return unit.convert(System.currentTimeMillis() - this.timer.getScheduledExecutionTime(), TimeUnit.MILLISECONDS); } + @Override public int compareTo(Delayed other) { if (this == other) { return 0; diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/commonj/WorkManagerTaskExecutor.java b/spring-context-support/src/main/java/org/springframework/scheduling/commonj/WorkManagerTaskExecutor.java index 4d1518dfa9a9..2c9ce17a49bc 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/commonj/WorkManagerTaskExecutor.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/commonj/WorkManagerTaskExecutor.java @@ -109,6 +109,7 @@ public void setWorkListener(WorkListener workListener) { this.workListener = workListener; } + @Override public void afterPropertiesSet() throws NamingException { if (this.workManager == null) { if (this.workManagerName == null) { @@ -123,6 +124,7 @@ public void afterPropertiesSet() throws NamingException { // Implementation of the Spring SchedulingTaskExecutor interface //------------------------------------------------------------------------- + @Override public void execute(Runnable task) { Assert.state(this.workManager != null, "No WorkManager specified"); Work work = new DelegatingWork(task); @@ -142,16 +144,19 @@ public void execute(Runnable task) { } } + @Override public void execute(Runnable task, long startTimeout) { execute(task); } + @Override public Future submit(Runnable task) { FutureTask future = new FutureTask(task, null); execute(future); return future; } + @Override public Future submit(Callable task) { FutureTask future = new FutureTask(task); execute(future); @@ -161,6 +166,7 @@ public Future submit(Callable task) { /** * This task executor prefers short-lived work units. */ + @Override public boolean prefersShortLivedTasks() { return true; } @@ -170,24 +176,28 @@ public boolean prefersShortLivedTasks() { // Implementation of the CommonJ WorkManager interface //------------------------------------------------------------------------- + @Override public WorkItem schedule(Work work) throws WorkException, IllegalArgumentException { return this.workManager.schedule(work); } + @Override public WorkItem schedule(Work work, WorkListener workListener) throws WorkException, IllegalArgumentException { return this.workManager.schedule(work, workListener); } + @Override public boolean waitForAll(Collection workItems, long timeout) throws InterruptedException, IllegalArgumentException { return this.workManager.waitForAll(workItems, timeout); } + @Override public Collection waitForAny(Collection workItems, long timeout) throws InterruptedException, IllegalArgumentException { diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/AdaptableJobFactory.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/AdaptableJobFactory.java index c84641f50230..71f52a91eac9 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/AdaptableJobFactory.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/AdaptableJobFactory.java @@ -50,6 +50,7 @@ public Job newJob(TriggerFiredBundle bundle, Scheduler scheduler) throws Schedul /** * Quartz 1.x version of newJob: contains actual implementation code. */ + @Override public Job newJob(TriggerFiredBundle bundle) throws SchedulerException { try { Object jobObject = createJobInstance(bundle); diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/CronTriggerBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/CronTriggerBean.java index c5e1c070b833..00988a774945 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/CronTriggerBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/CronTriggerBean.java @@ -139,15 +139,18 @@ public void setJobDetail(JobDetail jobDetail) { this.jobDetail = jobDetail; } + @Override public JobDetail getJobDetail() { return this.jobDetail; } + @Override public void setBeanName(String beanName) { this.beanName = beanName; } + @Override public void afterPropertiesSet() throws Exception { if (this.startDelay > 0) { setStartTime(new Date(System.currentTimeMillis() + this.startDelay)); diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/CronTriggerFactoryBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/CronTriggerFactoryBean.java index 101c3fdf0456..66741456fda5 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/CronTriggerFactoryBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/CronTriggerFactoryBean.java @@ -191,11 +191,13 @@ public void setMisfireInstructionName(String constantName) { this.misfireInstruction = constants.asNumber(constantName).intValue(); } + @Override public void setBeanName(String beanName) { this.beanName = beanName; } + @Override public void afterPropertiesSet() { if (this.name == null) { this.name = this.beanName; @@ -265,14 +267,17 @@ else if (this.startTime == null) { } + @Override public CronTrigger getObject() { return this.cronTrigger; } + @Override public Class getObjectType() { return CronTrigger.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/DelegatingJob.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/DelegatingJob.java index f75e95951ef6..7536e0aa3a9d 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/DelegatingJob.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/DelegatingJob.java @@ -60,6 +60,7 @@ public final Runnable getDelegate() { /** * Delegates execution to the underlying Runnable. */ + @Override public void execute(JobExecutionContext context) throws JobExecutionException { this.delegate.run(); } diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/JobDetailBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/JobDetailBean.java index 0a534065777e..43998ffcdba7 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/JobDetailBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/JobDetailBean.java @@ -115,10 +115,12 @@ public void setJobListenerNames(String[] names) { } } + @Override public void setBeanName(String beanName) { this.beanName = beanName; } + @Override public void setApplicationContext(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } @@ -144,6 +146,7 @@ public void setApplicationContextJobDataKey(String applicationContextJobDataKey) } + @Override public void afterPropertiesSet() { if (getName() == null) { setName(this.beanName); diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/JobDetailFactoryBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/JobDetailFactoryBean.java index 81d370646af6..8f177da433fa 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/JobDetailFactoryBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/JobDetailFactoryBean.java @@ -139,10 +139,12 @@ public void setDescription(String description) { this.description = description; } + @Override public void setBeanName(String beanName) { this.beanName = beanName; } + @Override public void setApplicationContext(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } @@ -168,6 +170,7 @@ public void setApplicationContextJobDataKey(String applicationContextJobDataKey) } + @Override public void afterPropertiesSet() { if (this.name == null) { this.name = this.beanName; @@ -215,14 +218,17 @@ public void afterPropertiesSet() { } + @Override public JobDetail getObject() { return this.jobDetail; } + @Override public Class getObjectType() { return JobDetail.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/LocalDataSourceJobStore.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/LocalDataSourceJobStore.java index c9664b28f8ee..1c0939a00668 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/LocalDataSourceJobStore.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/LocalDataSourceJobStore.java @@ -101,10 +101,12 @@ public void initialize(ClassLoadHelper loadHelper, SchedulerSignaler signaler) DBConnectionManager.getInstance().addConnectionProvider( TX_DATA_SOURCE_PREFIX + getInstanceName(), new ConnectionProvider() { + @Override public Connection getConnection() throws SQLException { // Return a transactional Connection, if any. return DataSourceUtils.doGetConnection(dataSource); } + @Override public void shutdown() { // Do nothing - a Spring-managed DataSource has its own lifecycle. } @@ -124,10 +126,12 @@ public void shutdown() { DBConnectionManager.getInstance().addConnectionProvider( NON_TX_DATA_SOURCE_PREFIX + getInstanceName(), new ConnectionProvider() { + @Override public Connection getConnection() throws SQLException { // Always return a non-transactional Connection. return nonTxDataSourceToUse.getConnection(); } + @Override public void shutdown() { // Do nothing - a Spring-managed DataSource has its own lifecycle. } diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/LocalTaskExecutorThreadPool.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/LocalTaskExecutorThreadPool.java index 6e5189e3b09d..ec3ccac53fd7 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/LocalTaskExecutorThreadPool.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/LocalTaskExecutorThreadPool.java @@ -40,13 +40,16 @@ public class LocalTaskExecutorThreadPool implements ThreadPool { private Executor taskExecutor; + @Override public void setInstanceId(String schedInstId) { } + @Override public void setInstanceName(String schedName) { } + @Override public void initialize() throws SchedulerConfigException { // Absolutely needs thread-bound TaskExecutor to initialize. this.taskExecutor = SchedulerFactoryBean.getConfigTimeTaskExecutor(); @@ -57,14 +60,17 @@ public void initialize() throws SchedulerConfigException { } } + @Override public void shutdown(boolean waitForJobsToComplete) { } + @Override public int getPoolSize() { return -1; } + @Override public boolean runInThread(Runnable runnable) { if (runnable == null) { return false; @@ -79,6 +85,7 @@ public boolean runInThread(Runnable runnable) { } } + @Override public int blockForAvailableThreads() { // The present implementation always returns 1, making Quartz (1.6) // always schedule any tasks that it feels like scheduling. diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/MethodInvokingJobDetailFactoryBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/MethodInvokingJobDetailFactoryBean.java index 47c1e95a333e..9a42566bc25c 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/MethodInvokingJobDetailFactoryBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/MethodInvokingJobDetailFactoryBean.java @@ -176,14 +176,17 @@ public void setJobListenerNames(String[] names) { this.jobListenerNames = names; } + @Override public void setBeanName(String beanName) { this.beanName = beanName; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } @@ -194,6 +197,7 @@ protected Class resolveClassName(String className) throws ClassNotFoundException } + @Override public void afterPropertiesSet() throws ClassNotFoundException, NoSuchMethodException { prepare(); @@ -272,14 +276,17 @@ public Object getTargetObject() { } + @Override public JobDetail getObject() { return this.jobDetail; } + @Override public Class getObjectType() { return (this.jobDetail != null ? this.jobDetail.getClass() : JobDetail.class); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/QuartzJobBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/QuartzJobBean.java index 57095247df1e..6eebbd337da1 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/QuartzJobBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/QuartzJobBean.java @@ -92,6 +92,7 @@ public abstract class QuartzJobBean implements Job { * values, and delegates to {@code executeInternal} afterwards. * @see #executeInternal */ + @Override public final void execute(JobExecutionContext context) throws JobExecutionException { try { // Reflectively adapting to differences between Quartz 1.x and Quartz 2.0... diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/ResourceLoaderClassLoadHelper.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/ResourceLoaderClassLoadHelper.java index 5eba86a1055e..54dd55760b8e 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/ResourceLoaderClassLoadHelper.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/ResourceLoaderClassLoadHelper.java @@ -62,6 +62,7 @@ public ResourceLoaderClassLoadHelper(ResourceLoader resourceLoader) { } + @Override public void initialize() { if (this.resourceLoader == null) { this.resourceLoader = SchedulerFactoryBean.getConfigTimeResourceLoader(); @@ -71,6 +72,7 @@ public void initialize() { } } + @Override public Class loadClass(String name) throws ClassNotFoundException { return this.resourceLoader.getClassLoader().loadClass(name); } @@ -80,6 +82,7 @@ public Class loadClass(String name, Class clazz) throws Clas return loadClass(name); } + @Override public URL getResource(String name) { Resource resource = this.resourceLoader.getResource(name); try { @@ -94,6 +97,7 @@ public URL getResource(String name) { } } + @Override public InputStream getResourceAsStream(String name) { Resource resource = this.resourceLoader.getResource(name); try { @@ -108,6 +112,7 @@ public InputStream getResourceAsStream(String name) { } } + @Override public ClassLoader getClassLoader() { return this.resourceLoader.getClassLoader(); } diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessor.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessor.java index 0912399c8252..47661672c47c 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessor.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessor.java @@ -239,6 +239,7 @@ public void setTransactionManager(PlatformTransactionManager transactionManager) this.transactionManager = transactionManager; } + @Override public void setResourceLoader(ResourceLoader resourceLoader) { this.resourceLoader = resourceLoader; } diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessorBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessorBean.java index c5adb0a68aa8..fb258125ff4d 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessorBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessorBean.java @@ -73,11 +73,13 @@ public Scheduler getScheduler() { return this.scheduler; } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } + @Override public void afterPropertiesSet() throws SchedulerException { if (this.scheduler == null) { if (this.schedulerName != null) { diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerFactoryBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerFactoryBean.java index cde54d655465..2b96a9a1294e 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerFactoryBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerFactoryBean.java @@ -369,6 +369,7 @@ public void setAutoStartup(boolean autoStartup) { * the scheduler will start after the context is refreshed and after the * start delay, if any. */ + @Override public boolean isAutoStartup() { return this.autoStartup; } @@ -387,6 +388,7 @@ public void setPhase(int phase) { /** * Return the phase in which this scheduler will be started and stopped. */ + @Override public int getPhase() { return this.phase; } @@ -426,12 +428,14 @@ public void setWaitForJobsToCompleteOnShutdown(boolean waitForJobsToCompleteOnSh } + @Override public void setBeanName(String name) { if (this.schedulerName == null) { this.schedulerName = name; } } + @Override public void setApplicationContext(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } @@ -441,6 +445,7 @@ public void setApplicationContext(ApplicationContext applicationContext) { // Implementation of InitializingBean interface //--------------------------------------------------------------------- + @Override public void afterPropertiesSet() throws Exception { if (this.dataSource == null && this.nonTransactionalDataSource != null) { this.dataSource = this.nonTransactionalDataSource; @@ -689,14 +694,17 @@ public Scheduler getScheduler() { return this.scheduler; } + @Override public Scheduler getObject() { return this.scheduler; } + @Override public Class getObjectType() { return (this.scheduler != null) ? this.scheduler.getClass() : Scheduler.class; } + @Override public boolean isSingleton() { return true; } @@ -706,6 +714,7 @@ public boolean isSingleton() { // Implementation of Lifecycle interface //--------------------------------------------------------------------- + @Override public void start() throws SchedulingException { if (this.scheduler != null) { try { @@ -717,6 +726,7 @@ public void start() throws SchedulingException { } } + @Override public void stop() throws SchedulingException { if (this.scheduler != null) { try { @@ -728,11 +738,13 @@ public void stop() throws SchedulingException { } } + @Override public void stop(Runnable callback) throws SchedulingException { stop(); callback.run(); } + @Override public boolean isRunning() throws SchedulingException { if (this.scheduler != null) { try { @@ -754,6 +766,7 @@ public boolean isRunning() throws SchedulingException { * Shut down the Quartz scheduler on bean factory shutdown, * stopping all scheduled jobs. */ + @Override public void destroy() throws SchedulerException { logger.info("Shutting down Quartz Scheduler"); this.scheduler.shutdown(this.waitForJobsToCompleteOnShutdown); diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleThreadPoolTaskExecutor.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleThreadPoolTaskExecutor.java index b8d5f0bfa94d..6f5374ab21bb 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleThreadPoolTaskExecutor.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleThreadPoolTaskExecutor.java @@ -59,11 +59,13 @@ public void setWaitForJobsToCompleteOnShutdown(boolean waitForJobsToCompleteOnSh this.waitForJobsToCompleteOnShutdown = waitForJobsToCompleteOnShutdown; } + @Override public void afterPropertiesSet() throws SchedulerConfigException { initialize(); } + @Override public void execute(Runnable task) { Assert.notNull(task, "Runnable must not be null"); if (!runInThread(task)) { @@ -71,16 +73,19 @@ public void execute(Runnable task) { } } + @Override public void execute(Runnable task, long startTimeout) { execute(task); } + @Override public Future submit(Runnable task) { FutureTask future = new FutureTask(task, null); execute(future); return future; } + @Override public Future submit(Callable task) { FutureTask future = new FutureTask(task); execute(future); @@ -90,11 +95,13 @@ public Future submit(Callable task) { /** * This task executor prefers short-lived work units. */ + @Override public boolean prefersShortLivedTasks() { return true; } + @Override public void destroy() { shutdown(this.waitForJobsToCompleteOnShutdown); } diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleTriggerBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleTriggerBean.java index b35bb59ad93d..37f480e3e483 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleTriggerBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleTriggerBean.java @@ -144,15 +144,18 @@ public void setJobDetail(JobDetail jobDetail) { this.jobDetail = jobDetail; } + @Override public JobDetail getJobDetail() { return this.jobDetail; } + @Override public void setBeanName(String beanName) { this.beanName = beanName; } + @Override public void afterPropertiesSet() throws ParseException { if (getName() == null) { setName(this.beanName); diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleTriggerFactoryBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleTriggerFactoryBean.java index 15d1e901abb9..31896c7ff468 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleTriggerFactoryBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleTriggerFactoryBean.java @@ -195,11 +195,13 @@ public void setMisfireInstructionName(String constantName) { this.misfireInstruction = constants.asNumber(constantName).intValue(); } + @Override public void setBeanName(String beanName) { this.beanName = beanName; } + @Override public void afterPropertiesSet() throws ParseException { if (this.name == null) { this.name = this.beanName; @@ -266,14 +268,17 @@ else if (this.startTime == null) { } + @Override public SimpleTrigger getObject() { return this.simpleTrigger; } + @Override public Class getObjectType() { return SimpleTrigger.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SpringBeanJobFactory.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SpringBeanJobFactory.java index 8a67bb5d49fe..79784aea0f97 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SpringBeanJobFactory.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SpringBeanJobFactory.java @@ -63,6 +63,7 @@ public void setIgnoredUnknownProperties(String[] ignoredUnknownProperties) { this.ignoredUnknownProperties = ignoredUnknownProperties; } + @Override public void setSchedulerContext(SchedulerContext schedulerContext) { this.schedulerContext = schedulerContext; } diff --git a/spring-context-support/src/main/java/org/springframework/ui/freemarker/FreeMarkerConfigurationFactoryBean.java b/spring-context-support/src/main/java/org/springframework/ui/freemarker/FreeMarkerConfigurationFactoryBean.java index 32895bee90b5..4e295bbb5382 100644 --- a/spring-context-support/src/main/java/org/springframework/ui/freemarker/FreeMarkerConfigurationFactoryBean.java +++ b/spring-context-support/src/main/java/org/springframework/ui/freemarker/FreeMarkerConfigurationFactoryBean.java @@ -56,19 +56,23 @@ public class FreeMarkerConfigurationFactoryBean extends FreeMarkerConfigurationF private Configuration configuration; + @Override public void afterPropertiesSet() throws IOException, TemplateException { this.configuration = createConfiguration(); } + @Override public Configuration getObject() { return this.configuration; } + @Override public Class getObjectType() { return Configuration.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context-support/src/main/java/org/springframework/ui/freemarker/SpringTemplateLoader.java b/spring-context-support/src/main/java/org/springframework/ui/freemarker/SpringTemplateLoader.java index b3d1a3e2761c..6f1c22a62d86 100644 --- a/spring-context-support/src/main/java/org/springframework/ui/freemarker/SpringTemplateLoader.java +++ b/spring-context-support/src/main/java/org/springframework/ui/freemarker/SpringTemplateLoader.java @@ -63,6 +63,7 @@ public SpringTemplateLoader(ResourceLoader resourceLoader, String templateLoader } } + @Override public Object findTemplateSource(String name) throws IOException { if (logger.isDebugEnabled()) { logger.debug("Looking for FreeMarker template with name [" + name + "]"); @@ -71,6 +72,7 @@ public Object findTemplateSource(String name) throws IOException { return (resource.exists() ? resource : null); } + @Override public Reader getReader(Object templateSource, String encoding) throws IOException { Resource resource = (Resource) templateSource; try { @@ -85,6 +87,7 @@ public Reader getReader(Object templateSource, String encoding) throws IOExcepti } + @Override public long getLastModified(Object templateSource) { Resource resource = (Resource) templateSource; try { @@ -99,6 +102,7 @@ public long getLastModified(Object templateSource) { } } + @Override public void closeTemplateSource(Object templateSource) throws IOException { } diff --git a/spring-context-support/src/main/java/org/springframework/ui/velocity/VelocityEngineFactoryBean.java b/spring-context-support/src/main/java/org/springframework/ui/velocity/VelocityEngineFactoryBean.java index a66f75bf349b..7c45782625fb 100644 --- a/spring-context-support/src/main/java/org/springframework/ui/velocity/VelocityEngineFactoryBean.java +++ b/spring-context-support/src/main/java/org/springframework/ui/velocity/VelocityEngineFactoryBean.java @@ -53,19 +53,23 @@ public class VelocityEngineFactoryBean extends VelocityEngineFactory private VelocityEngine velocityEngine; + @Override public void afterPropertiesSet() throws IOException, VelocityException { this.velocityEngine = createVelocityEngine(); } + @Override public VelocityEngine getObject() { return this.velocityEngine; } + @Override public Class getObjectType() { return VelocityEngine.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context/src/main/java/org/springframework/cache/annotation/AbstractCachingConfiguration.java b/spring-context/src/main/java/org/springframework/cache/annotation/AbstractCachingConfiguration.java index 4937eeb5e381..222d3308f4d0 100644 --- a/spring-context/src/main/java/org/springframework/cache/annotation/AbstractCachingConfiguration.java +++ b/spring-context/src/main/java/org/springframework/cache/annotation/AbstractCachingConfiguration.java @@ -50,6 +50,7 @@ public abstract class AbstractCachingConfiguration implements ImportAware { @Autowired(required=false) private Collection cachingConfigurers; + @Override public void setImportMetadata(AnnotationMetadata importMetadata) { this.enableCaching = AnnotationAttributes.fromMap( importMetadata.getAnnotationAttributes(EnableCaching.class.getName(), false)); diff --git a/spring-context/src/main/java/org/springframework/cache/annotation/CachingConfigurationSelector.java b/spring-context/src/main/java/org/springframework/cache/annotation/CachingConfigurationSelector.java index 33c4a120a766..b4fb7e5c83a4 100644 --- a/spring-context/src/main/java/org/springframework/cache/annotation/CachingConfigurationSelector.java +++ b/spring-context/src/main/java/org/springframework/cache/annotation/CachingConfigurationSelector.java @@ -39,6 +39,7 @@ public class CachingConfigurationSelector extends AdviceModeImportSelector parseCacheAnnotations(AnnotatedElement ae) { Collection ops = null; diff --git a/spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCache.java b/spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCache.java index 54b9b6ef1428..7780357153d4 100644 --- a/spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCache.java +++ b/spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCache.java @@ -83,10 +83,12 @@ public ConcurrentMapCache(String name, ConcurrentMap store, bool } + @Override public String getName() { return this.name; } + @Override public ConcurrentMap getNativeCache() { return this.store; } @@ -95,19 +97,23 @@ public boolean isAllowNullValues() { return this.allowNullValues; } + @Override public ValueWrapper get(Object key) { Object value = this.store.get(key); return (value != null ? new SimpleValueWrapper(fromStoreValue(value)) : null); } + @Override public void put(Object key, Object value) { this.store.put(key, toStoreValue(value)); } + @Override public void evict(Object key) { this.store.remove(key); } + @Override public void clear() { this.store.clear(); } diff --git a/spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCacheFactoryBean.java b/spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCacheFactoryBean.java index 25c9f354b22a..0e0b5a8adfac 100644 --- a/spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCacheFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCacheFactoryBean.java @@ -74,26 +74,31 @@ public void setAllowNullValues(boolean allowNullValues) { this.allowNullValues = allowNullValues; } + @Override public void setBeanName(String beanName) { if (!StringUtils.hasLength(this.name)) { setName(beanName); } } + @Override public void afterPropertiesSet() { this.cache = (this.store != null ? new ConcurrentMapCache(this.name, this.store, this.allowNullValues) : new ConcurrentMapCache(this.name, this.allowNullValues)); } + @Override public ConcurrentMapCache getObject() { return this.cache; } + @Override public Class getObjectType() { return ConcurrentMapCache.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCacheManager.java b/spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCacheManager.java index 7a0067a329bf..35371d92d465 100644 --- a/spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCacheManager.java +++ b/spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCacheManager.java @@ -71,10 +71,12 @@ public void setCacheNames(Collection cacheNames) { } } + @Override public Collection getCacheNames() { return Collections.unmodifiableSet(this.cacheMap.keySet()); } + @Override public Cache getCache(String name) { Cache cache = this.cacheMap.get(name); if (cache == null && this.dynamic) { diff --git a/spring-context/src/main/java/org/springframework/cache/config/AnnotationDrivenCacheBeanDefinitionParser.java b/spring-context/src/main/java/org/springframework/cache/config/AnnotationDrivenCacheBeanDefinitionParser.java index 0b15856df325..6ed83c40267f 100644 --- a/spring-context/src/main/java/org/springframework/cache/config/AnnotationDrivenCacheBeanDefinitionParser.java +++ b/spring-context/src/main/java/org/springframework/cache/config/AnnotationDrivenCacheBeanDefinitionParser.java @@ -53,6 +53,7 @@ class AnnotationDrivenCacheBeanDefinitionParser implements BeanDefinitionParser * {@link AopNamespaceUtils#registerAutoProxyCreatorIfNecessary * register an AutoProxyCreator} with the container as necessary. */ + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { String mode = element.getAttribute("mode"); if ("aspectj".equals(mode)) { diff --git a/spring-context/src/main/java/org/springframework/cache/config/CacheNamespaceHandler.java b/spring-context/src/main/java/org/springframework/cache/config/CacheNamespaceHandler.java index ad51ad0dce77..238a3d28054a 100644 --- a/spring-context/src/main/java/org/springframework/cache/config/CacheNamespaceHandler.java +++ b/spring-context/src/main/java/org/springframework/cache/config/CacheNamespaceHandler.java @@ -51,6 +51,7 @@ static BeanDefinition parseKeyGenerator(Element element, BeanDefinition def) { return def; } + @Override public void init() { registerBeanDefinitionParser("annotation-driven", new AnnotationDrivenCacheBeanDefinitionParser()); registerBeanDefinitionParser("advice", new CacheAdviceParser()); diff --git a/spring-context/src/main/java/org/springframework/cache/interceptor/AbstractFallbackCacheOperationSource.java b/spring-context/src/main/java/org/springframework/cache/interceptor/AbstractFallbackCacheOperationSource.java index 978dbd8c3641..11dc537f03c9 100644 --- a/spring-context/src/main/java/org/springframework/cache/interceptor/AbstractFallbackCacheOperationSource.java +++ b/spring-context/src/main/java/org/springframework/cache/interceptor/AbstractFallbackCacheOperationSource.java @@ -84,6 +84,7 @@ public abstract class AbstractFallbackCacheOperationSource implements CacheOpera * @return {@link CacheOperation} for this method, or {@code null} if the method * is not cacheable */ + @Override public Collection getCacheOperations(Method method, Class targetClass) { // First, see if we have a cached value. Object cacheKey = getCacheKey(method, targetClass); diff --git a/spring-context/src/main/java/org/springframework/cache/interceptor/BeanFactoryCacheOperationSourceAdvisor.java b/spring-context/src/main/java/org/springframework/cache/interceptor/BeanFactoryCacheOperationSourceAdvisor.java index a8d4a51e7b7a..55a746f44fb0 100644 --- a/spring-context/src/main/java/org/springframework/cache/interceptor/BeanFactoryCacheOperationSourceAdvisor.java +++ b/spring-context/src/main/java/org/springframework/cache/interceptor/BeanFactoryCacheOperationSourceAdvisor.java @@ -57,6 +57,7 @@ public void setClassFilter(ClassFilter classFilter) { this.pointcut.setClassFilter(classFilter); } + @Override public Pointcut getPointcut() { return this.pointcut; } diff --git a/spring-context/src/main/java/org/springframework/cache/interceptor/CacheAspectSupport.java b/spring-context/src/main/java/org/springframework/cache/interceptor/CacheAspectSupport.java index 8e0b36889d1d..8f8fc76fd2ce 100644 --- a/spring-context/src/main/java/org/springframework/cache/interceptor/CacheAspectSupport.java +++ b/spring-context/src/main/java/org/springframework/cache/interceptor/CacheAspectSupport.java @@ -129,6 +129,7 @@ public KeyGenerator getKeyGenerator() { return this.keyGenerator; } + @Override public void afterPropertiesSet() { if (this.cacheManager == null) { throw new IllegalStateException("'cacheManager' is required"); diff --git a/spring-context/src/main/java/org/springframework/cache/interceptor/CacheInterceptor.java b/spring-context/src/main/java/org/springframework/cache/interceptor/CacheInterceptor.java index 1673165c3c23..ad4ab9721bd7 100644 --- a/spring-context/src/main/java/org/springframework/cache/interceptor/CacheInterceptor.java +++ b/spring-context/src/main/java/org/springframework/cache/interceptor/CacheInterceptor.java @@ -49,10 +49,12 @@ private static class ThrowableWrapper extends RuntimeException { } } + @Override public Object invoke(final MethodInvocation invocation) throws Throwable { Method method = invocation.getMethod(); Invoker aopAllianceInvoker = new Invoker() { + @Override public Object invoke() { try { return invocation.proceed(); diff --git a/spring-context/src/main/java/org/springframework/cache/interceptor/CacheOperationSourcePointcut.java b/spring-context/src/main/java/org/springframework/cache/interceptor/CacheOperationSourcePointcut.java index 8210297a23e2..58548bb799fa 100644 --- a/spring-context/src/main/java/org/springframework/cache/interceptor/CacheOperationSourcePointcut.java +++ b/spring-context/src/main/java/org/springframework/cache/interceptor/CacheOperationSourcePointcut.java @@ -33,6 +33,7 @@ @SuppressWarnings("serial") abstract class CacheOperationSourcePointcut extends StaticMethodMatcherPointcut implements Serializable { + @Override public boolean matches(Method method, Class targetClass) { CacheOperationSource cas = getCacheOperationSource(); return (cas != null && !CollectionUtils.isEmpty(cas.getCacheOperations(method, targetClass))); diff --git a/spring-context/src/main/java/org/springframework/cache/interceptor/CompositeCacheOperationSource.java b/spring-context/src/main/java/org/springframework/cache/interceptor/CompositeCacheOperationSource.java index e8b215285a8c..8c01c66417ab 100644 --- a/spring-context/src/main/java/org/springframework/cache/interceptor/CompositeCacheOperationSource.java +++ b/spring-context/src/main/java/org/springframework/cache/interceptor/CompositeCacheOperationSource.java @@ -52,6 +52,7 @@ public final CacheOperationSource[] getCacheOperationSources() { return this.cacheOperationSources; } + @Override public Collection getCacheOperations(Method method, Class targetClass) { Collection ops = null; diff --git a/spring-context/src/main/java/org/springframework/cache/interceptor/DefaultKeyGenerator.java b/spring-context/src/main/java/org/springframework/cache/interceptor/DefaultKeyGenerator.java index 619bd51ca73e..a37218804a8c 100644 --- a/spring-context/src/main/java/org/springframework/cache/interceptor/DefaultKeyGenerator.java +++ b/spring-context/src/main/java/org/springframework/cache/interceptor/DefaultKeyGenerator.java @@ -36,6 +36,7 @@ public class DefaultKeyGenerator implements KeyGenerator { public static final int NO_PARAM_KEY = 0; public static final int NULL_PARAM_KEY = 53; + @Override public Object generate(Object target, Method method, Object... params) { if (params.length == 1) { return (params[0] == null ? NULL_PARAM_KEY : params[0]); diff --git a/spring-context/src/main/java/org/springframework/cache/interceptor/NameMatchCacheOperationSource.java b/spring-context/src/main/java/org/springframework/cache/interceptor/NameMatchCacheOperationSource.java index 986f8d05cdd1..c1cbdc0e9b20 100644 --- a/spring-context/src/main/java/org/springframework/cache/interceptor/NameMatchCacheOperationSource.java +++ b/spring-context/src/main/java/org/springframework/cache/interceptor/NameMatchCacheOperationSource.java @@ -71,6 +71,7 @@ public void addCacheMethod(String methodName, Collection ops) { this.nameMap.put(methodName, ops); } + @Override public Collection getCacheOperations(Method method, Class targetClass) { // look for direct name match String methodName = method.getName(); diff --git a/spring-context/src/main/java/org/springframework/cache/support/AbstractCacheManager.java b/spring-context/src/main/java/org/springframework/cache/support/AbstractCacheManager.java index 29a5a98973b5..364472409b40 100644 --- a/spring-context/src/main/java/org/springframework/cache/support/AbstractCacheManager.java +++ b/spring-context/src/main/java/org/springframework/cache/support/AbstractCacheManager.java @@ -42,6 +42,7 @@ public abstract class AbstractCacheManager implements CacheManager, Initializing private Set cacheNames = new LinkedHashSet(16); + @Override public void afterPropertiesSet() { Collection caches = loadCaches(); @@ -70,10 +71,12 @@ protected Cache decorateCache(Cache cache) { } + @Override public Cache getCache(String name) { return this.cacheMap.get(name); } + @Override public Collection getCacheNames() { return Collections.unmodifiableSet(this.cacheNames); } diff --git a/spring-context/src/main/java/org/springframework/cache/support/CompositeCacheManager.java b/spring-context/src/main/java/org/springframework/cache/support/CompositeCacheManager.java index b9d81ae15f5c..3d64b770e0c3 100644 --- a/spring-context/src/main/java/org/springframework/cache/support/CompositeCacheManager.java +++ b/spring-context/src/main/java/org/springframework/cache/support/CompositeCacheManager.java @@ -59,6 +59,7 @@ public void setFallbackToNoOpCache(boolean fallbackToNoOpCache) { this.fallbackToNoOpCache = fallbackToNoOpCache; } + @Override public void afterPropertiesSet() { if (this.fallbackToNoOpCache) { this.cacheManagers.add(new NoOpCacheManager()); @@ -66,6 +67,7 @@ public void afterPropertiesSet() { } + @Override public Cache getCache(String name) { for (CacheManager cacheManager : this.cacheManagers) { Cache cache = cacheManager.getCache(name); @@ -76,6 +78,7 @@ public Cache getCache(String name) { return null; } + @Override public Collection getCacheNames() { List names = new ArrayList(); for (CacheManager manager : this.cacheManagers) { diff --git a/spring-context/src/main/java/org/springframework/cache/support/NoOpCacheManager.java b/spring-context/src/main/java/org/springframework/cache/support/NoOpCacheManager.java index dc3203e6cf8a..f8ffe0e72987 100644 --- a/spring-context/src/main/java/org/springframework/cache/support/NoOpCacheManager.java +++ b/spring-context/src/main/java/org/springframework/cache/support/NoOpCacheManager.java @@ -48,6 +48,7 @@ public class NoOpCacheManager implements CacheManager { * This implementation always returns a {@link Cache} implementation that will not store items. * Additionally, the request cache will be remembered by the manager for consistency. */ + @Override public Cache getCache(String name) { Cache cache = this.caches.get(name); if (cache == null) { @@ -63,6 +64,7 @@ public Cache getCache(String name) { /** * This implementation returns the name of the caches previously requested. */ + @Override public Collection getCacheNames() { synchronized (this.cacheNames) { return Collections.unmodifiableSet(this.cacheNames); @@ -78,24 +80,30 @@ public NoOpCache(String name) { this.name = name; } + @Override public void clear() { } + @Override public void evict(Object key) { } + @Override public ValueWrapper get(Object key) { return null; } + @Override public String getName() { return this.name; } + @Override public Object getNativeCache() { return null; } + @Override public void put(Object key, Object value) { } } diff --git a/spring-context/src/main/java/org/springframework/cache/support/SimpleValueWrapper.java b/spring-context/src/main/java/org/springframework/cache/support/SimpleValueWrapper.java index 3b687a86dea3..b248902038b8 100644 --- a/spring-context/src/main/java/org/springframework/cache/support/SimpleValueWrapper.java +++ b/spring-context/src/main/java/org/springframework/cache/support/SimpleValueWrapper.java @@ -42,6 +42,7 @@ public SimpleValueWrapper(Object value) { /** * Simply returns the value as given at construction time. */ + @Override public Object get() { return this.value; } diff --git a/spring-context/src/main/java/org/springframework/context/ConfigurableApplicationContext.java b/spring-context/src/main/java/org/springframework/context/ConfigurableApplicationContext.java index 9d0bdc4b7cb0..09048cbe1fb9 100644 --- a/spring-context/src/main/java/org/springframework/context/ConfigurableApplicationContext.java +++ b/spring-context/src/main/java/org/springframework/context/ConfigurableApplicationContext.java @@ -100,6 +100,7 @@ public interface ConfigurableApplicationContext extends ApplicationContext, Life /** * Return the Environment for this application context in configurable form. */ + @Override ConfigurableEnvironment getEnvironment(); /** @@ -158,6 +159,7 @@ public interface ConfigurableApplicationContext extends ApplicationContext, Life *

This method can be called multiple times without side effects: Subsequent * {@code close} calls on an already closed context will be ignored. */ + @Override void close(); /** diff --git a/spring-context/src/main/java/org/springframework/context/access/ContextBeanFactoryReference.java b/spring-context/src/main/java/org/springframework/context/access/ContextBeanFactoryReference.java index b39ae885901d..f978a3db4255 100644 --- a/spring-context/src/main/java/org/springframework/context/access/ContextBeanFactoryReference.java +++ b/spring-context/src/main/java/org/springframework/context/access/ContextBeanFactoryReference.java @@ -48,6 +48,7 @@ public ContextBeanFactoryReference(ApplicationContext applicationContext) { } + @Override public BeanFactory getFactory() { if (this.applicationContext == null) { throw new IllegalStateException( @@ -56,6 +57,7 @@ public BeanFactory getFactory() { return this.applicationContext; } + @Override public void release() { if (this.applicationContext != null) { ApplicationContext savedCtx; diff --git a/spring-context/src/main/java/org/springframework/context/access/ContextJndiBeanFactoryLocator.java b/spring-context/src/main/java/org/springframework/context/access/ContextJndiBeanFactoryLocator.java index 54b66347ade4..fe9493824b5c 100644 --- a/spring-context/src/main/java/org/springframework/context/access/ContextJndiBeanFactoryLocator.java +++ b/spring-context/src/main/java/org/springframework/context/access/ContextJndiBeanFactoryLocator.java @@ -57,6 +57,7 @@ public class ContextJndiBeanFactoryLocator extends JndiLocatorSupport implements * will be created from the combined resources. * @see #createBeanFactory */ + @Override public BeanFactoryReference useBeanFactory(String factoryKey) throws BeansException { try { String beanFactoryPath = lookup(factoryKey, String.class); diff --git a/spring-context/src/main/java/org/springframework/context/annotation/AdviceModeImportSelector.java b/spring-context/src/main/java/org/springframework/context/annotation/AdviceModeImportSelector.java index eae51ec25169..826214448b4e 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/AdviceModeImportSelector.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/AdviceModeImportSelector.java @@ -65,6 +65,7 @@ protected String getAdviceModeAttributeName() { * on the importing {@code @Configuration} class or if {@link #selectImports(AdviceMode)} * returns {@code null} */ + @Override public final String[] selectImports(AnnotationMetadata importingClassMetadata) { Class annoType = GenericTypeResolver.resolveTypeArgument(this.getClass(), AdviceModeImportSelector.class); diff --git a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationBeanNameGenerator.java b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationBeanNameGenerator.java index c09600998c0c..00d2f9810d90 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationBeanNameGenerator.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationBeanNameGenerator.java @@ -64,6 +64,7 @@ public class AnnotationBeanNameGenerator implements BeanNameGenerator { private static final String COMPONENT_ANNOTATION_CLASSNAME = "org.springframework.stereotype.Component"; + @Override public String generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry) { if (definition instanceof AnnotatedBeanDefinition) { String beanName = determineBeanNameFromAnnotation((AnnotatedBeanDefinition) definition); diff --git a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigBeanDefinitionParser.java b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigBeanDefinitionParser.java index 7d8feebd6fc4..de52f2e6d326 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigBeanDefinitionParser.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigBeanDefinitionParser.java @@ -38,6 +38,7 @@ */ public class AnnotationConfigBeanDefinitionParser implements BeanDefinitionParser { + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { Object source = parserContext.extractSource(element); diff --git a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationScopeMetadataResolver.java b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationScopeMetadataResolver.java index 6a7db8bd313b..788f8043c6a7 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationScopeMetadataResolver.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationScopeMetadataResolver.java @@ -74,6 +74,7 @@ public void setScopeAnnotationType(Class scopeAnnotationTy } + @Override public ScopeMetadata resolveScopeMetadata(BeanDefinition definition) { ScopeMetadata metadata = new ScopeMetadata(); if (definition instanceof AnnotatedBeanDefinition) { diff --git a/spring-context/src/main/java/org/springframework/context/annotation/AspectJAutoProxyRegistrar.java b/spring-context/src/main/java/org/springframework/context/annotation/AspectJAutoProxyRegistrar.java index aedbbbe28e25..5b3c522d8fb2 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/AspectJAutoProxyRegistrar.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/AspectJAutoProxyRegistrar.java @@ -39,6 +39,7 @@ class AspectJAutoProxyRegistrar implements ImportBeanDefinitionRegistrar { * of the @{@link EnableAspectJAutoProxy#proxyTargetClass()} attribute on the importing * {@code @Configuration} class. */ + @Override public void registerBeanDefinitions( AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { diff --git a/spring-context/src/main/java/org/springframework/context/annotation/AutoProxyRegistrar.java b/spring-context/src/main/java/org/springframework/context/annotation/AutoProxyRegistrar.java index 5fcd8a572d0f..e0fde7df8fd0 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/AutoProxyRegistrar.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/AutoProxyRegistrar.java @@ -56,6 +56,7 @@ public class AutoProxyRegistrar implements ImportBeanDefinitionRegistrar { * {@code proxyTargetClass} attributes, the APC can be registered and configured all * the same. */ + @Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { boolean candidateFound = false; Set annoTypes = importingClassMetadata.getAnnotationTypes(); diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ClassPathScanningCandidateComponentProvider.java b/spring-context/src/main/java/org/springframework/context/annotation/ClassPathScanningCandidateComponentProvider.java index 6dacb49d6042..5e1dd4b18ab2 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ClassPathScanningCandidateComponentProvider.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ClassPathScanningCandidateComponentProvider.java @@ -117,6 +117,7 @@ public ClassPathScanningCandidateComponentProvider(boolean useDefaultFilters, En * @see org.springframework.core.io.support.ResourcePatternResolver * @see org.springframework.core.io.support.PathMatchingResourcePatternResolver */ + @Override public void setResourceLoader(ResourceLoader resourceLoader) { this.resourcePatternResolver = ResourcePatternUtils.getResourcePatternResolver(resourceLoader); this.metadataReaderFactory = new CachingMetadataReaderFactory(resourceLoader); @@ -157,6 +158,7 @@ public void setEnvironment(Environment environment) { this.environment = environment; } + @Override public final Environment getEnvironment() { return this.environment; } diff --git a/spring-context/src/main/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.java b/spring-context/src/main/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.java index 686424815eb6..3fa88f5328a4 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.java @@ -266,6 +266,7 @@ public void setResourceFactory(BeanFactory resourceFactory) { this.resourceFactory = resourceFactory; } + @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { Assert.notNull(beanFactory, "BeanFactory must not be null"); this.beanFactory = beanFactory; @@ -284,14 +285,17 @@ public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, C } } + @Override public Object postProcessBeforeInstantiation(Class beanClass, String beanName) throws BeansException { return null; } + @Override public boolean postProcessAfterInstantiation(Object bean, String beanName) throws BeansException { return true; } + @Override public PropertyValues postProcessPropertyValues( PropertyValues pvs, PropertyDescriptor[] pds, Object bean, String beanName) throws BeansException { diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ComponentScanBeanDefinitionParser.java b/spring-context/src/main/java/org/springframework/context/annotation/ComponentScanBeanDefinitionParser.java index a35bd818b5a0..2ef0ad17afd3 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ComponentScanBeanDefinitionParser.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ComponentScanBeanDefinitionParser.java @@ -75,6 +75,7 @@ public class ComponentScanBeanDefinitionParser implements BeanDefinitionParser { private static final String FILTER_EXPRESSION_ATTRIBUTE = "expression"; + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { String[] basePackages = StringUtils.tokenizeToStringArray(element.getAttribute(BASE_PACKAGE_ATTRIBUTE), ConfigurableApplicationContext.CONFIG_LOCATION_DELIMITERS); diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConditionalAnnotationHelper.java b/spring-context/src/main/java/org/springframework/context/annotation/ConditionalAnnotationHelper.java index acd766ea48b8..0eba19767234 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConditionalAnnotationHelper.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConditionalAnnotationHelper.java @@ -183,19 +183,23 @@ private Environment deduceEnvironment(BeanDefinitionRegistry registry) { return null; } + @Override public BeanDefinitionRegistry getRegistry() { return this.registry; } + @Override public Environment getEnvironment() { return this.environment; } + @Override public ConfigurableListableBeanFactory getBeanFactory() { Assert.state(this.beanFactory != null, "Unable to locate the BeanFactory"); return this.beanFactory; } + @Override public ResourceLoader getResourceLoader() { if (registry instanceof ResourceLoader) { return (ResourceLoader) registry; @@ -203,6 +207,7 @@ public ResourceLoader getResourceLoader() { return null; } + @Override public ClassLoader getClassLoader() { ResourceLoader resourceLoader = getResourceLoader(); return (resourceLoader == null ? null : resourceLoader.getClassLoader()); diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java index eab2b0bd26bd..27f417f65597 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java @@ -326,6 +326,7 @@ private ConfigurationClassBeanDefinition(ConfigurationClassBeanDefinition origin this.annotationMetadata = original.annotationMetadata; } + @Override public AnnotationMetadata getMetadata() { return this.annotationMetadata; } diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassEnhancer.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassEnhancer.java index 1b22b43db14e..967f8f231eb6 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassEnhancer.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassEnhancer.java @@ -206,12 +206,14 @@ public Class[] getCallbackTypes() { private static class DisposableBeanMethodInterceptor implements MethodInterceptor, ConditionalCallback { + @Override public boolean isMatch(Method candidateMethod) { return candidateMethod.getName().equals("destroy") && candidateMethod.getParameterTypes().length == 0 && DisposableBean.class.isAssignableFrom(candidateMethod.getDeclaringClass()); } + @Override public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { Enhancer.registerStaticCallbacks(obj.getClass(), null); // does the actual (non-CGLIB) superclass actually implement DisposableBean? @@ -235,6 +237,7 @@ public Object intercept(Object obj, Method method, Object[] args, MethodProxy pr private static class BeanFactoryAwareMethodInterceptor implements MethodInterceptor, ConditionalCallback { + @Override public boolean isMatch(Method candidateMethod) { return candidateMethod.getName().equals("setBeanFactory") && candidateMethod.getParameterTypes().length == 1 @@ -242,6 +245,7 @@ public boolean isMatch(Method candidateMethod) { && BeanFactoryAware.class.isAssignableFrom(candidateMethod.getDeclaringClass()); } + @Override public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { Field field = obj.getClass().getDeclaredField(BEAN_FACTORY_FIELD); @@ -266,6 +270,7 @@ public Object intercept(Object obj, Method method, Object[] args, */ private static class BeanMethodInterceptor implements MethodInterceptor, ConditionalCallback { + @Override public boolean isMatch(Method candidateMethod) { return BeanAnnotationHelper.isBeanAnnotated(candidateMethod); } @@ -277,6 +282,7 @@ public boolean isMatch(Method candidateMethod) { * invoking the super implementation of the proxied method i.e., the actual * {@code @Bean} method. */ + @Override public Object intercept(Object enhancedConfigInstance, Method beanMethod, Object[] beanMethodArgs, MethodProxy cglibMethodProxy) throws Throwable { @@ -389,6 +395,7 @@ private Object enhanceFactoryBean(Class fbClass, final ConfigurableBeanFactor enhancer.setSuperclass(fbClass); enhancer.setUseFactory(false); enhancer.setCallback(new MethodInterceptor() { + @Override public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { if (method.getName().equals("getObject") && args.length == 0) { diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java index 5b1736fd6f2c..5633a76f26c2 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java @@ -90,6 +90,7 @@ class ConfigurationClassParser { private static final Comparator DEFERRED_IMPORT_COMPARATOR = new Comparator() { + @Override public int compare(DeferredImportSelectorHolder o1, DeferredImportSelectorHolder o2) { return AnnotationAwareOrderComparator.INSTANCE.compare( @@ -535,6 +536,7 @@ public void registerImport(String importingClass, String importedClass) { this.imports.put(importedClass, importingClass); } + @Override public String getImportingClassFor(String importedClass) { return this.imports.get(importedClass); } @@ -548,6 +550,7 @@ public String getImportingClassFor(String importedClass) { public boolean contains(Object elem) { ConfigurationClass configClass = (ConfigurationClass) elem; Comparator comparator = new Comparator() { + @Override public int compare(ConfigurationClass first, ConfigurationClass second) { return first.getMetadata().getClassName().equals(second.getMetadata().getClassName()) ? 0 : 1; } diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java index ae3645c10ec1..944fd051f289 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java @@ -184,16 +184,19 @@ public void setBeanNameGenerator(BeanNameGenerator beanNameGenerator) { this.importBeanNameGenerator = beanNameGenerator; } + @Override public void setEnvironment(Environment environment) { Assert.notNull(environment, "Environment must not be null"); this.environment = environment; } + @Override public void setResourceLoader(ResourceLoader resourceLoader) { Assert.notNull(resourceLoader, "ResourceLoader must not be null"); this.resourceLoader = resourceLoader; } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; if (!this.setMetadataReaderFactoryCalled) { @@ -205,6 +208,7 @@ public void setBeanClassLoader(ClassLoader beanClassLoader) { /** * Derive further bean definitions from the configuration classes in the registry. */ + @Override public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) { RootBeanDefinition iabpp = new RootBeanDefinition(ImportAwareBeanPostProcessor.class); iabpp.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); @@ -228,6 +232,7 @@ public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) { * Prepare the Configuration classes for servicing bean requests at runtime * by replacing them with CGLIB-enhanced subclasses. */ + @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) { int factoryId = System.identityHashCode(beanFactory); if (this.factoriesPostProcessed.contains(factoryId)) { @@ -366,10 +371,12 @@ private static class ImportAwareBeanPostProcessor implements PriorityOrdered, Be private BeanFactory beanFactory; + @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { this.beanFactory = beanFactory; } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof ImportAware) { ImportRegistry importRegistry = this.beanFactory.getBean(IMPORT_REGISTRY_BEAN_NAME, ImportRegistry.class); @@ -392,10 +399,12 @@ public Object postProcessBeforeInitialization(Object bean, String beanName) thro return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { return bean; } + @Override public int getOrder() { return Ordered.HIGHEST_PRECEDENCE; } diff --git a/spring-context/src/main/java/org/springframework/context/annotation/Jsr330ScopeMetadataResolver.java b/spring-context/src/main/java/org/springframework/context/annotation/Jsr330ScopeMetadataResolver.java index 649f1acc42d9..47b6395fbd19 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/Jsr330ScopeMetadataResolver.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/Jsr330ScopeMetadataResolver.java @@ -81,6 +81,7 @@ protected String resolveScopeName(String annotationType) { } + @Override public ScopeMetadata resolveScopeMetadata(BeanDefinition definition) { ScopeMetadata metadata = new ScopeMetadata(); metadata.setScopeName(BeanDefinition.SCOPE_PROTOTYPE); diff --git a/spring-context/src/main/java/org/springframework/context/annotation/LoadTimeWeavingConfiguration.java b/spring-context/src/main/java/org/springframework/context/annotation/LoadTimeWeavingConfiguration.java index b590da4c1856..efc2a0e30e42 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/LoadTimeWeavingConfiguration.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/LoadTimeWeavingConfiguration.java @@ -52,6 +52,7 @@ public class LoadTimeWeavingConfiguration implements ImportAware, BeanClassLoade private ClassLoader beanClassLoader; + @Override public void setImportMetadata(AnnotationMetadata importMetadata) { this.enableLTW = MetadataUtils.attributesFor(importMetadata, EnableLoadTimeWeaving.class); Assert.notNull(this.enableLTW, @@ -59,6 +60,7 @@ public void setImportMetadata(AnnotationMetadata importMetadata) { importMetadata.getClassName()); } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } diff --git a/spring-context/src/main/java/org/springframework/context/annotation/MBeanExportConfiguration.java b/spring-context/src/main/java/org/springframework/context/annotation/MBeanExportConfiguration.java index f9d38ecefde6..d2f0bb2b5beb 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/MBeanExportConfiguration.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/MBeanExportConfiguration.java @@ -56,6 +56,7 @@ public class MBeanExportConfiguration implements ImportAware, BeanFactoryAware { private BeanFactory beanFactory; + @Override public void setImportMetadata(AnnotationMetadata importMetadata) { Map map = importMetadata.getAnnotationAttributes(EnableMBeanExport.class.getName()); this.attributes = AnnotationAttributes.fromMap(map); @@ -63,6 +64,7 @@ public void setImportMetadata(AnnotationMetadata importMetadata) { "importing class " + importMetadata.getClassName()); } + @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { this.beanFactory = beanFactory; } diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ProfileCondition.java b/spring-context/src/main/java/org/springframework/context/annotation/ProfileCondition.java index 424e20ae0981..df1095c15dde 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ProfileCondition.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ProfileCondition.java @@ -29,6 +29,7 @@ */ class ProfileCondition implements Condition { + @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { if (context.getEnvironment() != null && metadata.isAnnotated(Profile.class.getName())) { AnnotationAttributes profile = AnnotationAttributes.fromMap(metadata.getAnnotationAttributes(Profile.class.getName())); diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ScannedGenericBeanDefinition.java b/spring-context/src/main/java/org/springframework/context/annotation/ScannedGenericBeanDefinition.java index b5afe9f6de61..7ed9bed6fe69 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ScannedGenericBeanDefinition.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ScannedGenericBeanDefinition.java @@ -61,6 +61,7 @@ public ScannedGenericBeanDefinition(MetadataReader metadataReader) { } + @Override public final AnnotationMetadata getMetadata() { return this.metadata; } diff --git a/spring-context/src/main/java/org/springframework/context/config/ContextNamespaceHandler.java b/spring-context/src/main/java/org/springframework/context/config/ContextNamespaceHandler.java index 1a758b60a940..f85d09d0ab95 100644 --- a/spring-context/src/main/java/org/springframework/context/config/ContextNamespaceHandler.java +++ b/spring-context/src/main/java/org/springframework/context/config/ContextNamespaceHandler.java @@ -30,6 +30,7 @@ */ public class ContextNamespaceHandler extends NamespaceHandlerSupport { + @Override public void init() { registerBeanDefinitionParser("property-placeholder", new PropertyPlaceholderBeanDefinitionParser()); registerBeanDefinitionParser("property-override", new PropertyOverrideBeanDefinitionParser()); diff --git a/spring-context/src/main/java/org/springframework/context/config/SpringConfiguredBeanDefinitionParser.java b/spring-context/src/main/java/org/springframework/context/config/SpringConfiguredBeanDefinitionParser.java index c7198a283784..3d61447fc3c9 100644 --- a/spring-context/src/main/java/org/springframework/context/config/SpringConfiguredBeanDefinitionParser.java +++ b/spring-context/src/main/java/org/springframework/context/config/SpringConfiguredBeanDefinitionParser.java @@ -43,6 +43,7 @@ class SpringConfiguredBeanDefinitionParser implements BeanDefinitionParser { "org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect"; + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { if (!parserContext.getRegistry().containsBeanDefinition(BEAN_CONFIGURER_ASPECT_BEAN_NAME)) { RootBeanDefinition def = new RootBeanDefinition(); diff --git a/spring-context/src/main/java/org/springframework/context/event/AbstractApplicationEventMulticaster.java b/spring-context/src/main/java/org/springframework/context/event/AbstractApplicationEventMulticaster.java index 055b5e59db84..35a3ed3288ee 100644 --- a/spring-context/src/main/java/org/springframework/context/event/AbstractApplicationEventMulticaster.java +++ b/spring-context/src/main/java/org/springframework/context/event/AbstractApplicationEventMulticaster.java @@ -58,6 +58,7 @@ public abstract class AbstractApplicationEventMulticaster implements Application private BeanFactory beanFactory; + @Override public void addApplicationListener(ApplicationListener listener) { synchronized (this.defaultRetriever) { this.defaultRetriever.applicationListeners.add(listener); @@ -65,6 +66,7 @@ public void addApplicationListener(ApplicationListener listener) { } } + @Override public void addApplicationListenerBean(String listenerBeanName) { synchronized (this.defaultRetriever) { this.defaultRetriever.applicationListenerBeans.add(listenerBeanName); @@ -72,6 +74,7 @@ public void addApplicationListenerBean(String listenerBeanName) { } } + @Override public void removeApplicationListener(ApplicationListener listener) { synchronized (this.defaultRetriever) { this.defaultRetriever.applicationListeners.remove(listener); @@ -79,6 +82,7 @@ public void removeApplicationListener(ApplicationListener listener) { } } + @Override public void removeApplicationListenerBean(String listenerBeanName) { synchronized (this.defaultRetriever) { this.defaultRetriever.applicationListenerBeans.remove(listenerBeanName); @@ -86,6 +90,7 @@ public void removeApplicationListenerBean(String listenerBeanName) { } } + @Override public void removeAllListeners() { synchronized (this.defaultRetriever) { this.defaultRetriever.applicationListeners.clear(); @@ -94,6 +99,7 @@ public void removeAllListeners() { } } + @Override public final void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } diff --git a/spring-context/src/main/java/org/springframework/context/event/EventPublicationInterceptor.java b/spring-context/src/main/java/org/springframework/context/event/EventPublicationInterceptor.java index ef32c7b6f7c1..0ff440e34c7b 100644 --- a/spring-context/src/main/java/org/springframework/context/event/EventPublicationInterceptor.java +++ b/spring-context/src/main/java/org/springframework/context/event/EventPublicationInterceptor.java @@ -77,10 +77,12 @@ public void setApplicationEventClass(Class applicationEventClass) { } } + @Override public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) { this.applicationEventPublisher = applicationEventPublisher; } + @Override public void afterPropertiesSet() throws Exception { if (this.applicationEventClassConstructor == null) { throw new IllegalArgumentException("applicationEventClass is required"); @@ -88,6 +90,7 @@ public void afterPropertiesSet() throws Exception { } + @Override public Object invoke(MethodInvocation invocation) throws Throwable { Object retVal = invocation.proceed(); diff --git a/spring-context/src/main/java/org/springframework/context/event/GenericApplicationListenerAdapter.java b/spring-context/src/main/java/org/springframework/context/event/GenericApplicationListenerAdapter.java index fa31558fcaad..8c7f6e6d575b 100644 --- a/spring-context/src/main/java/org/springframework/context/event/GenericApplicationListenerAdapter.java +++ b/spring-context/src/main/java/org/springframework/context/event/GenericApplicationListenerAdapter.java @@ -46,11 +46,13 @@ public GenericApplicationListenerAdapter(ApplicationListener delegate) { } + @Override @SuppressWarnings("unchecked") public void onApplicationEvent(ApplicationEvent event) { this.delegate.onApplicationEvent(event); } + @Override public boolean supportsEventType(Class eventType) { Class typeArg = GenericTypeResolver.resolveTypeArgument(this.delegate.getClass(), ApplicationListener.class); if (typeArg == null || typeArg.equals(ApplicationEvent.class)) { @@ -62,10 +64,12 @@ public boolean supportsEventType(Class eventType) { return (typeArg == null || typeArg.isAssignableFrom(eventType)); } + @Override public boolean supportsSourceType(Class sourceType) { return true; } + @Override public int getOrder() { return (this.delegate instanceof Ordered ? ((Ordered) this.delegate).getOrder() : Ordered.LOWEST_PRECEDENCE); } diff --git a/spring-context/src/main/java/org/springframework/context/event/SimpleApplicationEventMulticaster.java b/spring-context/src/main/java/org/springframework/context/event/SimpleApplicationEventMulticaster.java index 71e4ec536940..964b1875164f 100644 --- a/spring-context/src/main/java/org/springframework/context/event/SimpleApplicationEventMulticaster.java +++ b/spring-context/src/main/java/org/springframework/context/event/SimpleApplicationEventMulticaster.java @@ -81,12 +81,14 @@ protected Executor getTaskExecutor() { } + @Override @SuppressWarnings("unchecked") public void multicastEvent(final ApplicationEvent event) { for (final ApplicationListener listener : getApplicationListeners(event)) { Executor executor = getTaskExecutor(); if (executor != null) { executor.execute(new Runnable() { + @Override public void run() { listener.onApplicationEvent(event); } diff --git a/spring-context/src/main/java/org/springframework/context/event/SourceFilteringListener.java b/spring-context/src/main/java/org/springframework/context/event/SourceFilteringListener.java index a9326c5b168a..ff1f4bb2d1a6 100644 --- a/spring-context/src/main/java/org/springframework/context/event/SourceFilteringListener.java +++ b/spring-context/src/main/java/org/springframework/context/event/SourceFilteringListener.java @@ -63,20 +63,24 @@ protected SourceFilteringListener(Object source) { } + @Override public void onApplicationEvent(ApplicationEvent event) { if (event.getSource() == this.source) { onApplicationEventInternal(event); } } + @Override public boolean supportsEventType(Class eventType) { return (this.delegate == null || this.delegate.supportsEventType(eventType)); } + @Override public boolean supportsSourceType(Class sourceType) { return sourceType.isInstance(this.source); } + @Override public int getOrder() { return (this.delegate != null ? this.delegate.getOrder() : Ordered.LOWEST_PRECEDENCE); } diff --git a/spring-context/src/main/java/org/springframework/context/expression/BeanExpressionContextAccessor.java b/spring-context/src/main/java/org/springframework/context/expression/BeanExpressionContextAccessor.java index ff577e3a2252..0f1a16194835 100644 --- a/spring-context/src/main/java/org/springframework/context/expression/BeanExpressionContextAccessor.java +++ b/spring-context/src/main/java/org/springframework/context/expression/BeanExpressionContextAccessor.java @@ -32,22 +32,27 @@ */ public class BeanExpressionContextAccessor implements PropertyAccessor { + @Override public boolean canRead(EvaluationContext context, Object target, String name) throws AccessException { return ((BeanExpressionContext) target).containsObject(name); } + @Override public TypedValue read(EvaluationContext context, Object target, String name) throws AccessException { return new TypedValue(((BeanExpressionContext) target).getObject(name)); } + @Override public boolean canWrite(EvaluationContext context, Object target, String name) throws AccessException { return false; } + @Override public void write(EvaluationContext context, Object target, String name, Object newValue) throws AccessException { throw new AccessException("Beans in a BeanFactory are read-only"); } + @Override public Class[] getSpecificTargetClasses() { return new Class[] {BeanExpressionContext.class}; } diff --git a/spring-context/src/main/java/org/springframework/context/expression/BeanFactoryAccessor.java b/spring-context/src/main/java/org/springframework/context/expression/BeanFactoryAccessor.java index 764af2bfce4f..15d3d7a6225d 100644 --- a/spring-context/src/main/java/org/springframework/context/expression/BeanFactoryAccessor.java +++ b/spring-context/src/main/java/org/springframework/context/expression/BeanFactoryAccessor.java @@ -32,22 +32,27 @@ */ public class BeanFactoryAccessor implements PropertyAccessor { + @Override public boolean canRead(EvaluationContext context, Object target, String name) throws AccessException { return (((BeanFactory) target).containsBean(name)); } + @Override public TypedValue read(EvaluationContext context, Object target, String name) throws AccessException { return new TypedValue(((BeanFactory) target).getBean(name)); } + @Override public boolean canWrite(EvaluationContext context, Object target, String name) throws AccessException { return false; } + @Override public void write(EvaluationContext context, Object target, String name, Object newValue) throws AccessException { throw new AccessException("Beans in a BeanFactory are read-only"); } + @Override public Class[] getSpecificTargetClasses() { return new Class[] {BeanFactory.class}; } diff --git a/spring-context/src/main/java/org/springframework/context/expression/BeanFactoryResolver.java b/spring-context/src/main/java/org/springframework/context/expression/BeanFactoryResolver.java index 7cec68cfc49e..94ecbe74a066 100644 --- a/spring-context/src/main/java/org/springframework/context/expression/BeanFactoryResolver.java +++ b/spring-context/src/main/java/org/springframework/context/expression/BeanFactoryResolver.java @@ -39,6 +39,7 @@ public BeanFactoryResolver(BeanFactory beanFactory) { this.beanFactory = beanFactory; } + @Override public Object resolve(EvaluationContext context, String beanName) throws AccessException { try { return this.beanFactory.getBean(beanName); diff --git a/spring-context/src/main/java/org/springframework/context/expression/EnvironmentAccessor.java b/spring-context/src/main/java/org/springframework/context/expression/EnvironmentAccessor.java index f7b1d0d303ac..86893f3daa9d 100644 --- a/spring-context/src/main/java/org/springframework/context/expression/EnvironmentAccessor.java +++ b/spring-context/src/main/java/org/springframework/context/expression/EnvironmentAccessor.java @@ -31,6 +31,7 @@ */ public class EnvironmentAccessor implements PropertyAccessor { + @Override public Class[] getSpecificTargetClasses() { return new Class[] { Environment.class }; } @@ -39,6 +40,7 @@ public Class[] getSpecificTargetClasses() { * Can read any {@link Environment}, thus always returns true. * @return true */ + @Override public boolean canRead(EvaluationContext context, Object target, String name) throws AccessException { return true; } @@ -47,6 +49,7 @@ public boolean canRead(EvaluationContext context, Object target, String name) th * Access the given target object by resolving the given property name against the given target * environment. */ + @Override public TypedValue read(EvaluationContext context, Object target, String name) throws AccessException { return new TypedValue(((Environment)target).getProperty(name)); } @@ -55,6 +58,7 @@ public TypedValue read(EvaluationContext context, Object target, String name) th * Read only. * @return false */ + @Override public boolean canWrite(EvaluationContext context, Object target, String name) throws AccessException { return false; } @@ -62,6 +66,7 @@ public boolean canWrite(EvaluationContext context, Object target, String name) t /** * Read only. No-op. */ + @Override public void write(EvaluationContext context, Object target, String name, Object newValue) throws AccessException { } diff --git a/spring-context/src/main/java/org/springframework/context/expression/MapAccessor.java b/spring-context/src/main/java/org/springframework/context/expression/MapAccessor.java index 155fefbbc1b6..7f4de09daf9a 100644 --- a/spring-context/src/main/java/org/springframework/context/expression/MapAccessor.java +++ b/spring-context/src/main/java/org/springframework/context/expression/MapAccessor.java @@ -33,11 +33,13 @@ */ public class MapAccessor implements PropertyAccessor { + @Override public boolean canRead(EvaluationContext context, Object target, String name) throws AccessException { Map map = (Map) target; return map.containsKey(name); } + @Override public TypedValue read(EvaluationContext context, Object target, String name) throws AccessException { Map map = (Map) target; Object value = map.get(name); @@ -47,16 +49,19 @@ public TypedValue read(EvaluationContext context, Object target, String name) th return new TypedValue(value); } + @Override public boolean canWrite(EvaluationContext context, Object target, String name) throws AccessException { return true; } + @Override @SuppressWarnings("unchecked") public void write(EvaluationContext context, Object target, String name, Object newValue) throws AccessException { Map map = (Map) target; map.put(name, newValue); } + @Override public Class[] getSpecificTargetClasses() { return new Class[] {Map.class}; } diff --git a/spring-context/src/main/java/org/springframework/context/expression/StandardBeanExpressionResolver.java b/spring-context/src/main/java/org/springframework/context/expression/StandardBeanExpressionResolver.java index fff09d2da441..b2cecd883e2e 100644 --- a/spring-context/src/main/java/org/springframework/context/expression/StandardBeanExpressionResolver.java +++ b/spring-context/src/main/java/org/springframework/context/expression/StandardBeanExpressionResolver.java @@ -66,12 +66,15 @@ public class StandardBeanExpressionResolver implements BeanExpressionResolver { new ConcurrentHashMap(8); private final ParserContext beanExpressionParserContext = new ParserContext() { + @Override public boolean isTemplate() { return true; } + @Override public String getExpressionPrefix() { return expressionPrefix; } + @Override public String getExpressionSuffix() { return expressionSuffix; } @@ -109,6 +112,7 @@ public void setExpressionParser(ExpressionParser expressionParser) { } + @Override public Object evaluate(String value, BeanExpressionContext evalContext) throws BeansException { if (!StringUtils.hasLength(value)) { return value; diff --git a/spring-context/src/main/java/org/springframework/context/i18n/SimpleLocaleContext.java b/spring-context/src/main/java/org/springframework/context/i18n/SimpleLocaleContext.java index d3848ebe0a91..de1246bf0b31 100644 --- a/spring-context/src/main/java/org/springframework/context/i18n/SimpleLocaleContext.java +++ b/spring-context/src/main/java/org/springframework/context/i18n/SimpleLocaleContext.java @@ -42,6 +42,7 @@ public SimpleLocaleContext(Locale locale) { this.locale = locale; } + @Override public Locale getLocale() { return this.locale; } diff --git a/spring-context/src/main/java/org/springframework/context/support/AbstractApplicationContext.java b/spring-context/src/main/java/org/springframework/context/support/AbstractApplicationContext.java index 40bf4e9ea147..fc2032f905ec 100644 --- a/spring-context/src/main/java/org/springframework/context/support/AbstractApplicationContext.java +++ b/spring-context/src/main/java/org/springframework/context/support/AbstractApplicationContext.java @@ -240,14 +240,17 @@ public AbstractApplicationContext(ApplicationContext parent) { * of the context bean if the context is itself defined as a bean. * @param id the unique id of the context */ + @Override public void setId(String id) { this.id = id; } + @Override public String getId() { return this.id; } + @Override public String getApplicationName() { return ""; } @@ -266,6 +269,7 @@ public void setDisplayName(String displayName) { * Return a friendly name for this context. * @return a display name for this context (never {@code null}) */ + @Override public String getDisplayName() { return this.displayName; } @@ -274,6 +278,7 @@ public String getDisplayName() { * Return the parent context, or {@code null} if there is no parent * (that is, this context is the root of the context hierarchy). */ + @Override public ApplicationContext getParent() { return this.parent; } @@ -283,6 +288,7 @@ public ApplicationContext getParent() { *

If {@code null}, a new environment will be initialized via * {@link #createEnvironment()}. */ + @Override public ConfigurableEnvironment getEnvironment() { if (this.environment == null) { this.environment = createEnvironment(); @@ -298,6 +304,7 @@ public ConfigurableEnvironment getEnvironment() { * should be performed before {@link #refresh()}. * @see org.springframework.context.support.AbstractApplicationContext#createEnvironment */ + @Override public void setEnvironment(ConfigurableEnvironment environment) { this.environment = environment; } @@ -307,6 +314,7 @@ public void setEnvironment(ConfigurableEnvironment environment) { * if already available. * @see #getBeanFactory() */ + @Override public AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException { return getBeanFactory(); } @@ -314,6 +322,7 @@ public AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws Illegal /** * Return the timestamp (ms) when this context was first loaded. */ + @Override public long getStartupDate() { return this.startupDate; } @@ -326,6 +335,7 @@ public long getStartupDate() { * @param event the event to publish (may be application-specific or a * standard framework event) */ + @Override public void publishEvent(ApplicationEvent event) { Assert.notNull(event, "Event must not be null"); if (logger.isTraceEnabled()) { @@ -394,6 +404,7 @@ protected ResourcePatternResolver getResourcePatternResolver() { * its environment is an instance of {@link ConfigurableEnvironment}. * @see ConfigurableEnvironment#merge(ConfigurableEnvironment) */ + @Override public void setParent(ApplicationContext parent) { this.parent = parent; if (parent != null) { @@ -404,6 +415,7 @@ public void setParent(ApplicationContext parent) { } } + @Override public void addBeanFactoryPostProcessor(BeanFactoryPostProcessor beanFactoryPostProcessor) { this.beanFactoryPostProcessors.add(beanFactoryPostProcessor); } @@ -417,6 +429,7 @@ public List getBeanFactoryPostProcessors() { return this.beanFactoryPostProcessors; } + @Override public void addApplicationListener(ApplicationListener listener) { if (this.applicationEventMulticaster != null) { this.applicationEventMulticaster.addApplicationListener(listener); @@ -442,6 +455,7 @@ protected ConfigurableEnvironment createEnvironment() { return new StandardEnvironment(); } + @Override public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // Prepare this context for refreshing. @@ -957,6 +971,7 @@ protected void cancelRefresh(BeansException ex) { * @see #close() * @see #doClose() */ + @Override public void registerShutdownHook() { if (this.shutdownHook == null) { // No shutdown hook registered yet. @@ -980,6 +995,7 @@ public void run() { * @see #close() * @see org.springframework.beans.factory.access.SingletonBeanFactoryLocator */ + @Override public void destroy() { close(); } @@ -991,6 +1007,7 @@ public void destroy() { * @see #doClose() * @see #registerShutdownHook() */ + @Override public void close() { synchronized (this.startupShutdownMonitor) { doClose(); @@ -1088,6 +1105,7 @@ protected void onClose() { // For subclasses: do nothing by default. } + @Override public boolean isActive() { synchronized (this.activeMonitor) { return this.active; @@ -1121,50 +1139,60 @@ protected void assertBeanFactoryActive() { // Implementation of BeanFactory interface //--------------------------------------------------------------------- + @Override public Object getBean(String name) throws BeansException { assertBeanFactoryActive(); return getBeanFactory().getBean(name); } + @Override public T getBean(String name, Class requiredType) throws BeansException { assertBeanFactoryActive(); return getBeanFactory().getBean(name, requiredType); } + @Override public T getBean(Class requiredType) throws BeansException { assertBeanFactoryActive(); return getBeanFactory().getBean(requiredType); } + @Override public Object getBean(String name, Object... args) throws BeansException { assertBeanFactoryActive(); return getBeanFactory().getBean(name, args); } + @Override public boolean containsBean(String name) { return getBeanFactory().containsBean(name); } + @Override public boolean isSingleton(String name) throws NoSuchBeanDefinitionException { assertBeanFactoryActive(); return getBeanFactory().isSingleton(name); } + @Override public boolean isPrototype(String name) throws NoSuchBeanDefinitionException { assertBeanFactoryActive(); return getBeanFactory().isPrototype(name); } + @Override public boolean isTypeMatch(String name, Class targetType) throws NoSuchBeanDefinitionException { assertBeanFactoryActive(); return getBeanFactory().isTypeMatch(name, targetType); } + @Override public Class getType(String name) throws NoSuchBeanDefinitionException { assertBeanFactoryActive(); return getBeanFactory().getType(name); } + @Override public String[] getAliases(String name) { return getBeanFactory().getAliases(name); } @@ -1174,33 +1202,40 @@ public String[] getAliases(String name) { // Implementation of ListableBeanFactory interface //--------------------------------------------------------------------- + @Override public boolean containsBeanDefinition(String beanName) { return getBeanFactory().containsBeanDefinition(beanName); } + @Override public int getBeanDefinitionCount() { return getBeanFactory().getBeanDefinitionCount(); } + @Override public String[] getBeanDefinitionNames() { return getBeanFactory().getBeanDefinitionNames(); } + @Override public String[] getBeanNamesForType(Class type) { assertBeanFactoryActive(); return getBeanFactory().getBeanNamesForType(type); } + @Override public String[] getBeanNamesForType(Class type, boolean includeNonSingletons, boolean allowEagerInit) { assertBeanFactoryActive(); return getBeanFactory().getBeanNamesForType(type, includeNonSingletons, allowEagerInit); } + @Override public Map getBeansOfType(Class type) throws BeansException { assertBeanFactoryActive(); return getBeanFactory().getBeansOfType(type); } + @Override public Map getBeansOfType(Class type, boolean includeNonSingletons, boolean allowEagerInit) throws BeansException { @@ -1208,6 +1243,7 @@ public Map getBeansOfType(Class type, boolean includeNonSingle return getBeanFactory().getBeansOfType(type, includeNonSingletons, allowEagerInit); } + @Override public Map getBeansWithAnnotation(Class annotationType) throws BeansException { @@ -1215,6 +1251,7 @@ public Map getBeansWithAnnotation(Class an return getBeanFactory().getBeansWithAnnotation(annotationType); } + @Override public A findAnnotationOnBean(String beanName, Class annotationType) { assertBeanFactoryActive(); return getBeanFactory().findAnnotationOnBean(beanName, annotationType); @@ -1225,10 +1262,12 @@ public A findAnnotationOnBean(String beanName, Class a // Implementation of HierarchicalBeanFactory interface //--------------------------------------------------------------------- + @Override public BeanFactory getParentBeanFactory() { return getParent(); } + @Override public boolean containsLocalBean(String name) { return getBeanFactory().containsLocalBean(name); } @@ -1248,14 +1287,17 @@ protected BeanFactory getInternalParentBeanFactory() { // Implementation of MessageSource interface //--------------------------------------------------------------------- + @Override public String getMessage(String code, Object args[], String defaultMessage, Locale locale) { return getMessageSource().getMessage(code, args, defaultMessage, locale); } + @Override public String getMessage(String code, Object args[], Locale locale) throws NoSuchMessageException { return getMessageSource().getMessage(code, args, locale); } + @Override public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException { return getMessageSource().getMessage(resolvable, locale); } @@ -1287,6 +1329,7 @@ protected MessageSource getInternalParentMessageSource() { // Implementation of ResourcePatternResolver interface //--------------------------------------------------------------------- + @Override public Resource[] getResources(String locationPattern) throws IOException { return this.resourcePatternResolver.getResources(locationPattern); } @@ -1296,16 +1339,19 @@ public Resource[] getResources(String locationPattern) throws IOException { // Implementation of Lifecycle interface //--------------------------------------------------------------------- + @Override public void start() { getLifecycleProcessor().start(); publishEvent(new ContextStartedEvent(this)); } + @Override public void stop() { getLifecycleProcessor().stop(); publishEvent(new ContextStoppedEvent(this)); } + @Override public boolean isRunning() { return getLifecycleProcessor().isRunning(); } @@ -1347,6 +1393,7 @@ public boolean isRunning() { * @see #refreshBeanFactory() * @see #closeBeanFactory() */ + @Override public abstract ConfigurableListableBeanFactory getBeanFactory() throws IllegalStateException; @@ -1385,10 +1432,12 @@ public BeanPostProcessorChecker(ConfigurableListableBeanFactory beanFactory, int this.beanPostProcessorTargetCount = beanPostProcessorTargetCount; } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) { return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) { if (bean != null && !(bean instanceof BeanPostProcessor) && this.beanFactory.getBeanPostProcessorCount() < this.beanPostProcessorTargetCount) { @@ -1411,16 +1460,19 @@ private class ApplicationListenerDetector implements MergedBeanDefinitionPostPro private final Map singletonNames = new ConcurrentHashMap(64); + @Override public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, Class beanType, String beanName) { if (beanDefinition.isSingleton()) { this.singletonNames.put(beanName, Boolean.TRUE); } } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) { return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) { if (bean instanceof ApplicationListener) { // potentially not detected as a listener by getBeanNamesForType retrieval diff --git a/spring-context/src/main/java/org/springframework/context/support/AbstractMessageSource.java b/spring-context/src/main/java/org/springframework/context/support/AbstractMessageSource.java index ddf87c933242..62fe2cc829c7 100644 --- a/spring-context/src/main/java/org/springframework/context/support/AbstractMessageSource.java +++ b/spring-context/src/main/java/org/springframework/context/support/AbstractMessageSource.java @@ -70,10 +70,12 @@ public abstract class AbstractMessageSource extends MessageSourceSupport impleme private boolean useCodeAsDefaultMessage = false; + @Override public void setParentMessageSource(MessageSource parent) { this.parentMessageSource = parent; } + @Override public MessageSource getParentMessageSource() { return this.parentMessageSource; } @@ -129,6 +131,7 @@ protected boolean isUseCodeAsDefaultMessage() { } + @Override public final String getMessage(String code, Object[] args, String defaultMessage, Locale locale) { String msg = getMessageInternal(code, args, locale); if (msg != null) { @@ -143,6 +146,7 @@ public final String getMessage(String code, Object[] args, String defaultMessage return renderDefaultMessage(defaultMessage, args, locale); } + @Override public final String getMessage(String code, Object[] args, Locale locale) throws NoSuchMessageException { String msg = getMessageInternal(code, args, locale); if (msg != null) { @@ -155,6 +159,7 @@ public final String getMessage(String code, Object[] args, Locale locale) throws throw new NoSuchMessageException(code, locale); } + @Override public final String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException { diff --git a/spring-context/src/main/java/org/springframework/context/support/AbstractRefreshableConfigApplicationContext.java b/spring-context/src/main/java/org/springframework/context/support/AbstractRefreshableConfigApplicationContext.java index 66aff5979be6..5e4d17426eb8 100644 --- a/spring-context/src/main/java/org/springframework/context/support/AbstractRefreshableConfigApplicationContext.java +++ b/spring-context/src/main/java/org/springframework/context/support/AbstractRefreshableConfigApplicationContext.java @@ -133,6 +133,7 @@ public void setId(String id) { * Sets the id of this context to the bean name by default, * for cases where the context instance is itself defined as a bean. */ + @Override public void setBeanName(String name) { if (!this.setIdCalled) { super.setId(name); @@ -144,6 +145,7 @@ public void setBeanName(String name) { * Triggers {@link #refresh()} if not refreshed in the concrete context's * constructor already. */ + @Override public void afterPropertiesSet() { if (!isActive()) { refresh(); diff --git a/spring-context/src/main/java/org/springframework/context/support/ApplicationContextAwareProcessor.java b/spring-context/src/main/java/org/springframework/context/support/ApplicationContextAwareProcessor.java index e88b26799cff..2a521b3b64a1 100644 --- a/spring-context/src/main/java/org/springframework/context/support/ApplicationContextAwareProcessor.java +++ b/spring-context/src/main/java/org/springframework/context/support/ApplicationContextAwareProcessor.java @@ -70,6 +70,7 @@ public ApplicationContextAwareProcessor(ConfigurableApplicationContext applicati } + @Override public Object postProcessBeforeInitialization(final Object bean, String beanName) throws BeansException { AccessControlContext acc = null; @@ -82,6 +83,7 @@ public Object postProcessBeforeInitialization(final Object bean, String beanName if (acc != null) { AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { invokeAwareInterfaces(bean); return null; @@ -119,6 +121,7 @@ private void invokeAwareInterfaces(Object bean) { } } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) { return bean; } @@ -132,6 +135,7 @@ public EmbeddedValueResolver(ConfigurableBeanFactory beanFactory) { this.beanFactory = beanFactory; } + @Override public String resolveStringValue(String strVal) { return this.beanFactory.resolveEmbeddedValue(strVal); } diff --git a/spring-context/src/main/java/org/springframework/context/support/ApplicationObjectSupport.java b/spring-context/src/main/java/org/springframework/context/support/ApplicationObjectSupport.java index ebee90cc0337..e3bb18e49c83 100644 --- a/spring-context/src/main/java/org/springframework/context/support/ApplicationObjectSupport.java +++ b/spring-context/src/main/java/org/springframework/context/support/ApplicationObjectSupport.java @@ -56,6 +56,7 @@ public abstract class ApplicationObjectSupport implements ApplicationContextAwar private MessageSourceAccessor messageSourceAccessor; + @Override public final void setApplicationContext(ApplicationContext context) throws BeansException { if (context == null && !isContextRequired()) { // Reset internal context state. diff --git a/spring-context/src/main/java/org/springframework/context/support/ContextTypeMatchClassLoader.java b/spring-context/src/main/java/org/springframework/context/support/ContextTypeMatchClassLoader.java index f81020673de3..9cdff9d621bd 100644 --- a/spring-context/src/main/java/org/springframework/context/support/ContextTypeMatchClassLoader.java +++ b/spring-context/src/main/java/org/springframework/context/support/ContextTypeMatchClassLoader.java @@ -63,6 +63,7 @@ public Class loadClass(String name) throws ClassNotFoundException { return new ContextOverridingClassLoader(getParent()).loadClass(name); } + @Override public boolean isClassReloadable(Class clazz) { return (clazz.getClassLoader() instanceof ContextOverridingClassLoader); } diff --git a/spring-context/src/main/java/org/springframework/context/support/ConversionServiceFactoryBean.java b/spring-context/src/main/java/org/springframework/context/support/ConversionServiceFactoryBean.java index 95b40263edcc..5cf2e8174634 100644 --- a/spring-context/src/main/java/org/springframework/context/support/ConversionServiceFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/context/support/ConversionServiceFactoryBean.java @@ -64,6 +64,7 @@ public void setConverters(Set converters) { this.converters = converters; } + @Override public void afterPropertiesSet() { this.conversionService = createConversionService(); ConversionServiceFactory.registerConverters(this.converters, this.conversionService); @@ -82,14 +83,17 @@ protected GenericConversionService createConversionService() { // implementing FactoryBean + @Override public ConversionService getObject() { return this.conversionService; } + @Override public Class getObjectType() { return GenericConversionService.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context/src/main/java/org/springframework/context/support/DefaultLifecycleProcessor.java b/spring-context/src/main/java/org/springframework/context/support/DefaultLifecycleProcessor.java index c41b5dc02137..9419e14b4c5f 100644 --- a/spring-context/src/main/java/org/springframework/context/support/DefaultLifecycleProcessor.java +++ b/spring-context/src/main/java/org/springframework/context/support/DefaultLifecycleProcessor.java @@ -68,6 +68,7 @@ public void setTimeoutPerShutdownPhase(long timeoutPerShutdownPhase) { this.timeoutPerShutdownPhase = timeoutPerShutdownPhase; } + @Override public void setBeanFactory(BeanFactory beanFactory) { Assert.isInstanceOf(ConfigurableListableBeanFactory.class, beanFactory); this.beanFactory = (ConfigurableListableBeanFactory) beanFactory; @@ -85,6 +86,7 @@ public void setBeanFactory(BeanFactory beanFactory) { * declared as a dependency of another bean will be started before * the dependent bean regardless of the declared phase. */ + @Override public void start() { startBeans(false); this.running = true; @@ -99,21 +101,25 @@ public void start() { * declared as dependent on another bean will be stopped before * the dependency bean regardless of the declared phase. */ + @Override public void stop() { stopBeans(); this.running = false; } + @Override public void onRefresh() { startBeans(true); this.running = true; } + @Override public void onClose() { stopBeans(); this.running = false; } + @Override public boolean isRunning() { return this.running; } @@ -221,6 +227,7 @@ private void doStop(Map lifecycleBeans, final Strin } countDownBeanNames.add(beanName); ((SmartLifecycle) bean).stop(new Runnable() { + @Override public void run() { latch.countDown(); countDownBeanNames.remove(beanName); @@ -389,6 +396,7 @@ private class LifecycleGroupMember implements Comparable { this.bean = bean; } + @Override public int compareTo(LifecycleGroupMember other) { int thisOrder = getPhase(this.bean); int otherOrder = getPhase(other.bean); diff --git a/spring-context/src/main/java/org/springframework/context/support/DefaultMessageSourceResolvable.java b/spring-context/src/main/java/org/springframework/context/support/DefaultMessageSourceResolvable.java index e668c4e73682..e688b5009dc0 100644 --- a/spring-context/src/main/java/org/springframework/context/support/DefaultMessageSourceResolvable.java +++ b/spring-context/src/main/java/org/springframework/context/support/DefaultMessageSourceResolvable.java @@ -96,6 +96,7 @@ public DefaultMessageSourceResolvable(MessageSourceResolvable resolvable) { } + @Override public String[] getCodes() { return this.codes; } @@ -108,10 +109,12 @@ public String getCode() { return (this.codes != null && this.codes.length > 0) ? this.codes[this.codes.length - 1] : null; } + @Override public Object[] getArguments() { return this.arguments; } + @Override public String getDefaultMessage() { return this.defaultMessage; } diff --git a/spring-context/src/main/java/org/springframework/context/support/DelegatingMessageSource.java b/spring-context/src/main/java/org/springframework/context/support/DelegatingMessageSource.java index 620225d000c5..6526cc957a64 100644 --- a/spring-context/src/main/java/org/springframework/context/support/DelegatingMessageSource.java +++ b/spring-context/src/main/java/org/springframework/context/support/DelegatingMessageSource.java @@ -39,15 +39,18 @@ public class DelegatingMessageSource extends MessageSourceSupport implements Hie private MessageSource parentMessageSource; + @Override public void setParentMessageSource(MessageSource parent) { this.parentMessageSource = parent; } + @Override public MessageSource getParentMessageSource() { return this.parentMessageSource; } + @Override public String getMessage(String code, Object[] args, String defaultMessage, Locale locale) { if (this.parentMessageSource != null) { return this.parentMessageSource.getMessage(code, args, defaultMessage, locale); @@ -57,6 +60,7 @@ public String getMessage(String code, Object[] args, String defaultMessage, Loca } } + @Override public String getMessage(String code, Object[] args, Locale locale) throws NoSuchMessageException { if (this.parentMessageSource != null) { return this.parentMessageSource.getMessage(code, args, locale); @@ -66,6 +70,7 @@ public String getMessage(String code, Object[] args, Locale locale) throws NoSuc } } + @Override public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException { if (this.parentMessageSource != null) { return this.parentMessageSource.getMessage(resolvable, locale); diff --git a/spring-context/src/main/java/org/springframework/context/support/GenericApplicationContext.java b/spring-context/src/main/java/org/springframework/context/support/GenericApplicationContext.java index 8c1efa7becee..43887d8bf9a4 100644 --- a/spring-context/src/main/java/org/springframework/context/support/GenericApplicationContext.java +++ b/spring-context/src/main/java/org/springframework/context/support/GenericApplicationContext.java @@ -286,32 +286,39 @@ public final DefaultListableBeanFactory getDefaultListableBeanFactory() { // Implementation of BeanDefinitionRegistry //--------------------------------------------------------------------- + @Override public void registerBeanDefinition(String beanName, BeanDefinition beanDefinition) throws BeanDefinitionStoreException { this.beanFactory.registerBeanDefinition(beanName, beanDefinition); } + @Override public void removeBeanDefinition(String beanName) throws NoSuchBeanDefinitionException { this.beanFactory.removeBeanDefinition(beanName); } + @Override public BeanDefinition getBeanDefinition(String beanName) throws NoSuchBeanDefinitionException { return this.beanFactory.getBeanDefinition(beanName); } + @Override public boolean isBeanNameInUse(String beanName) { return this.beanFactory.isBeanNameInUse(beanName); } + @Override public void registerAlias(String beanName, String alias) { this.beanFactory.registerAlias(beanName, alias); } + @Override public void removeAlias(String alias) { this.beanFactory.removeAlias(alias); } + @Override public boolean isAlias(String beanName) { return this.beanFactory.isAlias(beanName); } diff --git a/spring-context/src/main/java/org/springframework/context/support/LiveBeansView.java b/spring-context/src/main/java/org/springframework/context/support/LiveBeansView.java index 7cdfb8d49229..bf20ae101766 100644 --- a/spring-context/src/main/java/org/springframework/context/support/LiveBeansView.java +++ b/spring-context/src/main/java/org/springframework/context/support/LiveBeansView.java @@ -93,6 +93,7 @@ static void unregisterApplicationContext(ConfigurableApplicationContext applicat private ConfigurableApplicationContext applicationContext; + @Override public void setApplicationContext(ApplicationContext applicationContext) { Assert.isTrue(applicationContext instanceof ConfigurableApplicationContext, "ApplicationContext does not implement ConfigurableApplicationContext"); @@ -105,6 +106,7 @@ public void setApplicationContext(ApplicationContext applicationContext) { * finding all active ApplicationContexts through {@link #findApplicationContexts()}, * then delegating to {@link #generateJson(java.util.Set)}. */ + @Override public String getSnapshotAsJson() { Set contexts; if (this.applicationContext != null) { diff --git a/spring-context/src/main/java/org/springframework/context/support/PropertySourcesPlaceholderConfigurer.java b/spring-context/src/main/java/org/springframework/context/support/PropertySourcesPlaceholderConfigurer.java index f5ede2006cb7..c2c6cc8ccedf 100644 --- a/spring-context/src/main/java/org/springframework/context/support/PropertySourcesPlaceholderConfigurer.java +++ b/spring-context/src/main/java/org/springframework/context/support/PropertySourcesPlaceholderConfigurer.java @@ -101,6 +101,7 @@ public void setPropertySources(PropertySources propertySources) { * @see #setPropertySources * @see #postProcessBeanFactory */ + @Override public void setEnvironment(Environment environment) { this.environment = environment; } @@ -167,6 +168,7 @@ protected void processProperties(ConfigurableListableBeanFactory beanFactoryToPr propertyResolver.setValueSeparator(this.valueSeparator); StringValueResolver valueResolver = new StringValueResolver() { + @Override public String resolveStringValue(String strVal) { String resolved = ignoreUnresolvablePlaceholders ? propertyResolver.resolvePlaceholders(strVal) : diff --git a/spring-context/src/main/java/org/springframework/context/support/ReloadableResourceBundleMessageSource.java b/spring-context/src/main/java/org/springframework/context/support/ReloadableResourceBundleMessageSource.java index e428c760b945..14b831c09896 100644 --- a/spring-context/src/main/java/org/springframework/context/support/ReloadableResourceBundleMessageSource.java +++ b/spring-context/src/main/java/org/springframework/context/support/ReloadableResourceBundleMessageSource.java @@ -250,6 +250,7 @@ public void setPropertiesPersister(PropertiesPersister propertiesPersister) { * @see org.springframework.core.io.DefaultResourceLoader * @see org.springframework.context.ResourceLoaderAware */ + @Override public void setResourceLoader(ResourceLoader resourceLoader) { this.resourceLoader = (resourceLoader != null ? resourceLoader : new DefaultResourceLoader()); } diff --git a/spring-context/src/main/java/org/springframework/context/support/ResourceBundleMessageSource.java b/spring-context/src/main/java/org/springframework/context/support/ResourceBundleMessageSource.java index db51395e8ad5..8f2300c6c916 100644 --- a/spring-context/src/main/java/org/springframework/context/support/ResourceBundleMessageSource.java +++ b/spring-context/src/main/java/org/springframework/context/support/ResourceBundleMessageSource.java @@ -214,6 +214,7 @@ protected ClassLoader getBundleClassLoader() { return (this.bundleClassLoader != null ? this.bundleClassLoader : this.beanClassLoader); } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = (classLoader != null ? classLoader : ClassUtils.getDefaultClassLoader()); } @@ -402,6 +403,7 @@ public ResourceBundle newBundle(String baseName, Locale locale, String format, C try { stream = AccessController.doPrivileged( new PrivilegedExceptionAction() { + @Override public InputStream run() throws IOException { InputStream is = null; if (reloadFlag) { diff --git a/spring-context/src/main/java/org/springframework/context/support/SimpleThreadScope.java b/spring-context/src/main/java/org/springframework/context/support/SimpleThreadScope.java index 30aad8a078bc..0feb05443e8d 100644 --- a/spring-context/src/main/java/org/springframework/context/support/SimpleThreadScope.java +++ b/spring-context/src/main/java/org/springframework/context/support/SimpleThreadScope.java @@ -55,6 +55,7 @@ protected Map initialValue() { } }; + @Override public Object get(String name, ObjectFactory objectFactory) { Map scope = threadScope.get(); Object object = scope.get(name); @@ -65,20 +66,24 @@ public Object get(String name, ObjectFactory objectFactory) { return object; } + @Override public Object remove(String name) { Map scope = threadScope.get(); return scope.remove(name); } + @Override public void registerDestructionCallback(String name, Runnable callback) { logger.warn("SimpleThreadScope does not support descruction callbacks. " + "Consider using a RequestScope in a Web environment."); } + @Override public Object resolveContextualObject(String key) { return null; } + @Override public String getConversationId() { return Thread.currentThread().getName(); } diff --git a/spring-context/src/main/java/org/springframework/context/weaving/AspectJWeavingEnabler.java b/spring-context/src/main/java/org/springframework/context/weaving/AspectJWeavingEnabler.java index 4cb6567faf34..ab78f5c35b35 100644 --- a/spring-context/src/main/java/org/springframework/context/weaving/AspectJWeavingEnabler.java +++ b/spring-context/src/main/java/org/springframework/context/weaving/AspectJWeavingEnabler.java @@ -51,18 +51,22 @@ public class AspectJWeavingEnabler public static final String ASPECTJ_AOP_XML_RESOURCE = "META-INF/aop.xml"; + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public void setLoadTimeWeaver(LoadTimeWeaver loadTimeWeaver) { this.loadTimeWeaver = loadTimeWeaver; } + @Override public int getOrder() { return HIGHEST_PRECEDENCE; } + @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { enableAspectJWeaving(this.loadTimeWeaver, this.beanClassLoader); } @@ -94,6 +98,7 @@ public AspectJClassBypassingClassFileTransformer(ClassFileTransformer delegate) this.delegate = delegate; } + @Override public byte[] transform(ClassLoader loader, String className, Class classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException { diff --git a/spring-context/src/main/java/org/springframework/context/weaving/DefaultContextLoadTimeWeaver.java b/spring-context/src/main/java/org/springframework/context/weaving/DefaultContextLoadTimeWeaver.java index 1cc0ab6b4f29..ec69b4862e01 100644 --- a/spring-context/src/main/java/org/springframework/context/weaving/DefaultContextLoadTimeWeaver.java +++ b/spring-context/src/main/java/org/springframework/context/weaving/DefaultContextLoadTimeWeaver.java @@ -69,6 +69,7 @@ public DefaultContextLoadTimeWeaver(ClassLoader beanClassLoader) { setBeanClassLoader(beanClassLoader); } + @Override public void setBeanClassLoader(ClassLoader classLoader) { LoadTimeWeaver serverSpecificLoadTimeWeaver = createServerSpecificLoadTimeWeaver(classLoader); if (serverSpecificLoadTimeWeaver != null) { @@ -126,6 +127,7 @@ else if (name.startsWith("com.ibm")) { return null; } + @Override public void destroy() { if (this.loadTimeWeaver instanceof InstrumentationLoadTimeWeaver) { logger.info("Removing all registered transformers for class loader: " + @@ -135,14 +137,17 @@ public void destroy() { } + @Override public void addTransformer(ClassFileTransformer transformer) { this.loadTimeWeaver.addTransformer(transformer); } + @Override public ClassLoader getInstrumentableClassLoader() { return this.loadTimeWeaver.getInstrumentableClassLoader(); } + @Override public ClassLoader getThrowawayClassLoader() { return this.loadTimeWeaver.getThrowawayClassLoader(); } diff --git a/spring-context/src/main/java/org/springframework/context/weaving/LoadTimeWeaverAwareProcessor.java b/spring-context/src/main/java/org/springframework/context/weaving/LoadTimeWeaverAwareProcessor.java index d2c704f1a500..7509b8beffa2 100644 --- a/spring-context/src/main/java/org/springframework/context/weaving/LoadTimeWeaverAwareProcessor.java +++ b/spring-context/src/main/java/org/springframework/context/weaving/LoadTimeWeaverAwareProcessor.java @@ -81,11 +81,13 @@ public LoadTimeWeaverAwareProcessor(BeanFactory beanFactory) { } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof LoadTimeWeaverAware) { LoadTimeWeaver ltw = this.loadTimeWeaver; @@ -100,6 +102,7 @@ public Object postProcessBeforeInitialization(Object bean, String beanName) thro return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String name) { return bean; } diff --git a/spring-context/src/main/java/org/springframework/ejb/access/AbstractSlsbInvokerInterceptor.java b/spring-context/src/main/java/org/springframework/ejb/access/AbstractSlsbInvokerInterceptor.java index 8a12977c8a45..77e88a8c42f1 100644 --- a/spring-context/src/main/java/org/springframework/ejb/access/AbstractSlsbInvokerInterceptor.java +++ b/spring-context/src/main/java/org/springframework/ejb/access/AbstractSlsbInvokerInterceptor.java @@ -183,6 +183,7 @@ protected boolean isHomeRefreshable() { * Prepares the thread context if necessar, and delegates to * {@link #invokeInContext}. */ + @Override public Object invoke(MethodInvocation invocation) throws Throwable { Context ctx = (this.exposeAccessContext ? getJndiTemplate().getContext() : null); try { diff --git a/spring-context/src/main/java/org/springframework/ejb/access/LocalStatelessSessionProxyFactoryBean.java b/spring-context/src/main/java/org/springframework/ejb/access/LocalStatelessSessionProxyFactoryBean.java index c824d4c91718..ca4d245ff488 100644 --- a/spring-context/src/main/java/org/springframework/ejb/access/LocalStatelessSessionProxyFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/ejb/access/LocalStatelessSessionProxyFactoryBean.java @@ -77,6 +77,7 @@ public Class getBusinessInterface() { return this.businessInterface; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -91,14 +92,17 @@ public void afterPropertiesSet() throws NamingException { } + @Override public Object getObject() { return this.proxy; } + @Override public Class getObjectType() { return this.businessInterface; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context/src/main/java/org/springframework/ejb/access/SimpleRemoteSlsbInvokerInterceptor.java b/spring-context/src/main/java/org/springframework/ejb/access/SimpleRemoteSlsbInvokerInterceptor.java index 29de41bc3edf..3c3e1a809036 100644 --- a/spring-context/src/main/java/org/springframework/ejb/access/SimpleRemoteSlsbInvokerInterceptor.java +++ b/spring-context/src/main/java/org/springframework/ejb/access/SimpleRemoteSlsbInvokerInterceptor.java @@ -171,6 +171,7 @@ protected void refreshHome() throws NamingException { /** * Remove the cached session bean instance, if necessary. */ + @Override public void destroy() { if (this.cacheSessionBean) { synchronized (this.beanInstanceMonitor) { diff --git a/spring-context/src/main/java/org/springframework/ejb/access/SimpleRemoteStatelessSessionProxyFactoryBean.java b/spring-context/src/main/java/org/springframework/ejb/access/SimpleRemoteStatelessSessionProxyFactoryBean.java index de6a45b1fef4..ff40f71ba45f 100644 --- a/spring-context/src/main/java/org/springframework/ejb/access/SimpleRemoteStatelessSessionProxyFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/ejb/access/SimpleRemoteStatelessSessionProxyFactoryBean.java @@ -91,6 +91,7 @@ public Class getBusinessInterface() { return this.businessInterface; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -105,14 +106,17 @@ public void afterPropertiesSet() throws NamingException { } + @Override public Object getObject() { return this.proxy; } + @Override public Class getObjectType() { return this.businessInterface; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context/src/main/java/org/springframework/ejb/config/JeeNamespaceHandler.java b/spring-context/src/main/java/org/springframework/ejb/config/JeeNamespaceHandler.java index 2e106d8ed0f1..0cbdc2ff8d09 100644 --- a/spring-context/src/main/java/org/springframework/ejb/config/JeeNamespaceHandler.java +++ b/spring-context/src/main/java/org/springframework/ejb/config/JeeNamespaceHandler.java @@ -27,6 +27,7 @@ */ public class JeeNamespaceHandler extends NamespaceHandlerSupport { + @Override public void init() { registerBeanDefinitionParser("jndi-lookup", new JndiLookupBeanDefinitionParser()); registerBeanDefinitionParser("local-slsb", new LocalStatelessSessionBeanDefinitionParser()); diff --git a/spring-context/src/main/java/org/springframework/format/datetime/DateFormatter.java b/spring-context/src/main/java/org/springframework/format/datetime/DateFormatter.java index b5c660f0236e..c08c80c432fc 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/DateFormatter.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/DateFormatter.java @@ -146,10 +146,12 @@ public void setLenient(boolean lenient) { } + @Override public String print(Date date, Locale locale) { return getDateFormat(locale).format(date); } + @Override public Date parse(String text, Locale locale) throws ParseException { return getDateFormat(locale).parse(text); } diff --git a/spring-context/src/main/java/org/springframework/format/datetime/DateFormatterRegistrar.java b/spring-context/src/main/java/org/springframework/format/datetime/DateFormatterRegistrar.java index cc9bf6265fc5..8dfb7365aece 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/DateFormatterRegistrar.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/DateFormatterRegistrar.java @@ -53,6 +53,7 @@ public void setFormatter(DateFormatter dateFormatter) { } + @Override public void registerFormatters(FormatterRegistry registry) { addDateConverters(registry); registry.addFormatterForFieldAnnotation(new DateTimeFormatAnnotationFormatterFactory()); @@ -81,6 +82,7 @@ public static void addDateConverters(ConverterRegistry converterRegistry) { private static class DateToLongConverter implements Converter { + @Override public Long convert(Date source) { return source.getTime(); } @@ -89,6 +91,7 @@ public Long convert(Date source) { private static class DateToCalendarConverter implements Converter { + @Override public Calendar convert(Date source) { Calendar calendar = Calendar.getInstance(); calendar.setTime(source); @@ -99,6 +102,7 @@ public Calendar convert(Date source) { private static class CalendarToDateConverter implements Converter { + @Override public Date convert(Calendar source) { return source.getTime(); } @@ -107,6 +111,7 @@ public Date convert(Calendar source) { private static class CalendarToLongConverter implements Converter { + @Override public Long convert(Calendar source) { return source.getTime().getTime(); } @@ -115,6 +120,7 @@ public Long convert(Calendar source) { private static class LongToDateConverter implements Converter { + @Override public Date convert(Long source) { return new Date(source); } @@ -125,6 +131,7 @@ private static class LongToCalendarConverter implements Converter> getFieldTypes() { return FIELD_TYPES; } + @Override public Printer getPrinter(DateTimeFormat annotation, Class fieldType) { return getFormatter(annotation, fieldType); } + @Override public Parser getParser(DateTimeFormat annotation, Class fieldType) { return getFormatter(annotation, fieldType); } diff --git a/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeFormatterFactoryBean.java b/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeFormatterFactoryBean.java index 20aceca9e120..b6aa7ef63ad9 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeFormatterFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeFormatterFactoryBean.java @@ -39,18 +39,22 @@ public class DateTimeFormatterFactoryBean extends DateTimeFormatterFactory private DateTimeFormatter dateTimeFormatter; + @Override public void afterPropertiesSet() { this.dateTimeFormatter = createDateTimeFormatter(); } + @Override public DateTimeFormatter getObject() { return this.dateTimeFormatter; } + @Override public Class getObjectType() { return DateTimeFormatter.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeParser.java b/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeParser.java index 2918201dbd45..eb76359697b6 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeParser.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeParser.java @@ -44,6 +44,7 @@ public DateTimeParser(DateTimeFormatter formatter) { } + @Override public DateTime parse(String text, Locale locale) throws ParseException { return JodaTimeContextHolder.getFormatter(this.formatter, locale).parseDateTime(text); } diff --git a/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaDateTimeFormatAnnotationFormatterFactory.java b/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaDateTimeFormatAnnotationFormatterFactory.java index 3e18d374c646..5239fc04e90c 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaDateTimeFormatAnnotationFormatterFactory.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaDateTimeFormatAnnotationFormatterFactory.java @@ -71,6 +71,7 @@ public class JodaDateTimeFormatAnnotationFormatterFactory private StringValueResolver embeddedValueResolver; + @Override public void setEmbeddedValueResolver(StringValueResolver resolver) { this.embeddedValueResolver = resolver; } @@ -80,10 +81,12 @@ protected String resolveEmbeddedValue(String value) { } + @Override public final Set> getFieldTypes() { return FIELD_TYPES; } + @Override public Printer getPrinter(DateTimeFormat annotation, Class fieldType) { DateTimeFormatter formatter = getFormatter(annotation, fieldType); if (ReadablePartial.class.isAssignableFrom(fieldType)) { @@ -99,6 +102,7 @@ else if (ReadableInstant.class.isAssignableFrom(fieldType) || Calendar.class.isA } } + @Override public Parser getParser(DateTimeFormat annotation, Class fieldType) { return new DateTimeParser(getFormatter(annotation, fieldType)); } diff --git a/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaTimeConverters.java b/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaTimeConverters.java index 9c966e434687..02ba64b6133e 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaTimeConverters.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaTimeConverters.java @@ -64,6 +64,7 @@ public static void registerConverters(ConverterRegistry registry) { private static class DateTimeToLocalDateConverter implements Converter { + @Override public LocalDate convert(DateTime source) { return source.toLocalDate(); } @@ -72,6 +73,7 @@ public LocalDate convert(DateTime source) { private static class DateTimeToLocalTimeConverter implements Converter { + @Override public LocalTime convert(DateTime source) { return source.toLocalTime(); } @@ -80,6 +82,7 @@ public LocalTime convert(DateTime source) { private static class DateTimeToLocalDateTimeConverter implements Converter { + @Override public LocalDateTime convert(DateTime source) { return source.toLocalDateTime(); } @@ -88,6 +91,7 @@ public LocalDateTime convert(DateTime source) { private static class DateTimeToDateMidnightConverter implements Converter { + @Override public DateMidnight convert(DateTime source) { return source.toDateMidnight(); } @@ -96,6 +100,7 @@ public DateMidnight convert(DateTime source) { private static class DateTimeToMutableDateTimeConverter implements Converter { + @Override public MutableDateTime convert(DateTime source) { return source.toMutableDateTime(); } @@ -104,6 +109,7 @@ public MutableDateTime convert(DateTime source) { private static class DateTimeToInstantConverter implements Converter { + @Override public Instant convert(DateTime source) { return source.toInstant(); } @@ -112,6 +118,7 @@ public Instant convert(DateTime source) { private static class DateTimeToDateConverter implements Converter { + @Override public Date convert(DateTime source) { return source.toDate(); } @@ -120,6 +127,7 @@ public Date convert(DateTime source) { private static class DateTimeToCalendarConverter implements Converter { + @Override public Calendar convert(DateTime source) { return source.toGregorianCalendar(); } @@ -128,6 +136,7 @@ public Calendar convert(DateTime source) { private static class DateTimeToLongConverter implements Converter { + @Override public Long convert(DateTime source) { return source.getMillis(); } @@ -141,6 +150,7 @@ public Long convert(DateTime source) { */ private static class DateToReadableInstantConverter implements Converter { + @Override public ReadableInstant convert(Date source) { return new DateTime(source); } @@ -154,6 +164,7 @@ public ReadableInstant convert(Date source) { */ private static class CalendarToReadableInstantConverter implements Converter { + @Override public ReadableInstant convert(Calendar source) { return new DateTime(source); } diff --git a/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaTimeFormatterRegistrar.java b/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaTimeFormatterRegistrar.java index f780f91ee8f3..afb7769f4db3 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaTimeFormatterRegistrar.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaTimeFormatterRegistrar.java @@ -155,6 +155,7 @@ public void setDateTimeFormatter(DateTimeFormatter formatter) { } + @Override public void registerFormatters(FormatterRegistry registry) { JodaTimeConverters.registerConverters(registry); diff --git a/spring-context/src/main/java/org/springframework/format/datetime/joda/MillisecondInstantPrinter.java b/spring-context/src/main/java/org/springframework/format/datetime/joda/MillisecondInstantPrinter.java index 5c18317c0eb8..4ad2e3ce6485 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/joda/MillisecondInstantPrinter.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/joda/MillisecondInstantPrinter.java @@ -42,6 +42,7 @@ public MillisecondInstantPrinter(DateTimeFormatter formatter) { } + @Override public String print(Long instant, Locale locale) { return JodaTimeContextHolder.getFormatter(this.formatter, locale).print(instant); } diff --git a/spring-context/src/main/java/org/springframework/format/datetime/joda/ReadableInstantPrinter.java b/spring-context/src/main/java/org/springframework/format/datetime/joda/ReadableInstantPrinter.java index a5ad563c586f..b7e59dbfb4fa 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/joda/ReadableInstantPrinter.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/joda/ReadableInstantPrinter.java @@ -43,6 +43,7 @@ public ReadableInstantPrinter(DateTimeFormatter formatter) { } + @Override public String print(ReadableInstant instant, Locale locale) { return JodaTimeContextHolder.getFormatter(this.formatter, locale).print(instant); } diff --git a/spring-context/src/main/java/org/springframework/format/datetime/joda/ReadablePartialPrinter.java b/spring-context/src/main/java/org/springframework/format/datetime/joda/ReadablePartialPrinter.java index b0e84c672f2f..abd18acd2d2d 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/joda/ReadablePartialPrinter.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/joda/ReadablePartialPrinter.java @@ -43,6 +43,7 @@ public ReadablePartialPrinter(DateTimeFormatter formatter) { } + @Override public String print(ReadablePartial partial, Locale locale) { return JodaTimeContextHolder.getFormatter(this.formatter, locale).print(partial); } diff --git a/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeFormatterFactoryBean.java b/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeFormatterFactoryBean.java index aa64799b6859..f2d98d750f95 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeFormatterFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeFormatterFactoryBean.java @@ -39,18 +39,22 @@ public class DateTimeFormatterFactoryBean extends DateTimeFormatterFactory private DateTimeFormatter dateTimeFormatter; + @Override public void afterPropertiesSet() { this.dateTimeFormatter = createDateTimeFormatter(); } + @Override public DateTimeFormatter getObject() { return this.dateTimeFormatter; } + @Override public Class getObjectType() { return DateTimeFormatter.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeFormatterRegistrar.java b/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeFormatterRegistrar.java index e40be834795f..c3ba262173e2 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeFormatterRegistrar.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeFormatterRegistrar.java @@ -147,6 +147,7 @@ public void setDateTimeFormatter(DateTimeFormatter formatter) { } + @Override public void registerFormatters(FormatterRegistry registry) { DateTimeFormatter dateFormatter = getFormatter(Type.DATE); DateTimeFormatter timeFormatter = getFormatter(Type.TIME); diff --git a/spring-context/src/main/java/org/springframework/format/datetime/standard/InstantFormatter.java b/spring-context/src/main/java/org/springframework/format/datetime/standard/InstantFormatter.java index a60e5e78ebc1..c968f9e46b66 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/standard/InstantFormatter.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/standard/InstantFormatter.java @@ -33,10 +33,12 @@ */ public class InstantFormatter implements Formatter { + @Override public Instant parse(String text, Locale locale) throws ParseException { return Instant.parse(text); } + @Override public String print(Instant object, Locale locale) { return object.toString(); } diff --git a/spring-context/src/main/java/org/springframework/format/datetime/standard/Jsr310DateTimeFormatAnnotationFormatterFactory.java b/spring-context/src/main/java/org/springframework/format/datetime/standard/Jsr310DateTimeFormatAnnotationFormatterFactory.java index f16ee4f574d6..42f91475fc77 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/standard/Jsr310DateTimeFormatAnnotationFormatterFactory.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/standard/Jsr310DateTimeFormatAnnotationFormatterFactory.java @@ -63,6 +63,7 @@ public class Jsr310DateTimeFormatAnnotationFormatterFactory private StringValueResolver embeddedValueResolver; + @Override public void setEmbeddedValueResolver(StringValueResolver resolver) { this.embeddedValueResolver = resolver; } @@ -72,15 +73,18 @@ protected String resolveEmbeddedValue(String value) { } + @Override public final Set> getFieldTypes() { return FIELD_TYPES; } + @Override public Printer getPrinter(DateTimeFormat annotation, Class fieldType) { DateTimeFormatter formatter = getFormatter(annotation, fieldType); return new TemporalAccessorPrinter(formatter); } + @Override @SuppressWarnings("unchecked") public Parser getParser(DateTimeFormat annotation, Class fieldType) { DateTimeFormatter formatter = getFormatter(annotation, fieldType); diff --git a/spring-context/src/main/java/org/springframework/format/datetime/standard/TemporalAccessorParser.java b/spring-context/src/main/java/org/springframework/format/datetime/standard/TemporalAccessorParser.java index 6e742b01c477..dda2029ff314 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/standard/TemporalAccessorParser.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/standard/TemporalAccessorParser.java @@ -62,6 +62,7 @@ public TemporalAccessorParser(Class temporalAccessor } + @Override public TemporalAccessor parse(String text, Locale locale) throws ParseException { DateTimeFormatter formatterToUse = DateTimeContextHolder.getFormatter(this.formatter, locale); if (LocalDate.class.equals(this.temporalAccessorType)) { diff --git a/spring-context/src/main/java/org/springframework/format/datetime/standard/TemporalAccessorPrinter.java b/spring-context/src/main/java/org/springframework/format/datetime/standard/TemporalAccessorPrinter.java index c6c1fed59366..92dceabec7fe 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/standard/TemporalAccessorPrinter.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/standard/TemporalAccessorPrinter.java @@ -45,6 +45,7 @@ public TemporalAccessorPrinter(DateTimeFormatter formatter) { } + @Override public String print(TemporalAccessor partial, Locale locale) { return DateTimeContextHolder.getFormatter(this.formatter, locale).format(partial); } diff --git a/spring-context/src/main/java/org/springframework/format/number/AbstractNumberFormatter.java b/spring-context/src/main/java/org/springframework/format/number/AbstractNumberFormatter.java index da34f935bc2f..aa9e85177a65 100644 --- a/spring-context/src/main/java/org/springframework/format/number/AbstractNumberFormatter.java +++ b/spring-context/src/main/java/org/springframework/format/number/AbstractNumberFormatter.java @@ -44,10 +44,12 @@ public void setLenient(boolean lenient) { this.lenient = lenient; } + @Override public String print(Number number, Locale locale) { return getNumberFormat(locale).format(number); } + @Override public Number parse(String text, Locale locale) throws ParseException { NumberFormat format = getNumberFormat(locale); ParsePosition position = new ParsePosition(0); diff --git a/spring-context/src/main/java/org/springframework/format/number/CurrencyFormatter.java b/spring-context/src/main/java/org/springframework/format/number/CurrencyFormatter.java index 4d2bf8e9f5d1..739f9c4343b9 100644 --- a/spring-context/src/main/java/org/springframework/format/number/CurrencyFormatter.java +++ b/spring-context/src/main/java/org/springframework/format/number/CurrencyFormatter.java @@ -75,6 +75,7 @@ public void setCurrency(Currency currency) { } + @Override public BigDecimal parse(String text, Locale locale) throws ParseException { BigDecimal decimal = (BigDecimal) super.parse(text, locale); if (decimal != null) { @@ -88,6 +89,7 @@ public BigDecimal parse(String text, Locale locale) throws ParseException { return decimal; } + @Override protected NumberFormat getNumberFormat(Locale locale) { DecimalFormat format = (DecimalFormat) NumberFormat.getCurrencyInstance(locale); format.setParseBigDecimal(true); diff --git a/spring-context/src/main/java/org/springframework/format/number/NumberFormatAnnotationFormatterFactory.java b/spring-context/src/main/java/org/springframework/format/number/NumberFormatAnnotationFormatterFactory.java index 2108d9f5ae86..a20cf4120a18 100644 --- a/spring-context/src/main/java/org/springframework/format/number/NumberFormatAnnotationFormatterFactory.java +++ b/spring-context/src/main/java/org/springframework/format/number/NumberFormatAnnotationFormatterFactory.java @@ -59,11 +59,13 @@ public NumberFormatAnnotationFormatterFactory() { this.fieldTypes = Collections.unmodifiableSet(rawFieldTypes); } + @Override public final Set> getFieldTypes() { return this.fieldTypes; } + @Override public void setEmbeddedValueResolver(StringValueResolver resolver) { this.embeddedValueResolver = resolver; } @@ -73,10 +75,12 @@ protected String resolveEmbeddedValue(String value) { } + @Override public Printer getPrinter(NumberFormat annotation, Class fieldType) { return configureFormatterFrom(annotation); } + @Override public Parser getParser(NumberFormat annotation, Class fieldType) { return configureFormatterFrom(annotation); } diff --git a/spring-context/src/main/java/org/springframework/format/number/NumberFormatter.java b/spring-context/src/main/java/org/springframework/format/number/NumberFormatter.java index dbec6ba2a77c..5111c17bab7a 100644 --- a/spring-context/src/main/java/org/springframework/format/number/NumberFormatter.java +++ b/spring-context/src/main/java/org/springframework/format/number/NumberFormatter.java @@ -65,6 +65,7 @@ public void setPattern(String pattern) { } + @Override public NumberFormat getNumberFormat(Locale locale) { NumberFormat format = NumberFormat.getInstance(locale); if (!(format instanceof DecimalFormat)) { diff --git a/spring-context/src/main/java/org/springframework/format/number/PercentFormatter.java b/spring-context/src/main/java/org/springframework/format/number/PercentFormatter.java index 9e70fd76df06..8058b020eb22 100644 --- a/spring-context/src/main/java/org/springframework/format/number/PercentFormatter.java +++ b/spring-context/src/main/java/org/springframework/format/number/PercentFormatter.java @@ -34,6 +34,7 @@ */ public class PercentFormatter extends AbstractNumberFormatter { + @Override protected NumberFormat getNumberFormat(Locale locale) { NumberFormat format = NumberFormat.getPercentInstance(locale); if (format instanceof DecimalFormat) { diff --git a/spring-context/src/main/java/org/springframework/format/support/FormattingConversionService.java b/spring-context/src/main/java/org/springframework/format/support/FormattingConversionService.java index 7c5fceaed58a..ccad09d74766 100644 --- a/spring-context/src/main/java/org/springframework/format/support/FormattingConversionService.java +++ b/spring-context/src/main/java/org/springframework/format/support/FormattingConversionService.java @@ -59,11 +59,13 @@ public class FormattingConversionService extends GenericConversionService new ConcurrentHashMap(64); + @Override public void setEmbeddedValueResolver(StringValueResolver resolver) { this.embeddedValueResolver = resolver; } + @Override public void addFormatter(Formatter formatter) { Class fieldType = GenericTypeResolver.resolveTypeArgument(formatter.getClass(), Formatter.class); if (fieldType == null) { @@ -73,16 +75,19 @@ public void addFormatter(Formatter formatter) { addFormatterForFieldType(fieldType, formatter); } + @Override public void addFormatterForFieldType(Class fieldType, Formatter formatter) { addConverter(new PrinterConverter(fieldType, formatter, this)); addConverter(new ParserConverter(fieldType, formatter, this)); } + @Override public void addFormatterForFieldType(Class fieldType, Printer printer, Parser parser) { addConverter(new PrinterConverter(fieldType, printer, this)); addConverter(new ParserConverter(fieldType, parser, this)); } + @Override @SuppressWarnings({ "unchecked", "rawtypes" }) public void addFormatterForFieldAnnotation(AnnotationFormatterFactory annotationFormatterFactory) { final Class annotationType = (Class) @@ -120,10 +125,12 @@ public PrinterConverter(Class fieldType, Printer printer, ConversionServic this.conversionService = conversionService; } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(this.fieldType, String.class)); } + @Override @SuppressWarnings("unchecked") public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { @@ -139,6 +146,7 @@ private Class resolvePrinterObjectType(Printer printer) { return GenericTypeResolver.resolveTypeArgument(printer.getClass(), Printer.class); } + @Override public String toString() { return this.fieldType.getName() + " -> " + String.class.getName() + " : " + this.printer; } @@ -159,10 +167,12 @@ public ParserConverter(Class fieldType, Parser parser, ConversionService c this.conversionService = conversionService; } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(String.class, this.fieldType)); } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { String text = (String) source; if (!StringUtils.hasText(text)) { @@ -185,6 +195,7 @@ public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor t return result; } + @Override public String toString() { return String.class.getName() + " -> " + this.fieldType.getName() + ": " + this.parser; } @@ -206,14 +217,17 @@ public AnnotationPrinterConverter(Class annotationType, this.fieldType = fieldType; } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(fieldType, String.class)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return sourceType.hasAnnotation(annotationType); } + @Override @SuppressWarnings("unchecked") public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { AnnotationConverterKey converterKey = @@ -228,6 +242,7 @@ public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor t return converter.convert(source, sourceType, targetType); } + @Override public String toString() { return "@" + annotationType.getName() + " " + fieldType.getName() + " -> " + String.class.getName() + ": " + annotationFormatterFactory; @@ -250,14 +265,17 @@ public AnnotationParserConverter(Class annotationType, this.fieldType = fieldType; } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(String.class, fieldType)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return targetType.hasAnnotation(annotationType); } + @Override @SuppressWarnings("unchecked") public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { AnnotationConverterKey converterKey = @@ -272,6 +290,7 @@ public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor t return converter.convert(source, sourceType, targetType); } + @Override public String toString() { return String.class.getName() + " -> @" + annotationType.getName() + " " + fieldType.getName() + ": " + annotationFormatterFactory; @@ -298,6 +317,7 @@ public Class getFieldType() { return fieldType; } + @Override public boolean equals(Object o) { if (!(o instanceof AnnotationConverterKey)) { return false; @@ -306,6 +326,7 @@ public boolean equals(Object o) { return this.annotation.equals(key.annotation) && this.fieldType.equals(key.fieldType); } + @Override public int hashCode() { return this.annotation.hashCode() + 29 * this.fieldType.hashCode(); } diff --git a/spring-context/src/main/java/org/springframework/format/support/FormattingConversionServiceFactoryBean.java b/spring-context/src/main/java/org/springframework/format/support/FormattingConversionServiceFactoryBean.java index 25d20688ddee..e7ee267b84fb 100644 --- a/spring-context/src/main/java/org/springframework/format/support/FormattingConversionServiceFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/format/support/FormattingConversionServiceFactoryBean.java @@ -124,11 +124,13 @@ public void setRegisterDefaultFormatters(boolean registerDefaultFormatters) { this.registerDefaultFormatters = registerDefaultFormatters; } + @Override public void setEmbeddedValueResolver(StringValueResolver embeddedValueResolver) { this.embeddedValueResolver = embeddedValueResolver; } + @Override public void afterPropertiesSet() { this.conversionService = new DefaultFormattingConversionService(this.embeddedValueResolver, this.registerDefaultFormatters); ConversionServiceFactory.registerConverters(this.converters, this.conversionService); @@ -171,14 +173,17 @@ protected void installFormatters(FormatterRegistry registry) { } + @Override public FormattingConversionService getObject() { return this.conversionService; } + @Override public Class getObjectType() { return FormattingConversionService.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context/src/main/java/org/springframework/instrument/classloading/InstrumentationLoadTimeWeaver.java b/spring-context/src/main/java/org/springframework/instrument/classloading/InstrumentationLoadTimeWeaver.java index 94316c8f6d89..54a3571064cb 100644 --- a/spring-context/src/main/java/org/springframework/instrument/classloading/InstrumentationLoadTimeWeaver.java +++ b/spring-context/src/main/java/org/springframework/instrument/classloading/InstrumentationLoadTimeWeaver.java @@ -78,6 +78,7 @@ public InstrumentationLoadTimeWeaver(ClassLoader classLoader) { } + @Override public void addTransformer(ClassFileTransformer transformer) { Assert.notNull(transformer, "Transformer must not be null"); FilteringClassFileTransformer actualTransformer = @@ -97,6 +98,7 @@ public void addTransformer(ClassFileTransformer transformer) { * JVM in this way, so the instrumentable class loader will always be the * current loader. */ + @Override public ClassLoader getInstrumentableClassLoader() { return this.classLoader; } @@ -104,6 +106,7 @@ public ClassLoader getInstrumentableClassLoader() { /** * This implementation always returns a {@link SimpleThrowawayClassLoader}. */ + @Override public ClassLoader getThrowawayClassLoader() { return new SimpleThrowawayClassLoader(getInstrumentableClassLoader()); } @@ -171,6 +174,7 @@ public FilteringClassFileTransformer(ClassFileTransformer targetTransformer, Cla this.targetClassLoader = targetClassLoader; } + @Override public byte[] transform(ClassLoader loader, String className, Class classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException { diff --git a/spring-context/src/main/java/org/springframework/instrument/classloading/ReflectiveLoadTimeWeaver.java b/spring-context/src/main/java/org/springframework/instrument/classloading/ReflectiveLoadTimeWeaver.java index 14d1beeb8a61..47c374457536 100644 --- a/spring-context/src/main/java/org/springframework/instrument/classloading/ReflectiveLoadTimeWeaver.java +++ b/spring-context/src/main/java/org/springframework/instrument/classloading/ReflectiveLoadTimeWeaver.java @@ -117,15 +117,18 @@ public ReflectiveLoadTimeWeaver(ClassLoader classLoader) { } + @Override public void addTransformer(ClassFileTransformer transformer) { Assert.notNull(transformer, "Transformer must not be null"); ReflectionUtils.invokeMethod(this.addTransformerMethod, this.classLoader, new Object[] {transformer}); } + @Override public ClassLoader getInstrumentableClassLoader() { return this.classLoader; } + @Override public ClassLoader getThrowawayClassLoader() { if (this.getThrowawayClassLoaderMethod != null) { return (ClassLoader) ReflectionUtils.invokeMethod(this.getThrowawayClassLoaderMethod, this.classLoader, diff --git a/spring-context/src/main/java/org/springframework/instrument/classloading/ResourceOverridingShadowingClassLoader.java b/spring-context/src/main/java/org/springframework/instrument/classloading/ResourceOverridingShadowingClassLoader.java index 3d15f1035ce4..47bb8dc30b43 100644 --- a/spring-context/src/main/java/org/springframework/instrument/classloading/ResourceOverridingShadowingClassLoader.java +++ b/spring-context/src/main/java/org/springframework/instrument/classloading/ResourceOverridingShadowingClassLoader.java @@ -36,9 +36,11 @@ public class ResourceOverridingShadowingClassLoader extends ShadowingClassLoader { private static final Enumeration EMPTY_URL_ENUMERATION = new Enumeration() { + @Override public boolean hasMoreElements() { return false; } + @Override public URL nextElement() { throw new UnsupportedOperationException("Should not be called. I am empty."); } diff --git a/spring-context/src/main/java/org/springframework/instrument/classloading/SimpleLoadTimeWeaver.java b/spring-context/src/main/java/org/springframework/instrument/classloading/SimpleLoadTimeWeaver.java index a421f0418e08..d95b3d98217e 100644 --- a/spring-context/src/main/java/org/springframework/instrument/classloading/SimpleLoadTimeWeaver.java +++ b/spring-context/src/main/java/org/springframework/instrument/classloading/SimpleLoadTimeWeaver.java @@ -62,10 +62,12 @@ public SimpleLoadTimeWeaver(SimpleInstrumentableClassLoader classLoader) { } + @Override public void addTransformer(ClassFileTransformer transformer) { this.classLoader.addTransformer(transformer); } + @Override public ClassLoader getInstrumentableClassLoader() { return this.classLoader; } @@ -73,6 +75,7 @@ public ClassLoader getInstrumentableClassLoader() { /** * This implementation builds a {@link SimpleThrowawayClassLoader}. */ + @Override public ClassLoader getThrowawayClassLoader() { return new SimpleThrowawayClassLoader(getInstrumentableClassLoader()); } diff --git a/spring-context/src/main/java/org/springframework/instrument/classloading/glassfish/ClassTransformerAdapter.java b/spring-context/src/main/java/org/springframework/instrument/classloading/glassfish/ClassTransformerAdapter.java index 2adca687e1b9..67e33d6902ca 100644 --- a/spring-context/src/main/java/org/springframework/instrument/classloading/glassfish/ClassTransformerAdapter.java +++ b/spring-context/src/main/java/org/springframework/instrument/classloading/glassfish/ClassTransformerAdapter.java @@ -42,6 +42,7 @@ public ClassTransformerAdapter(ClassFileTransformer classFileTransformer) { this.classFileTransformer = classFileTransformer; } + @Override public byte[] transform(ClassLoader loader, String className, Class classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException { diff --git a/spring-context/src/main/java/org/springframework/instrument/classloading/glassfish/GlassFishLoadTimeWeaver.java b/spring-context/src/main/java/org/springframework/instrument/classloading/glassfish/GlassFishLoadTimeWeaver.java index eb28f67ddf99..205ed59c2a27 100644 --- a/spring-context/src/main/java/org/springframework/instrument/classloading/glassfish/GlassFishLoadTimeWeaver.java +++ b/spring-context/src/main/java/org/springframework/instrument/classloading/glassfish/GlassFishLoadTimeWeaver.java @@ -59,14 +59,17 @@ public GlassFishLoadTimeWeaver(ClassLoader classLoader) { } + @Override public void addTransformer(ClassFileTransformer transformer) { this.classLoader.addTransformer(transformer); } + @Override public ClassLoader getInstrumentableClassLoader() { return this.classLoader.getClassLoader(); } + @Override public ClassLoader getThrowawayClassLoader() { return this.classLoader.getThrowawayClassLoader(); } diff --git a/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossLoadTimeWeaver.java b/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossLoadTimeWeaver.java index 6d4d4bce0b94..b8125405dfa3 100644 --- a/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossLoadTimeWeaver.java +++ b/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossLoadTimeWeaver.java @@ -72,14 +72,17 @@ public JBossLoadTimeWeaver(ClassLoader classLoader) { } + @Override public void addTransformer(ClassFileTransformer transformer) { this.adapter.addTransformer(transformer); } + @Override public ClassLoader getInstrumentableClassLoader() { return this.adapter.getInstrumentableClassLoader(); } + @Override public ClassLoader getThrowawayClassLoader() { return new SimpleThrowawayClassLoader(getInstrumentableClassLoader()); } diff --git a/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossMCAdapter.java b/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossMCAdapter.java index 8ae2481ea522..fb834375d8fe 100644 --- a/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossMCAdapter.java +++ b/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossMCAdapter.java @@ -127,6 +127,7 @@ class JBossMCAdapter implements JBossClassLoaderAdapter { } } + @Override public void addTransformer(ClassFileTransformer transformer) { InvocationHandler adapter = new JBossMCTranslatorAdapter(transformer); Object adapterInstance = Proxy.newProxyInstance(this.translatorClass.getClassLoader(), @@ -139,6 +140,7 @@ public void addTransformer(ClassFileTransformer transformer) { } } + @Override public ClassLoader getInstrumentableClassLoader() { return classLoader; } diff --git a/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossMCTranslatorAdapter.java b/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossMCTranslatorAdapter.java index 2ba16e0f8e76..ebb3ded55198 100644 --- a/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossMCTranslatorAdapter.java +++ b/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossMCTranslatorAdapter.java @@ -43,6 +43,7 @@ public JBossMCTranslatorAdapter(ClassFileTransformer transformer) { this.transformer = transformer; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String name = method.getName(); diff --git a/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossModulesAdapter.java b/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossModulesAdapter.java index a0a911e8bdad..7319ec74f3fa 100644 --- a/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossModulesAdapter.java +++ b/spring-context/src/main/java/org/springframework/instrument/classloading/jboss/JBossModulesAdapter.java @@ -57,6 +57,7 @@ public JBossModulesAdapter(ClassLoader loader) { } } + @Override public void addTransformer(ClassFileTransformer transformer) { try { addTransformer.invoke(delegatingTransformer, transformer); @@ -65,6 +66,7 @@ public void addTransformer(ClassFileTransformer transformer) { } } + @Override public ClassLoader getInstrumentableClassLoader() { return classLoader; } diff --git a/spring-context/src/main/java/org/springframework/instrument/classloading/weblogic/WebLogicClassPreProcessorAdapter.java b/spring-context/src/main/java/org/springframework/instrument/classloading/weblogic/WebLogicClassPreProcessorAdapter.java index 5967740664eb..fe35f3f15a1c 100644 --- a/spring-context/src/main/java/org/springframework/instrument/classloading/weblogic/WebLogicClassPreProcessorAdapter.java +++ b/spring-context/src/main/java/org/springframework/instrument/classloading/weblogic/WebLogicClassPreProcessorAdapter.java @@ -49,6 +49,7 @@ public WebLogicClassPreProcessorAdapter(ClassFileTransformer transformer, ClassL this.loader = loader; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String name = method.getName(); diff --git a/spring-context/src/main/java/org/springframework/instrument/classloading/weblogic/WebLogicLoadTimeWeaver.java b/spring-context/src/main/java/org/springframework/instrument/classloading/weblogic/WebLogicLoadTimeWeaver.java index a4e38db93d32..466221730a79 100644 --- a/spring-context/src/main/java/org/springframework/instrument/classloading/weblogic/WebLogicLoadTimeWeaver.java +++ b/spring-context/src/main/java/org/springframework/instrument/classloading/weblogic/WebLogicLoadTimeWeaver.java @@ -58,14 +58,17 @@ public WebLogicLoadTimeWeaver(ClassLoader classLoader) { } + @Override public void addTransformer(ClassFileTransformer transformer) { this.classLoader.addTransformer(transformer); } + @Override public ClassLoader getInstrumentableClassLoader() { return this.classLoader.getClassLoader(); } + @Override public ClassLoader getThrowawayClassLoader() { return this.classLoader.getThrowawayClassLoader(); } diff --git a/spring-context/src/main/java/org/springframework/instrument/classloading/websphere/WebSphereClassPreDefinePlugin.java b/spring-context/src/main/java/org/springframework/instrument/classloading/websphere/WebSphereClassPreDefinePlugin.java index c95684c4d69d..5662febce0e8 100644 --- a/spring-context/src/main/java/org/springframework/instrument/classloading/websphere/WebSphereClassPreDefinePlugin.java +++ b/spring-context/src/main/java/org/springframework/instrument/classloading/websphere/WebSphereClassPreDefinePlugin.java @@ -58,6 +58,7 @@ public WebSphereClassPreDefinePlugin(ClassFileTransformer transformer) { } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String name = method.getName(); if ("equals".equals(name)) { diff --git a/spring-context/src/main/java/org/springframework/instrument/classloading/websphere/WebSphereLoadTimeWeaver.java b/spring-context/src/main/java/org/springframework/instrument/classloading/websphere/WebSphereLoadTimeWeaver.java index 3312c3777839..55c6f863ef70 100644 --- a/spring-context/src/main/java/org/springframework/instrument/classloading/websphere/WebSphereLoadTimeWeaver.java +++ b/spring-context/src/main/java/org/springframework/instrument/classloading/websphere/WebSphereLoadTimeWeaver.java @@ -55,14 +55,17 @@ public WebSphereLoadTimeWeaver(ClassLoader classLoader) { } + @Override public void addTransformer(ClassFileTransformer transformer) { this.classLoader.addTransformer(transformer); } + @Override public ClassLoader getInstrumentableClassLoader() { return this.classLoader.getClassLoader(); } + @Override public ClassLoader getThrowawayClassLoader() { return this.classLoader.getThrowawayClassLoader(); } diff --git a/spring-context/src/main/java/org/springframework/jmx/access/MBeanClientInterceptor.java b/spring-context/src/main/java/org/springframework/jmx/access/MBeanClientInterceptor.java index 36894535ed30..86c95431c175 100644 --- a/spring-context/src/main/java/org/springframework/jmx/access/MBeanClientInterceptor.java +++ b/spring-context/src/main/java/org/springframework/jmx/access/MBeanClientInterceptor.java @@ -227,6 +227,7 @@ protected final Class getManagementInterface() { return this.managementInterface; } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } @@ -236,6 +237,7 @@ public void setBeanClassLoader(ClassLoader beanClassLoader) { * Prepares the {@code MBeanServerConnection} if the "connectOnStartup" * is turned on (which it is by default). */ + @Override public void afterPropertiesSet() { if (this.server != null && this.refreshOnConnectFailure) { throw new IllegalArgumentException("'refreshOnConnectFailure' does not work when setting " + @@ -342,6 +344,7 @@ protected boolean isPrepared() { * @see #doInvoke * @see #handleConnectFailure */ + @Override public Object invoke(MethodInvocation invocation) throws Throwable { // Lazily connect to MBeanServer if necessary. synchronized (this.preparationMonitor) { @@ -604,6 +607,7 @@ private Collection convertDataArrayToTargetCollection(Object[] array, Class coll } + @Override public void destroy() { this.connector.close(); } diff --git a/spring-context/src/main/java/org/springframework/jmx/access/MBeanProxyFactoryBean.java b/spring-context/src/main/java/org/springframework/jmx/access/MBeanProxyFactoryBean.java index 466a4ff8fbc6..022a3a01f637 100644 --- a/spring-context/src/main/java/org/springframework/jmx/access/MBeanProxyFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/jmx/access/MBeanProxyFactoryBean.java @@ -94,14 +94,17 @@ public void afterPropertiesSet() throws MBeanServerNotFoundException, MBeanInfoR } + @Override public Object getObject() { return this.mbeanProxy; } + @Override public Class getObjectType() { return this.proxyInterface; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context/src/main/java/org/springframework/jmx/access/NotificationListenerRegistrar.java b/spring-context/src/main/java/org/springframework/jmx/access/NotificationListenerRegistrar.java index bb0b2021de88..913136578bcd 100644 --- a/spring-context/src/main/java/org/springframework/jmx/access/NotificationListenerRegistrar.java +++ b/spring-context/src/main/java/org/springframework/jmx/access/NotificationListenerRegistrar.java @@ -112,6 +112,7 @@ public void setAgentId(String agentId) { } + @Override public void afterPropertiesSet() { if (getNotificationListener() == null) { throw new IllegalArgumentException("Property 'notificationListener' is required"); @@ -153,6 +154,7 @@ public void prepare() { /** * Unregisters the specified {@code NotificationListener}. */ + @Override public void destroy() { try { if (this.actualObjectNames != null) { diff --git a/spring-context/src/main/java/org/springframework/jmx/export/MBeanExporter.java b/spring-context/src/main/java/org/springframework/jmx/export/MBeanExporter.java index 9e94a66df391..e9a73da2ffa7 100644 --- a/spring-context/src/main/java/org/springframework/jmx/export/MBeanExporter.java +++ b/spring-context/src/main/java/org/springframework/jmx/export/MBeanExporter.java @@ -371,6 +371,7 @@ public void setNotificationListenerMappings(Map beanClass) throws InvalidMetadataException { org.springframework.jmx.export.annotation.ManagedResource ann = beanClass.getAnnotation(org.springframework.jmx.export.annotation.ManagedResource.class); @@ -83,6 +86,7 @@ public ManagedResource getManagedResource(Class beanClass) throws InvalidMeta return managedResource; } + @Override public ManagedAttribute getManagedAttribute(Method method) throws InvalidMetadataException { org.springframework.jmx.export.annotation.ManagedAttribute ann = AnnotationUtils.findAnnotation(method, org.springframework.jmx.export.annotation.ManagedAttribute.class); @@ -97,6 +101,7 @@ public ManagedAttribute getManagedAttribute(Method method) throws InvalidMetadat return managedAttribute; } + @Override public ManagedMetric getManagedMetric(Method method) throws InvalidMetadataException { org.springframework.jmx.export.annotation.ManagedMetric ann = AnnotationUtils.findAnnotation(method, org.springframework.jmx.export.annotation.ManagedMetric.class); @@ -108,6 +113,7 @@ public ManagedMetric getManagedMetric(Method method) throws InvalidMetadataExcep return managedMetric; } + @Override public ManagedOperation getManagedOperation(Method method) throws InvalidMetadataException { Annotation ann = AnnotationUtils.findAnnotation(method, org.springframework.jmx.export.annotation.ManagedOperation.class); if (ann == null) { @@ -118,6 +124,7 @@ public ManagedOperation getManagedOperation(Method method) throws InvalidMetadat return op; } + @Override public ManagedOperationParameter[] getManagedOperationParameters(Method method) throws InvalidMetadataException { @@ -139,6 +146,7 @@ public ManagedOperationParameter[] getManagedOperationParameters(Method method) return result; } + @Override public ManagedNotification[] getManagedNotifications(Class clazz) throws InvalidMetadataException { ManagedNotifications notificationsAnn = clazz.getAnnotation(ManagedNotifications.class); if(notificationsAnn == null) { diff --git a/spring-context/src/main/java/org/springframework/jmx/export/assembler/AbstractMBeanInfoAssembler.java b/spring-context/src/main/java/org/springframework/jmx/export/assembler/AbstractMBeanInfoAssembler.java index ce2c24a18502..244e6a5966ca 100644 --- a/spring-context/src/main/java/org/springframework/jmx/export/assembler/AbstractMBeanInfoAssembler.java +++ b/spring-context/src/main/java/org/springframework/jmx/export/assembler/AbstractMBeanInfoAssembler.java @@ -59,6 +59,7 @@ public abstract class AbstractMBeanInfoAssembler implements MBeanInfoAssembler { * @see #getNotificationInfo(Object, String) * @see #populateMBeanDescriptor(javax.management.Descriptor, Object, String) */ + @Override public ModelMBeanInfo getMBeanInfo(Object managedBean, String beanKey) throws JMException { checkManagedBean(managedBean); ModelMBeanInfo info = new ModelMBeanInfoSupport( diff --git a/spring-context/src/main/java/org/springframework/jmx/export/assembler/InterfaceBasedMBeanInfoAssembler.java b/spring-context/src/main/java/org/springframework/jmx/export/assembler/InterfaceBasedMBeanInfoAssembler.java index e464fa234bf1..3f91e7fdfa48 100644 --- a/spring-context/src/main/java/org/springframework/jmx/export/assembler/InterfaceBasedMBeanInfoAssembler.java +++ b/spring-context/src/main/java/org/springframework/jmx/export/assembler/InterfaceBasedMBeanInfoAssembler.java @@ -109,11 +109,13 @@ public void setInterfaceMappings(Properties mappings) { this.interfaceMappings = mappings; } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } + @Override public void afterPropertiesSet() { if (this.interfaceMappings != null) { this.resolvedInterfaceMappings = resolveInterfaceMappings(this.interfaceMappings); diff --git a/spring-context/src/main/java/org/springframework/jmx/export/assembler/MetadataMBeanInfoAssembler.java b/spring-context/src/main/java/org/springframework/jmx/export/assembler/MetadataMBeanInfoAssembler.java index b75e956dab9d..c9925bc19ab7 100644 --- a/spring-context/src/main/java/org/springframework/jmx/export/assembler/MetadataMBeanInfoAssembler.java +++ b/spring-context/src/main/java/org/springframework/jmx/export/assembler/MetadataMBeanInfoAssembler.java @@ -89,6 +89,7 @@ public void setAttributeSource(JmxAttributeSource attributeSource) { this.attributeSource = attributeSource; } + @Override public void afterPropertiesSet() { if (this.attributeSource == null) { throw new IllegalArgumentException("Property 'attributeSource' is required"); @@ -115,6 +116,7 @@ protected void checkManagedBean(Object managedBean) throws IllegalArgumentExcept * @param beanClass the class of the bean * @param beanName the name of the bean in the bean factory */ + @Override public boolean includeBean(Class beanClass, String beanName) { return (this.attributeSource.getManagedResource(getClassToExpose(beanClass)) != null); } diff --git a/spring-context/src/main/java/org/springframework/jmx/export/naming/IdentityNamingStrategy.java b/spring-context/src/main/java/org/springframework/jmx/export/naming/IdentityNamingStrategy.java index 1e9e4ff43287..ea29cc1737db 100644 --- a/spring-context/src/main/java/org/springframework/jmx/export/naming/IdentityNamingStrategy.java +++ b/spring-context/src/main/java/org/springframework/jmx/export/naming/IdentityNamingStrategy.java @@ -47,6 +47,7 @@ public class IdentityNamingStrategy implements ObjectNamingStrategy { * Returns an instance of {@code ObjectName} based on the identity * of the managed resource. */ + @Override public ObjectName getObjectName(Object managedBean, String beanKey) throws MalformedObjectNameException { String domain = ClassUtils.getPackageName(managedBean.getClass()); Hashtable keys = new Hashtable(); diff --git a/spring-context/src/main/java/org/springframework/jmx/export/naming/KeyNamingStrategy.java b/spring-context/src/main/java/org/springframework/jmx/export/naming/KeyNamingStrategy.java index 07b459910d60..fd0f36cbbabd 100644 --- a/spring-context/src/main/java/org/springframework/jmx/export/naming/KeyNamingStrategy.java +++ b/spring-context/src/main/java/org/springframework/jmx/export/naming/KeyNamingStrategy.java @@ -108,6 +108,7 @@ public void setMappingLocations(Resource[] mappingLocations) { * used for {@code ObjectName} resolution. * @throws IOException */ + @Override public void afterPropertiesSet() throws IOException { this.mergedMappings = new Properties(); @@ -129,6 +130,7 @@ public void afterPropertiesSet() throws IOException { * Attempts to retrieve the {@code ObjectName} via the given key, trying to * find a mapped value in the mappings first. */ + @Override public ObjectName getObjectName(Object managedBean, String beanKey) throws MalformedObjectNameException { String objectName = null; if (this.mergedMappings != null) { diff --git a/spring-context/src/main/java/org/springframework/jmx/export/naming/MetadataNamingStrategy.java b/spring-context/src/main/java/org/springframework/jmx/export/naming/MetadataNamingStrategy.java index f1d138d38bd6..f574256ef042 100644 --- a/spring-context/src/main/java/org/springframework/jmx/export/naming/MetadataNamingStrategy.java +++ b/spring-context/src/main/java/org/springframework/jmx/export/naming/MetadataNamingStrategy.java @@ -94,6 +94,7 @@ public void setDefaultDomain(String defaultDomain) { this.defaultDomain = defaultDomain; } + @Override public void afterPropertiesSet() { if (this.attributeSource == null) { throw new IllegalArgumentException("Property 'attributeSource' is required"); @@ -105,6 +106,7 @@ public void afterPropertiesSet() { * Reads the {@code ObjectName} from the source-level metadata associated * with the managed resource's {@code Class}. */ + @Override public ObjectName getObjectName(Object managedBean, String beanKey) throws MalformedObjectNameException { Class managedClass = AopUtils.getTargetClass(managedBean); ManagedResource mr = this.attributeSource.getManagedResource(managedClass); diff --git a/spring-context/src/main/java/org/springframework/jmx/export/notification/ModelMBeanNotificationPublisher.java b/spring-context/src/main/java/org/springframework/jmx/export/notification/ModelMBeanNotificationPublisher.java index 1c94273bbb2c..3d4e11ff7d07 100644 --- a/spring-context/src/main/java/org/springframework/jmx/export/notification/ModelMBeanNotificationPublisher.java +++ b/spring-context/src/main/java/org/springframework/jmx/export/notification/ModelMBeanNotificationPublisher.java @@ -85,6 +85,7 @@ public ModelMBeanNotificationPublisher( * @throws IllegalArgumentException if the supplied {@code notification} is {@code null} * @throws UnableToSendNotificationException if the supplied {@code notification} could not be sent */ + @Override public void sendNotification(Notification notification) { Assert.notNull(notification, "Notification must not be null"); replaceNotificationSourceIfNecessary(notification); diff --git a/spring-context/src/main/java/org/springframework/jmx/support/ConnectorServerFactoryBean.java b/spring-context/src/main/java/org/springframework/jmx/support/ConnectorServerFactoryBean.java index a717b8a1abd1..5a4d05a7fb0e 100644 --- a/spring-context/src/main/java/org/springframework/jmx/support/ConnectorServerFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/jmx/support/ConnectorServerFactoryBean.java @@ -142,6 +142,7 @@ public void setDaemon(boolean daemon) { * with the {@code MBeanServer} * @throws IOException if there is a problem starting the connector server */ + @Override public void afterPropertiesSet() throws JMException, IOException { if (this.server == null) { this.server = JmxUtils.locateMBeanServer(); @@ -200,14 +201,17 @@ public void run() { } + @Override public JMXConnectorServer getObject() { return this.connectorServer; } + @Override public Class getObjectType() { return (this.connectorServer != null ? this.connectorServer.getClass() : JMXConnectorServer.class); } + @Override public boolean isSingleton() { return true; } @@ -218,6 +222,7 @@ public boolean isSingleton() { * Automatically called on {@code ApplicationContext} shutdown. * @throws IOException if there is an error stopping the connector server */ + @Override public void destroy() throws IOException { if (logger.isInfoEnabled()) { logger.info("Stopping JMX connector server: " + this.connectorServer); diff --git a/spring-context/src/main/java/org/springframework/jmx/support/MBeanServerConnectionFactoryBean.java b/spring-context/src/main/java/org/springframework/jmx/support/MBeanServerConnectionFactoryBean.java index 3d9b82bc34ef..5c923b19034a 100644 --- a/spring-context/src/main/java/org/springframework/jmx/support/MBeanServerConnectionFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/jmx/support/MBeanServerConnectionFactoryBean.java @@ -101,6 +101,7 @@ public void setConnectOnStartup(boolean connectOnStartup) { this.connectOnStartup = connectOnStartup; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -110,6 +111,7 @@ public void setBeanClassLoader(ClassLoader classLoader) { * Creates a {@code JMXConnector} for the given settings * and exposes the associated {@code MBeanServerConnection}. */ + @Override public void afterPropertiesSet() throws IOException { if (this.serviceUrl == null) { throw new IllegalArgumentException("Property 'serviceUrl' is required"); @@ -146,14 +148,17 @@ private void createLazyConnection() { } + @Override public MBeanServerConnection getObject() { return this.connection; } + @Override public Class getObjectType() { return (this.connection != null ? this.connection.getClass() : MBeanServerConnection.class); } + @Override public boolean isSingleton() { return true; } @@ -162,6 +167,7 @@ public boolean isSingleton() { /** * Closes the underlying {@code JMXConnector}. */ + @Override public void destroy() throws IOException { if (this.connectorTargetSource == null || this.connectorTargetSource.isInitialized()) { this.connector.close(); diff --git a/spring-context/src/main/java/org/springframework/jmx/support/MBeanServerFactoryBean.java b/spring-context/src/main/java/org/springframework/jmx/support/MBeanServerFactoryBean.java index 61b1086a4caa..9bbfe08c85f4 100644 --- a/spring-context/src/main/java/org/springframework/jmx/support/MBeanServerFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/jmx/support/MBeanServerFactoryBean.java @@ -118,6 +118,7 @@ public void setRegisterWithFactory(boolean registerWithFactory) { /** * Creates the {@code MBeanServer} instance. */ + @Override public void afterPropertiesSet() throws MBeanServerNotFoundException { // Try to locate existing MBeanServer, if desired. if (this.locateExistingServerIfPossible || this.agentId != null) { @@ -179,14 +180,17 @@ protected MBeanServer createMBeanServer(String defaultDomain, boolean registerWi } + @Override public MBeanServer getObject() { return this.server; } + @Override public Class getObjectType() { return (this.server != null ? this.server.getClass() : MBeanServer.class); } + @Override public boolean isSingleton() { return true; } @@ -195,6 +199,7 @@ public boolean isSingleton() { /** * Unregisters the {@code MBeanServer} instance, if necessary. */ + @Override public void destroy() { if (this.newlyRegistered) { MBeanServerFactory.releaseMBeanServer(this.server); diff --git a/spring-context/src/main/java/org/springframework/jmx/support/WebSphereMBeanServerFactoryBean.java b/spring-context/src/main/java/org/springframework/jmx/support/WebSphereMBeanServerFactoryBean.java index 5cd37f3d6592..1cd564b193bb 100644 --- a/spring-context/src/main/java/org/springframework/jmx/support/WebSphereMBeanServerFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/jmx/support/WebSphereMBeanServerFactoryBean.java @@ -55,6 +55,7 @@ public class WebSphereMBeanServerFactoryBean implements FactoryBean private MBeanServer mbeanServer; + @Override public void afterPropertiesSet() throws MBeanServerNotFoundException { try { /* @@ -80,14 +81,17 @@ public void afterPropertiesSet() throws MBeanServerNotFoundException { } + @Override public MBeanServer getObject() { return this.mbeanServer; } + @Override public Class getObjectType() { return (this.mbeanServer != null ? this.mbeanServer.getClass() : MBeanServer.class); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context/src/main/java/org/springframework/jndi/JndiObjectFactoryBean.java b/spring-context/src/main/java/org/springframework/jndi/JndiObjectFactoryBean.java index 92315a9248da..7c8d2f5b9ce0 100644 --- a/spring-context/src/main/java/org/springframework/jndi/JndiObjectFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/jndi/JndiObjectFactoryBean.java @@ -155,6 +155,7 @@ public void setDefaultObject(Object defaultObject) { this.defaultObject = defaultObject; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -228,10 +229,12 @@ else if (logger.isInfoEnabled()) { /** * Return the singleton JNDI object. */ + @Override public Object getObject() { return this.jndiObject; } + @Override public Class getObjectType() { if (this.proxyInterfaces != null) { if (this.proxyInterfaces.length == 1) { @@ -249,6 +252,7 @@ else if (this.proxyInterfaces.length > 1) { } } + @Override public boolean isSingleton() { return true; } @@ -323,6 +327,7 @@ public JndiContextExposingInterceptor(JndiTemplate jndiTemplate) { this.jndiTemplate = jndiTemplate; } + @Override public Object invoke(MethodInvocation invocation) throws Throwable { Context ctx = (isEligible(invocation.getMethod()) ? this.jndiTemplate.getContext() : null); try { diff --git a/spring-context/src/main/java/org/springframework/jndi/JndiObjectLocator.java b/spring-context/src/main/java/org/springframework/jndi/JndiObjectLocator.java index 8c2750da2a80..123dcee53c46 100644 --- a/spring-context/src/main/java/org/springframework/jndi/JndiObjectLocator.java +++ b/spring-context/src/main/java/org/springframework/jndi/JndiObjectLocator.java @@ -85,6 +85,7 @@ public Class getExpectedType() { return this.expectedType; } + @Override public void afterPropertiesSet() throws IllegalArgumentException, NamingException { if (!StringUtils.hasLength(getJndiName())) { throw new IllegalArgumentException("Property 'jndiName' is required"); diff --git a/spring-context/src/main/java/org/springframework/jndi/JndiObjectTargetSource.java b/spring-context/src/main/java/org/springframework/jndi/JndiObjectTargetSource.java index 25f742de17b6..e95146936923 100644 --- a/spring-context/src/main/java/org/springframework/jndi/JndiObjectTargetSource.java +++ b/spring-context/src/main/java/org/springframework/jndi/JndiObjectTargetSource.java @@ -105,6 +105,7 @@ public void afterPropertiesSet() throws NamingException { } + @Override public Class getTargetClass() { if (this.cachedObject != null) { return this.cachedObject.getClass(); @@ -117,10 +118,12 @@ else if (this.targetClass != null) { } } + @Override public boolean isStatic() { return (this.cachedObject != null); } + @Override public Object getTarget() { try { if (this.lookupOnStartup || !this.cache) { @@ -140,6 +143,7 @@ public Object getTarget() { } } + @Override public void releaseTarget(Object target) { } diff --git a/spring-context/src/main/java/org/springframework/jndi/JndiTemplate.java b/spring-context/src/main/java/org/springframework/jndi/JndiTemplate.java index 441a113d88e1..35f964fde8ad 100644 --- a/spring-context/src/main/java/org/springframework/jndi/JndiTemplate.java +++ b/spring-context/src/main/java/org/springframework/jndi/JndiTemplate.java @@ -150,6 +150,7 @@ public Object lookup(final String name) throws NamingException { logger.debug("Looking up JNDI object with name [" + name + "]"); } return execute(new JndiCallback() { + @Override public Object doInContext(Context ctx) throws NamingException { Object located = ctx.lookup(name); if (located == null) { @@ -194,6 +195,7 @@ public void bind(final String name, final Object object) throws NamingException logger.debug("Binding JNDI object with name [" + name + "]"); } execute(new JndiCallback() { + @Override public Object doInContext(Context ctx) throws NamingException { ctx.bind(name, object); return null; @@ -213,6 +215,7 @@ public void rebind(final String name, final Object object) throws NamingExceptio logger.debug("Rebinding JNDI object with name [" + name + "]"); } execute(new JndiCallback() { + @Override public Object doInContext(Context ctx) throws NamingException { ctx.rebind(name, object); return null; @@ -230,6 +233,7 @@ public void unbind(final String name) throws NamingException { logger.debug("Unbinding JNDI object with name [" + name + "]"); } execute(new JndiCallback() { + @Override public Object doInContext(Context ctx) throws NamingException { ctx.unbind(name); return null; diff --git a/spring-context/src/main/java/org/springframework/jndi/support/SimpleJndiBeanFactory.java b/spring-context/src/main/java/org/springframework/jndi/support/SimpleJndiBeanFactory.java index f565f37edf68..555e1f4b91f9 100644 --- a/spring-context/src/main/java/org/springframework/jndi/support/SimpleJndiBeanFactory.java +++ b/spring-context/src/main/java/org/springframework/jndi/support/SimpleJndiBeanFactory.java @@ -100,10 +100,12 @@ public void addShareableResource(String shareableResource) { //--------------------------------------------------------------------- + @Override public Object getBean(String name) throws BeansException { return getBean(name, Object.class); } + @Override public T getBean(String name, Class requiredType) throws BeansException { try { if (isSingleton(name)) { @@ -124,10 +126,12 @@ public T getBean(String name, Class requiredType) throws BeansException { } } + @Override public T getBean(Class requiredType) throws BeansException { return getBean(requiredType.getSimpleName(), requiredType); } + @Override public Object getBean(String name, Object... args) throws BeansException { if (args != null) { throw new UnsupportedOperationException( @@ -136,6 +140,7 @@ public Object getBean(String name, Object... args) throws BeansException { return getBean(name); } + @Override public boolean containsBean(String name) { if (this.singletonObjects.containsKey(name) || this.resourceTypes.containsKey(name)) { return true; @@ -149,19 +154,23 @@ public boolean containsBean(String name) { } } + @Override public boolean isSingleton(String name) throws NoSuchBeanDefinitionException { return this.shareableResources.contains(name); } + @Override public boolean isPrototype(String name) throws NoSuchBeanDefinitionException { return !this.shareableResources.contains(name); } + @Override public boolean isTypeMatch(String name, Class targetType) throws NoSuchBeanDefinitionException { Class type = getType(name); return (targetType == null || (type != null && targetType.isAssignableFrom(type))); } + @Override public Class getType(String name) throws NoSuchBeanDefinitionException { try { return doGetType(name); @@ -174,6 +183,7 @@ public Class getType(String name) throws NoSuchBeanDefinitionException { } } + @Override public String[] getAliases(String name) { return new String[0]; } diff --git a/spring-context/src/main/java/org/springframework/remoting/rmi/JndiRmiClientInterceptor.java b/spring-context/src/main/java/org/springframework/remoting/rmi/JndiRmiClientInterceptor.java index caa7f51452aa..6e193fe99693 100644 --- a/spring-context/src/main/java/org/springframework/remoting/rmi/JndiRmiClientInterceptor.java +++ b/spring-context/src/main/java/org/springframework/remoting/rmi/JndiRmiClientInterceptor.java @@ -281,6 +281,7 @@ protected Object getStub() throws NamingException, RemoteLookupFailureException * @see java.rmi.ConnectIOException * @see java.rmi.NoSuchObjectException */ + @Override public Object invoke(MethodInvocation invocation) throws Throwable { Object stub; try { diff --git a/spring-context/src/main/java/org/springframework/remoting/rmi/JndiRmiProxyFactoryBean.java b/spring-context/src/main/java/org/springframework/remoting/rmi/JndiRmiProxyFactoryBean.java index b4e884e26067..645251429cdb 100644 --- a/spring-context/src/main/java/org/springframework/remoting/rmi/JndiRmiProxyFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/remoting/rmi/JndiRmiProxyFactoryBean.java @@ -69,6 +69,7 @@ public class JndiRmiProxyFactoryBean extends JndiRmiClientInterceptor private Object serviceProxy; + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -83,14 +84,17 @@ public void afterPropertiesSet() throws NamingException { } + @Override public Object getObject() { return this.serviceProxy; } + @Override public Class getObjectType() { return getServiceInterface(); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context/src/main/java/org/springframework/remoting/rmi/JndiRmiServiceExporter.java b/spring-context/src/main/java/org/springframework/remoting/rmi/JndiRmiServiceExporter.java index 180ba0f5633e..d3e50819f19b 100644 --- a/spring-context/src/main/java/org/springframework/remoting/rmi/JndiRmiServiceExporter.java +++ b/spring-context/src/main/java/org/springframework/remoting/rmi/JndiRmiServiceExporter.java @@ -101,6 +101,7 @@ public void setJndiName(String jndiName) { } + @Override public void afterPropertiesSet() throws NamingException, RemoteException { prepare(); } @@ -137,6 +138,7 @@ public void rebind() throws NamingException { /** * Unbind the RMI service from JNDI on bean factory shutdown. */ + @Override public void destroy() throws NamingException, NoSuchObjectException { if (logger.isInfoEnabled()) { logger.info("Unbinding RMI service from JNDI location [" + this.jndiName + "]"); diff --git a/spring-context/src/main/java/org/springframework/remoting/rmi/RemoteInvocationSerializingExporter.java b/spring-context/src/main/java/org/springframework/remoting/rmi/RemoteInvocationSerializingExporter.java index d4673dbff6fa..6e0c08466a1b 100644 --- a/spring-context/src/main/java/org/springframework/remoting/rmi/RemoteInvocationSerializingExporter.java +++ b/spring-context/src/main/java/org/springframework/remoting/rmi/RemoteInvocationSerializingExporter.java @@ -94,6 +94,7 @@ public boolean isAcceptProxyClasses() { } + @Override public void afterPropertiesSet() { prepare(); } diff --git a/spring-context/src/main/java/org/springframework/remoting/rmi/RmiClientInterceptor.java b/spring-context/src/main/java/org/springframework/remoting/rmi/RmiClientInterceptor.java index fb8e9032755e..b9e5330a1761 100644 --- a/spring-context/src/main/java/org/springframework/remoting/rmi/RmiClientInterceptor.java +++ b/spring-context/src/main/java/org/springframework/remoting/rmi/RmiClientInterceptor.java @@ -253,6 +253,7 @@ protected Remote getStub() throws RemoteLookupFailureException { * @see java.rmi.ConnectIOException * @see java.rmi.NoSuchObjectException */ + @Override public Object invoke(MethodInvocation invocation) throws Throwable { Remote stub = getStub(); try { diff --git a/spring-context/src/main/java/org/springframework/remoting/rmi/RmiInvocationWrapper.java b/spring-context/src/main/java/org/springframework/remoting/rmi/RmiInvocationWrapper.java index 22cac7f71f0a..b5d2da61599b 100644 --- a/spring-context/src/main/java/org/springframework/remoting/rmi/RmiInvocationWrapper.java +++ b/spring-context/src/main/java/org/springframework/remoting/rmi/RmiInvocationWrapper.java @@ -57,6 +57,7 @@ public RmiInvocationWrapper(Object wrappedObject, RmiBasedExporter rmiExporter) * Exposes the exporter's service interface, if any, as target interface. * @see RmiBasedExporter#getServiceInterface() */ + @Override public String getTargetInterfaceName() { Class ifc = this.rmiExporter.getServiceInterface(); return (ifc != null ? ifc.getName() : null); @@ -66,6 +67,7 @@ public String getTargetInterfaceName() { * Delegates the actual invocation handling to the RMI exporter. * @see RmiBasedExporter#invoke(org.springframework.remoting.support.RemoteInvocation, Object) */ + @Override public Object invoke(RemoteInvocation invocation) throws RemoteException, NoSuchMethodException, IllegalAccessException, InvocationTargetException { diff --git a/spring-context/src/main/java/org/springframework/remoting/rmi/RmiProxyFactoryBean.java b/spring-context/src/main/java/org/springframework/remoting/rmi/RmiProxyFactoryBean.java index a635a1fa5992..ef88378589ef 100644 --- a/spring-context/src/main/java/org/springframework/remoting/rmi/RmiProxyFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/remoting/rmi/RmiProxyFactoryBean.java @@ -73,14 +73,17 @@ public void afterPropertiesSet() { } + @Override public Object getObject() { return this.serviceProxy; } + @Override public Class getObjectType() { return getServiceInterface(); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context/src/main/java/org/springframework/remoting/rmi/RmiRegistryFactoryBean.java b/spring-context/src/main/java/org/springframework/remoting/rmi/RmiRegistryFactoryBean.java index fee68ce8d734..0a6ded9114f8 100644 --- a/spring-context/src/main/java/org/springframework/remoting/rmi/RmiRegistryFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/remoting/rmi/RmiRegistryFactoryBean.java @@ -149,6 +149,7 @@ public void setAlwaysCreate(boolean alwaysCreate) { } + @Override public void afterPropertiesSet() throws Exception { // Check socket factories for registry. if (this.clientSocketFactory instanceof RMIServerSocketFactory) { @@ -282,14 +283,17 @@ protected void testRegistry(Registry registry) throws RemoteException { } + @Override public Registry getObject() throws Exception { return this.registry; } + @Override public Class getObjectType() { return (this.registry != null ? this.registry.getClass() : Registry.class); } + @Override public boolean isSingleton() { return true; } @@ -299,6 +303,7 @@ public boolean isSingleton() { * Unexport the RMI registry on bean factory shutdown, * provided that this bean actually created a registry. */ + @Override public void destroy() throws RemoteException { if (this.created) { logger.info("Unexporting RMI registry"); diff --git a/spring-context/src/main/java/org/springframework/remoting/rmi/RmiServiceExporter.java b/spring-context/src/main/java/org/springframework/remoting/rmi/RmiServiceExporter.java index 81bf07e825cd..6f05da086d65 100644 --- a/spring-context/src/main/java/org/springframework/remoting/rmi/RmiServiceExporter.java +++ b/spring-context/src/main/java/org/springframework/remoting/rmi/RmiServiceExporter.java @@ -225,6 +225,7 @@ public void setReplaceExistingBinding(boolean replaceExistingBinding) { } + @Override public void afterPropertiesSet() throws RemoteException { prepare(); } @@ -424,6 +425,7 @@ protected void testRegistry(Registry registry) throws RemoteException { /** * Unbind the RMI service from the registry on bean factory shutdown. */ + @Override public void destroy() throws RemoteException { if (logger.isInfoEnabled()) { logger.info("Unbinding RMI service '" + this.serviceName + diff --git a/spring-context/src/main/java/org/springframework/remoting/support/DefaultRemoteInvocationExecutor.java b/spring-context/src/main/java/org/springframework/remoting/support/DefaultRemoteInvocationExecutor.java index a4969dc42f8f..d66473012542 100644 --- a/spring-context/src/main/java/org/springframework/remoting/support/DefaultRemoteInvocationExecutor.java +++ b/spring-context/src/main/java/org/springframework/remoting/support/DefaultRemoteInvocationExecutor.java @@ -30,6 +30,7 @@ */ public class DefaultRemoteInvocationExecutor implements RemoteInvocationExecutor { + @Override public Object invoke(RemoteInvocation invocation, Object targetObject) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException{ diff --git a/spring-context/src/main/java/org/springframework/remoting/support/DefaultRemoteInvocationFactory.java b/spring-context/src/main/java/org/springframework/remoting/support/DefaultRemoteInvocationFactory.java index e98a226510ad..83d0e7126507 100644 --- a/spring-context/src/main/java/org/springframework/remoting/support/DefaultRemoteInvocationFactory.java +++ b/spring-context/src/main/java/org/springframework/remoting/support/DefaultRemoteInvocationFactory.java @@ -27,6 +27,7 @@ */ public class DefaultRemoteInvocationFactory implements RemoteInvocationFactory { + @Override public RemoteInvocation createRemoteInvocation(MethodInvocation methodInvocation) { return new RemoteInvocation(methodInvocation); } diff --git a/spring-context/src/main/java/org/springframework/remoting/support/RemoteInvocationTraceInterceptor.java b/spring-context/src/main/java/org/springframework/remoting/support/RemoteInvocationTraceInterceptor.java index f7a1599c81ab..f629dc6b7ddd 100644 --- a/spring-context/src/main/java/org/springframework/remoting/support/RemoteInvocationTraceInterceptor.java +++ b/spring-context/src/main/java/org/springframework/remoting/support/RemoteInvocationTraceInterceptor.java @@ -67,6 +67,7 @@ public RemoteInvocationTraceInterceptor(String exporterName) { } + @Override public Object invoke(MethodInvocation invocation) throws Throwable { Method method = invocation.getMethod(); if (logger.isDebugEnabled()) { diff --git a/spring-context/src/main/java/org/springframework/remoting/support/RemotingSupport.java b/spring-context/src/main/java/org/springframework/remoting/support/RemotingSupport.java index 832d48996295..02f31ba803b7 100644 --- a/spring-context/src/main/java/org/springframework/remoting/support/RemotingSupport.java +++ b/spring-context/src/main/java/org/springframework/remoting/support/RemotingSupport.java @@ -37,6 +37,7 @@ public abstract class RemotingSupport implements BeanClassLoaderAware { private ClassLoader beanClassLoader = ClassUtils.getDefaultClassLoader(); + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } diff --git a/spring-context/src/main/java/org/springframework/remoting/support/SimpleHttpServerFactoryBean.java b/spring-context/src/main/java/org/springframework/remoting/support/SimpleHttpServerFactoryBean.java index 69f4ebe82147..1cc5669e6cf0 100644 --- a/spring-context/src/main/java/org/springframework/remoting/support/SimpleHttpServerFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/remoting/support/SimpleHttpServerFactoryBean.java @@ -143,6 +143,7 @@ public void setAuthenticator(Authenticator authenticator) { } + @Override public void afterPropertiesSet() throws IOException { InetSocketAddress address = (this.hostname != null ? new InetSocketAddress(this.hostname, this.port) : new InetSocketAddress(this.port)); @@ -167,18 +168,22 @@ public void afterPropertiesSet() throws IOException { this.server.start(); } + @Override public HttpServer getObject() { return this.server; } + @Override public Class getObjectType() { return (this.server != null ? this.server.getClass() : HttpServer.class); } + @Override public boolean isSingleton() { return true; } + @Override public void destroy() { logger.info("Stopping HttpServer"); this.server.stop(this.shutdownDelay); diff --git a/spring-context/src/main/java/org/springframework/remoting/support/UrlBasedRemoteAccessor.java b/spring-context/src/main/java/org/springframework/remoting/support/UrlBasedRemoteAccessor.java index 6e15b0941cae..9e00b592f8c8 100644 --- a/spring-context/src/main/java/org/springframework/remoting/support/UrlBasedRemoteAccessor.java +++ b/spring-context/src/main/java/org/springframework/remoting/support/UrlBasedRemoteAccessor.java @@ -46,6 +46,7 @@ public String getServiceUrl() { } + @Override public void afterPropertiesSet() { if (getServiceUrl() == null) { throw new IllegalArgumentException("Property 'serviceUrl' is required"); diff --git a/spring-context/src/main/java/org/springframework/scheduling/annotation/AbstractAsyncConfiguration.java b/spring-context/src/main/java/org/springframework/scheduling/annotation/AbstractAsyncConfiguration.java index 57fd7b694520..2f8703dc69fd 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/annotation/AbstractAsyncConfiguration.java +++ b/spring-context/src/main/java/org/springframework/scheduling/annotation/AbstractAsyncConfiguration.java @@ -40,6 +40,7 @@ public abstract class AbstractAsyncConfiguration implements ImportAware { protected AnnotationAttributes enableAsync; protected Executor executor; + @Override public void setImportMetadata(AnnotationMetadata importMetadata) { this.enableAsync = AnnotationAttributes.fromMap( importMetadata.getAnnotationAttributes(EnableAsync.class.getName(), false)); diff --git a/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncAnnotationAdvisor.java b/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncAnnotationAdvisor.java index 35e57c59d202..fcbbcfa63b05 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncAnnotationAdvisor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncAnnotationAdvisor.java @@ -111,6 +111,7 @@ public void setAsyncAnnotationType(Class asyncAnnotationTy /** * Set the {@code BeanFactory} to be used when looking up executors by qualifier. */ + @Override public void setBeanFactory(BeanFactory beanFactory) { if (this.advice instanceof BeanFactoryAware) { ((BeanFactoryAware) this.advice).setBeanFactory(beanFactory); @@ -118,10 +119,12 @@ public void setBeanFactory(BeanFactory beanFactory) { } + @Override public Advice getAdvice() { return this.advice; } + @Override public Pointcut getPointcut() { return this.pointcut; } diff --git a/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncAnnotationBeanPostProcessor.java b/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncAnnotationBeanPostProcessor.java index 0ac2f757f033..202f2ae47d57 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncAnnotationBeanPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncAnnotationBeanPostProcessor.java @@ -82,6 +82,7 @@ public void setExecutor(Executor executor) { this.executor = executor; } + @Override public void setBeanFactory(BeanFactory beanFactory) { AsyncAnnotationAdvisor advisor = (this.executor != null ? new AsyncAnnotationAdvisor(this.executor) : new AsyncAnnotationAdvisor()); diff --git a/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncConfigurationSelector.java b/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncConfigurationSelector.java index 49b01a8e7657..ea6afa94b855 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncConfigurationSelector.java +++ b/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncConfigurationSelector.java @@ -37,6 +37,7 @@ public class AsyncConfigurationSelector extends AdviceModeImportSelector targetClass = AopUtils.getTargetClass(bean); ReflectionUtils.doWithMethods(targetClass, new MethodCallback() { + @Override public void doWith(Method method) throws IllegalArgumentException, IllegalAccessException { Scheduled annotation = AnnotationUtils.getAnnotation(method, Scheduled.class); if (annotation != null) { @@ -225,6 +231,7 @@ public void doWith(Method method) throws IllegalArgumentException, IllegalAccess return bean; } + @Override public void onApplicationEvent(ContextRefreshedEvent event) { if (event.getApplicationContext() != this.applicationContext) { return; @@ -259,6 +266,7 @@ else if (schedulers.size() >= 2){ this.registrar.afterPropertiesSet(); } + @Override public void destroy() throws Exception { if (this.registrar != null) { this.registrar.destroy(); diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskExecutor.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskExecutor.java index b0e244e7b471..9518a6773974 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskExecutor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskExecutor.java @@ -126,18 +126,22 @@ public final Executor getConcurrentExecutor() { } + @Override public void execute(Runnable task) { this.adaptedExecutor.execute(task); } + @Override public void execute(Runnable task, long startTimeout) { this.adaptedExecutor.execute(task, startTimeout); } + @Override public Future submit(Runnable task) { return this.adaptedExecutor.submit(task); } + @Override public Future submit(Callable task) { return this.adaptedExecutor.submit(task); } @@ -145,6 +149,7 @@ public Future submit(Callable task) { /** * This task executor prefers short-lived work units. */ + @Override public boolean prefersShortLivedTasks() { return true; } diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskScheduler.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskScheduler.java index ef4285d58e40..96320a5df4bb 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskScheduler.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskScheduler.java @@ -157,6 +157,7 @@ public void setErrorHandler(ErrorHandler errorHandler) { } + @Override public ScheduledFuture schedule(Runnable task, Trigger trigger) { try { if (this.enterpriseConcurrentScheduler) { @@ -172,6 +173,7 @@ public ScheduledFuture schedule(Runnable task, Trigger trigger) { } } + @Override public ScheduledFuture schedule(Runnable task, Date startTime) { long initialDelay = startTime.getTime() - System.currentTimeMillis(); try { @@ -182,6 +184,7 @@ public ScheduledFuture schedule(Runnable task, Date startTime) { } } + @Override public ScheduledFuture scheduleAtFixedRate(Runnable task, Date startTime, long period) { long initialDelay = startTime.getTime() - System.currentTimeMillis(); try { @@ -192,6 +195,7 @@ public ScheduledFuture scheduleAtFixedRate(Runnable task, Date startTime, long p } } + @Override public ScheduledFuture scheduleAtFixedRate(Runnable task, long period) { try { return this.scheduledExecutor.scheduleAtFixedRate(decorateTask(task, true), 0, period, TimeUnit.MILLISECONDS); @@ -201,6 +205,7 @@ public ScheduledFuture scheduleAtFixedRate(Runnable task, long period) { } } + @Override public ScheduledFuture scheduleWithFixedDelay(Runnable task, Date startTime, long delay) { long initialDelay = startTime.getTime() - System.currentTimeMillis(); try { @@ -211,6 +216,7 @@ public ScheduledFuture scheduleWithFixedDelay(Runnable task, Date startTime, lon } } + @Override public ScheduledFuture scheduleWithFixedDelay(Runnable task, long delay) { try { return this.scheduledExecutor.scheduleWithFixedDelay(decorateTask(task, true), 0, delay, TimeUnit.MILLISECONDS); @@ -238,11 +244,13 @@ private class EnterpriseConcurrentTriggerScheduler { public ScheduledFuture schedule(Runnable task, final Trigger trigger) { ManagedScheduledExecutorService executor = (ManagedScheduledExecutorService) scheduledExecutor; return executor.schedule(task, new javax.enterprise.concurrent.Trigger() { + @Override public Date getNextRunTime(LastExecution le, Date taskScheduledTime) { return trigger.nextExecutionTime(le != null ? new SimpleTriggerContext(le.getScheduledStart(), le.getRunStart(), le.getRunEnd()) : new SimpleTriggerContext()); } + @Override public boolean skipRun(LastExecution lastExecution, Date scheduledRunTime) { return false; } diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/CustomizableThreadFactory.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/CustomizableThreadFactory.java index 7ac8d4790e67..090eac7b5069 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/CustomizableThreadFactory.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/CustomizableThreadFactory.java @@ -51,6 +51,7 @@ public CustomizableThreadFactory(String threadNamePrefix) { } + @Override public Thread newThread(Runnable runnable) { return createThread(runnable); } diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ExecutorConfigurationSupport.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ExecutorConfigurationSupport.java index b7ec82e9ed50..c80030647bea 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ExecutorConfigurationSupport.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ExecutorConfigurationSupport.java @@ -138,6 +138,7 @@ public void setAwaitTerminationSeconds(int awaitTerminationSeconds) { this.awaitTerminationSeconds = awaitTerminationSeconds; } + @Override public void setBeanName(String name) { this.beanName = name; } @@ -147,6 +148,7 @@ public void setBeanName(String name) { * Calls {@code initialize()} after the container applied all property values. * @see #initialize() */ + @Override public void afterPropertiesSet() { initialize(); } @@ -181,6 +183,7 @@ protected abstract ExecutorService initializeExecutor( * the task executor instance. * @see #shutdown() */ + @Override public void destroy() { shutdown(); } diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ForkJoinPoolFactoryBean.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ForkJoinPoolFactoryBean.java index d74f1e1f9af9..7d141ce51a42 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ForkJoinPoolFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ForkJoinPoolFactoryBean.java @@ -125,25 +125,30 @@ public void setAwaitTerminationSeconds(int awaitTerminationSeconds) { this.awaitTerminationSeconds = awaitTerminationSeconds; } + @Override public void afterPropertiesSet() { this.forkJoinPool = (this.commonPool ? ForkJoinPool.commonPool() : new ForkJoinPool(this.parallelism, this.threadFactory, this.uncaughtExceptionHandler, this.asyncMode)); } + @Override public ForkJoinPool getObject() { return this.forkJoinPool; } + @Override public Class getObjectType() { return ForkJoinPool.class; } + @Override public boolean isSingleton() { return true; } + @Override public void destroy() { // Ignored for the common pool. this.forkJoinPool.shutdown(); diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ReschedulingRunnable.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ReschedulingRunnable.java index fba41f0778b8..ff199f16099f 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ReschedulingRunnable.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ReschedulingRunnable.java @@ -89,24 +89,28 @@ public void run() { } + @Override public boolean cancel(boolean mayInterruptIfRunning) { synchronized (this.triggerContextMonitor) { return this.currentFuture.cancel(mayInterruptIfRunning); } } + @Override public boolean isCancelled() { synchronized (this.triggerContextMonitor) { return this.currentFuture.isCancelled(); } } + @Override public boolean isDone() { synchronized (this.triggerContextMonitor) { return this.currentFuture.isDone(); } } + @Override public Object get() throws InterruptedException, ExecutionException { ScheduledFuture curr; synchronized (this.triggerContextMonitor) { @@ -115,6 +119,7 @@ public Object get() throws InterruptedException, ExecutionException { return curr.get(); } + @Override public Object get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { ScheduledFuture curr; synchronized (this.triggerContextMonitor) { @@ -123,6 +128,7 @@ public Object get(long timeout, TimeUnit unit) throws InterruptedException, Exec return curr.get(timeout, unit); } + @Override public long getDelay(TimeUnit unit) { ScheduledFuture curr; synchronized (this.triggerContextMonitor) { @@ -131,6 +137,7 @@ public long getDelay(TimeUnit unit) { return curr.getDelay(unit); } + @Override public int compareTo(Delayed other) { if (this == other) { return 0; diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ScheduledExecutorFactoryBean.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ScheduledExecutorFactoryBean.java index 40d48ad29554..4b5e4b6a2595 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ScheduledExecutorFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ScheduledExecutorFactoryBean.java @@ -122,6 +122,7 @@ public void setExposeUnconfigurableExecutor(boolean exposeUnconfigurableExecutor } + @Override protected ExecutorService initializeExecutor( ThreadFactory threadFactory, RejectedExecutionHandler rejectedExecutionHandler) { @@ -198,14 +199,17 @@ protected Runnable getRunnableToSchedule(ScheduledExecutorTask task) { } + @Override public ScheduledExecutorService getObject() { return this.exposedExecutor; } + @Override public Class getObjectType() { return (this.exposedExecutor != null ? this.exposedExecutor.getClass() : ScheduledExecutorService.class); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolExecutorFactoryBean.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolExecutorFactoryBean.java index 3e04248ea868..b8912e8143de 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolExecutorFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolExecutorFactoryBean.java @@ -133,6 +133,7 @@ public void setExposeUnconfigurableExecutor(boolean exposeUnconfigurableExecutor } + @Override protected ExecutorService initializeExecutor( ThreadFactory threadFactory, RejectedExecutionHandler rejectedExecutionHandler) { @@ -190,14 +191,17 @@ protected BlockingQueue createQueue(int queueCapacity) { } + @Override public ExecutorService getObject() throws Exception { return this.exposedExecutor; } + @Override public Class getObjectType() { return (this.exposedExecutor != null ? this.exposedExecutor.getClass() : ExecutorService.class); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskExecutor.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskExecutor.java index 31dc69d553ba..6674768af79c 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskExecutor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskExecutor.java @@ -176,6 +176,7 @@ public void setQueueCapacity(int queueCapacity) { } + @Override protected ExecutorService initializeExecutor( ThreadFactory threadFactory, RejectedExecutionHandler rejectedExecutionHandler) { @@ -236,6 +237,7 @@ public int getActiveCount() { } + @Override public void execute(Runnable task) { Executor executor = getThreadPoolExecutor(); try { @@ -246,10 +248,12 @@ public void execute(Runnable task) { } } + @Override public void execute(Runnable task, long startTimeout) { execute(task); } + @Override public Future submit(Runnable task) { ExecutorService executor = getThreadPoolExecutor(); try { @@ -260,6 +264,7 @@ public Future submit(Runnable task) { } } + @Override public Future submit(Callable task) { ExecutorService executor = getThreadPoolExecutor(); try { @@ -273,6 +278,7 @@ public Future submit(Callable task) { /** * This task executor prefers short-lived work units. */ + @Override public boolean prefersShortLivedTasks() { return true; } diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskScheduler.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskScheduler.java index e8961e05e360..01c05d6bc4c2 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskScheduler.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskScheduler.java @@ -76,6 +76,7 @@ public void setErrorHandler(ErrorHandler errorHandler) { this.errorHandler = errorHandler; } + @Override protected ExecutorService initializeExecutor( ThreadFactory threadFactory, RejectedExecutionHandler rejectedExecutionHandler) { @@ -113,6 +114,7 @@ public ScheduledExecutorService getScheduledExecutor() throws IllegalStateExcept // SchedulingTaskExecutor implementation + @Override public void execute(Runnable task) { Executor executor = getScheduledExecutor(); try { @@ -123,10 +125,12 @@ public void execute(Runnable task) { } } + @Override public void execute(Runnable task, long startTimeout) { execute(task); } + @Override public Future submit(Runnable task) { ExecutorService executor = getScheduledExecutor(); try { @@ -137,6 +141,7 @@ public Future submit(Runnable task) { } } + @Override public Future submit(Callable task) { ExecutorService executor = getScheduledExecutor(); try { @@ -150,6 +155,7 @@ public Future submit(Callable task) { } } + @Override public boolean prefersShortLivedTasks() { return true; } @@ -157,6 +163,7 @@ public boolean prefersShortLivedTasks() { // TaskScheduler implementation + @Override public ScheduledFuture schedule(Runnable task, Trigger trigger) { ScheduledExecutorService executor = getScheduledExecutor(); try { @@ -169,6 +176,7 @@ public ScheduledFuture schedule(Runnable task, Trigger trigger) { } } + @Override public ScheduledFuture schedule(Runnable task, Date startTime) { ScheduledExecutorService executor = getScheduledExecutor(); long initialDelay = startTime.getTime() - System.currentTimeMillis(); @@ -180,6 +188,7 @@ public ScheduledFuture schedule(Runnable task, Date startTime) { } } + @Override public ScheduledFuture scheduleAtFixedRate(Runnable task, Date startTime, long period) { ScheduledExecutorService executor = getScheduledExecutor(); long initialDelay = startTime.getTime() - System.currentTimeMillis(); @@ -191,6 +200,7 @@ public ScheduledFuture scheduleAtFixedRate(Runnable task, Date startTime, long p } } + @Override public ScheduledFuture scheduleAtFixedRate(Runnable task, long period) { ScheduledExecutorService executor = getScheduledExecutor(); try { @@ -201,6 +211,7 @@ public ScheduledFuture scheduleAtFixedRate(Runnable task, long period) { } } + @Override public ScheduledFuture scheduleWithFixedDelay(Runnable task, Date startTime, long delay) { ScheduledExecutorService executor = getScheduledExecutor(); long initialDelay = startTime.getTime() - System.currentTimeMillis(); @@ -212,6 +223,7 @@ public ScheduledFuture scheduleWithFixedDelay(Runnable task, Date startTime, lon } } + @Override public ScheduledFuture scheduleWithFixedDelay(Runnable task, long delay) { ScheduledExecutorService executor = getScheduledExecutor(); try { @@ -238,6 +250,7 @@ private static class DelegatingErrorHandlingCallable implements Callable { this.errorHandler = errorHandler; } + @Override public V call() throws Exception { try { return delegate.call(); diff --git a/spring-context/src/main/java/org/springframework/scheduling/config/AnnotationDrivenBeanDefinitionParser.java b/spring-context/src/main/java/org/springframework/scheduling/config/AnnotationDrivenBeanDefinitionParser.java index 39b86694d23d..7900b9988e7b 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/config/AnnotationDrivenBeanDefinitionParser.java +++ b/spring-context/src/main/java/org/springframework/scheduling/config/AnnotationDrivenBeanDefinitionParser.java @@ -69,6 +69,7 @@ public class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParse AnnotationConfigUtils.SCHEDULED_ANNOTATION_PROCESSOR_BEAN_NAME; + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { Object source = parserContext.extractSource(element); diff --git a/spring-context/src/main/java/org/springframework/scheduling/config/ContextLifecycleScheduledTaskRegistrar.java b/spring-context/src/main/java/org/springframework/scheduling/config/ContextLifecycleScheduledTaskRegistrar.java index 8a0fba8c3bad..8165f1878a91 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/config/ContextLifecycleScheduledTaskRegistrar.java +++ b/spring-context/src/main/java/org/springframework/scheduling/config/ContextLifecycleScheduledTaskRegistrar.java @@ -35,6 +35,7 @@ public class ContextLifecycleScheduledTaskRegistrar extends ScheduledTaskRegistr private ApplicationContext applicationContext; + @Override public void setApplicationContext(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } @@ -55,6 +56,7 @@ public void afterPropertiesSet() { * Actually schedule the tasks at the right time of the context lifecycle, * if we're running within an ApplicationContext. */ + @Override public void onApplicationEvent(ContextRefreshedEvent event) { if (event.getApplicationContext() != this.applicationContext) { return; diff --git a/spring-context/src/main/java/org/springframework/scheduling/config/ScheduledTaskRegistrar.java b/spring-context/src/main/java/org/springframework/scheduling/config/ScheduledTaskRegistrar.java index 2efd26cea9e3..7682ad86f75e 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/config/ScheduledTaskRegistrar.java +++ b/spring-context/src/main/java/org/springframework/scheduling/config/ScheduledTaskRegistrar.java @@ -278,6 +278,7 @@ public boolean hasTasks() { /** * Calls {@link #scheduleTasks()} at bean construction time. */ + @Override public void afterPropertiesSet() { scheduleTasks(); } @@ -333,6 +334,7 @@ protected void scheduleTasks() { } } + @Override public void destroy() { for (ScheduledFuture future : this.scheduledFutures) { future.cancel(true); diff --git a/spring-context/src/main/java/org/springframework/scheduling/config/TaskExecutorFactoryBean.java b/spring-context/src/main/java/org/springframework/scheduling/config/TaskExecutorFactoryBean.java index d8356d08e98c..d655a84e5540 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/config/TaskExecutorFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/scheduling/config/TaskExecutorFactoryBean.java @@ -66,11 +66,13 @@ public void setKeepAliveSeconds(int keepAliveSeconds) { this.keepAliveSeconds = keepAliveSeconds; } + @Override public void setBeanName(String beanName) { this.beanName = beanName; } + @Override public void afterPropertiesSet() throws Exception { BeanWrapper bw = new BeanWrapperImpl(ThreadPoolTaskExecutor.class); determinePoolSizeRange(bw); @@ -136,19 +138,23 @@ private void determinePoolSizeRange(BeanWrapper bw) { } + @Override public TaskExecutor getObject() { return this.target; } + @Override public Class getObjectType() { return (this.target != null ? this.target.getClass() : ThreadPoolTaskExecutor.class); } + @Override public boolean isSingleton() { return true; } + @Override public void destroy() throws Exception { if (this.target instanceof DisposableBean) { ((DisposableBean) this.target).destroy(); diff --git a/spring-context/src/main/java/org/springframework/scheduling/config/TaskNamespaceHandler.java b/spring-context/src/main/java/org/springframework/scheduling/config/TaskNamespaceHandler.java index 6ba1d5a552d1..4d86209219ac 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/config/TaskNamespaceHandler.java +++ b/spring-context/src/main/java/org/springframework/scheduling/config/TaskNamespaceHandler.java @@ -26,6 +26,7 @@ */ public class TaskNamespaceHandler extends NamespaceHandlerSupport { + @Override public void init() { this.registerBeanDefinitionParser("annotation-driven", new AnnotationDrivenBeanDefinitionParser()); this.registerBeanDefinitionParser("executor", new ExecutorBeanDefinitionParser()); diff --git a/spring-context/src/main/java/org/springframework/scheduling/support/CronTrigger.java b/spring-context/src/main/java/org/springframework/scheduling/support/CronTrigger.java index 94f6385a1a9c..6f9bde668273 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/support/CronTrigger.java +++ b/spring-context/src/main/java/org/springframework/scheduling/support/CronTrigger.java @@ -55,6 +55,7 @@ public CronTrigger(String cronExpression, TimeZone timeZone) { } + @Override public Date nextExecutionTime(TriggerContext triggerContext) { Date date = triggerContext.lastCompletionTime(); if (date != null) { diff --git a/spring-context/src/main/java/org/springframework/scheduling/support/DelegatingErrorHandlingRunnable.java b/spring-context/src/main/java/org/springframework/scheduling/support/DelegatingErrorHandlingRunnable.java index 69dda4327a18..1bbb2c8493ab 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/support/DelegatingErrorHandlingRunnable.java +++ b/spring-context/src/main/java/org/springframework/scheduling/support/DelegatingErrorHandlingRunnable.java @@ -48,6 +48,7 @@ public DelegatingErrorHandlingRunnable(Runnable delegate, ErrorHandler errorHand this.errorHandler = errorHandler; } + @Override public void run() { try { this.delegate.run(); diff --git a/spring-context/src/main/java/org/springframework/scheduling/support/MethodInvokingRunnable.java b/spring-context/src/main/java/org/springframework/scheduling/support/MethodInvokingRunnable.java index 76ea3862ca36..fec7cc84b844 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/support/MethodInvokingRunnable.java +++ b/spring-context/src/main/java/org/springframework/scheduling/support/MethodInvokingRunnable.java @@ -45,6 +45,7 @@ public class MethodInvokingRunnable extends ArgumentConvertingMethodInvoker private ClassLoader beanClassLoader = ClassUtils.getDefaultClassLoader(); + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -54,11 +55,13 @@ protected Class resolveClassName(String className) throws ClassNotFoundException return ClassUtils.forName(className, this.beanClassLoader); } + @Override public void afterPropertiesSet() throws ClassNotFoundException, NoSuchMethodException { prepare(); } + @Override public void run() { try { invoke(); diff --git a/spring-context/src/main/java/org/springframework/scheduling/support/PeriodicTrigger.java b/spring-context/src/main/java/org/springframework/scheduling/support/PeriodicTrigger.java index e25fdd3f254e..0c3b029d42fd 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/support/PeriodicTrigger.java +++ b/spring-context/src/main/java/org/springframework/scheduling/support/PeriodicTrigger.java @@ -95,6 +95,7 @@ public void setFixedRate(boolean fixedRate) { /** * Returns the time after which a task should run again. */ + @Override public Date nextExecutionTime(TriggerContext triggerContext) { if (triggerContext.lastScheduledExecutionTime() == null) { return new Date(System.currentTimeMillis() + this.initialDelay); diff --git a/spring-context/src/main/java/org/springframework/scheduling/support/ScheduledMethodRunnable.java b/spring-context/src/main/java/org/springframework/scheduling/support/ScheduledMethodRunnable.java index 6b0ee62a8929..63beb9b18003 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/support/ScheduledMethodRunnable.java +++ b/spring-context/src/main/java/org/springframework/scheduling/support/ScheduledMethodRunnable.java @@ -58,6 +58,7 @@ public Method getMethod() { } + @Override public void run() { try { ReflectionUtils.makeAccessible(this.method); diff --git a/spring-context/src/main/java/org/springframework/scheduling/support/SimpleTriggerContext.java b/spring-context/src/main/java/org/springframework/scheduling/support/SimpleTriggerContext.java index 85413fdbe8e4..289388cee09c 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/support/SimpleTriggerContext.java +++ b/spring-context/src/main/java/org/springframework/scheduling/support/SimpleTriggerContext.java @@ -67,14 +67,17 @@ public void update(Date lastScheduledExecutionTime, Date lastActualExecutionTime } + @Override public Date lastScheduledExecutionTime() { return this.lastScheduledExecutionTime; } + @Override public Date lastActualExecutionTime() { return this.lastActualExecutionTime; } + @Override public Date lastCompletionTime() { return this.lastCompletionTime; } diff --git a/spring-context/src/main/java/org/springframework/scheduling/support/TaskUtils.java b/spring-context/src/main/java/org/springframework/scheduling/support/TaskUtils.java index e6cea29f6bd9..3b86d2fbd2d1 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/support/TaskUtils.java +++ b/spring-context/src/main/java/org/springframework/scheduling/support/TaskUtils.java @@ -89,6 +89,7 @@ private static class LoggingErrorHandler implements ErrorHandler { private final Log logger = LogFactory.getLog(LoggingErrorHandler.class); + @Override public void handleError(Throwable t) { if (logger.isErrorEnabled()) { logger.error("Unexpected error occurred in scheduled task.", t); @@ -103,6 +104,7 @@ public void handleError(Throwable t) { */ private static class PropagatingErrorHandler extends LoggingErrorHandler { + @Override public void handleError(Throwable t) { super.handleError(t); ReflectionUtils.rethrowRuntimeException(t); diff --git a/spring-context/src/main/java/org/springframework/scripting/bsh/BshScriptFactory.java b/spring-context/src/main/java/org/springframework/scripting/bsh/BshScriptFactory.java index 2d94a16cb8fd..f22a9a50a826 100644 --- a/spring-context/src/main/java/org/springframework/scripting/bsh/BshScriptFactory.java +++ b/spring-context/src/main/java/org/springframework/scripting/bsh/BshScriptFactory.java @@ -84,15 +84,18 @@ public BshScriptFactory(String scriptSourceLocator, Class[] scriptInterfaces) { this.scriptInterfaces = scriptInterfaces; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public String getScriptSourceLocator() { return this.scriptSourceLocator; } + @Override public Class[] getScriptInterfaces() { return this.scriptInterfaces; } @@ -100,6 +103,7 @@ public Class[] getScriptInterfaces() { /** * BeanShell scripts do require a config interface. */ + @Override public boolean requiresConfigInterface() { return true; } @@ -108,6 +112,7 @@ public boolean requiresConfigInterface() { * Load and parse the BeanShell script via {@link BshScriptUtils}. * @see BshScriptUtils#createBshObject(String, Class[], ClassLoader) */ + @Override public Object getScriptedObject(ScriptSource scriptSource, Class[] actualInterfaces) throws IOException, ScriptCompilationException { @@ -159,6 +164,7 @@ public Object getScriptedObject(ScriptSource scriptSource, Class[] actualInterfa } } + @Override public Class getScriptedObjectType(ScriptSource scriptSource) throws IOException, ScriptCompilationException { @@ -177,6 +183,7 @@ public Class getScriptedObjectType(ScriptSource scriptSource) } } + @Override public boolean requiresScriptedObjectRefresh(ScriptSource scriptSource) { synchronized (this.scriptClassMonitor) { return (scriptSource.isModified() || this.wasModifiedForTypeCheck); diff --git a/spring-context/src/main/java/org/springframework/scripting/bsh/BshScriptUtils.java b/spring-context/src/main/java/org/springframework/scripting/bsh/BshScriptUtils.java index d71298e29cfe..1ad320493cc4 100644 --- a/spring-context/src/main/java/org/springframework/scripting/bsh/BshScriptUtils.java +++ b/spring-context/src/main/java/org/springframework/scripting/bsh/BshScriptUtils.java @@ -173,6 +173,7 @@ public BshObjectInvocationHandler(XThis xt) { this.xt = xt; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (ReflectionUtils.isEqualsMethod(method)) { return (isProxyForSameBshObject(args[0])); diff --git a/spring-context/src/main/java/org/springframework/scripting/config/LangNamespaceHandler.java b/spring-context/src/main/java/org/springframework/scripting/config/LangNamespaceHandler.java index e66455a8d69d..b7888faa7817 100644 --- a/spring-context/src/main/java/org/springframework/scripting/config/LangNamespaceHandler.java +++ b/spring-context/src/main/java/org/springframework/scripting/config/LangNamespaceHandler.java @@ -39,6 +39,7 @@ */ public class LangNamespaceHandler extends NamespaceHandlerSupport { + @Override public void init() { registerScriptBeanDefinitionParser("groovy", "org.springframework.scripting.groovy.GroovyScriptFactory"); registerScriptBeanDefinitionParser("jruby", "org.springframework.scripting.jruby.JRubyScriptFactory"); diff --git a/spring-context/src/main/java/org/springframework/scripting/config/ScriptingDefaultsParser.java b/spring-context/src/main/java/org/springframework/scripting/config/ScriptingDefaultsParser.java index d0766b95f40d..b54526248603 100644 --- a/spring-context/src/main/java/org/springframework/scripting/config/ScriptingDefaultsParser.java +++ b/spring-context/src/main/java/org/springframework/scripting/config/ScriptingDefaultsParser.java @@ -35,6 +35,7 @@ public class ScriptingDefaultsParser implements BeanDefinitionParser { private static final String PROXY_TARGET_CLASS_ATTRIBUTE = "proxy-target-class"; + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { BeanDefinition bd = LangNamespaceUtils.registerScriptFactoryPostProcessorIfNecessary(parserContext.getRegistry()); diff --git a/spring-context/src/main/java/org/springframework/scripting/groovy/GroovyScriptFactory.java b/spring-context/src/main/java/org/springframework/scripting/groovy/GroovyScriptFactory.java index ebc89ce257c6..4afac28b0756 100644 --- a/spring-context/src/main/java/org/springframework/scripting/groovy/GroovyScriptFactory.java +++ b/spring-context/src/main/java/org/springframework/scripting/groovy/GroovyScriptFactory.java @@ -101,12 +101,14 @@ public GroovyScriptFactory(String scriptSourceLocator, GroovyObjectCustomizer gr } + @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { if (beanFactory instanceof ConfigurableListableBeanFactory) { ((ConfigurableListableBeanFactory) beanFactory).ignoreDependencyType(MetaClass.class); } } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.groovyClassLoader = new GroovyClassLoader(classLoader); } @@ -124,6 +126,7 @@ public GroovyClassLoader getGroovyClassLoader() { } + @Override public String getScriptSourceLocator() { return this.scriptSourceLocator; } @@ -133,6 +136,7 @@ public String getScriptSourceLocator() { * hence we don't need to explicitly expose interfaces here. * @return {@code null} always */ + @Override public Class[] getScriptInterfaces() { return null; } @@ -141,6 +145,7 @@ public Class[] getScriptInterfaces() { * Groovy scripts do not need a config interface, * since they expose their setters as public methods. */ + @Override public boolean requiresConfigInterface() { return false; } @@ -150,6 +155,7 @@ public boolean requiresConfigInterface() { * Loads and parses the Groovy script via the GroovyClassLoader. * @see groovy.lang.GroovyClassLoader */ + @Override public Object getScriptedObject(ScriptSource scriptSource, Class[] actualInterfaces) throws IOException, ScriptCompilationException { @@ -191,6 +197,7 @@ public Object getScriptedObject(ScriptSource scriptSource, Class[] actualInterfa } } + @Override public Class getScriptedObjectType(ScriptSource scriptSource) throws IOException, ScriptCompilationException { @@ -220,6 +227,7 @@ public Class getScriptedObjectType(ScriptSource scriptSource) } } + @Override public boolean requiresScriptedObjectRefresh(ScriptSource scriptSource) { synchronized (this.scriptClassMonitor) { return (scriptSource.isModified() || this.wasModifiedForTypeCheck); diff --git a/spring-context/src/main/java/org/springframework/scripting/jruby/JRubyScriptFactory.java b/spring-context/src/main/java/org/springframework/scripting/jruby/JRubyScriptFactory.java index e4d7eeecfb6e..a3d59c6acd87 100644 --- a/spring-context/src/main/java/org/springframework/scripting/jruby/JRubyScriptFactory.java +++ b/spring-context/src/main/java/org/springframework/scripting/jruby/JRubyScriptFactory.java @@ -69,15 +69,18 @@ public JRubyScriptFactory(String scriptSourceLocator, Class[] scriptInterfaces) } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public String getScriptSourceLocator() { return this.scriptSourceLocator; } + @Override public Class[] getScriptInterfaces() { return this.scriptInterfaces; } @@ -85,6 +88,7 @@ public Class[] getScriptInterfaces() { /** * JRuby scripts do require a config interface. */ + @Override public boolean requiresConfigInterface() { return true; } @@ -93,6 +97,7 @@ public boolean requiresConfigInterface() { * Load and parse the JRuby script via JRubyScriptUtils. * @see JRubyScriptUtils#createJRubyObject(String, Class[], ClassLoader) */ + @Override public Object getScriptedObject(ScriptSource scriptSource, Class[] actualInterfaces) throws IOException, ScriptCompilationException { try { @@ -110,12 +115,14 @@ public Object getScriptedObject(ScriptSource scriptSource, Class[] actualInterfa } } + @Override public Class getScriptedObjectType(ScriptSource scriptSource) throws IOException, ScriptCompilationException { return null; } + @Override public boolean requiresScriptedObjectRefresh(ScriptSource scriptSource) { return scriptSource.isModified(); } diff --git a/spring-context/src/main/java/org/springframework/scripting/jruby/JRubyScriptUtils.java b/spring-context/src/main/java/org/springframework/scripting/jruby/JRubyScriptUtils.java index 3ef0011497b4..6b46af7474ad 100644 --- a/spring-context/src/main/java/org/springframework/scripting/jruby/JRubyScriptUtils.java +++ b/spring-context/src/main/java/org/springframework/scripting/jruby/JRubyScriptUtils.java @@ -161,6 +161,7 @@ public RubyObjectInvocationHandler(IRubyObject rubyObject, Ruby ruby) { this.ruby = ruby; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (ReflectionUtils.isEqualsMethod(method)) { return (isProxyForSameRubyObject(args[0])); diff --git a/spring-context/src/main/java/org/springframework/scripting/support/ResourceScriptSource.java b/spring-context/src/main/java/org/springframework/scripting/support/ResourceScriptSource.java index c0de42493f40..5c778d3920e5 100644 --- a/spring-context/src/main/java/org/springframework/scripting/support/ResourceScriptSource.java +++ b/spring-context/src/main/java/org/springframework/scripting/support/ResourceScriptSource.java @@ -74,6 +74,7 @@ public final Resource getResource() { return this.resource; } + @Override public String getScriptAsString() throws IOException { synchronized (this.lastModifiedMonitor) { this.lastModified = retrieveLastModifiedTime(); @@ -86,6 +87,7 @@ public String getScriptAsString() throws IOException { return FileCopyUtils.copyToString(reader); } + @Override public boolean isModified() { synchronized (this.lastModifiedMonitor) { return (this.lastModified < 0 || retrieveLastModifiedTime() > this.lastModified); @@ -108,6 +110,7 @@ protected long retrieveLastModifiedTime() { } } + @Override public String suggestedClassName() { return StringUtils.stripFilenameExtension(getResource().getFilename()); } diff --git a/spring-context/src/main/java/org/springframework/scripting/support/ScriptFactoryPostProcessor.java b/spring-context/src/main/java/org/springframework/scripting/support/ScriptFactoryPostProcessor.java index d46917005fd1..84ea6a9d272f 100644 --- a/spring-context/src/main/java/org/springframework/scripting/support/ScriptFactoryPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/scripting/support/ScriptFactoryPostProcessor.java @@ -200,10 +200,12 @@ public void setDefaultProxyTargetClass(boolean defaultProxyTargetClass) { this.defaultProxyTargetClass = defaultProxyTargetClass; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public void setBeanFactory(BeanFactory beanFactory) { if (!(beanFactory instanceof ConfigurableBeanFactory)) { throw new IllegalStateException("ScriptFactoryPostProcessor doesn't work with a BeanFactory " @@ -226,10 +228,12 @@ public void setBeanFactory(BeanFactory beanFactory) { } } + @Override public void setResourceLoader(ResourceLoader resourceLoader) { this.resourceLoader = resourceLoader; } + @Override public int getOrder() { return Integer.MIN_VALUE; } @@ -570,6 +574,7 @@ protected Object createRefreshableProxy(TargetSource ts, Class[] interfaces, boo /** * Destroy the inner bean factory (used for scripts) on shutdown. */ + @Override public void destroy() { this.scriptBeanFactory.destroySingletons(); } diff --git a/spring-context/src/main/java/org/springframework/scripting/support/StaticScriptSource.java b/spring-context/src/main/java/org/springframework/scripting/support/StaticScriptSource.java index 5afede47a8f2..dbd937a0f0a7 100644 --- a/spring-context/src/main/java/org/springframework/scripting/support/StaticScriptSource.java +++ b/spring-context/src/main/java/org/springframework/scripting/support/StaticScriptSource.java @@ -68,15 +68,18 @@ public synchronized void setScript(String script) { } + @Override public synchronized String getScriptAsString() { this.modified = false; return this.script; } + @Override public synchronized boolean isModified() { return this.modified; } + @Override public String suggestedClassName() { return this.className; } diff --git a/spring-context/src/main/java/org/springframework/ui/ExtendedModelMap.java b/spring-context/src/main/java/org/springframework/ui/ExtendedModelMap.java index b2710d4bde52..c7b6ffbb14fc 100644 --- a/spring-context/src/main/java/org/springframework/ui/ExtendedModelMap.java +++ b/spring-context/src/main/java/org/springframework/ui/ExtendedModelMap.java @@ -59,6 +59,7 @@ public ExtendedModelMap mergeAttributes(Map attributes) { return this; } + @Override public Map asMap() { return this; } diff --git a/spring-context/src/main/java/org/springframework/ui/context/support/DelegatingThemeSource.java b/spring-context/src/main/java/org/springframework/ui/context/support/DelegatingThemeSource.java index d884bf576108..290754c719f9 100644 --- a/spring-context/src/main/java/org/springframework/ui/context/support/DelegatingThemeSource.java +++ b/spring-context/src/main/java/org/springframework/ui/context/support/DelegatingThemeSource.java @@ -36,15 +36,18 @@ public class DelegatingThemeSource implements HierarchicalThemeSource { private ThemeSource parentThemeSource; + @Override public void setParentThemeSource(ThemeSource parentThemeSource) { this.parentThemeSource = parentThemeSource; } + @Override public ThemeSource getParentThemeSource() { return parentThemeSource; } + @Override public Theme getTheme(String themeName) { if (this.parentThemeSource != null) { return this.parentThemeSource.getTheme(themeName); diff --git a/spring-context/src/main/java/org/springframework/ui/context/support/ResourceBundleThemeSource.java b/spring-context/src/main/java/org/springframework/ui/context/support/ResourceBundleThemeSource.java index a0c195df32e6..c595af8cf27c 100644 --- a/spring-context/src/main/java/org/springframework/ui/context/support/ResourceBundleThemeSource.java +++ b/spring-context/src/main/java/org/springframework/ui/context/support/ResourceBundleThemeSource.java @@ -53,6 +53,7 @@ public class ResourceBundleThemeSource implements HierarchicalThemeSource { private final Map themeCache = new HashMap(); + @Override public void setParentThemeSource(ThemeSource parent) { this.parentThemeSource = parent; @@ -65,6 +66,7 @@ public void setParentThemeSource(ThemeSource parent) { } } + @Override public ThemeSource getParentThemeSource() { return this.parentThemeSource; } @@ -93,6 +95,7 @@ public void setBasenamePrefix(String basenamePrefix) { * @see #setBasenamePrefix * @see #createMessageSource */ + @Override public Theme getTheme(String themeName) { if (themeName == null) { return null; diff --git a/spring-context/src/main/java/org/springframework/ui/context/support/SimpleTheme.java b/spring-context/src/main/java/org/springframework/ui/context/support/SimpleTheme.java index 16c47413d79c..b83b69523d62 100644 --- a/spring-context/src/main/java/org/springframework/ui/context/support/SimpleTheme.java +++ b/spring-context/src/main/java/org/springframework/ui/context/support/SimpleTheme.java @@ -47,10 +47,12 @@ public SimpleTheme(String name, MessageSource messageSource) { } + @Override public final String getName() { return this.name; } + @Override public final MessageSource getMessageSource() { return this.messageSource; } diff --git a/spring-context/src/main/java/org/springframework/validation/AbstractBindingResult.java b/spring-context/src/main/java/org/springframework/validation/AbstractBindingResult.java index 65ead97598f0..5d33eb37ec0c 100644 --- a/spring-context/src/main/java/org/springframework/validation/AbstractBindingResult.java +++ b/spring-context/src/main/java/org/springframework/validation/AbstractBindingResult.java @@ -84,15 +84,18 @@ public MessageCodesResolver getMessageCodesResolver() { // Implementation of the Errors interface //--------------------------------------------------------------------- + @Override public String getObjectName() { return this.objectName; } + @Override public void reject(String errorCode, Object[] errorArgs, String defaultMessage) { addError(new ObjectError(getObjectName(), resolveMessageCodes(errorCode), errorArgs, defaultMessage)); } + @Override public void rejectValue(String field, String errorCode, Object[] errorArgs, String defaultMessage) { if ("".equals(getNestedPath()) && !StringUtils.hasLength(field)) { // We're at the top of the nested object hierarchy, @@ -109,10 +112,12 @@ public void rejectValue(String field, String errorCode, Object[] errorArgs, Stri addError(fe); } + @Override public void addError(ObjectError error) { this.errors.add(error); } + @Override public void addAllErrors(Errors errors) { if (!errors.getObjectName().equals(getObjectName())) { throw new IllegalArgumentException("Errors object needs to have same object name"); @@ -120,10 +125,12 @@ public void addAllErrors(Errors errors) { this.errors.addAll(errors.getAllErrors()); } + @Override public String[] resolveMessageCodes(String errorCode) { return getMessageCodesResolver().resolveMessageCodes(errorCode, getObjectName()); } + @Override public String[] resolveMessageCodes(String errorCode, String field) { Class fieldType = getFieldType(field); return getMessageCodesResolver().resolveMessageCodes( @@ -146,6 +153,7 @@ public List getAllErrors() { return Collections.unmodifiableList(this.errors); } + @Override public List getGlobalErrors() { List result = new LinkedList(); for (ObjectError objectError : this.errors) { @@ -166,6 +174,7 @@ public ObjectError getGlobalError() { return null; } + @Override public List getFieldErrors() { List result = new LinkedList(); for (ObjectError objectError : this.errors) { @@ -212,6 +221,7 @@ public FieldError getFieldError(String field) { return null; } + @Override public Object getFieldValue(String field) { FieldError fieldError = getFieldError(field); // Use rejected value in case of error, current bean property value else. @@ -262,6 +272,7 @@ public Class getFieldType(String field) { * @see org.springframework.web.servlet.tags.BindTag * @see org.springframework.web.servlet.mvc.SimpleFormController */ + @Override public Map getModel() { Map model = new LinkedHashMap(2); // Mapping from name to target object. @@ -271,6 +282,7 @@ public Map getModel() { return model; } + @Override public Object getRawFieldValue(String field) { return getActualFieldValue(fixedField(field)); } @@ -280,6 +292,7 @@ public Object getRawFieldValue(String field) { * {@link #getPropertyEditorRegistry() PropertyEditorRegistry}'s * editor lookup facility, if available. */ + @Override public PropertyEditor findEditor(String field, Class valueType) { PropertyEditorRegistry editorRegistry = getPropertyEditorRegistry(); if (editorRegistry != null) { @@ -297,6 +310,7 @@ public PropertyEditor findEditor(String field, Class valueType) { /** * This implementation returns {@code null}. */ + @Override public PropertyEditorRegistry getPropertyEditorRegistry() { return null; } @@ -307,6 +321,7 @@ public PropertyEditorRegistry getPropertyEditorRegistry() { * detected to target a disallowed field. * @see DataBinder#setAllowedFields */ + @Override public void recordSuppressedField(String field) { this.suppressedFields.add(field); } @@ -317,6 +332,7 @@ public void recordSuppressedField(String field) { * disallowed fields. * @see DataBinder#setAllowedFields */ + @Override public String[] getSuppressedFields() { return StringUtils.toStringArray(this.suppressedFields); } @@ -349,6 +365,7 @@ public int hashCode() { /** * Return the wrapped target object. */ + @Override public abstract Object getTarget(); /** diff --git a/spring-context/src/main/java/org/springframework/validation/AbstractErrors.java b/spring-context/src/main/java/org/springframework/validation/AbstractErrors.java index 3ab515bc890f..18c566644ce4 100644 --- a/spring-context/src/main/java/org/springframework/validation/AbstractErrors.java +++ b/spring-context/src/main/java/org/springframework/validation/AbstractErrors.java @@ -41,20 +41,24 @@ public abstract class AbstractErrors implements Errors, Serializable { private final Stack nestedPathStack = new Stack(); + @Override public void setNestedPath(String nestedPath) { doSetNestedPath(nestedPath); this.nestedPathStack.clear(); } + @Override public String getNestedPath() { return this.nestedPath; } + @Override public void pushNestedPath(String subPath) { this.nestedPathStack.push(getNestedPath()); doSetNestedPath(getNestedPath() + subPath); } + @Override public void popNestedPath() throws IllegalArgumentException { try { String formerNestedPath = this.nestedPathStack.pop(); @@ -106,31 +110,38 @@ protected String canonicalFieldName(String field) { } + @Override public void reject(String errorCode) { reject(errorCode, null, null); } + @Override public void reject(String errorCode, String defaultMessage) { reject(errorCode, null, defaultMessage); } + @Override public void rejectValue(String field, String errorCode) { rejectValue(field, errorCode, null, null); } + @Override public void rejectValue(String field, String errorCode, String defaultMessage) { rejectValue(field, errorCode, null, defaultMessage); } + @Override public boolean hasErrors() { return !getAllErrors().isEmpty(); } + @Override public int getErrorCount() { return getAllErrors().size(); } + @Override public List getAllErrors() { List result = new LinkedList(); result.addAll(getGlobalErrors()); @@ -138,40 +149,49 @@ public List getAllErrors() { return Collections.unmodifiableList(result); } + @Override public boolean hasGlobalErrors() { return (getGlobalErrorCount() > 0); } + @Override public int getGlobalErrorCount() { return getGlobalErrors().size(); } + @Override public ObjectError getGlobalError() { List globalErrors = getGlobalErrors(); return (!globalErrors.isEmpty() ? globalErrors.get(0) : null); } + @Override public boolean hasFieldErrors() { return (getFieldErrorCount() > 0); } + @Override public int getFieldErrorCount() { return getFieldErrors().size(); } + @Override public FieldError getFieldError() { List fieldErrors = getFieldErrors(); return (!fieldErrors.isEmpty() ? fieldErrors.get(0) : null); } + @Override public boolean hasFieldErrors(String field) { return (getFieldErrorCount(field) > 0); } + @Override public int getFieldErrorCount(String field) { return getFieldErrors(field).size(); } + @Override public List getFieldErrors(String field) { List fieldErrors = getFieldErrors(); List result = new LinkedList(); @@ -184,12 +204,14 @@ public List getFieldErrors(String field) { return Collections.unmodifiableList(result); } + @Override public FieldError getFieldError(String field) { List fieldErrors = getFieldErrors(field); return (!fieldErrors.isEmpty() ? fieldErrors.get(0) : null); } + @Override public Class getFieldType(String field) { Object value = getFieldValue(field); if (value != null) { diff --git a/spring-context/src/main/java/org/springframework/validation/BindException.java b/spring-context/src/main/java/org/springframework/validation/BindException.java index e7896996b3c2..fc3e8e00fa0a 100644 --- a/spring-context/src/main/java/org/springframework/validation/BindException.java +++ b/spring-context/src/main/java/org/springframework/validation/BindException.java @@ -77,161 +77,200 @@ public final BindingResult getBindingResult() { } + @Override public String getObjectName() { return this.bindingResult.getObjectName(); } + @Override public void setNestedPath(String nestedPath) { this.bindingResult.setNestedPath(nestedPath); } + @Override public String getNestedPath() { return this.bindingResult.getNestedPath(); } + @Override public void pushNestedPath(String subPath) { this.bindingResult.pushNestedPath(subPath); } + @Override public void popNestedPath() throws IllegalStateException { this.bindingResult.popNestedPath(); } + @Override public void reject(String errorCode) { this.bindingResult.reject(errorCode); } + @Override public void reject(String errorCode, String defaultMessage) { this.bindingResult.reject(errorCode, defaultMessage); } + @Override public void reject(String errorCode, Object[] errorArgs, String defaultMessage) { this.bindingResult.reject(errorCode, errorArgs, defaultMessage); } + @Override public void rejectValue(String field, String errorCode) { this.bindingResult.rejectValue(field, errorCode); } + @Override public void rejectValue(String field, String errorCode, String defaultMessage) { this.bindingResult.rejectValue(field, errorCode, defaultMessage); } + @Override public void rejectValue(String field, String errorCode, Object[] errorArgs, String defaultMessage) { this.bindingResult.rejectValue(field, errorCode, errorArgs, defaultMessage); } + @Override public void addAllErrors(Errors errors) { this.bindingResult.addAllErrors(errors); } + @Override public boolean hasErrors() { return this.bindingResult.hasErrors(); } + @Override public int getErrorCount() { return this.bindingResult.getErrorCount(); } + @Override public List getAllErrors() { return this.bindingResult.getAllErrors(); } + @Override public boolean hasGlobalErrors() { return this.bindingResult.hasGlobalErrors(); } + @Override public int getGlobalErrorCount() { return this.bindingResult.getGlobalErrorCount(); } + @Override public List getGlobalErrors() { return this.bindingResult.getGlobalErrors(); } + @Override public ObjectError getGlobalError() { return this.bindingResult.getGlobalError(); } + @Override public boolean hasFieldErrors() { return this.bindingResult.hasFieldErrors(); } + @Override public int getFieldErrorCount() { return this.bindingResult.getFieldErrorCount(); } + @Override public List getFieldErrors() { return this.bindingResult.getFieldErrors(); } + @Override public FieldError getFieldError() { return this.bindingResult.getFieldError(); } + @Override public boolean hasFieldErrors(String field) { return this.bindingResult.hasFieldErrors(field); } + @Override public int getFieldErrorCount(String field) { return this.bindingResult.getFieldErrorCount(field); } + @Override public List getFieldErrors(String field) { return this.bindingResult.getFieldErrors(field); } + @Override public FieldError getFieldError(String field) { return this.bindingResult.getFieldError(field); } + @Override public Object getFieldValue(String field) { return this.bindingResult.getFieldValue(field); } + @Override public Class getFieldType(String field) { return this.bindingResult.getFieldType(field); } + @Override public Object getTarget() { return this.bindingResult.getTarget(); } + @Override public Map getModel() { return this.bindingResult.getModel(); } + @Override public Object getRawFieldValue(String field) { return this.bindingResult.getRawFieldValue(field); } + @Override @SuppressWarnings("rawtypes") public PropertyEditor findEditor(String field, Class valueType) { return this.bindingResult.findEditor(field, valueType); } + @Override public PropertyEditorRegistry getPropertyEditorRegistry() { return this.bindingResult.getPropertyEditorRegistry(); } + @Override public void addError(ObjectError error) { this.bindingResult.addError(error); } + @Override public String[] resolveMessageCodes(String errorCode) { return this.bindingResult.resolveMessageCodes(errorCode); } + @Override public String[] resolveMessageCodes(String errorCode, String field) { return this.bindingResult.resolveMessageCodes(errorCode, field); } + @Override public void recordSuppressedField(String field) { this.bindingResult.recordSuppressedField(field); } + @Override public String[] getSuppressedFields() { return this.bindingResult.getSuppressedFields(); } diff --git a/spring-context/src/main/java/org/springframework/validation/DataBinder.java b/spring-context/src/main/java/org/springframework/validation/DataBinder.java index 0518b1570fd7..30657d6e71ce 100644 --- a/spring-context/src/main/java/org/springframework/validation/DataBinder.java +++ b/spring-context/src/main/java/org/springframework/validation/DataBinder.java @@ -557,28 +557,34 @@ public ConversionService getConversionService() { return this.conversionService; } + @Override public void registerCustomEditor(Class requiredType, PropertyEditor propertyEditor) { getPropertyEditorRegistry().registerCustomEditor(requiredType, propertyEditor); } + @Override public void registerCustomEditor(Class requiredType, String field, PropertyEditor propertyEditor) { getPropertyEditorRegistry().registerCustomEditor(requiredType, field, propertyEditor); } + @Override public PropertyEditor findCustomEditor(Class requiredType, String propertyPath) { return getPropertyEditorRegistry().findCustomEditor(requiredType, propertyPath); } + @Override public T convertIfNecessary(Object value, Class requiredType) throws TypeMismatchException { return getTypeConverter().convertIfNecessary(value, requiredType); } + @Override public T convertIfNecessary(Object value, Class requiredType, MethodParameter methodParam) throws TypeMismatchException { return getTypeConverter().convertIfNecessary(value, requiredType, methodParam); } + @Override public T convertIfNecessary(Object value, Class requiredType, Field field) throws TypeMismatchException { diff --git a/spring-context/src/main/java/org/springframework/validation/DefaultBindingErrorProcessor.java b/spring-context/src/main/java/org/springframework/validation/DefaultBindingErrorProcessor.java index 08fc3b97e551..e1ae7d4b5d60 100644 --- a/spring-context/src/main/java/org/springframework/validation/DefaultBindingErrorProcessor.java +++ b/spring-context/src/main/java/org/springframework/validation/DefaultBindingErrorProcessor.java @@ -52,6 +52,7 @@ public class DefaultBindingErrorProcessor implements BindingErrorProcessor { public static final String MISSING_FIELD_ERROR_CODE = "required"; + @Override public void processMissingFieldError(String missingField, BindingResult bindingResult) { // Create field error with code "required". String fixedField = bindingResult.getNestedPath() + missingField; @@ -62,6 +63,7 @@ public void processMissingFieldError(String missingField, BindingResult bindingR codes, arguments, "Field '" + fixedField + "' is required")); } + @Override public void processPropertyAccessException(PropertyAccessException ex, BindingResult bindingResult) { // Create field error with the exceptions's code, e.g. "typeMismatch". String field = ex.getPropertyName(); diff --git a/spring-context/src/main/java/org/springframework/validation/DefaultMessageCodesResolver.java b/spring-context/src/main/java/org/springframework/validation/DefaultMessageCodesResolver.java index 4dc62f449f8e..4973f1e480ba 100644 --- a/spring-context/src/main/java/org/springframework/validation/DefaultMessageCodesResolver.java +++ b/spring-context/src/main/java/org/springframework/validation/DefaultMessageCodesResolver.java @@ -131,6 +131,7 @@ protected String getPrefix() { } + @Override public String[] resolveMessageCodes(String errorCode, String objectName) { return resolveMessageCodes(errorCode, objectName, "", null); } @@ -144,6 +145,7 @@ public String[] resolveMessageCodes(String errorCode, String objectName) { * details on the generated codes. * @return the list of codes */ + @Override public String[] resolveMessageCodes(String errorCode, String objectName, String field, Class fieldType) { Set codeList = new LinkedHashSet(); List fieldList = new ArrayList(); @@ -220,6 +222,7 @@ public static enum Format implements MessageCodeFormatter { * {@code errorCode + "." + object name + "." + field} */ PREFIX_ERROR_CODE { + @Override public String format(String errorCode, String objectName, String field) { return toDelimitedString(errorCode, objectName, field); } @@ -230,6 +233,7 @@ public String format(String errorCode, String objectName, String field) { * {@code object name + "." + field + "." + errorCode} */ POSTFIX_ERROR_CODE { + @Override public String format(String errorCode, String objectName, String field) { return toDelimitedString(objectName, field, errorCode); } diff --git a/spring-context/src/main/java/org/springframework/validation/beanvalidation/BeanValidationPostProcessor.java b/spring-context/src/main/java/org/springframework/validation/beanvalidation/BeanValidationPostProcessor.java index a886af7ec060..bac3469b8202 100644 --- a/spring-context/src/main/java/org/springframework/validation/beanvalidation/BeanValidationPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/validation/beanvalidation/BeanValidationPostProcessor.java @@ -72,6 +72,7 @@ public void setAfterInitialization(boolean afterInitialization) { this.afterInitialization = afterInitialization; } + @Override public void afterPropertiesSet() { if (this.validator == null) { this.validator = Validation.buildDefaultValidatorFactory().getValidator(); @@ -79,6 +80,7 @@ public void afterPropertiesSet() { } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (!this.afterInitialization) { doValidate(bean); @@ -86,6 +88,7 @@ public Object postProcessBeforeInitialization(Object bean, String beanName) thro return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (this.afterInitialization) { doValidate(bean); diff --git a/spring-context/src/main/java/org/springframework/validation/beanvalidation/CustomValidatorBean.java b/spring-context/src/main/java/org/springframework/validation/beanvalidation/CustomValidatorBean.java index 0c5ff8f38342..bf7d220795df 100644 --- a/spring-context/src/main/java/org/springframework/validation/beanvalidation/CustomValidatorBean.java +++ b/spring-context/src/main/java/org/springframework/validation/beanvalidation/CustomValidatorBean.java @@ -65,6 +65,7 @@ public void setTraversableResolver(TraversableResolver traversableResolver) { } + @Override public void afterPropertiesSet() { if (this.validatorFactory == null) { this.validatorFactory = Validation.buildDefaultValidatorFactory(); diff --git a/spring-context/src/main/java/org/springframework/validation/beanvalidation/LocalValidatorFactoryBean.java b/spring-context/src/main/java/org/springframework/validation/beanvalidation/LocalValidatorFactoryBean.java index ef4ad651a9fc..e4d978a11ed3 100644 --- a/spring-context/src/main/java/org/springframework/validation/beanvalidation/LocalValidatorFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/validation/beanvalidation/LocalValidatorFactoryBean.java @@ -204,11 +204,13 @@ public Map getValidationPropertyMap() { return this.validationPropertyMap; } + @Override public void setApplicationContext(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } + @Override @SuppressWarnings("unchecked") public void afterPropertiesSet() { @SuppressWarnings("rawtypes") @@ -271,6 +273,7 @@ private void configureParameterNameProviderIfPossible(Configuration configuratio this.parameterNameDiscoverer : new LocalVariableTableParameterNameDiscoverer()); Object parameterNameProvider = Proxy.newProxyInstance(getClass().getClassLoader(), new Class[] {parameterNameProviderClass}, new InvocationHandler() { + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (method.getName().equals("getParameterNames")) { String[] result = null; @@ -322,22 +325,27 @@ protected void postProcessConfiguration(Configuration configuration) { } + @Override public Validator getValidator() { return this.validatorFactory.getValidator(); } + @Override public ValidatorContext usingContext() { return this.validatorFactory.usingContext(); } + @Override public MessageInterpolator getMessageInterpolator() { return this.validatorFactory.getMessageInterpolator(); } + @Override public TraversableResolver getTraversableResolver() { return this.validatorFactory.getTraversableResolver(); } + @Override public ConstraintValidatorFactory getConstraintValidatorFactory() { return this.validatorFactory.getConstraintValidatorFactory(); } @@ -348,6 +356,7 @@ public void close() { } } + @Override public void destroy() { close(); } diff --git a/spring-context/src/main/java/org/springframework/validation/beanvalidation/LocaleContextMessageInterpolator.java b/spring-context/src/main/java/org/springframework/validation/beanvalidation/LocaleContextMessageInterpolator.java index 2bb8afdfaa80..492d635acc8d 100644 --- a/spring-context/src/main/java/org/springframework/validation/beanvalidation/LocaleContextMessageInterpolator.java +++ b/spring-context/src/main/java/org/springframework/validation/beanvalidation/LocaleContextMessageInterpolator.java @@ -45,10 +45,12 @@ public LocaleContextMessageInterpolator(MessageInterpolator targetInterpolator) } + @Override public String interpolate(String message, Context context) { return this.targetInterpolator.interpolate(message, context, LocaleContextHolder.getLocale()); } + @Override public String interpolate(String message, Context context, Locale locale) { return this.targetInterpolator.interpolate(message, context, locale); } diff --git a/spring-context/src/main/java/org/springframework/validation/beanvalidation/MessageSourceResourceBundleLocator.java b/spring-context/src/main/java/org/springframework/validation/beanvalidation/MessageSourceResourceBundleLocator.java index ef2b509b67df..e14ac594fabb 100644 --- a/spring-context/src/main/java/org/springframework/validation/beanvalidation/MessageSourceResourceBundleLocator.java +++ b/spring-context/src/main/java/org/springframework/validation/beanvalidation/MessageSourceResourceBundleLocator.java @@ -48,6 +48,7 @@ public MessageSourceResourceBundleLocator(MessageSource messageSource) { this.messageSource = messageSource; } + @Override public ResourceBundle getResourceBundle(Locale locale) { return new MessageSourceResourceBundle(this.messageSource, locale); } diff --git a/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationInterceptor.java b/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationInterceptor.java index 740b98411c20..f0c5fd30c003 100644 --- a/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationInterceptor.java +++ b/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationInterceptor.java @@ -110,6 +110,7 @@ public MethodValidationInterceptor(Validator validator) { } + @Override @SuppressWarnings("unchecked") public Object invoke(MethodInvocation invocation) throws Throwable { Class[] groups = determineValidationGroups(invocation); diff --git a/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationPostProcessor.java b/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationPostProcessor.java index c7e863b339e1..7a61e6b2b167 100644 --- a/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationPostProcessor.java @@ -96,6 +96,7 @@ public void setValidatorFactory(ValidatorFactory validatorFactory) { this.validator = validatorFactory.getValidator(); } + @Override public void afterPropertiesSet() { Pointcut pointcut = new AnnotationMatchingPointcut(this.validatedAnnotationType, true); Advice advice = (this.validator != null ? new MethodValidationInterceptor(this.validator) : diff --git a/spring-context/src/main/java/org/springframework/validation/beanvalidation/SpringConstraintValidatorFactory.java b/spring-context/src/main/java/org/springframework/validation/beanvalidation/SpringConstraintValidatorFactory.java index f6d6407f6bf8..c6394d76b1c1 100644 --- a/spring-context/src/main/java/org/springframework/validation/beanvalidation/SpringConstraintValidatorFactory.java +++ b/spring-context/src/main/java/org/springframework/validation/beanvalidation/SpringConstraintValidatorFactory.java @@ -46,6 +46,7 @@ public SpringConstraintValidatorFactory(AutowireCapableBeanFactory beanFactory) } + @Override public > T getInstance(Class key) { return this.beanFactory.createBean(key); } diff --git a/spring-context/src/main/java/org/springframework/validation/beanvalidation/SpringValidatorAdapter.java b/spring-context/src/main/java/org/springframework/validation/beanvalidation/SpringValidatorAdapter.java index f3c45fc2fa2b..57437f48e39f 100644 --- a/spring-context/src/main/java/org/springframework/validation/beanvalidation/SpringValidatorAdapter.java +++ b/spring-context/src/main/java/org/springframework/validation/beanvalidation/SpringValidatorAdapter.java @@ -81,14 +81,17 @@ void setTargetValidator(javax.validation.Validator targetValidator) { // Implementation of Spring Validator interface //--------------------------------------------------------------------- + @Override public boolean supports(Class clazz) { return true; } + @Override public void validate(Object target, Errors errors) { processConstraintViolations(this.targetValidator.validate(target), errors); } + @Override @SuppressWarnings("rawtypes") public void validate(Object target, Errors errors, Object... validationHints) { Set groups = new LinkedHashSet(); @@ -195,24 +198,29 @@ protected Object[] getArgumentsForConstraint(String objectName, String field, Co // Implementation of JSR-303 Validator interface //--------------------------------------------------------------------- + @Override public Set> validate(T object, Class... groups) { return this.targetValidator.validate(object, groups); } + @Override public Set> validateProperty(T object, String propertyName, Class... groups) { return this.targetValidator.validateProperty(object, propertyName, groups); } + @Override public Set> validateValue( Class beanType, String propertyName, Object value, Class... groups) { return this.targetValidator.validateValue(beanType, propertyName, value, groups); } + @Override public BeanDescriptor getConstraintsForClass(Class clazz) { return this.targetValidator.getConstraintsForClass(clazz); } + @Override public T unwrap(Class type) { return this.targetValidator.unwrap(type); } diff --git a/spring-context/src/test/java/org/springframework/aop/framework/AbstractAopProxyTests.java b/spring-context/src/test/java/org/springframework/aop/framework/AbstractAopProxyTests.java index b9e0a9eaaebe..ff76f2821144 100644 --- a/spring-context/src/test/java/org/springframework/aop/framework/AbstractAopProxyTests.java +++ b/spring-context/src/test/java/org/springframework/aop/framework/AbstractAopProxyTests.java @@ -1829,10 +1829,12 @@ public ITestBean getSpouse() { public static class AllInstancesAreEqual implements IOther { + @Override public boolean equals(Object other) { return (other instanceof AllInstancesAreEqual); } + @Override public int hashCode() { return getClass().hashCode(); } diff --git a/spring-context/src/test/java/org/springframework/aop/framework/CglibProxyTests.java b/spring-context/src/test/java/org/springframework/aop/framework/CglibProxyTests.java index 2330909eecce..194b44472cf0 100644 --- a/spring-context/src/test/java/org/springframework/aop/framework/CglibProxyTests.java +++ b/spring-context/src/test/java/org/springframework/aop/framework/CglibProxyTests.java @@ -224,6 +224,7 @@ public MethodMatcher getMethodMatcher() { return MethodMatcher.TRUE; } + @Override public boolean equals(Object obj) { return true; } diff --git a/spring-context/src/test/java/org/springframework/aop/framework/JdkDynamicProxyTests.java b/spring-context/src/test/java/org/springframework/aop/framework/JdkDynamicProxyTests.java index 562ab9bf3287..95a5b9bc65f4 100644 --- a/spring-context/src/test/java/org/springframework/aop/framework/JdkDynamicProxyTests.java +++ b/spring-context/src/test/java/org/springframework/aop/framework/JdkDynamicProxyTests.java @@ -179,8 +179,10 @@ public static interface Named { String getName(); + @Override boolean equals(Object other); + @Override int hashCode(); } @@ -194,6 +196,7 @@ public String getName() { return this.name; } + @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; @@ -205,6 +208,7 @@ public boolean equals(Object o) { return true; } + @Override public int hashCode() { return name.hashCode(); } diff --git a/spring-context/src/test/java/org/springframework/context/annotation/ConfigurationClassWithConditionTests.java b/spring-context/src/test/java/org/springframework/context/annotation/ConfigurationClassWithConditionTests.java index 9506b817c919..49dfa4a966f4 100644 --- a/spring-context/src/test/java/org/springframework/context/annotation/ConfigurationClassWithConditionTests.java +++ b/spring-context/src/test/java/org/springframework/context/annotation/ConfigurationClassWithConditionTests.java @@ -129,6 +129,7 @@ public ExampleBean bean() { static class NoBeanOneCondition implements Condition { + @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { return !context.getBeanFactory().containsBeanDefinition("bean1"); } @@ -136,6 +137,7 @@ public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) static class MetaConditionalFilter implements Condition { + @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { AnnotationAttributes attributes = AnnotationAttributes.fromMap(metadata.getAnnotationAttributes(MetaConditional.class.getName())); assertThat(attributes.getString("value"), equalTo("test")); @@ -144,6 +146,7 @@ public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) } static class NeverCondition implements Condition { + @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { return false; } diff --git a/spring-context/src/test/java/org/springframework/jmx/export/TestDynamicMBean.java b/spring-context/src/test/java/org/springframework/jmx/export/TestDynamicMBean.java index 53da8a65824b..1bad05781129 100644 --- a/spring-context/src/test/java/org/springframework/jmx/export/TestDynamicMBean.java +++ b/spring-context/src/test/java/org/springframework/jmx/export/TestDynamicMBean.java @@ -75,10 +75,12 @@ public MBeanInfo getMBeanInfo() { new MBeanNotificationInfo[0]); } + @Override public boolean equals(Object obj) { return (obj instanceof TestDynamicMBean); } + @Override public int hashCode() { return TestDynamicMBean.class.hashCode(); } diff --git a/spring-context/src/test/java/org/springframework/ui/ModelMapTests.java b/spring-context/src/test/java/org/springframework/ui/ModelMapTests.java index 11ce2b5ce327..8d2252380449 100644 --- a/spring-context/src/test/java/org/springframework/ui/ModelMapTests.java +++ b/spring-context/src/test/java/org/springframework/ui/ModelMapTests.java @@ -290,6 +290,7 @@ public Object invoke(Object proxy, Method method, Object[] args) { public static class SomeInnerClass { + @Override public boolean equals(Object obj) { return (obj instanceof SomeInnerClass); } diff --git a/spring-core/src/main/java/org/springframework/core/AttributeAccessorSupport.java b/spring-core/src/main/java/org/springframework/core/AttributeAccessorSupport.java index cf351f42cf16..dbbe1aff5147 100644 --- a/spring-core/src/main/java/org/springframework/core/AttributeAccessorSupport.java +++ b/spring-core/src/main/java/org/springframework/core/AttributeAccessorSupport.java @@ -39,6 +39,7 @@ public abstract class AttributeAccessorSupport implements AttributeAccessor, Ser private final Map attributes = new LinkedHashMap(0); + @Override public void setAttribute(String name, Object value) { Assert.notNull(name, "Name must not be null"); if (value != null) { @@ -49,21 +50,25 @@ public void setAttribute(String name, Object value) { } } + @Override public Object getAttribute(String name) { Assert.notNull(name, "Name must not be null"); return this.attributes.get(name); } + @Override public Object removeAttribute(String name) { Assert.notNull(name, "Name must not be null"); return this.attributes.remove(name); } + @Override public boolean hasAttribute(String name) { Assert.notNull(name, "Name must not be null"); return this.attributes.containsKey(name); } + @Override public String[] attributeNames() { return this.attributes.keySet().toArray(new String[this.attributes.size()]); } diff --git a/spring-core/src/main/java/org/springframework/core/ControlFlowFactory.java b/spring-core/src/main/java/org/springframework/core/ControlFlowFactory.java index 1542d39bed16..4860b5f4eeb7 100644 --- a/spring-core/src/main/java/org/springframework/core/ControlFlowFactory.java +++ b/spring-core/src/main/java/org/springframework/core/ControlFlowFactory.java @@ -61,6 +61,7 @@ public Jdk14ControlFlow() { /** * Searches for class name match in a StackTraceElement. */ + @Override public boolean under(Class clazz) { Assert.notNull(clazz, "Class must not be null"); String className = clazz.getName(); @@ -76,6 +77,7 @@ public boolean under(Class clazz) { * Searches for class name match plus method name match * in a StackTraceElement. */ + @Override public boolean under(Class clazz, String methodName) { Assert.notNull(clazz, "Class must not be null"); Assert.notNull(methodName, "Method name must not be null"); @@ -93,6 +95,7 @@ public boolean under(Class clazz, String methodName) { * Leave it up to the caller to decide what matches. * Caller must understand stack trace format, so there's less abstraction. */ + @Override public boolean underToken(String token) { if (token == null) { return false; diff --git a/spring-core/src/main/java/org/springframework/core/ExceptionDepthComparator.java b/spring-core/src/main/java/org/springframework/core/ExceptionDepthComparator.java index 77289d76b7cf..8336678e26da 100644 --- a/spring-core/src/main/java/org/springframework/core/ExceptionDepthComparator.java +++ b/spring-core/src/main/java/org/springframework/core/ExceptionDepthComparator.java @@ -55,6 +55,7 @@ public ExceptionDepthComparator(Class exceptionType) { } + @Override public int compare(Class o1, Class o2) { int depth1 = getDepth(o1, this.targetException, 0); int depth2 = getDepth(o2, this.targetException, 0); diff --git a/spring-core/src/main/java/org/springframework/core/LocalVariableTableParameterNameDiscoverer.java b/spring-core/src/main/java/org/springframework/core/LocalVariableTableParameterNameDiscoverer.java index d846d4fdaef7..1c0c9ad1ee8c 100644 --- a/spring-core/src/main/java/org/springframework/core/LocalVariableTableParameterNameDiscoverer.java +++ b/spring-core/src/main/java/org/springframework/core/LocalVariableTableParameterNameDiscoverer.java @@ -64,6 +64,7 @@ public class LocalVariableTableParameterNameDiscoverer implements ParameterNameD new ConcurrentHashMap, Map>(32); + @Override public String[] getParameterNames(Method method) { Method originalMethod = BridgeMethodResolver.findBridgedMethod(method); Class declaringClass = originalMethod.getDeclaringClass(); @@ -78,6 +79,7 @@ public String[] getParameterNames(Method method) { return null; } + @Override public String[] getParameterNames(Constructor ctor) { Class declaringClass = ctor.getDeclaringClass(); Map map = this.parameterNamesCache.get(declaringClass); diff --git a/spring-core/src/main/java/org/springframework/core/OrderComparator.java b/spring-core/src/main/java/org/springframework/core/OrderComparator.java index 16158ca1ad60..51408c7441d4 100644 --- a/spring-core/src/main/java/org/springframework/core/OrderComparator.java +++ b/spring-core/src/main/java/org/springframework/core/OrderComparator.java @@ -43,6 +43,7 @@ public class OrderComparator implements Comparator { public static final OrderComparator INSTANCE = new OrderComparator(); + @Override public int compare(Object o1, Object o2) { boolean p1 = (o1 instanceof PriorityOrdered); boolean p2 = (o2 instanceof PriorityOrdered); diff --git a/spring-core/src/main/java/org/springframework/core/PrioritizedParameterNameDiscoverer.java b/spring-core/src/main/java/org/springframework/core/PrioritizedParameterNameDiscoverer.java index e65e88cd21cf..8d883eddd365 100644 --- a/spring-core/src/main/java/org/springframework/core/PrioritizedParameterNameDiscoverer.java +++ b/spring-core/src/main/java/org/springframework/core/PrioritizedParameterNameDiscoverer.java @@ -48,6 +48,7 @@ public void addDiscoverer(ParameterNameDiscoverer pnd) { } + @Override public String[] getParameterNames(Method method) { for (ParameterNameDiscoverer pnd : this.parameterNameDiscoverers) { String[] result = pnd.getParameterNames(method); @@ -58,6 +59,7 @@ public String[] getParameterNames(Method method) { return null; } + @Override public String[] getParameterNames(Constructor ctor) { for (ParameterNameDiscoverer pnd : this.parameterNameDiscoverers) { String[] result = pnd.getParameterNames(ctor); diff --git a/spring-core/src/main/java/org/springframework/core/SimpleAliasRegistry.java b/spring-core/src/main/java/org/springframework/core/SimpleAliasRegistry.java index 24b33f7683db..82fe66159bfe 100644 --- a/spring-core/src/main/java/org/springframework/core/SimpleAliasRegistry.java +++ b/spring-core/src/main/java/org/springframework/core/SimpleAliasRegistry.java @@ -41,6 +41,7 @@ public class SimpleAliasRegistry implements AliasRegistry { private final Map aliasMap = new ConcurrentHashMap(16); + @Override public void registerAlias(String name, String alias) { Assert.hasText(name, "'name' must not be empty"); Assert.hasText(alias, "'alias' must not be empty"); @@ -68,6 +69,7 @@ protected boolean allowAliasOverriding() { return true; } + @Override public void removeAlias(String alias) { String name = this.aliasMap.remove(alias); if (name == null) { @@ -75,10 +77,12 @@ public void removeAlias(String alias) { } } + @Override public boolean isAlias(String name) { return this.aliasMap.containsKey(name); } + @Override public String[] getAliases(String name) { List result = new ArrayList(); synchronized (this.aliasMap) { diff --git a/spring-core/src/main/java/org/springframework/core/StandardReflectionParameterNameDiscoverer.java b/spring-core/src/main/java/org/springframework/core/StandardReflectionParameterNameDiscoverer.java index 70cc2b030d25..2f06cba05ea6 100644 --- a/spring-core/src/main/java/org/springframework/core/StandardReflectionParameterNameDiscoverer.java +++ b/spring-core/src/main/java/org/springframework/core/StandardReflectionParameterNameDiscoverer.java @@ -30,6 +30,7 @@ */ public class StandardReflectionParameterNameDiscoverer implements ParameterNameDiscoverer { + @Override public String[] getParameterNames(Method method) { Parameter[] parameters = method.getParameters(); String[] parameterNames = new String[parameters.length]; @@ -39,6 +40,7 @@ public String[] getParameterNames(Method method) { return parameterNames; } + @Override public String[] getParameterNames(Constructor ctor) { Parameter[] parameters = ctor.getParameters(); String[] parameterNames = new String[parameters.length]; diff --git a/spring-core/src/main/java/org/springframework/core/annotation/AnnotationAttributes.java b/spring-core/src/main/java/org/springframework/core/annotation/AnnotationAttributes.java index 40041e8de463..d18ad519fb83 100644 --- a/spring-core/src/main/java/org/springframework/core/annotation/AnnotationAttributes.java +++ b/spring-core/src/main/java/org/springframework/core/annotation/AnnotationAttributes.java @@ -132,6 +132,7 @@ private T doGet(String attributeName, Class expectedType) { return (T) value; } + @Override public String toString() { Iterator> entries = entrySet().iterator(); StringBuilder sb = new StringBuilder("{"); diff --git a/spring-core/src/main/java/org/springframework/core/convert/TypeDescriptor.java b/spring-core/src/main/java/org/springframework/core/convert/TypeDescriptor.java index 79c134e7cf0d..77a4c591838a 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/TypeDescriptor.java +++ b/spring-core/src/main/java/org/springframework/core/convert/TypeDescriptor.java @@ -623,6 +623,7 @@ private String wildcard(TypeDescriptor typeDescriptor) { } + @Override public boolean equals(Object obj) { if (this == obj) { return true; @@ -654,10 +655,12 @@ else if (isMap()) { } } + @Override public int hashCode() { return getType().hashCode(); } + @Override public String toString() { StringBuilder builder = new StringBuilder(); for (Annotation ann : this.annotations) { diff --git a/spring-core/src/main/java/org/springframework/core/convert/converter/ConvertingComparator.java b/spring-core/src/main/java/org/springframework/core/convert/converter/ConvertingComparator.java index 3e2d7415236b..31c511282fce 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/converter/ConvertingComparator.java +++ b/spring-core/src/main/java/org/springframework/core/convert/converter/ConvertingComparator.java @@ -77,6 +77,7 @@ public ConvertingComparator(Comparator comparator, } + @Override public int compare(S o1, S o2) { T c1 = this.converter.convert(o1); T c2 = this.converter.convert(o2); @@ -94,6 +95,7 @@ public static ConvertingComparator, K> mapEntryKeys( Comparator comparator) { return new ConvertingComparator, K>(comparator, new Converter, K>() { + @Override public K convert(Map.Entry source) { return source.getKey(); } @@ -111,6 +113,7 @@ public static ConvertingComparator, V> mapEntryValues( Comparator comparator) { return new ConvertingComparator, V>(comparator, new Converter, V>() { + @Override public V convert(Map.Entry source) { return source.getValue(); } @@ -135,6 +138,7 @@ public ConversionServiceConverter(ConversionService conversionService, this.targetType = targetType; } + @Override public T convert(S source) { return this.conversionService.convert(source, this.targetType); } diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/ArrayToArrayConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/ArrayToArrayConverter.java index 2b52d25b174c..0fb2f4de1793 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/ArrayToArrayConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/ArrayToArrayConverter.java @@ -45,14 +45,17 @@ public ArrayToArrayConverter(ConversionService conversionService) { this.conversionService = conversionService; } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(Object[].class, Object[].class)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return this.helperConverter.matches(sourceType, targetType); } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if ((conversionService instanceof GenericConversionService) diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/ArrayToCollectionConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/ArrayToCollectionConverter.java index d1c456214787..6676e73963be 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/ArrayToCollectionConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/ArrayToCollectionConverter.java @@ -44,15 +44,18 @@ public ArrayToCollectionConverter(ConversionService conversionService) { this.conversionService = conversionService; } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(Object[].class, Collection.class)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return ConversionUtils.canConvertElements( sourceType.getElementTypeDescriptor(), targetType.getElementTypeDescriptor(), this.conversionService); } + @Override @SuppressWarnings("unchecked") public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/ArrayToObjectConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/ArrayToObjectConverter.java index 90874058a062..78d2f93548ea 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/ArrayToObjectConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/ArrayToObjectConverter.java @@ -38,14 +38,17 @@ public ArrayToObjectConverter(ConversionService conversionService) { this.conversionService = conversionService; } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(Object[].class, Object.class)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return ConversionUtils.canConvertElements(sourceType.getElementTypeDescriptor(), targetType, this.conversionService); } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { return null; diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/ArrayToStringConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/ArrayToStringConverter.java index f795e8ed4590..85326e4b601c 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/ArrayToStringConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/ArrayToStringConverter.java @@ -40,14 +40,17 @@ public ArrayToStringConverter(ConversionService conversionService) { this.helperConverter = new CollectionToStringConverter(conversionService); } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(Object[].class, String.class)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return this.helperConverter.matches(sourceType, targetType); } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { return this.helperConverter.convert(Arrays.asList(ObjectUtils.toObjectArray(source)), sourceType, targetType); } diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/CharacterToNumberFactory.java b/spring-core/src/main/java/org/springframework/core/convert/support/CharacterToNumberFactory.java index c061a877f355..179823f32c10 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/CharacterToNumberFactory.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/CharacterToNumberFactory.java @@ -40,6 +40,7 @@ */ final class CharacterToNumberFactory implements ConverterFactory { + @Override public Converter getConverter(Class targetType) { return new CharacterToNumber(targetType); } @@ -52,6 +53,7 @@ public CharacterToNumber(Class targetType) { this.targetType = targetType; } + @Override public T convert(Character source) { return NumberUtils.convertNumberToTargetClass((short) source.charValue(), this.targetType); } diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/CollectionToArrayConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/CollectionToArrayConverter.java index e339edd857ff..ea79a065b6d7 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/CollectionToArrayConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/CollectionToArrayConverter.java @@ -44,14 +44,17 @@ public CollectionToArrayConverter(ConversionService conversionService) { this.conversionService = conversionService; } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(Collection.class, Object[].class)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return ConversionUtils.canConvertElements(sourceType.getElementTypeDescriptor(), targetType.getElementTypeDescriptor(), this.conversionService); } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { return null; diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/CollectionToCollectionConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/CollectionToCollectionConverter.java index 2c3e1722f4f0..c07b057a4b5e 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/CollectionToCollectionConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/CollectionToCollectionConverter.java @@ -44,15 +44,18 @@ public CollectionToCollectionConverter(ConversionService conversionService) { this.conversionService = conversionService; } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(Collection.class, Collection.class)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return ConversionUtils.canConvertElements( sourceType.getElementTypeDescriptor(), targetType.getElementTypeDescriptor(), this.conversionService); } + @Override @SuppressWarnings("unchecked") public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/CollectionToObjectConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/CollectionToObjectConverter.java index f22527a7b968..bcc51e2f9513 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/CollectionToObjectConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/CollectionToObjectConverter.java @@ -38,14 +38,17 @@ public CollectionToObjectConverter(ConversionService conversionService) { this.conversionService = conversionService; } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(Collection.class, Object.class)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return ConversionUtils.canConvertElements(sourceType.getElementTypeDescriptor(), targetType, this.conversionService); } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { return null; diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/CollectionToStringConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/CollectionToStringConverter.java index ba1894f3887a..7537c1c3e0a8 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/CollectionToStringConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/CollectionToStringConverter.java @@ -40,14 +40,17 @@ public CollectionToStringConverter(ConversionService conversionService) { this.conversionService = conversionService; } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(Collection.class, String.class)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return ConversionUtils.canConvertElements(sourceType.getElementTypeDescriptor(), targetType, this.conversionService); } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { return null; diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/EnumToStringConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/EnumToStringConverter.java index e391b75bb30d..bfd1762d9699 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/EnumToStringConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/EnumToStringConverter.java @@ -37,6 +37,7 @@ public EnumToStringConverter(ConversionService conversionService) { this.conversionService = conversionService; } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { for (Class interfaceType : ClassUtils.getAllInterfacesForClass(sourceType.getType())) { if (conversionService.canConvert(TypeDescriptor.valueOf(interfaceType), targetType)) { @@ -46,6 +47,7 @@ public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return true; } + @Override public String convert(Enum source) { return source.name(); } diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/FallbackObjectToStringConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/FallbackObjectToStringConverter.java index 071ad3b6473e..767a0acb4679 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/FallbackObjectToStringConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/FallbackObjectToStringConverter.java @@ -35,10 +35,12 @@ */ final class FallbackObjectToStringConverter implements ConditionalGenericConverter { + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(Object.class, String.class)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { Class sourceClass = sourceType.getObjectType(); if (String.class.equals(sourceClass)) { @@ -48,6 +50,7 @@ public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { ObjectToObjectConverter.hasValueOfMethodOrConstructor(sourceClass, String.class); } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { return (source != null ? source.toString() : null); } diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/GenericConversionService.java b/spring-core/src/main/java/org/springframework/core/convert/support/GenericConversionService.java index 148dbee97d60..9ac5b04d06d5 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/GenericConversionService.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/GenericConversionService.java @@ -79,6 +79,7 @@ public class GenericConversionService implements ConfigurableConversionService { // implementing ConverterRegistry + @Override public void addConverter(Converter converter) { GenericConverter.ConvertiblePair typeInfo = getRequiredTypeInfo(converter, Converter.class); Assert.notNull(typeInfo, "Unable to the determine sourceType and targetType " + @@ -86,16 +87,19 @@ public void addConverter(Converter converter) { addConverter(new ConverterAdapter(typeInfo, converter)); } + @Override public void addConverter(Class sourceType, Class targetType, Converter converter) { GenericConverter.ConvertiblePair typeInfo = new GenericConverter.ConvertiblePair(sourceType, targetType); addConverter(new ConverterAdapter(typeInfo, converter)); } + @Override public void addConverter(GenericConverter converter) { this.converters.add(converter); invalidateCache(); } + @Override public void addConverterFactory(ConverterFactory converterFactory) { GenericConverter.ConvertiblePair typeInfo = getRequiredTypeInfo(converterFactory, ConverterFactory.class); if (typeInfo == null) { @@ -106,6 +110,7 @@ public void addConverterFactory(ConverterFactory converterFactory) { addConverter(new ConverterFactoryAdapter(typeInfo, converterFactory)); } + @Override public void removeConvertible(Class sourceType, Class targetType) { this.converters.remove(sourceType, targetType); invalidateCache(); @@ -113,6 +118,7 @@ public void removeConvertible(Class sourceType, Class targetType) { // implementing ConversionService + @Override public boolean canConvert(Class sourceType, Class targetType) { Assert.notNull(targetType, "The targetType to convert to cannot be null"); return canConvert(sourceType != null ? @@ -120,6 +126,7 @@ public boolean canConvert(Class sourceType, Class targetType) { TypeDescriptor.valueOf(targetType)); } + @Override public boolean canConvert(TypeDescriptor sourceType, TypeDescriptor targetType) { Assert.notNull(targetType,"The targetType to convert to cannot be null"); if (sourceType == null) { @@ -148,12 +155,14 @@ public boolean canBypassConvert(TypeDescriptor sourceType, TypeDescriptor target return (converter == NO_OP_CONVERTER); } + @Override @SuppressWarnings("unchecked") public T convert(Object source, Class targetType) { Assert.notNull(targetType,"The targetType to convert to cannot be null"); return (T) convert(source, TypeDescriptor.forObject(source), TypeDescriptor.valueOf(targetType)); } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { Assert.notNull(targetType,"The targetType to convert to cannot be null"); if (sourceType == null) { @@ -189,6 +198,7 @@ public Object convert(Object source, TypeDescriptor targetType) { return convert(source, TypeDescriptor.forObject(source), targetType); } + @Override public String toString() { return this.converters.toString(); } @@ -308,10 +318,12 @@ public ConverterAdapter(ConvertiblePair typeInfo, Converter converter) { } + @Override public Set getConvertibleTypes() { return Collections.singleton(this.typeInfo); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { if(!this.typeInfo.getTargetType().equals(targetType.getObjectType())) { return false; @@ -322,6 +334,7 @@ public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return true; } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { return convertNullSource(sourceType, targetType); @@ -329,6 +342,7 @@ public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor t return this.converter.convert(source); } + @Override public String toString() { return this.typeInfo.getSourceType().getName() + " -> " + this.typeInfo.getTargetType().getName() + " : " + @@ -354,10 +368,12 @@ public ConverterFactoryAdapter(ConvertiblePair typeInfo, ConverterFactory } + @Override public Set getConvertibleTypes() { return Collections.singleton(this.typeInfo); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { boolean matches = true; if (this.converterFactory instanceof ConditionalConverter) { @@ -372,6 +388,7 @@ public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return matches; } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { return convertNullSource(sourceType, targetType); @@ -379,6 +396,7 @@ public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor t return this.converterFactory.getConverter(targetType.getObjectType()).convert(source); } + @Override public String toString() { return this.typeInfo.getSourceType().getName() + " -> " + this.typeInfo.getTargetType().getName() + " : " + @@ -403,6 +421,7 @@ public ConverterCacheKey(TypeDescriptor sourceType, TypeDescriptor targetType) { } + @Override public boolean equals(Object other) { if (this == other) { return true; @@ -415,11 +434,13 @@ public boolean equals(Object other) { && ObjectUtils.nullSafeEquals(this.targetType, otherKey.targetType); } + @Override public int hashCode() { return ObjectUtils.nullSafeHashCode(this.sourceType) * 29 + ObjectUtils.nullSafeHashCode(this.targetType); } + @Override public String toString() { return "ConverterCacheKey [sourceType = " + this.sourceType + ", targetType = " + this.targetType + "]"; @@ -598,6 +619,7 @@ public GenericConverter getConverter(TypeDescriptor sourceType, return null; } + @Override public String toString() { return StringUtils.collectionToCommaDelimitedString(this.converters); } @@ -617,10 +639,12 @@ public NoOpConverter(String name) { } + @Override public Set getConvertibleTypes() { return null; } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { return source; diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/IdToEntityConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/IdToEntityConverter.java index 653712660b12..e80bd599cdfa 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/IdToEntityConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/IdToEntityConverter.java @@ -45,15 +45,18 @@ public IdToEntityConverter(ConversionService conversionService) { this.conversionService = conversionService; } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(Object.class, Object.class)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { Method finder = getFinder(targetType.getType()); return finder != null && this.conversionService.canConvert(sourceType, TypeDescriptor.valueOf(finder.getParameterTypes()[0])); } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { return null; diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/MapToMapConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/MapToMapConverter.java index c2dc4bfc2012..eadacf307136 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/MapToMapConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/MapToMapConverter.java @@ -46,14 +46,17 @@ public MapToMapConverter(ConversionService conversionService) { this.conversionService = conversionService; } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(Map.class, Map.class)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return canConvertKey(sourceType, targetType) && canConvertValue(sourceType, targetType); } + @Override @SuppressWarnings("unchecked") public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/NumberToCharacterConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/NumberToCharacterConverter.java index 812c320b091c..d79435d06f8c 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/NumberToCharacterConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/NumberToCharacterConverter.java @@ -34,6 +34,7 @@ */ final class NumberToCharacterConverter implements Converter { + @Override public Character convert(Number source) { return (char) source.shortValue(); } diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/NumberToNumberConverterFactory.java b/spring-core/src/main/java/org/springframework/core/convert/support/NumberToNumberConverterFactory.java index 240880d67fac..b98af70e31e2 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/NumberToNumberConverterFactory.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/NumberToNumberConverterFactory.java @@ -43,10 +43,12 @@ final class NumberToNumberConverterFactory implements ConverterFactory, ConditionalConverter { + @Override public Converter getConverter(Class targetType) { return new NumberToNumber(targetType); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return !sourceType.equals(targetType); } @@ -59,6 +61,7 @@ public NumberToNumber(Class targetType) { this.targetType = targetType; } + @Override public T convert(Number source) { return NumberUtils.convertNumberToTargetClass(source, this.targetType); } diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/ObjectToArrayConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/ObjectToArrayConverter.java index 465dba10de3b..bf64daf89231 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/ObjectToArrayConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/ObjectToArrayConverter.java @@ -39,14 +39,17 @@ public ObjectToArrayConverter(ConversionService conversionService) { this.conversionService = conversionService; } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(Object.class, Object[].class)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return ConversionUtils.canConvertElements(sourceType, targetType.getElementTypeDescriptor(), this.conversionService); } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { return null; diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/ObjectToCollectionConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/ObjectToCollectionConverter.java index c0101318166e..02a389eb66c9 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/ObjectToCollectionConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/ObjectToCollectionConverter.java @@ -41,14 +41,17 @@ public ObjectToCollectionConverter(ConversionService conversionService) { this.conversionService = conversionService; } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(Object.class, Collection.class)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return ConversionUtils.canConvertElements(sourceType, targetType.getElementTypeDescriptor(), this.conversionService); } + @Override @SuppressWarnings("unchecked") public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/ObjectToObjectConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/ObjectToObjectConverter.java index 0448e5824f6f..e1273221b807 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/ObjectToObjectConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/ObjectToObjectConverter.java @@ -43,10 +43,12 @@ */ final class ObjectToObjectConverter implements ConditionalGenericConverter { + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(Object.class, Object.class)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { if (sourceType.getType().equals(targetType.getType())) { // no conversion required @@ -55,6 +57,7 @@ public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return hasValueOfMethodOrConstructor(targetType.getType(), sourceType.getType()); } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { return null; diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/ObjectToStringConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/ObjectToStringConverter.java index 1c939010c3a5..f9c3c8174e81 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/ObjectToStringConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/ObjectToStringConverter.java @@ -25,6 +25,7 @@ */ final class ObjectToStringConverter implements Converter { + @Override public String convert(Object source) { return source.toString(); } diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/PropertiesToStringConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/PropertiesToStringConverter.java index 630af5c30714..5417a62659ec 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/PropertiesToStringConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/PropertiesToStringConverter.java @@ -31,6 +31,7 @@ */ final class PropertiesToStringConverter implements Converter { + @Override public String convert(Properties source) { try { ByteArrayOutputStream os = new ByteArrayOutputStream(); diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/StringToArrayConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/StringToArrayConverter.java index cb9601a13a15..af209148c8e3 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/StringToArrayConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/StringToArrayConverter.java @@ -40,14 +40,17 @@ public StringToArrayConverter(ConversionService conversionService) { this.conversionService = conversionService; } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(String.class, Object[].class)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { return this.conversionService.canConvert(sourceType, targetType.getElementTypeDescriptor()); } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { return null; diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/StringToBooleanConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/StringToBooleanConverter.java index 15089df14d33..1d8bc61ef7bf 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/StringToBooleanConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/StringToBooleanConverter.java @@ -46,6 +46,7 @@ final class StringToBooleanConverter implements Converter { falseValues.add("0"); } + @Override public Boolean convert(String source) { String value = source.trim(); if ("".equals(value)) { diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/StringToCharacterConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/StringToCharacterConverter.java index 3fa97ec7eb08..7a076d335cce 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/StringToCharacterConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/StringToCharacterConverter.java @@ -26,6 +26,7 @@ */ final class StringToCharacterConverter implements Converter { + @Override public Character convert(String source) { if (source.length() == 0) { return null; diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/StringToCollectionConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/StringToCollectionConverter.java index aa6acbbd5c86..7d91ee8ab061 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/StringToCollectionConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/StringToCollectionConverter.java @@ -41,10 +41,12 @@ public StringToCollectionConverter(ConversionService conversionService) { this.conversionService = conversionService; } + @Override public Set getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(String.class, Collection.class)); } + @Override public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { if (targetType.getElementTypeDescriptor() != null) { return this.conversionService.canConvert(sourceType, targetType.getElementTypeDescriptor()); @@ -53,6 +55,7 @@ public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { } } + @Override @SuppressWarnings("unchecked") public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/StringToEnumConverterFactory.java b/spring-core/src/main/java/org/springframework/core/convert/support/StringToEnumConverterFactory.java index 7326b3f045f5..09fbc8f65001 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/StringToEnumConverterFactory.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/StringToEnumConverterFactory.java @@ -29,6 +29,7 @@ @SuppressWarnings({ "unchecked", "rawtypes" }) final class StringToEnumConverterFactory implements ConverterFactory { + @Override public Converter getConverter(Class targetType) { Class enumType = targetType; while(enumType != null && !enumType.isEnum()) { @@ -47,6 +48,7 @@ public StringToEnum(Class enumType) { this.enumType = enumType; } + @Override public T convert(String source) { if (source.length() == 0) { // It's an empty enum identifier: reset the enum value to null. diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/StringToLocaleConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/StringToLocaleConverter.java index b621ee6e2b21..c6c22ea28090 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/StringToLocaleConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/StringToLocaleConverter.java @@ -29,6 +29,7 @@ */ final class StringToLocaleConverter implements Converter { + @Override public Locale convert(String source) { return StringUtils.parseLocaleString(source); } diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/StringToNumberConverterFactory.java b/spring-core/src/main/java/org/springframework/core/convert/support/StringToNumberConverterFactory.java index 6fa470e0dd66..506dcec929da 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/StringToNumberConverterFactory.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/StringToNumberConverterFactory.java @@ -40,6 +40,7 @@ */ final class StringToNumberConverterFactory implements ConverterFactory { + @Override public Converter getConverter(Class targetType) { return new StringToNumber(targetType); } @@ -52,6 +53,7 @@ public StringToNumber(Class targetType) { this.targetType = targetType; } + @Override public T convert(String source) { if (source.length() == 0) { return null; diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/StringToPropertiesConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/StringToPropertiesConverter.java index f555e7ad1750..83c6c13fb1e1 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/StringToPropertiesConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/StringToPropertiesConverter.java @@ -30,6 +30,7 @@ */ final class StringToPropertiesConverter implements Converter { + @Override public Properties convert(String source) { try { Properties props = new Properties(); diff --git a/spring-core/src/main/java/org/springframework/core/convert/support/StringToUUIDConverter.java b/spring-core/src/main/java/org/springframework/core/convert/support/StringToUUIDConverter.java index 6478d47845ce..b97335a83b55 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/StringToUUIDConverter.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/StringToUUIDConverter.java @@ -29,6 +29,7 @@ */ final class StringToUUIDConverter implements Converter { + @Override public UUID convert(String source) { if(StringUtils.hasLength(source)) { return UUID.fromString(source.trim()); diff --git a/spring-core/src/main/java/org/springframework/core/env/AbstractEnvironment.java b/spring-core/src/main/java/org/springframework/core/env/AbstractEnvironment.java index f8741fb6ea5f..1079167915d0 100644 --- a/spring-core/src/main/java/org/springframework/core/env/AbstractEnvironment.java +++ b/spring-core/src/main/java/org/springframework/core/env/AbstractEnvironment.java @@ -214,6 +214,7 @@ protected Set getReservedDefaultProfiles() { // Implementation of ConfigurableEnvironment interface //--------------------------------------------------------------------- + @Override public String[] getActiveProfiles() { return StringUtils.toStringArray(doGetActiveProfiles()); } @@ -236,6 +237,7 @@ protected Set doGetActiveProfiles() { return this.activeProfiles; } + @Override public void setActiveProfiles(String... profiles) { Assert.notNull(profiles, "Profile array must not be null"); this.activeProfiles.clear(); @@ -245,6 +247,7 @@ public void setActiveProfiles(String... profiles) { } } + @Override public void addActiveProfile(String profile) { if (this.logger.isDebugEnabled()) { this.logger.debug(format("Activating profile '%s'", profile)); @@ -255,6 +258,7 @@ public void addActiveProfile(String profile) { } + @Override public String[] getDefaultProfiles() { return StringUtils.toStringArray(doGetDefaultProfiles()); } @@ -288,6 +292,7 @@ protected Set doGetDefaultProfiles() { * @see #AbstractEnvironment() * @see #getReservedDefaultProfiles() */ + @Override public void setDefaultProfiles(String... profiles) { Assert.notNull(profiles, "Profile array must not be null"); this.defaultProfiles.clear(); @@ -297,6 +302,7 @@ public void setDefaultProfiles(String... profiles) { } } + @Override public boolean acceptsProfiles(String... profiles) { Assert.notEmpty(profiles, "Must specify at least one profile"); for (String profile : profiles) { @@ -337,10 +343,12 @@ protected void validateProfile(String profile) { "Invalid profile [" + profile + "]: must not begin with the ! operator"); } + @Override public MutablePropertySources getPropertySources() { return this.propertySources; } + @Override @SuppressWarnings("unchecked") public Map getSystemEnvironment() { Map systemEnvironment; @@ -369,6 +377,7 @@ protected String getSystemAttribute(String variableName) { return (Map) systemEnvironment; } + @Override @SuppressWarnings({"unchecked", "rawtypes"}) public Map getSystemProperties() { Map systemProperties; @@ -397,6 +406,7 @@ protected String getSystemAttribute(String propertyName) { return systemProperties; } + @Override public void merge(ConfigurableEnvironment parent) { for (PropertySource ps : parent.getPropertySources()) { if (!this.propertySources.contains(ps.getName())) { @@ -419,74 +429,92 @@ public void merge(ConfigurableEnvironment parent) { // Implementation of ConfigurablePropertyResolver interface //--------------------------------------------------------------------- + @Override public boolean containsProperty(String key) { return this.propertyResolver.containsProperty(key); } + @Override public String getProperty(String key) { return this.propertyResolver.getProperty(key); } + @Override public String getProperty(String key, String defaultValue) { return this.propertyResolver.getProperty(key, defaultValue); } + @Override public T getProperty(String key, Class targetType) { return this.propertyResolver.getProperty(key, targetType); } + @Override public T getProperty(String key, Class targetType, T defaultValue) { return this.propertyResolver.getProperty(key, targetType, defaultValue); }; + @Override public Class getPropertyAsClass(String key, Class targetType) { return this.propertyResolver.getPropertyAsClass(key, targetType); } + @Override public String getRequiredProperty(String key) throws IllegalStateException { return this.propertyResolver.getRequiredProperty(key); } + @Override public T getRequiredProperty(String key, Class targetType) throws IllegalStateException { return this.propertyResolver.getRequiredProperty(key, targetType); } + @Override public void setRequiredProperties(String... requiredProperties) { this.propertyResolver.setRequiredProperties(requiredProperties); } + @Override public void validateRequiredProperties() throws MissingRequiredPropertiesException { this.propertyResolver.validateRequiredProperties(); } + @Override public String resolvePlaceholders(String text) { return this.propertyResolver.resolvePlaceholders(text); } + @Override public String resolveRequiredPlaceholders(String text) throws IllegalArgumentException { return this.propertyResolver.resolveRequiredPlaceholders(text); } + @Override public void setIgnoreUnresolvableNestedPlaceholders(boolean ignoreUnresolvableNestedPlaceholders) { this.propertyResolver.setIgnoreUnresolvableNestedPlaceholders(ignoreUnresolvableNestedPlaceholders); } + @Override public void setConversionService(ConfigurableConversionService conversionService) { this.propertyResolver.setConversionService(conversionService); } + @Override public ConfigurableConversionService getConversionService() { return this.propertyResolver.getConversionService(); } + @Override public void setPlaceholderPrefix(String placeholderPrefix) { this.propertyResolver.setPlaceholderPrefix(placeholderPrefix); } + @Override public void setPlaceholderSuffix(String placeholderSuffix) { this.propertyResolver.setPlaceholderSuffix(placeholderSuffix); } + @Override public void setValueSeparator(String valueSeparator) { this.propertyResolver.setValueSeparator(valueSeparator); } diff --git a/spring-core/src/main/java/org/springframework/core/env/AbstractPropertyResolver.java b/spring-core/src/main/java/org/springframework/core/env/AbstractPropertyResolver.java index 9d6164964852..77bf33ab2122 100644 --- a/spring-core/src/main/java/org/springframework/core/env/AbstractPropertyResolver.java +++ b/spring-core/src/main/java/org/springframework/core/env/AbstractPropertyResolver.java @@ -53,30 +53,36 @@ public abstract class AbstractPropertyResolver implements ConfigurablePropertyRe private final Set requiredProperties = new LinkedHashSet(); + @Override public ConfigurableConversionService getConversionService() { return this.conversionService; } + @Override public void setConversionService(ConfigurableConversionService conversionService) { this.conversionService = conversionService; } + @Override public String getProperty(String key, String defaultValue) { String value = getProperty(key); return value == null ? defaultValue : value; } + @Override public T getProperty(String key, Class targetType, T defaultValue) { T value = getProperty(key, targetType); return value == null ? defaultValue : value; } + @Override public void setRequiredProperties(String... requiredProperties) { for (String key : requiredProperties) { this.requiredProperties.add(key); } } + @Override public void validateRequiredProperties() { MissingRequiredPropertiesException ex = new MissingRequiredPropertiesException(); for (String key : this.requiredProperties) { @@ -89,6 +95,7 @@ public void validateRequiredProperties() { } } + @Override public String getRequiredProperty(String key) throws IllegalStateException { String value = getProperty(key); if (value == null) { @@ -97,6 +104,7 @@ public String getRequiredProperty(String key) throws IllegalStateException { return value; } + @Override public T getRequiredProperty(String key, Class valueType) throws IllegalStateException { T value = getProperty(key, valueType); if (value == null) { @@ -109,6 +117,7 @@ public T getRequiredProperty(String key, Class valueType) throws IllegalS * {@inheritDoc} The default is "${". * @see org.springframework.util.SystemPropertyUtils#PLACEHOLDER_PREFIX */ + @Override public void setPlaceholderPrefix(String placeholderPrefix) { this.placeholderPrefix = placeholderPrefix; } @@ -117,6 +126,7 @@ public void setPlaceholderPrefix(String placeholderPrefix) { * {@inheritDoc} The default is "}". * @see org.springframework.util.SystemPropertyUtils#PLACEHOLDER_SUFFIX */ + @Override public void setPlaceholderSuffix(String placeholderSuffix) { this.placeholderSuffix = placeholderSuffix; } @@ -125,10 +135,12 @@ public void setPlaceholderSuffix(String placeholderSuffix) { * {@inheritDoc} The default is ":". * @see org.springframework.util.SystemPropertyUtils#VALUE_SEPARATOR */ + @Override public void setValueSeparator(String valueSeparator) { this.valueSeparator = valueSeparator; } + @Override public String resolvePlaceholders(String text) { if (nonStrictHelper == null) { nonStrictHelper = createPlaceholderHelper(true); @@ -136,6 +148,7 @@ public String resolvePlaceholders(String text) { return doResolvePlaceholders(text, nonStrictHelper); } + @Override public String resolveRequiredPlaceholders(String text) throws IllegalArgumentException { if (strictHelper == null) { strictHelper = createPlaceholderHelper(false); @@ -148,6 +161,7 @@ public String resolveRequiredPlaceholders(String text) throws IllegalArgumentExc *

The default value for this implementation is {@code false}. * @since 3.2 */ + @Override public void setIgnoreUnresolvableNestedPlaceholders(boolean ignoreUnresolvableNestedPlaceholders) { this.ignoreUnresolvableNestedPlaceholders = ignoreUnresolvableNestedPlaceholders; } @@ -172,6 +186,7 @@ private PropertyPlaceholderHelper createPlaceholderHelper(boolean ignoreUnresolv private String doResolvePlaceholders(String text, PropertyPlaceholderHelper helper) { return helper.replacePlaceholders(text, new PlaceholderResolver() { + @Override public String resolvePlaceholder(String placeholderName) { return getProperty(placeholderName); } diff --git a/spring-core/src/main/java/org/springframework/core/env/EnumerablePropertySource.java b/spring-core/src/main/java/org/springframework/core/env/EnumerablePropertySource.java index cea039dd3789..11039d712cf8 100644 --- a/spring-core/src/main/java/org/springframework/core/env/EnumerablePropertySource.java +++ b/spring-core/src/main/java/org/springframework/core/env/EnumerablePropertySource.java @@ -65,6 +65,7 @@ public EnumerablePropertySource(String name, T source) { * the {@link #getPropertyNames()} array. * @param name the property to find */ + @Override public boolean containsProperty(String name) { Assert.notNull(name, "property name must not be null"); for (String candidate : this.getPropertyNames()) { diff --git a/spring-core/src/main/java/org/springframework/core/env/MutablePropertySources.java b/spring-core/src/main/java/org/springframework/core/env/MutablePropertySources.java index b085d09afdb1..0a7c14120f66 100644 --- a/spring-core/src/main/java/org/springframework/core/env/MutablePropertySources.java +++ b/spring-core/src/main/java/org/springframework/core/env/MutablePropertySources.java @@ -74,15 +74,18 @@ public MutablePropertySources(PropertySources propertySources) { } + @Override public boolean contains(String name) { return this.propertySourceList.contains(PropertySource.named(name)); } + @Override public PropertySource get(String name) { int index = this.propertySourceList.indexOf(PropertySource.named(name)); return index == -1 ? null : this.propertySourceList.get(index); } + @Override public Iterator> iterator() { return this.propertySourceList.iterator(); } diff --git a/spring-core/src/main/java/org/springframework/core/env/PropertySourcesPropertyResolver.java b/spring-core/src/main/java/org/springframework/core/env/PropertySourcesPropertyResolver.java index f76152743762..08d482ba03e5 100644 --- a/spring-core/src/main/java/org/springframework/core/env/PropertySourcesPropertyResolver.java +++ b/spring-core/src/main/java/org/springframework/core/env/PropertySourcesPropertyResolver.java @@ -43,6 +43,7 @@ public PropertySourcesPropertyResolver(PropertySources propertySources) { this.propertySources = propertySources; } + @Override public boolean containsProperty(String key) { for (PropertySource propertySource : this.propertySources) { if (propertySource.containsProperty(key)) { @@ -52,6 +53,7 @@ public boolean containsProperty(String key) { return false; } + @Override public String getProperty(String key) { if (logger.isTraceEnabled()) { logger.trace(format("getProperty(\"%s\") (implicit targetType [String])", key)); @@ -59,6 +61,7 @@ public String getProperty(String key) { return this.getProperty(key, String.class); } + @Override public T getProperty(String key, Class targetValueType) { boolean debugEnabled = logger.isDebugEnabled(); if (logger.isTraceEnabled()) { @@ -95,6 +98,7 @@ public T getProperty(String key, Class targetValueType) { return null; } + @Override public Class getPropertyAsClass(String key, Class targetValueType) { boolean debugEnabled = logger.isDebugEnabled(); if (logger.isTraceEnabled()) { diff --git a/spring-core/src/main/java/org/springframework/core/env/ReadOnlySystemAttributesMap.java b/spring-core/src/main/java/org/springframework/core/env/ReadOnlySystemAttributesMap.java index 5ded8cbbc5ec..427ac70a07ac 100644 --- a/spring-core/src/main/java/org/springframework/core/env/ReadOnlySystemAttributesMap.java +++ b/spring-core/src/main/java/org/springframework/core/env/ReadOnlySystemAttributesMap.java @@ -39,6 +39,7 @@ */ abstract class ReadOnlySystemAttributesMap implements Map { + @Override public boolean containsKey(Object key) { return get(key) != null; } @@ -47,6 +48,7 @@ public boolean containsKey(Object key) { * @param key the name of the system attribute to retrieve * @throws IllegalArgumentException if given key is non-String */ + @Override public String get(Object key) { Assert.isInstanceOf(String.class, key, String.format("expected key [%s] to be of type String, got %s", @@ -55,6 +57,7 @@ public String get(Object key) { return this.getSystemAttribute((String) key); } + @Override public boolean isEmpty() { return false; } @@ -68,38 +71,47 @@ public boolean isEmpty() { // Unsupported + @Override public int size() { throw new UnsupportedOperationException(); } + @Override public String put(String key, String value) { throw new UnsupportedOperationException(); } + @Override public boolean containsValue(Object value) { throw new UnsupportedOperationException(); } + @Override public String remove(Object key) { throw new UnsupportedOperationException(); } + @Override public void clear() { throw new UnsupportedOperationException(); } + @Override public Set keySet() { return Collections.emptySet(); } + @Override public void putAll(Map m) { throw new UnsupportedOperationException(); } + @Override public Collection values() { return Collections.emptySet(); } + @Override public Set> entrySet() { return Collections.emptySet(); } diff --git a/spring-core/src/main/java/org/springframework/core/io/AbstractResource.java b/spring-core/src/main/java/org/springframework/core/io/AbstractResource.java index b035c9ef53b1..8dd0e7d57ad7 100644 --- a/spring-core/src/main/java/org/springframework/core/io/AbstractResource.java +++ b/spring-core/src/main/java/org/springframework/core/io/AbstractResource.java @@ -46,6 +46,7 @@ public abstract class AbstractResource implements Resource { * falling back to whether an InputStream can be opened. * This will cover both directories and content resources. */ + @Override public boolean exists() { // Try file existence: can we find the file in the file system? try { @@ -67,6 +68,7 @@ public boolean exists() { /** * This implementation always returns {@code true}. */ + @Override public boolean isReadable() { return true; } @@ -74,6 +76,7 @@ public boolean isReadable() { /** * This implementation always returns {@code false}. */ + @Override public boolean isOpen() { return false; } @@ -82,6 +85,7 @@ public boolean isOpen() { * This implementation throws a FileNotFoundException, assuming * that the resource cannot be resolved to a URL. */ + @Override public URL getURL() throws IOException { throw new FileNotFoundException(getDescription() + " cannot be resolved to URL"); } @@ -90,6 +94,7 @@ public URL getURL() throws IOException { * This implementation builds a URI based on the URL returned * by {@link #getURL()}. */ + @Override public URI getURI() throws IOException { URL url = getURL(); try { @@ -104,6 +109,7 @@ public URI getURI() throws IOException { * This implementation throws a FileNotFoundException, assuming * that the resource cannot be resolved to an absolute file path. */ + @Override public File getFile() throws IOException { throw new FileNotFoundException(getDescription() + " cannot be resolved to absolute file path"); } @@ -115,6 +121,7 @@ public File getFile() throws IOException { * @see #getInputStream() * @throws IllegalStateException if {@link #getInputStream()} returns null. */ + @Override public long contentLength() throws IOException { InputStream is = this.getInputStream(); Assert.state(is != null, "resource input stream must not be null"); @@ -141,6 +148,7 @@ public long contentLength() throws IOException { * if available. * @see #getFileForLastModifiedCheck() */ + @Override public long lastModified() throws IOException { long lastModified = getFileForLastModifiedCheck().lastModified(); if (lastModified == 0L) { @@ -165,6 +173,7 @@ protected File getFileForLastModifiedCheck() throws IOException { * This implementation throws a FileNotFoundException, assuming * that relative resources cannot be created for this resource. */ + @Override public Resource createRelative(String relativePath) throws IOException { throw new FileNotFoundException("Cannot create a relative resource for " + getDescription()); } @@ -173,6 +182,7 @@ public Resource createRelative(String relativePath) throws IOException { * This implementation always returns {@code null}, * assuming that this resource type does not have a filename. */ + @Override public String getFilename() { return null; } diff --git a/spring-core/src/main/java/org/springframework/core/io/ByteArrayResource.java b/spring-core/src/main/java/org/springframework/core/io/ByteArrayResource.java index d195def9693e..b9709e380880 100644 --- a/spring-core/src/main/java/org/springframework/core/io/ByteArrayResource.java +++ b/spring-core/src/main/java/org/springframework/core/io/ByteArrayResource.java @@ -93,6 +93,7 @@ public long contentLength() { * underlying byte array. * @see java.io.ByteArrayInputStream */ + @Override public InputStream getInputStream() throws IOException { return new ByteArrayInputStream(this.byteArray); } @@ -100,6 +101,7 @@ public InputStream getInputStream() throws IOException { /** * This implementation returns the passed-in description, if any. */ + @Override public String getDescription() { return this.description; } diff --git a/spring-core/src/main/java/org/springframework/core/io/ClassPathResource.java b/spring-core/src/main/java/org/springframework/core/io/ClassPathResource.java index 3e8467178d30..70fc8a83e65c 100644 --- a/spring-core/src/main/java/org/springframework/core/io/ClassPathResource.java +++ b/spring-core/src/main/java/org/springframework/core/io/ClassPathResource.java @@ -145,6 +145,7 @@ public boolean exists() { * @see java.lang.ClassLoader#getResourceAsStream(String) * @see java.lang.Class#getResourceAsStream(String) */ + @Override public InputStream getInputStream() throws IOException { InputStream is; if (this.clazz != null) { @@ -203,6 +204,7 @@ public String getFilename() { /** * This implementation returns a description that includes the class path location. */ + @Override public String getDescription() { StringBuilder builder = new StringBuilder("class path resource ["); String pathToUse = path; diff --git a/spring-core/src/main/java/org/springframework/core/io/ClassRelativeResourceLoader.java b/spring-core/src/main/java/org/springframework/core/io/ClassRelativeResourceLoader.java index 00f267e4439d..bcf88fa1278a 100644 --- a/spring-core/src/main/java/org/springframework/core/io/ClassRelativeResourceLoader.java +++ b/spring-core/src/main/java/org/springframework/core/io/ClassRelativeResourceLoader.java @@ -43,6 +43,7 @@ public ClassRelativeResourceLoader(Class clazz) { setClassLoader(clazz.getClassLoader()); } + @Override protected Resource getResourceByPath(String path) { return new ClassRelativeContextResource(path, this.clazz); } @@ -61,6 +62,7 @@ public ClassRelativeContextResource(String path, Class clazz) { this.clazz = clazz; } + @Override public String getPathWithinContext() { return getPath(); } diff --git a/spring-core/src/main/java/org/springframework/core/io/DefaultResourceLoader.java b/spring-core/src/main/java/org/springframework/core/io/DefaultResourceLoader.java index fc2b0b985c7f..3cc1e181152e 100644 --- a/spring-core/src/main/java/org/springframework/core/io/DefaultResourceLoader.java +++ b/spring-core/src/main/java/org/springframework/core/io/DefaultResourceLoader.java @@ -79,11 +79,13 @@ public void setClassLoader(ClassLoader classLoader) { * ClassPathResource objects created by this resource loader. * @see ClassPathResource */ + @Override public ClassLoader getClassLoader() { return (this.classLoader != null ? this.classLoader : ClassUtils.getDefaultClassLoader()); } + @Override public Resource getResource(String location) { Assert.notNull(location, "Location must not be null"); if (location.startsWith(CLASSPATH_URL_PREFIX)) { @@ -128,6 +130,7 @@ public ClassPathContextResource(String path, ClassLoader classLoader) { super(path, classLoader); } + @Override public String getPathWithinContext() { return getPath(); } diff --git a/spring-core/src/main/java/org/springframework/core/io/DescriptiveResource.java b/spring-core/src/main/java/org/springframework/core/io/DescriptiveResource.java index 8385891ea3a0..72021479228e 100644 --- a/spring-core/src/main/java/org/springframework/core/io/DescriptiveResource.java +++ b/spring-core/src/main/java/org/springframework/core/io/DescriptiveResource.java @@ -54,11 +54,13 @@ public boolean isReadable() { return false; } + @Override public InputStream getInputStream() throws IOException { throw new FileNotFoundException( getDescription() + " cannot be opened because it does not point to a readable resource"); } + @Override public String getDescription() { return this.description; } diff --git a/spring-core/src/main/java/org/springframework/core/io/FileSystemResource.java b/spring-core/src/main/java/org/springframework/core/io/FileSystemResource.java index 57da655a5d03..e47ee5390f4d 100644 --- a/spring-core/src/main/java/org/springframework/core/io/FileSystemResource.java +++ b/spring-core/src/main/java/org/springframework/core/io/FileSystemResource.java @@ -109,6 +109,7 @@ public boolean isReadable() { * This implementation opens a FileInputStream for the underlying file. * @see java.io.FileInputStream */ + @Override public InputStream getInputStream() throws IOException { return new FileInputStream(this.file); } @@ -172,6 +173,7 @@ public String getFilename() { * path of the file. * @see java.io.File#getAbsolutePath() */ + @Override public String getDescription() { return "file [" + this.file.getAbsolutePath() + "]"; } @@ -185,6 +187,7 @@ public String getDescription() { * @see java.io.File#canWrite() * @see java.io.File#isDirectory() */ + @Override public boolean isWritable() { return (this.file.canWrite() && !this.file.isDirectory()); } @@ -193,6 +196,7 @@ public boolean isWritable() { * This implementation opens a FileOutputStream for the underlying file. * @see java.io.FileOutputStream */ + @Override public OutputStream getOutputStream() throws IOException { return new FileOutputStream(this.file); } diff --git a/spring-core/src/main/java/org/springframework/core/io/FileSystemResourceLoader.java b/spring-core/src/main/java/org/springframework/core/io/FileSystemResourceLoader.java index b5e00c7f30a5..7446b71ff251 100644 --- a/spring-core/src/main/java/org/springframework/core/io/FileSystemResourceLoader.java +++ b/spring-core/src/main/java/org/springframework/core/io/FileSystemResourceLoader.java @@ -65,6 +65,7 @@ public FileSystemContextResource(String path) { super(path); } + @Override public String getPathWithinContext() { return getPath(); } diff --git a/spring-core/src/main/java/org/springframework/core/io/InputStreamResource.java b/spring-core/src/main/java/org/springframework/core/io/InputStreamResource.java index d9b2405c99cc..3a37cac97a48 100644 --- a/spring-core/src/main/java/org/springframework/core/io/InputStreamResource.java +++ b/spring-core/src/main/java/org/springframework/core/io/InputStreamResource.java @@ -88,6 +88,7 @@ public boolean isOpen() { * This implementation throws IllegalStateException if attempting to * read the underlying stream multiple times. */ + @Override public InputStream getInputStream() throws IOException, IllegalStateException { if (this.read) { throw new IllegalStateException("InputStream has already been read - " + @@ -100,6 +101,7 @@ public InputStream getInputStream() throws IOException, IllegalStateException { /** * This implementation returns the passed-in description, if any. */ + @Override public String getDescription() { return this.description; } diff --git a/spring-core/src/main/java/org/springframework/core/io/UrlResource.java b/spring-core/src/main/java/org/springframework/core/io/UrlResource.java index 626f8f70adc1..77f8b8bf3e06 100644 --- a/spring-core/src/main/java/org/springframework/core/io/UrlResource.java +++ b/spring-core/src/main/java/org/springframework/core/io/UrlResource.java @@ -160,6 +160,7 @@ private URL getCleanedUrl(URL originalUrl, String originalPath) { * @see java.net.URLConnection#setUseCaches(boolean) * @see java.net.URLConnection#getInputStream() */ + @Override public InputStream getInputStream() throws IOException { URLConnection con = this.url.openConnection(); ResourceUtils.useCachesIfNecessary(con); @@ -238,6 +239,7 @@ public String getFilename() { /** * This implementation returns a description that includes the URL. */ + @Override public String getDescription() { return "URL [" + this.url + "]"; } diff --git a/spring-core/src/main/java/org/springframework/core/io/VfsResource.java b/spring-core/src/main/java/org/springframework/core/io/VfsResource.java index 4877d0ad7b14..2b492ab0b901 100644 --- a/spring-core/src/main/java/org/springframework/core/io/VfsResource.java +++ b/spring-core/src/main/java/org/springframework/core/io/VfsResource.java @@ -46,6 +46,7 @@ public VfsResource(Object resources) { } + @Override public InputStream getInputStream() throws IOException { return VfsUtils.getInputStream(this.resource); } @@ -114,6 +115,7 @@ public String getFilename() { return VfsUtils.getName(this.resource); } + @Override public String getDescription() { return this.resource.toString(); } diff --git a/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java b/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java index ec6dd4120299..1def34100a57 100644 --- a/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java +++ b/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java @@ -231,6 +231,7 @@ public ResourceLoader getResourceLoader() { * Return the ClassLoader that this pattern resolver works with * (never {@code null}). */ + @Override public ClassLoader getClassLoader() { return getResourceLoader().getClassLoader(); } @@ -253,10 +254,12 @@ public PathMatcher getPathMatcher() { } + @Override public Resource getResource(String location) { return getResourceLoader().getResource(location); } + @Override public Resource[] getResources(String locationPattern) throws IOException { Assert.notNull(locationPattern, "Location pattern must not be null"); if (locationPattern.startsWith(CLASSPATH_ALL_URL_PREFIX)) { @@ -675,6 +678,7 @@ public PatternVirtualFileVisitor(String rootPath, String subPattern, PathMatcher this.rootPath = (rootPath.length() == 0 || rootPath.endsWith("/") ? rootPath : rootPath + "/"); } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String methodName = method.getName(); if (Object.class.equals(method.getDeclaringClass())) { @@ -719,6 +723,7 @@ public int size() { return this.resources.size(); } + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("sub-pattern: ").append(this.subPattern); diff --git a/spring-core/src/main/java/org/springframework/core/serializer/DefaultDeserializer.java b/spring-core/src/main/java/org/springframework/core/serializer/DefaultDeserializer.java index f61f697d2f70..66a91b3836a6 100644 --- a/spring-core/src/main/java/org/springframework/core/serializer/DefaultDeserializer.java +++ b/spring-core/src/main/java/org/springframework/core/serializer/DefaultDeserializer.java @@ -34,6 +34,7 @@ public class DefaultDeserializer implements Deserializer { /** * Reads the input stream and deserializes into an object. */ + @Override public Object deserialize(InputStream inputStream) throws IOException { ObjectInputStream objectInputStream = new ObjectInputStream(inputStream); try { diff --git a/spring-core/src/main/java/org/springframework/core/serializer/DefaultSerializer.java b/spring-core/src/main/java/org/springframework/core/serializer/DefaultSerializer.java index 04fe8bed5a8c..6146ee018c17 100644 --- a/spring-core/src/main/java/org/springframework/core/serializer/DefaultSerializer.java +++ b/spring-core/src/main/java/org/springframework/core/serializer/DefaultSerializer.java @@ -34,6 +34,7 @@ public class DefaultSerializer implements Serializer { * Writes the source object to an output stream using Java Serialization. * The source object must implement {@link Serializable}. */ + @Override public void serialize(Object object, OutputStream outputStream) throws IOException { if (!(object instanceof Serializable)) { throw new IllegalArgumentException(getClass().getSimpleName() + " requires a Serializable payload " + diff --git a/spring-core/src/main/java/org/springframework/core/serializer/support/DeserializingConverter.java b/spring-core/src/main/java/org/springframework/core/serializer/support/DeserializingConverter.java index 84745294a466..074acf7bbb15 100644 --- a/spring-core/src/main/java/org/springframework/core/serializer/support/DeserializingConverter.java +++ b/spring-core/src/main/java/org/springframework/core/serializer/support/DeserializingConverter.java @@ -52,6 +52,7 @@ public DeserializingConverter(Deserializer deserializer) { } + @Override public Object convert(byte[] source) { ByteArrayInputStream byteStream = new ByteArrayInputStream(source); try { diff --git a/spring-core/src/main/java/org/springframework/core/serializer/support/SerializingConverter.java b/spring-core/src/main/java/org/springframework/core/serializer/support/SerializingConverter.java index 61a7553ac1d0..b092cc7bd140 100644 --- a/spring-core/src/main/java/org/springframework/core/serializer/support/SerializingConverter.java +++ b/spring-core/src/main/java/org/springframework/core/serializer/support/SerializingConverter.java @@ -55,6 +55,7 @@ public SerializingConverter(Serializer serializer) { /** * Serializes the source object and returns the byte array result. */ + @Override public byte[] convert(Object source) { ByteArrayOutputStream byteStream = new ByteArrayOutputStream(128); try { diff --git a/spring-core/src/main/java/org/springframework/core/style/DefaultToStringStyler.java b/spring-core/src/main/java/org/springframework/core/style/DefaultToStringStyler.java index f81cb4a82ecc..97a6ce23ce7f 100644 --- a/spring-core/src/main/java/org/springframework/core/style/DefaultToStringStyler.java +++ b/spring-core/src/main/java/org/springframework/core/style/DefaultToStringStyler.java @@ -52,6 +52,7 @@ protected final ValueStyler getValueStyler() { } + @Override public void styleStart(StringBuilder buffer, Object obj) { if (!obj.getClass().isArray()) { buffer.append('[').append(ClassUtils.getShortName(obj.getClass())); @@ -70,10 +71,12 @@ private void styleIdentityHashCode(StringBuilder buffer, Object obj) { buffer.append(ObjectUtils.getIdentityHexString(obj)); } + @Override public void styleEnd(StringBuilder buffer, Object o) { buffer.append(']'); } + @Override public void styleField(StringBuilder buffer, String fieldName, Object value) { styleFieldStart(buffer, fieldName); styleValue(buffer, value); @@ -87,10 +90,12 @@ protected void styleFieldStart(StringBuilder buffer, String fieldName) { protected void styleFieldEnd(StringBuilder buffer, String fieldName) { } + @Override public void styleValue(StringBuilder buffer, Object value) { buffer.append(this.valueStyler.style(value)); } + @Override public void styleFieldSeparator(StringBuilder buffer) { buffer.append(','); } diff --git a/spring-core/src/main/java/org/springframework/core/style/DefaultValueStyler.java b/spring-core/src/main/java/org/springframework/core/style/DefaultValueStyler.java index 2e6251c0f5a3..a0063b23742c 100644 --- a/spring-core/src/main/java/org/springframework/core/style/DefaultValueStyler.java +++ b/spring-core/src/main/java/org/springframework/core/style/DefaultValueStyler.java @@ -48,6 +48,7 @@ public class DefaultValueStyler implements ValueStyler { private static final String ARRAY = "array"; + @Override public String style(Object value) { if (value == null) { return NULL; diff --git a/spring-core/src/main/java/org/springframework/core/task/SimpleAsyncTaskExecutor.java b/spring-core/src/main/java/org/springframework/core/task/SimpleAsyncTaskExecutor.java index f6b714007eac..21622a29cc81 100644 --- a/spring-core/src/main/java/org/springframework/core/task/SimpleAsyncTaskExecutor.java +++ b/spring-core/src/main/java/org/springframework/core/task/SimpleAsyncTaskExecutor.java @@ -144,6 +144,7 @@ public final boolean isThrottleActive() { * if configured (through the superclass's settings). * @see #doExecute(Runnable) */ + @Override public void execute(Runnable task) { execute(task, TIMEOUT_INDEFINITE); } @@ -157,6 +158,7 @@ public void execute(Runnable task) { * @see #TIMEOUT_IMMEDIATE * @see #doExecute(Runnable) */ + @Override public void execute(Runnable task, long startTimeout) { Assert.notNull(task, "Runnable must not be null"); if (isThrottleActive() && startTimeout > TIMEOUT_IMMEDIATE) { @@ -168,12 +170,14 @@ public void execute(Runnable task, long startTimeout) { } } + @Override public Future submit(Runnable task) { FutureTask future = new FutureTask(task, null); execute(future, TIMEOUT_INDEFINITE); return future; } + @Override public Future submit(Callable task) { FutureTask future = new FutureTask(task); execute(future, TIMEOUT_INDEFINITE); @@ -225,6 +229,7 @@ public ConcurrencyThrottlingRunnable(Runnable target) { this.target = target; } + @Override public void run() { try { this.target.run(); diff --git a/spring-core/src/main/java/org/springframework/core/task/SyncTaskExecutor.java b/spring-core/src/main/java/org/springframework/core/task/SyncTaskExecutor.java index 47bebf46766f..64f8c7934e95 100644 --- a/spring-core/src/main/java/org/springframework/core/task/SyncTaskExecutor.java +++ b/spring-core/src/main/java/org/springframework/core/task/SyncTaskExecutor.java @@ -44,6 +44,7 @@ public class SyncTaskExecutor implements TaskExecutor, Serializable { * invocation of it's {@link Runnable#run() run()} method. * @throws IllegalArgumentException if the given {@code task} is {@code null} */ + @Override public void execute(Runnable task) { Assert.notNull(task, "Runnable must not be null"); task.run(); diff --git a/spring-core/src/main/java/org/springframework/core/task/TaskExecutor.java b/spring-core/src/main/java/org/springframework/core/task/TaskExecutor.java index fea960e3c6ac..bf8b9f910e8f 100644 --- a/spring-core/src/main/java/org/springframework/core/task/TaskExecutor.java +++ b/spring-core/src/main/java/org/springframework/core/task/TaskExecutor.java @@ -45,6 +45,7 @@ public interface TaskExecutor extends Executor { * @param task the {@code Runnable} to execute (never {@code null}) * @throws TaskRejectedException if the given task was not accepted */ + @Override void execute(Runnable task); } diff --git a/spring-core/src/main/java/org/springframework/core/task/support/ConcurrentExecutorAdapter.java b/spring-core/src/main/java/org/springframework/core/task/support/ConcurrentExecutorAdapter.java index a99a66b20442..8f9f09eda598 100644 --- a/spring-core/src/main/java/org/springframework/core/task/support/ConcurrentExecutorAdapter.java +++ b/spring-core/src/main/java/org/springframework/core/task/support/ConcurrentExecutorAdapter.java @@ -50,6 +50,7 @@ public ConcurrentExecutorAdapter(TaskExecutor taskExecutor) { } + @Override public void execute(Runnable command) { this.taskExecutor.execute(command); } diff --git a/spring-core/src/main/java/org/springframework/core/task/support/ExecutorServiceAdapter.java b/spring-core/src/main/java/org/springframework/core/task/support/ExecutorServiceAdapter.java index 0c594b93a1c2..393ecee66d5b 100644 --- a/spring-core/src/main/java/org/springframework/core/task/support/ExecutorServiceAdapter.java +++ b/spring-core/src/main/java/org/springframework/core/task/support/ExecutorServiceAdapter.java @@ -57,29 +57,35 @@ public ExecutorServiceAdapter(TaskExecutor taskExecutor) { } + @Override public void execute(Runnable task) { this.taskExecutor.execute(task); } + @Override public void shutdown() { throw new IllegalStateException( "Manual shutdown not supported - ExecutorServiceAdapter is dependent on an external lifecycle"); } + @Override public List shutdownNow() { throw new IllegalStateException( "Manual shutdown not supported - ExecutorServiceAdapter is dependent on an external lifecycle"); } + @Override public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException { throw new IllegalStateException( "Manual shutdown not supported - ExecutorServiceAdapter is dependent on an external lifecycle"); } + @Override public boolean isShutdown() { return false; } + @Override public boolean isTerminated() { return false; } diff --git a/spring-core/src/main/java/org/springframework/core/task/support/TaskExecutorAdapter.java b/spring-core/src/main/java/org/springframework/core/task/support/TaskExecutorAdapter.java index bd2df283d710..9247995065fd 100644 --- a/spring-core/src/main/java/org/springframework/core/task/support/TaskExecutorAdapter.java +++ b/spring-core/src/main/java/org/springframework/core/task/support/TaskExecutorAdapter.java @@ -59,6 +59,7 @@ public TaskExecutorAdapter(Executor concurrentExecutor) { * Delegates to the specified JDK 1.5 concurrent executor. * @see java.util.concurrent.Executor#execute(Runnable) */ + @Override public void execute(Runnable task) { try { this.concurrentExecutor.execute(task); @@ -69,10 +70,12 @@ public void execute(Runnable task) { } } + @Override public void execute(Runnable task, long startTimeout) { execute(task); } + @Override public Future submit(Runnable task) { try { if (this.concurrentExecutor instanceof ExecutorService) { @@ -90,6 +93,7 @@ public Future submit(Runnable task) { } } + @Override public Future submit(Callable task) { try { if (this.concurrentExecutor instanceof ExecutorService) { diff --git a/spring-core/src/main/java/org/springframework/core/type/AnnotatedElementUtils.java b/spring-core/src/main/java/org/springframework/core/type/AnnotatedElementUtils.java index ca817f48bd6f..342089b62578 100644 --- a/spring-core/src/main/java/org/springframework/core/type/AnnotatedElementUtils.java +++ b/spring-core/src/main/java/org/springframework/core/type/AnnotatedElementUtils.java @@ -40,6 +40,7 @@ public static Set getMetaAnnotationTypes(AnnotatedElement element, String annotationType) { final Set types = new LinkedHashSet(); process(element, annotationType, new Processor() { + @Override public Object process(Annotation annotation, int depth) { if (depth > 0) { types.add(annotation.annotationType().getName()); @@ -54,6 +55,7 @@ public static boolean hasMetaAnnotationTypes(AnnotatedElement element, String annotationType) { return Boolean.TRUE.equals( process(element, annotationType, new Processor() { + @Override public Boolean process(Annotation annotation, int depth) { if (depth > 0) { return true; @@ -66,6 +68,7 @@ public Boolean process(Annotation annotation, int depth) { public static boolean isAnnotated(AnnotatedElement element, String annotationType) { return Boolean.TRUE.equals( process(element, annotationType, new Processor() { + @Override public Boolean process(Annotation annotation, int depth) { return true; } @@ -76,6 +79,7 @@ public static Map getAnnotationAttributes(AnnotatedElement eleme String annotationType, final boolean classValuesAsString, final boolean nestedAnnotationsAsMap) { return process(element, annotationType, new Processor>() { + @Override public Map process(Annotation annotation, int depth) { return AnnotationUtils.getAnnotationAttributes(annotation, classValuesAsString, nestedAnnotationsAsMap); @@ -88,6 +92,7 @@ public static MultiValueMap getAllAnnotationAttributes( final boolean classValuesAsString, final boolean nestedAnnotationsAsMap) { final MultiValueMap attributes = new LinkedMultiValueMap(); process(element, annotationType, new Processor() { + @Override public Object process(Annotation annotation, int depth) { if (annotation.annotationType().getName().equals(annotationType)) { for (Map.Entry entry : AnnotationUtils.getAnnotationAttributes( diff --git a/spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java b/spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java index e0c609624cd4..e640376efe1e 100644 --- a/spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java +++ b/spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java @@ -65,6 +65,7 @@ public StandardAnnotationMetadata(Class introspectedClass, boolean nestedAnno } + @Override public Set getAnnotationTypes() { Set types = new LinkedHashSet(); Annotation[] anns = getIntrospectedClass().getAnnotations(); @@ -74,10 +75,12 @@ public Set getAnnotationTypes() { return types; } + @Override public Set getMetaAnnotationTypes(String annotationType) { return AnnotatedElementUtils.getMetaAnnotationTypes(getIntrospectedClass(), annotationType); } + @Override public boolean hasAnnotation(String annotationType) { Annotation[] anns = getIntrospectedClass().getAnnotations(); for (Annotation ann : anns) { @@ -88,34 +91,41 @@ public boolean hasAnnotation(String annotationType) { return false; } + @Override public boolean hasMetaAnnotation(String annotationType) { return AnnotatedElementUtils.hasMetaAnnotationTypes(getIntrospectedClass(), annotationType); } + @Override public boolean isAnnotated(String annotationType) { return AnnotatedElementUtils.isAnnotated(getIntrospectedClass(), annotationType); } + @Override public Map getAnnotationAttributes(String annotationType) { return this.getAnnotationAttributes(annotationType, false); } + @Override public Map getAnnotationAttributes(String annotationType, boolean classValuesAsString) { return AnnotatedElementUtils.getAnnotationAttributes(getIntrospectedClass(), annotationType, classValuesAsString, this.nestedAnnotationsAsMap); } + @Override public MultiValueMap getAllAnnotationAttributes(String annotationType) { return getAllAnnotationAttributes(annotationType, false); } + @Override public MultiValueMap getAllAnnotationAttributes( String annotationType, boolean classValuesAsString) { return AnnotatedElementUtils.getAllAnnotationAttributes(getIntrospectedClass(), annotationType, classValuesAsString, this.nestedAnnotationsAsMap); } + @Override public boolean hasAnnotatedMethods(String annotationType) { Method[] methods = getIntrospectedClass().getDeclaredMethods(); for (Method method : methods) { @@ -126,6 +136,7 @@ public boolean hasAnnotatedMethods(String annotationType) { return false; } + @Override public Set getAnnotatedMethods(String annotationType) { Method[] methods = getIntrospectedClass().getDeclaredMethods(); Set annotatedMethods = new LinkedHashSet(); diff --git a/spring-core/src/main/java/org/springframework/core/type/StandardClassMetadata.java b/spring-core/src/main/java/org/springframework/core/type/StandardClassMetadata.java index 4ac99d4d4de3..1b62d91c4675 100644 --- a/spring-core/src/main/java/org/springframework/core/type/StandardClassMetadata.java +++ b/spring-core/src/main/java/org/springframework/core/type/StandardClassMetadata.java @@ -50,50 +50,61 @@ public final Class getIntrospectedClass() { } + @Override public String getClassName() { return this.introspectedClass.getName(); } + @Override public boolean isInterface() { return this.introspectedClass.isInterface(); } + @Override public boolean isAbstract() { return Modifier.isAbstract(this.introspectedClass.getModifiers()); } + @Override public boolean isConcrete() { return !(isInterface() || isAbstract()); } + @Override public boolean isFinal() { return Modifier.isFinal(this.introspectedClass.getModifiers()); } + @Override public boolean isIndependent() { return (!hasEnclosingClass() || (this.introspectedClass.getDeclaringClass() != null && Modifier.isStatic(this.introspectedClass.getModifiers()))); } + @Override public boolean hasEnclosingClass() { return (this.introspectedClass.getEnclosingClass() != null); } + @Override public String getEnclosingClassName() { Class enclosingClass = this.introspectedClass.getEnclosingClass(); return (enclosingClass != null ? enclosingClass.getName() : null); } + @Override public boolean hasSuperClass() { return (this.introspectedClass.getSuperclass() != null); } + @Override public String getSuperClassName() { Class superClass = this.introspectedClass.getSuperclass(); return (superClass != null ? superClass.getName() : null); } + @Override public String[] getInterfaceNames() { Class[] ifcs = this.introspectedClass.getInterfaces(); String[] ifcNames = new String[ifcs.length]; @@ -103,6 +114,7 @@ public String[] getInterfaceNames() { return ifcNames; } + @Override public String[] getMemberClassNames() { LinkedHashSet memberClassNames = new LinkedHashSet(); for (Class nestedClass : this.introspectedClass.getDeclaredClasses()) { diff --git a/spring-core/src/main/java/org/springframework/core/type/StandardMethodMetadata.java b/spring-core/src/main/java/org/springframework/core/type/StandardMethodMetadata.java index 221cbdb8bec8..5b9d66ffdae7 100644 --- a/spring-core/src/main/java/org/springframework/core/type/StandardMethodMetadata.java +++ b/spring-core/src/main/java/org/springframework/core/type/StandardMethodMetadata.java @@ -68,43 +68,53 @@ public final Method getIntrospectedMethod() { } + @Override public String getMethodName() { return this.introspectedMethod.getName(); } + @Override public String getDeclaringClassName() { return this.introspectedMethod.getDeclaringClass().getName(); } + @Override public boolean isStatic() { return Modifier.isStatic(this.introspectedMethod.getModifiers()); } + @Override public boolean isFinal() { return Modifier.isFinal(this.introspectedMethod.getModifiers()); } + @Override public boolean isOverridable() { return (!isStatic() && !isFinal() && !Modifier.isPrivate(this.introspectedMethod.getModifiers())); } + @Override public boolean isAnnotated(String annotationType) { return AnnotatedElementUtils.isAnnotated(this.introspectedMethod, annotationType); } + @Override public Map getAnnotationAttributes(String annotationType) { return getAnnotationAttributes(annotationType, false); } + @Override public Map getAnnotationAttributes(String annotationType, boolean classValuesAsString) { return AnnotatedElementUtils.getAnnotationAttributes(this.introspectedMethod, annotationType, classValuesAsString, this.nestedAnnotationsAsMap); } + @Override public MultiValueMap getAllAnnotationAttributes(String annotationType) { return getAllAnnotationAttributes(annotationType, false); } + @Override public MultiValueMap getAllAnnotationAttributes( String annotationType, boolean classValuesAsString) { return AnnotatedElementUtils.getAllAnnotationAttributes(this.introspectedMethod, diff --git a/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationAttributesReadingVisitor.java b/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationAttributesReadingVisitor.java index b9a1586666c4..3577566e815e 100644 --- a/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationAttributesReadingVisitor.java +++ b/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationAttributesReadingVisitor.java @@ -60,10 +60,12 @@ public AbstractRecursiveAnnotationVisitor(ClassLoader classLoader, AnnotationAtt } + @Override public void visit(String attributeName, Object attributeValue) { this.attributes.put(attributeName, attributeValue); } + @Override public AnnotationVisitor visitAnnotation(String attributeName, String asmTypeDescriptor) { String annotationType = Type.getType(asmTypeDescriptor).getClassName(); AnnotationAttributes nestedAttributes = new AnnotationAttributes(); @@ -71,10 +73,12 @@ public AnnotationVisitor visitAnnotation(String attributeName, String asmTypeDes return new RecursiveAnnotationAttributesVisitor(annotationType, nestedAttributes, this.classLoader); } + @Override public AnnotationVisitor visitArray(String attributeName) { return new RecursiveAnnotationArrayVisitor(attributeName, this.attributes, this.classLoader); } + @Override public void visitEnum(String attributeName, String asmTypeDescriptor, String attributeValue) { Object newValue = getEnumValue(asmTypeDescriptor, attributeValue); visit(attributeName, newValue); @@ -142,6 +146,7 @@ public AnnotationVisitor visitAnnotation(String attributeName, String asmTypeDes return new RecursiveAnnotationAttributesVisitor(annotationType, nestedAttributes, this.classLoader); } + @Override public void visitEnd() { if (!this.allNestedAttributes.isEmpty()) { this.attributes.put(this.attributeName, this.allNestedAttributes.toArray( @@ -168,6 +173,7 @@ public RecursiveAnnotationAttributesVisitor( } + @Override public final void visitEnd() { try { Class annotationClass = this.classLoader.loadClass(this.annotationType); diff --git a/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationMetadataReadingVisitor.java b/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationMetadataReadingVisitor.java index 5a2f959fb2df..6f5679c65b13 100644 --- a/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationMetadataReadingVisitor.java +++ b/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationMetadataReadingVisitor.java @@ -75,18 +75,22 @@ public AnnotationVisitor visitAnnotation(final String desc, boolean visible) { } + @Override public Set getAnnotationTypes() { return this.annotationSet; } + @Override public Set getMetaAnnotationTypes(String annotationType) { return this.metaAnnotationMap.get(annotationType); } + @Override public boolean hasAnnotation(String annotationType) { return this.annotationSet.contains(annotationType); } + @Override public boolean hasMetaAnnotation(String metaAnnotationType) { Collection> allMetaTypes = this.metaAnnotationMap.values(); for (Set metaTypes : allMetaTypes) { @@ -97,14 +101,17 @@ public boolean hasMetaAnnotation(String metaAnnotationType) { return false; } + @Override public boolean isAnnotated(String annotationType) { return this.attributeMap.containsKey(annotationType); } + @Override public AnnotationAttributes getAnnotationAttributes(String annotationType) { return getAnnotationAttributes(annotationType, false); } + @Override public AnnotationAttributes getAnnotationAttributes(String annotationType, boolean classValuesAsString) { List attributes = this.attributeMap.get(annotationType); AnnotationAttributes raw = (attributes == null ? null : attributes.get(0)); @@ -112,10 +119,12 @@ public AnnotationAttributes getAnnotationAttributes(String annotationType, boole classValuesAsString); } + @Override public MultiValueMap getAllAnnotationAttributes(String annotationType) { return getAllAnnotationAttributes(annotationType, false); } + @Override public MultiValueMap getAllAnnotationAttributes( String annotationType, boolean classValuesAsString) { MultiValueMap allAttributes = new LinkedMultiValueMap(); @@ -132,10 +141,12 @@ public MultiValueMap getAllAnnotationAttributes( return allAttributes; } + @Override public boolean hasAnnotatedMethods(String annotationType) { return this.methodMetadataMap.containsKey(annotationType); } + @Override public Set getAnnotatedMethods(String annotationType) { List list = this.methodMetadataMap.get(annotationType); if (CollectionUtils.isEmpty(list)) { diff --git a/spring-core/src/main/java/org/springframework/core/type/classreading/ClassMetadataReadingVisitor.java b/spring-core/src/main/java/org/springframework/core/type/classreading/ClassMetadataReadingVisitor.java index 45785bc8a383..0d78fc27373e 100644 --- a/spring-core/src/main/java/org/springframework/core/type/classreading/ClassMetadataReadingVisitor.java +++ b/spring-core/src/main/java/org/springframework/core/type/classreading/ClassMetadataReadingVisitor.java @@ -67,6 +67,7 @@ public ClassMetadataReadingVisitor() { } + @Override public void visit(int version, int access, String name, String signature, String supername, String[] interfaces) { this.className = ClassUtils.convertResourcePathToClassName(name); this.isInterface = ((access & Opcodes.ACC_INTERFACE) != 0); @@ -81,10 +82,12 @@ public void visit(int version, int access, String name, String signature, String } } + @Override public void visitOuterClass(String owner, String name, String desc) { this.enclosingClassName = ClassUtils.convertResourcePathToClassName(owner); } + @Override public void visitInnerClass(String name, String outerName, String innerName, int access) { if (outerName != null) { String fqName = ClassUtils.convertResourcePathToClassName(name); @@ -99,78 +102,96 @@ else if (this.className.equals(fqOuterName)) { } } + @Override public void visitSource(String source, String debug) { // no-op } + @Override public AnnotationVisitor visitAnnotation(String desc, boolean visible) { // no-op return new EmptyAnnotationVisitor(); } + @Override public void visitAttribute(Attribute attr) { // no-op } + @Override public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) { // no-op return new EmptyFieldVisitor(); } + @Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { // no-op return new EmptyMethodVisitor(); } + @Override public void visitEnd() { // no-op } + @Override public String getClassName() { return this.className; } + @Override public boolean isInterface() { return this.isInterface; } + @Override public boolean isAbstract() { return this.isAbstract; } + @Override public boolean isConcrete() { return !(this.isInterface || this.isAbstract); } + @Override public boolean isFinal() { return this.isFinal; } + @Override public boolean isIndependent() { return (this.enclosingClassName == null || this.independentInnerClass); } + @Override public boolean hasEnclosingClass() { return (this.enclosingClassName != null); } + @Override public String getEnclosingClassName() { return this.enclosingClassName; } + @Override public boolean hasSuperClass() { return (this.superClassName != null); } + @Override public String getSuperClassName() { return this.superClassName; } + @Override public String[] getInterfaceNames() { return this.interfaces; } + @Override public String[] getMemberClassNames() { return this.memberClassNames.toArray(new String[this.memberClassNames.size()]); } diff --git a/spring-core/src/main/java/org/springframework/core/type/classreading/MethodMetadataReadingVisitor.java b/spring-core/src/main/java/org/springframework/core/type/classreading/MethodMetadataReadingVisitor.java index b7e9a1e12096..721c10f5f79c 100644 --- a/spring-core/src/main/java/org/springframework/core/type/classreading/MethodMetadataReadingVisitor.java +++ b/spring-core/src/main/java/org/springframework/core/type/classreading/MethodMetadataReadingVisitor.java @@ -75,30 +75,37 @@ public AnnotationVisitor visitAnnotation(final String desc, boolean visible) { return new AnnotationAttributesReadingVisitor(className, this.attributeMap, null, this.classLoader); } + @Override public String getMethodName() { return this.name; } + @Override public boolean isStatic() { return ((this.access & Opcodes.ACC_STATIC) != 0); } + @Override public boolean isFinal() { return ((this.access & Opcodes.ACC_FINAL) != 0); } + @Override public boolean isOverridable() { return (!isStatic() && !isFinal() && ((this.access & Opcodes.ACC_PRIVATE) == 0)); } + @Override public boolean isAnnotated(String annotationType) { return this.attributeMap.containsKey(annotationType); } + @Override public Map getAnnotationAttributes(String annotationType) { return getAnnotationAttributes(annotationType, false); } + @Override public Map getAnnotationAttributes(String annotationType, boolean classValuesAsString) { List attributes = this.attributeMap.get(annotationType); @@ -106,10 +113,12 @@ public Map getAnnotationAttributes(String annotationType, this.classLoader, attributes.get(0), classValuesAsString)); } + @Override public MultiValueMap getAllAnnotationAttributes(String annotationType) { return getAllAnnotationAttributes(annotationType, false); } + @Override public MultiValueMap getAllAnnotationAttributes( String annotationType, boolean classValuesAsString) { if(!this.attributeMap.containsKey(annotationType)) { @@ -125,6 +134,7 @@ public MultiValueMap getAllAnnotationAttributes( return allAttributes; } + @Override public String getDeclaringClassName() { return this.declaringClassName; } diff --git a/spring-core/src/main/java/org/springframework/core/type/classreading/SimpleMetadataReader.java b/spring-core/src/main/java/org/springframework/core/type/classreading/SimpleMetadataReader.java index 36c495e54200..8ffe4c07f75e 100644 --- a/spring-core/src/main/java/org/springframework/core/type/classreading/SimpleMetadataReader.java +++ b/spring-core/src/main/java/org/springframework/core/type/classreading/SimpleMetadataReader.java @@ -70,14 +70,17 @@ final class SimpleMetadataReader implements MetadataReader { } + @Override public Resource getResource() { return this.resource; } + @Override public ClassMetadata getClassMetadata() { return this.classMetadata; } + @Override public AnnotationMetadata getAnnotationMetadata() { return this.annotationMetadata; } diff --git a/spring-core/src/main/java/org/springframework/core/type/classreading/SimpleMetadataReaderFactory.java b/spring-core/src/main/java/org/springframework/core/type/classreading/SimpleMetadataReaderFactory.java index 42f686ead7d4..667bac68820c 100644 --- a/spring-core/src/main/java/org/springframework/core/type/classreading/SimpleMetadataReaderFactory.java +++ b/spring-core/src/main/java/org/springframework/core/type/classreading/SimpleMetadataReaderFactory.java @@ -70,12 +70,14 @@ public final ResourceLoader getResourceLoader() { } + @Override public MetadataReader getMetadataReader(String className) throws IOException { String resourcePath = ResourceLoader.CLASSPATH_URL_PREFIX + ClassUtils.convertClassNameToResourcePath(className) + ClassUtils.CLASS_FILE_SUFFIX; return getMetadataReader(this.resourceLoader.getResource(resourcePath)); } + @Override public MetadataReader getMetadataReader(Resource resource) throws IOException { return new SimpleMetadataReader(resource, this.resourceLoader.getClassLoader()); } diff --git a/spring-core/src/main/java/org/springframework/core/type/filter/AbstractClassTestingTypeFilter.java b/spring-core/src/main/java/org/springframework/core/type/filter/AbstractClassTestingTypeFilter.java index 2b9e8b8c0455..a87168b7adc4 100644 --- a/spring-core/src/main/java/org/springframework/core/type/filter/AbstractClassTestingTypeFilter.java +++ b/spring-core/src/main/java/org/springframework/core/type/filter/AbstractClassTestingTypeFilter.java @@ -35,6 +35,7 @@ */ public abstract class AbstractClassTestingTypeFilter implements TypeFilter { + @Override public final boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException { diff --git a/spring-core/src/main/java/org/springframework/core/type/filter/AbstractTypeHierarchyTraversingFilter.java b/spring-core/src/main/java/org/springframework/core/type/filter/AbstractTypeHierarchyTraversingFilter.java index 82362b56700d..1ae2eef2ee28 100644 --- a/spring-core/src/main/java/org/springframework/core/type/filter/AbstractTypeHierarchyTraversingFilter.java +++ b/spring-core/src/main/java/org/springframework/core/type/filter/AbstractTypeHierarchyTraversingFilter.java @@ -47,6 +47,7 @@ protected AbstractTypeHierarchyTraversingFilter(boolean considerInherited, boole } + @Override public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException { diff --git a/spring-core/src/main/java/org/springframework/core/type/filter/AspectJTypeFilter.java b/spring-core/src/main/java/org/springframework/core/type/filter/AspectJTypeFilter.java index d50215cdc299..2af6411e22af 100644 --- a/spring-core/src/main/java/org/springframework/core/type/filter/AspectJTypeFilter.java +++ b/spring-core/src/main/java/org/springframework/core/type/filter/AspectJTypeFilter.java @@ -60,6 +60,7 @@ public AspectJTypeFilter(String typePatternExpression, ClassLoader classLoader) } + @Override public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException { diff --git a/spring-core/src/main/java/org/springframework/util/AntPathMatcher.java b/spring-core/src/main/java/org/springframework/util/AntPathMatcher.java index e7fefa175d9d..65a2d64a1986 100644 --- a/spring-core/src/main/java/org/springframework/util/AntPathMatcher.java +++ b/spring-core/src/main/java/org/springframework/util/AntPathMatcher.java @@ -73,14 +73,17 @@ public void setTrimTokens(boolean trimTokens) { this.trimTokens = trimTokens; } + @Override public boolean isPattern(String path) { return (path.indexOf('*') != -1 || path.indexOf('?') != -1); } + @Override public boolean match(String pattern, String path) { return doMatch(pattern, path, true, null); } + @Override public boolean matchStart(String pattern, String path) { return doMatch(pattern, path, false, null); } @@ -251,6 +254,7 @@ private boolean matchStrings(String pattern, String str, Map uri *

Assumes that {@link #match} returns {@code true} for '{@code pattern}' and '{@code path}', but * does not enforce this. */ + @Override public String extractPathWithinPattern(String pattern, String path) { String[] patternParts = StringUtils.tokenizeToStringArray(pattern, this.pathSeparator, this.trimTokens, true); String[] pathParts = StringUtils.tokenizeToStringArray(path, this.pathSeparator, this.trimTokens, true); @@ -281,6 +285,7 @@ public String extractPathWithinPattern(String pattern, String path) { return builder.toString(); } + @Override public Map extractUriTemplateVariables(String pattern, String path) { Map variables = new LinkedHashMap(); boolean result = doMatch(pattern, path, true, variables); @@ -307,6 +312,7 @@ public Map extractUriTemplateVariables(String pattern, String pa * @return the combination of the two patterns * @throws IllegalArgumentException when the two patterns cannot be combined */ + @Override public String combine(String pattern1, String pattern2) { if (!StringUtils.hasText(pattern1) && !StringUtils.hasText(pattern2)) { return ""; @@ -387,6 +393,7 @@ else if (pattern1.endsWith("/**")) { * @param path the full path to use for comparison * @return a comparator capable of sorting patterns in order of explicitness */ + @Override public Comparator getPatternComparator(String path) { return new AntPatternComparator(path); } @@ -400,6 +407,7 @@ private AntPatternComparator(String path) { this.path = path; } + @Override public int compare(String pattern1, String pattern2) { if (pattern1 == null && pattern2 == null) { return 0; diff --git a/spring-core/src/main/java/org/springframework/util/AutoPopulatingList.java b/spring-core/src/main/java/org/springframework/util/AutoPopulatingList.java index 7a2135fb65c5..d58e0acd8106 100644 --- a/spring-core/src/main/java/org/springframework/util/AutoPopulatingList.java +++ b/spring-core/src/main/java/org/springframework/util/AutoPopulatingList.java @@ -92,30 +92,37 @@ public AutoPopulatingList(List backingList, ElementFactory elementFactory) } + @Override public void add(int index, E element) { this.backingList.add(index, element); } + @Override public boolean add(E o) { return this.backingList.add(o); } + @Override public boolean addAll(Collection c) { return this.backingList.addAll(c); } + @Override public boolean addAll(int index, Collection c) { return this.backingList.addAll(index, c); } + @Override public void clear() { this.backingList.clear(); } + @Override public boolean contains(Object o) { return this.backingList.contains(o); } + @Override public boolean containsAll(Collection c) { return this.backingList.containsAll(c); } @@ -124,6 +131,7 @@ public boolean containsAll(Collection c) { * Get the element at the supplied index, creating it if there is * no element at that index. */ + @Override public E get(int index) { int backingListSize = this.backingList.size(); E element = null; @@ -144,62 +152,77 @@ public E get(int index) { return element; } + @Override public int indexOf(Object o) { return this.backingList.indexOf(o); } + @Override public boolean isEmpty() { return this.backingList.isEmpty(); } + @Override public Iterator iterator() { return this.backingList.iterator(); } + @Override public int lastIndexOf(Object o) { return this.backingList.lastIndexOf(o); } + @Override public ListIterator listIterator() { return this.backingList.listIterator(); } + @Override public ListIterator listIterator(int index) { return this.backingList.listIterator(index); } + @Override public E remove(int index) { return this.backingList.remove(index); } + @Override public boolean remove(Object o) { return this.backingList.remove(o); } + @Override public boolean removeAll(Collection c) { return this.backingList.removeAll(c); } + @Override public boolean retainAll(Collection c) { return this.backingList.retainAll(c); } + @Override public E set(int index, E element) { return this.backingList.set(index, element); } + @Override public int size() { return this.backingList.size(); } + @Override public List subList(int fromIndex, int toIndex) { return this.backingList.subList(fromIndex, toIndex); } + @Override public Object[] toArray() { return this.backingList.toArray(); } + @Override public T[] toArray(T[] a) { return this.backingList.toArray(a); } @@ -259,6 +282,7 @@ public ReflectiveElementFactory(Class elementClass) { this.elementClass = elementClass; } + @Override public E createElement(int index) { try { return this.elementClass.newInstance(); diff --git a/spring-core/src/main/java/org/springframework/util/CollectionUtils.java b/spring-core/src/main/java/org/springframework/util/CollectionUtils.java index 5e74473fa9bd..a16d5fecd48c 100644 --- a/spring-core/src/main/java/org/springframework/util/CollectionUtils.java +++ b/spring-core/src/main/java/org/springframework/util/CollectionUtils.java @@ -370,14 +370,17 @@ public EnumerationIterator(Enumeration enumeration) { this.enumeration = enumeration; } + @Override public boolean hasNext() { return this.enumeration.hasMoreElements(); } + @Override public E next() { return this.enumeration.nextElement(); } + @Override public void remove() throws UnsupportedOperationException { throw new UnsupportedOperationException("Not supported"); } @@ -396,6 +399,7 @@ public MultiValueMapAdapter(Map> map) { this.map = map; } + @Override public void add(K key, V value) { List values = this.map.get(key); if (values == null) { @@ -405,23 +409,27 @@ public void add(K key, V value) { values.add(value); } + @Override public V getFirst(K key) { List values = this.map.get(key); return (values != null ? values.get(0) : null); } + @Override public void set(K key, V value) { List values = new LinkedList(); values.add(value); this.map.put(key, values); } + @Override public void setAll(Map values) { for (Entry entry : values.entrySet()) { set(entry.getKey(), entry.getValue()); } } + @Override public Map toSingleValueMap() { LinkedHashMap singleValueMap = new LinkedHashMap(this.map.size()); for (Entry> entry : map.entrySet()) { @@ -430,50 +438,62 @@ public Map toSingleValueMap() { return singleValueMap; } + @Override public int size() { return this.map.size(); } + @Override public boolean isEmpty() { return this.map.isEmpty(); } + @Override public boolean containsKey(Object key) { return this.map.containsKey(key); } + @Override public boolean containsValue(Object value) { return this.map.containsValue(value); } + @Override public List get(Object key) { return this.map.get(key); } + @Override public List put(K key, List value) { return this.map.put(key, value); } + @Override public List remove(Object key) { return this.map.remove(key); } + @Override public void putAll(Map> m) { this.map.putAll(m); } + @Override public void clear() { this.map.clear(); } + @Override public Set keySet() { return this.map.keySet(); } + @Override public Collection> values() { return this.map.values(); } + @Override public Set>> entrySet() { return this.map.entrySet(); } diff --git a/spring-core/src/main/java/org/springframework/util/CompositeIterator.java b/spring-core/src/main/java/org/springframework/util/CompositeIterator.java index c385702094e1..7c1d9e69214a 100644 --- a/spring-core/src/main/java/org/springframework/util/CompositeIterator.java +++ b/spring-core/src/main/java/org/springframework/util/CompositeIterator.java @@ -48,6 +48,7 @@ public void add(Iterator iterator) { iterators.add(iterator); } + @Override public boolean hasNext() { inUse = true; for (Iterator> it = iterators.iterator(); it.hasNext();) { @@ -58,6 +59,7 @@ public boolean hasNext() { return false; } + @Override public E next() { inUse = true; for (Iterator> it = iterators.iterator(); it.hasNext();) { @@ -69,6 +71,7 @@ public E next() { throw new NoSuchElementException("Exhaused all iterators"); } + @Override public void remove() { throw new UnsupportedOperationException("Remove is not supported"); } diff --git a/spring-core/src/main/java/org/springframework/util/ConcurrentReferenceHashMap.java b/spring-core/src/main/java/org/springframework/util/ConcurrentReferenceHashMap.java index 3da70f602b62..c638f14a5db0 100644 --- a/spring-core/src/main/java/org/springframework/util/ConcurrentReferenceHashMap.java +++ b/spring-core/src/main/java/org/springframework/util/ConcurrentReferenceHashMap.java @@ -249,6 +249,7 @@ public V put(K key, V value) { return put(key, value, true); } + @Override public V putIfAbsent(K key, V value) { return put(key, value, false); } @@ -284,6 +285,7 @@ protected V execute(Reference reference, Entry entry) { }); } + @Override public boolean remove(Object key, final Object value) { return doTask(key, new Task(TaskOption.RESTRUCTURE_AFTER, TaskOption.SKIP_IF_EMPTY) { @Override @@ -297,6 +299,7 @@ protected Boolean execute(Reference reference, Entry entry) { }); } + @Override public boolean replace(K key, final V oldValue, final V newValue) { return doTask(key, new Task(TaskOption.RESTRUCTURE_BEFORE, TaskOption.SKIP_IF_EMPTY) { @Override @@ -310,6 +313,7 @@ protected Boolean execute(Reference reference, Entry entry) { }); } + @Override public V replace(K key, final V value) { return doTask(key, new Task(TaskOption.RESTRUCTURE_BEFORE, TaskOption.SKIP_IF_EMPTY) { @Override @@ -667,14 +671,17 @@ public Entry(K key, V value) { this.value = value; } + @Override public K getKey() { return this.key; } + @Override public V getValue() { return this.value; } + @Override public V setValue(V value) { V previous = this.value; this.value = value; @@ -836,11 +843,13 @@ public EntryIterator() { moveToNextSegment(); } + @Override public boolean hasNext() { getNextIfNecessary(); return this.next != null; } + @Override public Entry next() { getNextIfNecessary(); if (this.next == null) { @@ -886,6 +895,7 @@ private void moveToNextSegment() { } } + @Override public void remove() { Assert.state(this.last != null); ConcurrentReferenceHashMap.this.remove(this.last.getKey()); @@ -955,14 +965,17 @@ public SoftEntryReference(Entry entry, int hash, Reference next, this.nextReference = next; } + @Override public int getHash() { return this.hash; } + @Override public Reference getNext() { return this.nextReference; } + @Override public void release() { enqueue(); clear(); @@ -987,14 +1000,17 @@ public WeakEntryReference(Entry entry, int hash, Reference next, this.nextReference = next; } + @Override public int getHash() { return this.hash; } + @Override public Reference getNext() { return this.nextReference; } + @Override public void release() { enqueue(); clear(); diff --git a/spring-core/src/main/java/org/springframework/util/DefaultPropertiesPersister.java b/spring-core/src/main/java/org/springframework/util/DefaultPropertiesPersister.java index 3310e0b2411a..b4be1bb2bb85 100644 --- a/spring-core/src/main/java/org/springframework/util/DefaultPropertiesPersister.java +++ b/spring-core/src/main/java/org/springframework/util/DefaultPropertiesPersister.java @@ -53,30 +53,37 @@ */ public class DefaultPropertiesPersister implements PropertiesPersister { + @Override public void load(Properties props, InputStream is) throws IOException { props.load(is); } + @Override public void load(Properties props, Reader reader) throws IOException { props.load(reader); } + @Override public void store(Properties props, OutputStream os, String header) throws IOException { props.store(os, header); } + @Override public void store(Properties props, Writer writer, String header) throws IOException { props.store(writer, header); } + @Override public void loadFromXml(Properties props, InputStream is) throws IOException { props.loadFromXML(is); } + @Override public void storeToXml(Properties props, OutputStream os, String header) throws IOException { props.storeToXML(os, header); } + @Override public void storeToXml(Properties props, OutputStream os, String header, String encoding) throws IOException { props.storeToXML(os, header, encoding); } diff --git a/spring-core/src/main/java/org/springframework/util/LinkedMultiValueMap.java b/spring-core/src/main/java/org/springframework/util/LinkedMultiValueMap.java index 0bd22915789b..f980b91c2373 100644 --- a/spring-core/src/main/java/org/springframework/util/LinkedMultiValueMap.java +++ b/spring-core/src/main/java/org/springframework/util/LinkedMultiValueMap.java @@ -70,6 +70,7 @@ public LinkedMultiValueMap(Map> otherMap) { // MultiValueMap implementation + @Override public void add(K key, V value) { List values = this.targetMap.get(key); if (values == null) { @@ -79,23 +80,27 @@ public void add(K key, V value) { values.add(value); } + @Override public V getFirst(K key) { List values = this.targetMap.get(key); return (values != null ? values.get(0) : null); } + @Override public void set(K key, V value) { List values = new LinkedList(); values.add(value); this.targetMap.put(key, values); } + @Override public void setAll(Map values) { for (Entry entry : values.entrySet()) { set(entry.getKey(), entry.getValue()); } } + @Override public Map toSingleValueMap() { LinkedHashMap singleValueMap = new LinkedHashMap(this.targetMap.size()); for (Entry> entry : targetMap.entrySet()) { @@ -107,50 +112,62 @@ public Map toSingleValueMap() { // Map implementation + @Override public int size() { return this.targetMap.size(); } + @Override public boolean isEmpty() { return this.targetMap.isEmpty(); } + @Override public boolean containsKey(Object key) { return this.targetMap.containsKey(key); } + @Override public boolean containsValue(Object value) { return this.targetMap.containsValue(value); } + @Override public List get(Object key) { return this.targetMap.get(key); } + @Override public List put(K key, List value) { return this.targetMap.put(key, value); } + @Override public List remove(Object key) { return this.targetMap.remove(key); } + @Override public void putAll(Map> m) { this.targetMap.putAll(m); } + @Override public void clear() { this.targetMap.clear(); } + @Override public Set keySet() { return this.targetMap.keySet(); } + @Override public Collection> values() { return this.targetMap.values(); } + @Override public Set>> entrySet() { return this.targetMap.entrySet(); } diff --git a/spring-core/src/main/java/org/springframework/util/PropertyPlaceholderHelper.java b/spring-core/src/main/java/org/springframework/util/PropertyPlaceholderHelper.java index 5728b28604d0..99d666e5a55f 100644 --- a/spring-core/src/main/java/org/springframework/util/PropertyPlaceholderHelper.java +++ b/spring-core/src/main/java/org/springframework/util/PropertyPlaceholderHelper.java @@ -107,6 +107,7 @@ public PropertyPlaceholderHelper(String placeholderPrefix, String placeholderSuf public String replacePlaceholders(String value, final Properties properties) { Assert.notNull(properties, "Argument 'properties' must not be null."); return replacePlaceholders(value, new PlaceholderResolver() { + @Override public String resolvePlaceholder(String placeholderName) { return properties.getProperty(placeholderName); } diff --git a/spring-core/src/main/java/org/springframework/util/ReflectionUtils.java b/spring-core/src/main/java/org/springframework/util/ReflectionUtils.java index 87ba4211412e..0edaeca2d31a 100644 --- a/spring-core/src/main/java/org/springframework/util/ReflectionUtils.java +++ b/spring-core/src/main/java/org/springframework/util/ReflectionUtils.java @@ -494,6 +494,7 @@ else if (clazz.isInterface()) { public static Method[] getAllDeclaredMethods(Class leafClass) throws IllegalArgumentException { final List methods = new ArrayList(32); doWithMethods(leafClass, new MethodCallback() { + @Override public void doWith(Method method) { methods.add(method); } @@ -509,6 +510,7 @@ public void doWith(Method method) { public static Method[] getUniqueDeclaredMethods(Class leafClass) throws IllegalArgumentException { final List methods = new ArrayList(32); doWithMethods(leafClass, new MethodCallback() { + @Override public void doWith(Method method) { boolean knownSignature = false; Method methodBeingOverriddenWithCovariantReturnType = null; @@ -597,6 +599,7 @@ public static void shallowCopyFieldState(final Object src, final Object dest) th + "] must be same or subclass as source class [" + src.getClass().getName() + "]"); } doWithFields(src.getClass(), new FieldCallback() { + @Override public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException { makeAccessible(field); Object srcValue = field.get(src); @@ -663,6 +666,7 @@ public interface FieldFilter { */ public static FieldFilter COPYABLE_FIELDS = new FieldFilter() { + @Override public boolean matches(Field field) { return !(Modifier.isStatic(field.getModifiers()) || Modifier.isFinal(field.getModifiers())); } @@ -674,6 +678,7 @@ public boolean matches(Field field) { */ public static MethodFilter NON_BRIDGED_METHODS = new MethodFilter() { + @Override public boolean matches(Method method) { return !method.isBridge(); } @@ -686,6 +691,7 @@ public boolean matches(Method method) { */ public static MethodFilter USER_DECLARED_METHODS = new MethodFilter() { + @Override public boolean matches(Method method) { return (!method.isBridge() && method.getDeclaringClass() != Object.class); } diff --git a/spring-core/src/main/java/org/springframework/util/SystemPropertyUtils.java b/spring-core/src/main/java/org/springframework/util/SystemPropertyUtils.java index 19ee4478e715..72f8712ff0a2 100644 --- a/spring-core/src/main/java/org/springframework/util/SystemPropertyUtils.java +++ b/spring-core/src/main/java/org/springframework/util/SystemPropertyUtils.java @@ -89,6 +89,7 @@ public SystemPropertyPlaceholderResolver(String text) { this.text = text; } + @Override public String resolvePlaceholder(String placeholderName) { try { String propVal = System.getProperty(placeholderName); diff --git a/spring-core/src/main/java/org/springframework/util/WeakReferenceMonitor.java b/spring-core/src/main/java/org/springframework/util/WeakReferenceMonitor.java index 46693c96b141..2ce4b7901ec7 100644 --- a/spring-core/src/main/java/org/springframework/util/WeakReferenceMonitor.java +++ b/spring-core/src/main/java/org/springframework/util/WeakReferenceMonitor.java @@ -132,6 +132,7 @@ private static boolean keepMonitoringThreadAlive() { */ private static class MonitoringProcess implements Runnable { + @Override public void run() { logger.debug("Starting reference monitor thread"); // Check if there are any tracked entries left. diff --git a/spring-core/src/main/java/org/springframework/util/comparator/BooleanComparator.java b/spring-core/src/main/java/org/springframework/util/comparator/BooleanComparator.java index 6fd0c2294bcd..ec68351e7909 100644 --- a/spring-core/src/main/java/org/springframework/util/comparator/BooleanComparator.java +++ b/spring-core/src/main/java/org/springframework/util/comparator/BooleanComparator.java @@ -59,6 +59,7 @@ public BooleanComparator(boolean trueLow) { } + @Override public int compare(Boolean v1, Boolean v2) { return (v1 ^ v2) ? ((v1 ^ this.trueLow) ? 1 : -1) : 0; } diff --git a/spring-core/src/main/java/org/springframework/util/comparator/ComparableComparator.java b/spring-core/src/main/java/org/springframework/util/comparator/ComparableComparator.java index 40e4e7af9330..b8b27418cb9d 100644 --- a/spring-core/src/main/java/org/springframework/util/comparator/ComparableComparator.java +++ b/spring-core/src/main/java/org/springframework/util/comparator/ComparableComparator.java @@ -32,6 +32,7 @@ public class ComparableComparator> implements Comparator @SuppressWarnings("rawtypes") public static final ComparableComparator INSTANCE = new ComparableComparator(); + @Override public int compare(T o1, T o2) { return o1.compareTo(o2); } diff --git a/spring-core/src/main/java/org/springframework/util/comparator/CompoundComparator.java b/spring-core/src/main/java/org/springframework/util/comparator/CompoundComparator.java index ba56bd54d159..20652a328879 100644 --- a/spring-core/src/main/java/org/springframework/util/comparator/CompoundComparator.java +++ b/spring-core/src/main/java/org/springframework/util/comparator/CompoundComparator.java @@ -162,6 +162,7 @@ public int getComparatorCount() { return this.comparators.size(); } + @Override public int compare(T o1, T o2) { Assert.state(this.comparators.size() > 0, "No sort definitions have been added to this CompoundComparator to compare"); diff --git a/spring-core/src/main/java/org/springframework/util/comparator/InstanceComparator.java b/spring-core/src/main/java/org/springframework/util/comparator/InstanceComparator.java index 80b8b9b369f5..b9c6161038de 100644 --- a/spring-core/src/main/java/org/springframework/util/comparator/InstanceComparator.java +++ b/spring-core/src/main/java/org/springframework/util/comparator/InstanceComparator.java @@ -52,6 +52,7 @@ public InstanceComparator(Class... instanceOrder) { } + @Override public int compare(T o1, T o2) { int i1 = getOrder(o1); int i2 = getOrder(o2); diff --git a/spring-core/src/main/java/org/springframework/util/comparator/InvertibleComparator.java b/spring-core/src/main/java/org/springframework/util/comparator/InvertibleComparator.java index f78e56ff5dc9..9a9f5f9c1932 100644 --- a/spring-core/src/main/java/org/springframework/util/comparator/InvertibleComparator.java +++ b/spring-core/src/main/java/org/springframework/util/comparator/InvertibleComparator.java @@ -84,6 +84,7 @@ public void invertOrder() { } + @Override public int compare(T o1, T o2) { int result = this.comparator.compare(o1, o2); if (result != 0) { diff --git a/spring-core/src/main/java/org/springframework/util/comparator/NullSafeComparator.java b/spring-core/src/main/java/org/springframework/util/comparator/NullSafeComparator.java index 1171bdc1d30d..ebff3488c2d5 100644 --- a/spring-core/src/main/java/org/springframework/util/comparator/NullSafeComparator.java +++ b/spring-core/src/main/java/org/springframework/util/comparator/NullSafeComparator.java @@ -86,6 +86,7 @@ public NullSafeComparator(Comparator comparator, boolean nullsLow) { } + @Override public int compare(T o1, T o2) { if (o1 == o2) { return 0; diff --git a/spring-core/src/main/java/org/springframework/util/xml/AbstractStaxContentHandler.java b/spring-core/src/main/java/org/springframework/util/xml/AbstractStaxContentHandler.java index 46f4d98ebe5a..f494b88592a5 100644 --- a/spring-core/src/main/java/org/springframework/util/xml/AbstractStaxContentHandler.java +++ b/spring-core/src/main/java/org/springframework/util/xml/AbstractStaxContentHandler.java @@ -37,6 +37,7 @@ abstract class AbstractStaxContentHandler implements ContentHandler { private boolean namespaceContextChanged = false; + @Override public final void startDocument() throws SAXException { namespaceContext.clear(); namespaceContextChanged = false; @@ -50,6 +51,7 @@ public final void startDocument() throws SAXException { protected abstract void startDocumentInternal() throws XMLStreamException; + @Override public final void endDocument() throws SAXException { namespaceContext.clear(); namespaceContextChanged = false; @@ -68,6 +70,7 @@ public final void endDocument() throws SAXException { * * @see SimpleNamespaceContext#bindNamespaceUri(String,String) */ + @Override public final void startPrefixMapping(String prefix, String uri) { namespaceContext.bindNamespaceUri(prefix, uri); namespaceContextChanged = true; @@ -78,11 +81,13 @@ public final void startPrefixMapping(String prefix, String uri) { * * @see SimpleNamespaceContext#removeBinding(String) */ + @Override public final void endPrefixMapping(String prefix) { namespaceContext.removeBinding(prefix); namespaceContextChanged = true; } + @Override public final void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { try { startElementInternal(toQName(uri, qName), atts, namespaceContextChanged ? namespaceContext : null); @@ -96,6 +101,7 @@ public final void startElement(String uri, String localName, String qName, Attri protected abstract void startElementInternal(QName name, Attributes atts, SimpleNamespaceContext namespaceContext) throws XMLStreamException; + @Override public final void endElement(String uri, String localName, String qName) throws SAXException { try { endElementInternal(toQName(uri, qName), namespaceContextChanged ? namespaceContext : null); @@ -109,6 +115,7 @@ public final void endElement(String uri, String localName, String qName) throws protected abstract void endElementInternal(QName name, SimpleNamespaceContext namespaceContext) throws XMLStreamException; + @Override public final void characters(char ch[], int start, int length) throws SAXException { try { charactersInternal(ch, start, length); @@ -120,6 +127,7 @@ public final void characters(char ch[], int start, int length) throws SAXExcepti protected abstract void charactersInternal(char[] ch, int start, int length) throws XMLStreamException; + @Override public final void ignorableWhitespace(char[] ch, int start, int length) throws SAXException { try { ignorableWhitespaceInternal(ch, start, length); @@ -131,6 +139,7 @@ public final void ignorableWhitespace(char[] ch, int start, int length) throws S protected abstract void ignorableWhitespaceInternal(char[] ch, int start, int length) throws XMLStreamException; + @Override public final void processingInstruction(String target, String data) throws SAXException { try { processingInstructionInternal(target, data); @@ -142,6 +151,7 @@ public final void processingInstruction(String target, String data) throws SAXEx protected abstract void processingInstructionInternal(String target, String data) throws XMLStreamException; + @Override public final void skippedEntity(String name) throws SAXException { try { skippedEntityInternal(name); diff --git a/spring-core/src/main/java/org/springframework/util/xml/AbstractStaxXMLReader.java b/spring-core/src/main/java/org/springframework/util/xml/AbstractStaxXMLReader.java index feeefd6e8ea2..25dc97b299d4 100644 --- a/spring-core/src/main/java/org/springframework/util/xml/AbstractStaxXMLReader.java +++ b/spring-core/src/main/java/org/springframework/util/xml/AbstractStaxXMLReader.java @@ -134,6 +134,7 @@ protected String toQualifiedName(QName qName) { * @param ignored is ignored * @throws SAXException a SAX exception, possibly wrapping a {@code XMLStreamException} */ + @Override public final void parse(InputSource ignored) throws SAXException { parse(); } @@ -144,6 +145,7 @@ public final void parse(InputSource ignored) throws SAXException { * @param ignored is ignored * @throws SAXException A SAX exception, possibly wrapping a {@code XMLStreamException} */ + @Override public final void parse(String ignored) throws SAXException { parse(); } @@ -217,18 +219,22 @@ protected StaxLocator(Location location) { this.location = location; } + @Override public String getPublicId() { return location.getPublicId(); } + @Override public String getSystemId() { return location.getSystemId(); } + @Override public int getLineNumber() { return location.getLineNumber(); } + @Override public int getColumnNumber() { return location.getColumnNumber(); } diff --git a/spring-core/src/main/java/org/springframework/util/xml/AbstractXMLReader.java b/spring-core/src/main/java/org/springframework/util/xml/AbstractXMLReader.java index 300f9ff2fc91..7b24a3c1c237 100644 --- a/spring-core/src/main/java/org/springframework/util/xml/AbstractXMLReader.java +++ b/spring-core/src/main/java/org/springframework/util/xml/AbstractXMLReader.java @@ -48,34 +48,42 @@ abstract class AbstractXMLReader implements XMLReader { private LexicalHandler lexicalHandler; + @Override public ContentHandler getContentHandler() { return contentHandler; } + @Override public void setContentHandler(ContentHandler contentHandler) { this.contentHandler = contentHandler; } + @Override public void setDTDHandler(DTDHandler dtdHandler) { this.dtdHandler = dtdHandler; } + @Override public DTDHandler getDTDHandler() { return dtdHandler; } + @Override public EntityResolver getEntityResolver() { return entityResolver; } + @Override public void setEntityResolver(EntityResolver entityResolver) { this.entityResolver = entityResolver; } + @Override public ErrorHandler getErrorHandler() { return errorHandler; } + @Override public void setErrorHandler(ErrorHandler errorHandler) { this.errorHandler = errorHandler; } @@ -90,6 +98,7 @@ protected LexicalHandler getLexicalHandler() { * @throws org.xml.sax.SAXNotRecognizedException * always */ + @Override public boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotSupportedException { throw new SAXNotRecognizedException(name); } @@ -99,6 +108,7 @@ public boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotS * * @throws SAXNotRecognizedException always */ + @Override public void setFeature(String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException { throw new SAXNotRecognizedException(name); } @@ -107,6 +117,7 @@ public void setFeature(String name, boolean value) throws SAXNotRecognizedExcept * Throws a {@code SAXNotRecognizedException} exception when the given property does not signify a lexical * handler. The property name for a lexical handler is {@code http://xml.org/sax/properties/lexical-handler}. */ + @Override public Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException { if ("http://xml.org/sax/properties/lexical-handler".equals(name)) { return lexicalHandler; @@ -120,6 +131,7 @@ public Object getProperty(String name) throws SAXNotRecognizedException, SAXNotS * Throws a {@code SAXNotRecognizedException} exception when the given property does not signify a lexical * handler. The property name for a lexical handler is {@code http://xml.org/sax/properties/lexical-handler}. */ + @Override public void setProperty(String name, Object value) throws SAXNotRecognizedException, SAXNotSupportedException { if ("http://xml.org/sax/properties/lexical-handler".equals(name)) { lexicalHandler = (LexicalHandler) value; diff --git a/spring-core/src/main/java/org/springframework/util/xml/AbstractXMLStreamReader.java b/spring-core/src/main/java/org/springframework/util/xml/AbstractXMLStreamReader.java index e8c8a6434864..6335ea156f6e 100644 --- a/spring-core/src/main/java/org/springframework/util/xml/AbstractXMLStreamReader.java +++ b/spring-core/src/main/java/org/springframework/util/xml/AbstractXMLStreamReader.java @@ -31,6 +31,7 @@ */ abstract class AbstractXMLStreamReader implements XMLStreamReader { + @Override public String getElementText() throws XMLStreamException { if (getEventType() != XMLStreamConstants.START_ELEMENT) { throw new XMLStreamException("parser must be on START_ELEMENT to read next text", getLocation()); @@ -61,18 +62,22 @@ else if (eventType == XMLStreamConstants.START_ELEMENT) { return builder.toString(); } + @Override public String getAttributeLocalName(int index) { return getAttributeName(index).getLocalPart(); } + @Override public String getAttributeNamespace(int index) { return getAttributeName(index).getNamespaceURI(); } + @Override public String getAttributePrefix(int index) { return getAttributeName(index).getPrefix(); } + @Override public String getNamespaceURI() { int eventType = getEventType(); if (eventType == XMLStreamConstants.START_ELEMENT || eventType == XMLStreamConstants.END_ELEMENT) { @@ -83,11 +88,13 @@ public String getNamespaceURI() { } } + @Override public String getNamespaceURI(String prefix) { Assert.notNull(prefix, "No prefix given"); return getNamespaceContext().getNamespaceURI(prefix); } + @Override public boolean hasText() { int eventType = getEventType(); return eventType == XMLStreamConstants.SPACE || eventType == XMLStreamConstants.CHARACTERS || @@ -95,6 +102,7 @@ public boolean hasText() { eventType == XMLStreamConstants.ENTITY_REFERENCE; } + @Override public String getPrefix() { int eventType = getEventType(); if (eventType == XMLStreamConstants.START_ELEMENT || eventType == XMLStreamConstants.END_ELEMENT) { @@ -105,27 +113,33 @@ public String getPrefix() { } } + @Override public boolean hasName() { int eventType = getEventType(); return eventType == XMLStreamConstants.START_ELEMENT || eventType == XMLStreamConstants.END_ELEMENT; } + @Override public boolean isWhiteSpace() { return getEventType() == XMLStreamConstants.SPACE; } + @Override public boolean isStartElement() { return getEventType() == XMLStreamConstants.START_ELEMENT; } + @Override public boolean isEndElement() { return getEventType() == XMLStreamConstants.END_ELEMENT; } + @Override public boolean isCharacters() { return getEventType() == XMLStreamConstants.CHARACTERS; } + @Override public int nextTag() throws XMLStreamException { int eventType = next(); while (eventType == XMLStreamConstants.CHARACTERS && isWhiteSpace() || @@ -139,6 +153,7 @@ public int nextTag() throws XMLStreamException { return eventType; } + @Override public void require(int expectedType, String namespaceURI, String localName) throws XMLStreamException { int eventType = getEventType(); if (eventType != expectedType) { @@ -146,6 +161,7 @@ public void require(int expectedType, String namespaceURI, String localName) thr } } + @Override public String getAttributeValue(String namespaceURI, String localName) { for (int i = 0; i < getAttributeCount(); i++) { QName name = getAttributeName(i); @@ -157,18 +173,22 @@ public String getAttributeValue(String namespaceURI, String localName) { return null; } + @Override public boolean hasNext() throws XMLStreamException { return getEventType() != END_DOCUMENT; } + @Override public String getLocalName() { return getName().getLocalPart(); } + @Override public char[] getTextCharacters() { return getText().toCharArray(); } + @Override public int getTextCharacters(int sourceStart, char[] target, int targetStart, int length) throws XMLStreamException { char[] source = getTextCharacters(); @@ -177,6 +197,7 @@ public int getTextCharacters(int sourceStart, char[] target, int targetStart, in return length; } + @Override public int getTextLength() { return getText().length(); } diff --git a/spring-core/src/main/java/org/springframework/util/xml/DomContentHandler.java b/spring-core/src/main/java/org/springframework/util/xml/DomContentHandler.java index 534cb0077b48..5a8d92aa850a 100644 --- a/spring-core/src/main/java/org/springframework/util/xml/DomContentHandler.java +++ b/spring-core/src/main/java/org/springframework/util/xml/DomContentHandler.java @@ -72,6 +72,7 @@ private Node getParent() { } } + @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { Node parent = getParent(); Element element = document.createElementNS(uri, qName); @@ -87,10 +88,12 @@ public void startElement(String uri, String localName, String qName, Attributes elements.add(element); } + @Override public void endElement(String uri, String localName, String qName) throws SAXException { elements.remove(elements.size() - 1); } + @Override public void characters(char ch[], int start, int length) throws SAXException { String data = new String(ch, start, length); Node parent = getParent(); @@ -104,6 +107,7 @@ public void characters(char ch[], int start, int length) throws SAXException { } } + @Override public void processingInstruction(String target, String data) throws SAXException { Node parent = getParent(); ProcessingInstruction pi = document.createProcessingInstruction(target, data); @@ -114,24 +118,31 @@ public void processingInstruction(String target, String data) throws SAXExceptio * Unsupported */ + @Override public void setDocumentLocator(Locator locator) { } + @Override public void startDocument() throws SAXException { } + @Override public void endDocument() throws SAXException { } + @Override public void startPrefixMapping(String prefix, String uri) throws SAXException { } + @Override public void endPrefixMapping(String prefix) throws SAXException { } + @Override public void ignorableWhitespace(char ch[], int start, int length) throws SAXException { } + @Override public void skippedEntity(String name) throws SAXException { } } diff --git a/spring-core/src/main/java/org/springframework/util/xml/SimpleNamespaceContext.java b/spring-core/src/main/java/org/springframework/util/xml/SimpleNamespaceContext.java index c0d966d6eba5..2908fa91489d 100644 --- a/spring-core/src/main/java/org/springframework/util/xml/SimpleNamespaceContext.java +++ b/spring-core/src/main/java/org/springframework/util/xml/SimpleNamespaceContext.java @@ -43,6 +43,7 @@ public class SimpleNamespaceContext implements NamespaceContext { private String defaultNamespaceUri = ""; + @Override public String getNamespaceURI(String prefix) { Assert.notNull(prefix, "prefix is null"); if (XMLConstants.XML_NS_PREFIX.equals(prefix)) { @@ -60,11 +61,13 @@ else if (prefixToNamespaceUri.containsKey(prefix)) { return ""; } + @Override public String getPrefix(String namespaceUri) { List prefixes = getPrefixesInternal(namespaceUri); return prefixes.isEmpty() ? null : (String) prefixes.get(0); } + @Override public Iterator getPrefixes(String namespaceUri) { return getPrefixesInternal(namespaceUri).iterator(); } diff --git a/spring-core/src/main/java/org/springframework/util/xml/SimpleSaxErrorHandler.java b/spring-core/src/main/java/org/springframework/util/xml/SimpleSaxErrorHandler.java index ed06ed8c056f..3d0227db1c72 100644 --- a/spring-core/src/main/java/org/springframework/util/xml/SimpleSaxErrorHandler.java +++ b/spring-core/src/main/java/org/springframework/util/xml/SimpleSaxErrorHandler.java @@ -43,14 +43,17 @@ public SimpleSaxErrorHandler(Log logger) { } + @Override public void warning(SAXParseException ex) throws SAXException { logger.warn("Ignored XML validation warning", ex); } + @Override public void error(SAXParseException ex) throws SAXException { throw ex; } + @Override public void fatalError(SAXParseException ex) throws SAXException { throw ex; } diff --git a/spring-core/src/main/java/org/springframework/util/xml/SimpleTransformErrorListener.java b/spring-core/src/main/java/org/springframework/util/xml/SimpleTransformErrorListener.java index 7fd5dffa1090..cab7670a92bb 100644 --- a/spring-core/src/main/java/org/springframework/util/xml/SimpleTransformErrorListener.java +++ b/spring-core/src/main/java/org/springframework/util/xml/SimpleTransformErrorListener.java @@ -43,14 +43,17 @@ public SimpleTransformErrorListener(Log logger) { } + @Override public void warning(TransformerException ex) throws TransformerException { logger.warn("XSLT transformation warning", ex); } + @Override public void error(TransformerException ex) throws TransformerException { logger.error("XSLT transformation error", ex); } + @Override public void fatalError(TransformerException ex) throws TransformerException { throw ex; } diff --git a/spring-core/src/main/java/org/springframework/util/xml/StaxEventContentHandler.java b/spring-core/src/main/java/org/springframework/util/xml/StaxEventContentHandler.java index 686ff1a63431..54505a587c8e 100644 --- a/spring-core/src/main/java/org/springframework/util/xml/StaxEventContentHandler.java +++ b/spring-core/src/main/java/org/springframework/util/xml/StaxEventContentHandler.java @@ -71,6 +71,7 @@ class StaxEventContentHandler extends AbstractStaxContentHandler { this.eventConsumer = consumer; } + @Override public void setDocumentLocator(Locator locator) { if (locator != null) { this.eventFactory.setLocation(new LocatorLocationAdapter(locator)); @@ -168,22 +169,27 @@ public LocatorLocationAdapter(Locator locator) { this.locator = locator; } + @Override public int getLineNumber() { return this.locator.getLineNumber(); } + @Override public int getColumnNumber() { return this.locator.getColumnNumber(); } + @Override public int getCharacterOffset() { return -1; } + @Override public String getPublicId() { return this.locator.getPublicId(); } + @Override public String getSystemId() { return this.locator.getSystemId(); } diff --git a/spring-core/src/main/java/org/springframework/util/xml/StaxEventXMLReader.java b/spring-core/src/main/java/org/springframework/util/xml/StaxEventXMLReader.java index 0d32a3fc08c5..9607d29f23c4 100644 --- a/spring-core/src/main/java/org/springframework/util/xml/StaxEventXMLReader.java +++ b/spring-core/src/main/java/org/springframework/util/xml/StaxEventXMLReader.java @@ -170,26 +170,32 @@ private void handleStartDocument(final XMLEvent event) throws SAXException { final Location location = event.getLocation(); getContentHandler().setDocumentLocator(new Locator2() { + @Override public int getColumnNumber() { return location != null ? location.getColumnNumber() : -1; } + @Override public int getLineNumber() { return location != null ? location.getLineNumber() : -1; } + @Override public String getPublicId() { return location != null ? location.getPublicId() : null; } + @Override public String getSystemId() { return location != null ? location.getSystemId() : null; } + @Override public String getXMLVersion() { return xmlVersion; } + @Override public String getEncoding() { return encoding; } diff --git a/spring-core/src/main/java/org/springframework/util/xml/StaxStreamContentHandler.java b/spring-core/src/main/java/org/springframework/util/xml/StaxStreamContentHandler.java index 2241e2f2a9e8..284f69d0ac2d 100644 --- a/spring-core/src/main/java/org/springframework/util/xml/StaxStreamContentHandler.java +++ b/spring-core/src/main/java/org/springframework/util/xml/StaxStreamContentHandler.java @@ -49,6 +49,7 @@ class StaxStreamContentHandler extends AbstractStaxContentHandler { this.streamWriter = streamWriter; } + @Override public void setDocumentLocator(Locator locator) { } diff --git a/spring-core/src/main/java/org/springframework/util/xml/StaxStreamXMLReader.java b/spring-core/src/main/java/org/springframework/util/xml/StaxStreamXMLReader.java index bca48d1cdbe6..4bba7a69748f 100644 --- a/spring-core/src/main/java/org/springframework/util/xml/StaxStreamXMLReader.java +++ b/spring-core/src/main/java/org/springframework/util/xml/StaxStreamXMLReader.java @@ -144,26 +144,32 @@ private void handleStartDocument() throws SAXException { getContentHandler().setDocumentLocator(new Locator2() { + @Override public int getColumnNumber() { return location != null ? location.getColumnNumber() : -1; } + @Override public int getLineNumber() { return location != null ? location.getLineNumber() : -1; } + @Override public String getPublicId() { return location != null ? location.getPublicId() : null; } + @Override public String getSystemId() { return location != null ? location.getSystemId() : null; } + @Override public String getXMLVersion() { return xmlVersion; } + @Override public String getEncoding() { return encoding; } diff --git a/spring-core/src/main/java/org/springframework/util/xml/XMLEventStreamReader.java b/spring-core/src/main/java/org/springframework/util/xml/XMLEventStreamReader.java index 61267be901fb..731d7bc9a28a 100644 --- a/spring-core/src/main/java/org/springframework/util/xml/XMLEventStreamReader.java +++ b/spring-core/src/main/java/org/springframework/util/xml/XMLEventStreamReader.java @@ -49,6 +49,7 @@ class XMLEventStreamReader extends AbstractXMLStreamReader { event = eventReader.nextEvent(); } + @Override public boolean isStandalone() { if (event.isStartDocument()) { return ((StartDocument) event).isStandalone(); @@ -58,6 +59,7 @@ public boolean isStandalone() { } } + @Override public String getVersion() { if (event.isStartDocument()) { return ((StartDocument) event).getVersion(); @@ -67,10 +69,12 @@ public String getVersion() { } } + @Override public int getTextStart() { return 0; } + @Override public String getText() { if (event.isCharacters()) { return event.asCharacters().getData(); @@ -83,6 +87,7 @@ else if (event.getEventType() == XMLEvent.COMMENT) { } } + @Override public String getPITarget() { if (event.isProcessingInstruction()) { return ((ProcessingInstruction) event).getTarget(); @@ -92,6 +97,7 @@ public String getPITarget() { } } + @Override public String getPIData() { if (event.isProcessingInstruction()) { return ((ProcessingInstruction) event).getData(); @@ -101,6 +107,7 @@ public String getPIData() { } } + @Override public int getNamespaceCount() { Iterator namespaces; if (event.isStartElement()) { @@ -115,6 +122,7 @@ else if (event.isEndElement()) { return countIterator(namespaces); } + @Override public NamespaceContext getNamespaceContext() { if (event.isStartElement()) { return event.asStartElement().getNamespaceContext(); @@ -124,6 +132,7 @@ public NamespaceContext getNamespaceContext() { } } + @Override public QName getName() { if (event.isStartElement()) { return event.asStartElement().getName(); @@ -136,22 +145,27 @@ else if (event.isEndElement()) { } } + @Override public Location getLocation() { return event.getLocation(); } + @Override public int getEventType() { return event.getEventType(); } + @Override public String getEncoding() { return null; } + @Override public String getCharacterEncodingScheme() { return null; } + @Override public int getAttributeCount() { if (!event.isStartElement()) { throw new IllegalStateException(); @@ -160,43 +174,53 @@ public int getAttributeCount() { return countIterator(attributes); } + @Override public void close() throws XMLStreamException { eventReader.close(); } + @Override public QName getAttributeName(int index) { return getAttribute(index).getName(); } + @Override public String getAttributeType(int index) { return getAttribute(index).getDTDType(); } + @Override public String getAttributeValue(int index) { return getAttribute(index).getValue(); } + @Override public String getNamespacePrefix(int index) { return getNamespace(index).getPrefix(); } + @Override public String getNamespaceURI(int index) { return getNamespace(index).getNamespaceURI(); } + @Override public Object getProperty(String name) throws IllegalArgumentException { return eventReader.getProperty(name); } + @Override public boolean isAttributeSpecified(int index) { return getAttribute(index).isSpecified(); } + @Override public int next() throws XMLStreamException { event = eventReader.nextEvent(); return event.getEventType(); } + @Override public boolean standaloneSet() { if (event.isStartDocument()) { return ((StartDocument) event).standaloneSet(); diff --git a/spring-core/src/main/java/org/springframework/util/xml/XMLEventStreamWriter.java b/spring-core/src/main/java/org/springframework/util/xml/XMLEventStreamWriter.java index 37dff4fb8107..8c9e3ad0fb89 100644 --- a/spring-core/src/main/java/org/springframework/util/xml/XMLEventStreamWriter.java +++ b/spring-core/src/main/java/org/springframework/util/xml/XMLEventStreamWriter.java @@ -56,65 +56,80 @@ public XMLEventStreamWriter(XMLEventWriter eventWriter, XMLEventFactory eventFac this.eventFactory = eventFactory; } + @Override public NamespaceContext getNamespaceContext() { return eventWriter.getNamespaceContext(); } + @Override public String getPrefix(String uri) throws XMLStreamException { return eventWriter.getPrefix(uri); } + @Override public void setPrefix(String prefix, String uri) throws XMLStreamException { eventWriter.setPrefix(prefix, uri); } + @Override public void setDefaultNamespace(String uri) throws XMLStreamException { eventWriter.setDefaultNamespace(uri); } + @Override public void setNamespaceContext(NamespaceContext context) throws XMLStreamException { eventWriter.setNamespaceContext(context); } + @Override public void writeStartDocument() throws XMLStreamException { eventWriter.add(eventFactory.createStartDocument()); } + @Override public void writeStartDocument(String version) throws XMLStreamException { eventWriter.add(eventFactory.createStartDocument(DEFAULT_ENCODING, version)); } + @Override public void writeStartDocument(String encoding, String version) throws XMLStreamException { eventWriter.add(eventFactory.createStartDocument(encoding, version)); } + @Override public void writeStartElement(String localName) throws XMLStreamException { writeStartElement(eventFactory.createStartElement(new QName(localName), null, null)); } + @Override public void writeStartElement(String namespaceURI, String localName) throws XMLStreamException { writeStartElement(eventFactory.createStartElement(new QName(namespaceURI, localName), null, null)); } + @Override public void writeStartElement(String prefix, String localName, String namespaceURI) throws XMLStreamException { writeStartElement(eventFactory.createStartElement(new QName(namespaceURI, localName, prefix), null, null)); } + @Override public void writeEmptyElement(String localName) throws XMLStreamException { writeStartElement(localName); writeEndElement(); } + @Override public void writeEmptyElement(String namespaceURI, String localName) throws XMLStreamException { writeStartElement(namespaceURI, localName); writeEndElement(); } + @Override public void writeEmptyElement(String prefix, String localName, String namespaceURI) throws XMLStreamException { writeStartElement(prefix, localName, namespaceURI); writeEndElement(); } + @Override public void writeEndElement() throws XMLStreamException { int last = endElements.size() - 1; EndElement lastEndElement = endElements.get(last); @@ -122,71 +137,88 @@ public void writeEndElement() throws XMLStreamException { endElements.remove(last); } + @Override public void writeAttribute(String localName, String value) throws XMLStreamException { eventWriter.add(eventFactory.createAttribute(localName, value)); } + @Override public void writeAttribute(String namespaceURI, String localName, String value) throws XMLStreamException { eventWriter.add(eventFactory.createAttribute(new QName(namespaceURI, localName), value)); } + @Override public void writeAttribute(String prefix, String namespaceURI, String localName, String value) throws XMLStreamException { eventWriter.add(eventFactory.createAttribute(prefix, namespaceURI, localName, value)); } + @Override public void writeNamespace(String prefix, String namespaceURI) throws XMLStreamException { writeNamespace(eventFactory.createNamespace(prefix, namespaceURI)); } + @Override public void writeDefaultNamespace(String namespaceURI) throws XMLStreamException { writeNamespace(eventFactory.createNamespace(namespaceURI)); } + @Override public void writeCharacters(String text) throws XMLStreamException { eventWriter.add(eventFactory.createCharacters(text)); } + @Override public void writeCharacters(char[] text, int start, int len) throws XMLStreamException { eventWriter.add(eventFactory.createCharacters(new String(text, start, len))); } + @Override public void writeCData(String data) throws XMLStreamException { eventWriter.add(eventFactory.createCData(data)); } + @Override public void writeComment(String data) throws XMLStreamException { eventWriter.add(eventFactory.createComment(data)); } + @Override public void writeProcessingInstruction(String target) throws XMLStreamException { eventWriter.add(eventFactory.createProcessingInstruction(target, "")); } + @Override public void writeProcessingInstruction(String target, String data) throws XMLStreamException { eventWriter.add(eventFactory.createProcessingInstruction(target, data)); } + @Override public void writeDTD(String dtd) throws XMLStreamException { eventWriter.add(eventFactory.createDTD(dtd)); } + @Override public void writeEntityRef(String name) throws XMLStreamException { eventWriter.add(eventFactory.createEntityReference(name, null)); } + @Override public void writeEndDocument() throws XMLStreamException { eventWriter.add(eventFactory.createEndDocument()); } + @Override public Object getProperty(String name) throws IllegalArgumentException { throw new IllegalArgumentException(); } + @Override public void flush() throws XMLStreamException { eventWriter.flush(); } + @Override public void close() throws XMLStreamException { eventWriter.close(); } diff --git a/spring-core/src/test/java/org/springframework/core/convert/support/DefaultConversionTests.java b/spring-core/src/test/java/org/springframework/core/convert/support/DefaultConversionTests.java index ba42cddf9daa..1a037f05c1ae 100644 --- a/spring-core/src/test/java/org/springframework/core/convert/support/DefaultConversionTests.java +++ b/spring-core/src/test/java/org/springframework/core/convert/support/DefaultConversionTests.java @@ -740,6 +740,7 @@ public SSN(String value) { this.value = value; } + @Override public boolean equals(Object o) { if (!(o instanceof SSN)) { return false; @@ -748,10 +749,12 @@ public boolean equals(Object o) { return this.value.equals(ssn.value); } + @Override public int hashCode() { return value.hashCode(); } + @Override public String toString() { return value; } @@ -765,6 +768,7 @@ private ISBN(String value) { this.value = value; } + @Override public boolean equals(Object o) { if (!(o instanceof ISBN)) { return false; @@ -773,10 +777,12 @@ public boolean equals(Object o) { return this.value.equals(isbn.value); } + @Override public int hashCode() { return value.hashCode(); } + @Override public String toString() { return value; } diff --git a/spring-core/src/test/java/org/springframework/core/env/DummyEnvironment.java b/spring-core/src/test/java/org/springframework/core/env/DummyEnvironment.java index 88d9347dfa1b..bcb3d2258ef6 100644 --- a/spring-core/src/test/java/org/springframework/core/env/DummyEnvironment.java +++ b/spring-core/src/test/java/org/springframework/core/env/DummyEnvironment.java @@ -18,56 +18,69 @@ public class DummyEnvironment implements Environment { + @Override public boolean containsProperty(String key) { return false; } + @Override public String getProperty(String key) { return null; } + @Override public String getProperty(String key, String defaultValue) { return null; } + @Override public T getProperty(String key, Class targetType) { return null; } + @Override public T getProperty(String key, Class targetType, T defaultValue) { return null; } + @Override public Class getPropertyAsClass(String key, Class targetType) { return null; } + @Override public String getRequiredProperty(String key) throws IllegalStateException { return null; } + @Override public T getRequiredProperty(String key, Class targetType) throws IllegalStateException { return null; } + @Override public String resolvePlaceholders(String text) { return null; } + @Override public String resolveRequiredPlaceholders(String text) throws IllegalArgumentException { return null; } + @Override public String[] getActiveProfiles() { return null; } + @Override public String[] getDefaultProfiles() { return null; } + @Override public boolean acceptsProfiles(String... profiles) { return false; } diff --git a/spring-core/src/test/java/org/springframework/core/style/ToStringCreatorTests.java b/spring-core/src/test/java/org/springframework/core/style/ToStringCreatorTests.java index f353d34fb1db..381cc5a3bac3 100644 --- a/spring-core/src/test/java/org/springframework/core/style/ToStringCreatorTests.java +++ b/spring-core/src/test/java/org/springframework/core/style/ToStringCreatorTests.java @@ -37,16 +37,19 @@ public class ToStringCreatorTests extends TestCase { @Override protected void setUp() throws Exception { s1 = new SomeObject() { + @Override public String toString() { return "A"; } }; s2 = new SomeObject() { + @Override public String toString() { return "B"; } }; s3 = new SomeObject() { + @Override public String toString() { return "C"; } @@ -56,6 +59,7 @@ public String toString() { public void testDefaultStyleMap() { final Map map = getMap(); Object stringy = new Object() { + @Override public String toString() { return new ToStringCreator(this).append("familyFavoriteSport", map).toString(); } diff --git a/spring-core/src/test/java/org/springframework/tests/sample/objects/TestObject.java b/spring-core/src/test/java/org/springframework/tests/sample/objects/TestObject.java index 68ce8c644b01..29617d526182 100644 --- a/spring-core/src/test/java/org/springframework/tests/sample/objects/TestObject.java +++ b/spring-core/src/test/java/org/springframework/tests/sample/objects/TestObject.java @@ -32,26 +32,32 @@ public TestObject(String name, int age) { this.age = age; } + @Override public String getName() { return name; } + @Override public void setName(String name) { this.name = name; } + @Override public int getAge() { return this.age; } + @Override public void setAge(int age) { this.age = age; } + @Override public TestObject getSpouse() { return this.spouse; } + @Override public void setSpouse(TestObject spouse) { this.spouse = spouse; } diff --git a/spring-core/src/test/java/org/springframework/util/CollectionUtilsTests.java b/spring-core/src/test/java/org/springframework/util/CollectionUtilsTests.java index 42ac93097231..4884bce47d68 100644 --- a/spring-core/src/test/java/org/springframework/util/CollectionUtilsTests.java +++ b/spring-core/src/test/java/org/springframework/util/CollectionUtilsTests.java @@ -222,6 +222,7 @@ public Instance(String name) { this.name = name; } + @Override public boolean equals(Object rhs) { if (this == rhs) { return true; @@ -233,6 +234,7 @@ public boolean equals(Object rhs) { return this.name.equals(instance.name); } + @Override public int hashCode() { return this.name.hashCode(); } diff --git a/spring-core/src/test/java/org/springframework/util/xml/AbstractStaxXMLReaderTestCase.java b/spring-core/src/test/java/org/springframework/util/xml/AbstractStaxXMLReaderTestCase.java index 3ced43ba0ce9..d258a73dcaf8 100644 --- a/spring-core/src/test/java/org/springframework/util/xml/AbstractStaxXMLReaderTestCase.java +++ b/spring-core/src/test/java/org/springframework/util/xml/AbstractStaxXMLReaderTestCase.java @@ -119,6 +119,7 @@ public void lexicalHandler() throws Exception { LexicalHandler actualLexicalHandler = mockLexicalHandler(); willAnswer(new Answer() { + @Override public Object answer(InvocationOnMock invocation) throws Throwable { return invocation.getArguments()[0] = "element"; } @@ -147,6 +148,7 @@ protected final ContentHandler mockContentHandler() throws Exception { willAnswer(new CopyCharsAnswer()).given(contentHandler).characters(any(char[].class), anyInt(), anyInt()); willAnswer(new CopyCharsAnswer()).given(contentHandler).ignorableWhitespace(any(char[].class), anyInt(), anyInt()); willAnswer(new Answer() { + @Override public Object answer(InvocationOnMock invocation) throws Throwable { invocation.getArguments()[3] = new AttributesImpl((Attributes) invocation.getArguments()[3]); return null; @@ -161,6 +163,7 @@ protected void verifyIdenticalInvocations(T expected, T actual) { } private static class SkipLocatorArgumentsAdapter implements InvocationArgumentsAdapter { + @Override public Object[] adaptArguments(Object[] arguments) { for(int i=0; i { + @Override public Object answer(InvocationOnMock invocation) throws Throwable { char[] chars = (char[]) invocation.getArguments()[0]; char[] copy = new char[chars.length]; diff --git a/spring-expression/src/main/java/org/springframework/expression/ParserContext.java b/spring-expression/src/main/java/org/springframework/expression/ParserContext.java index 0fa439dd8d80..87a442c6b3b8 100644 --- a/spring-expression/src/main/java/org/springframework/expression/ParserContext.java +++ b/spring-expression/src/main/java/org/springframework/expression/ParserContext.java @@ -62,14 +62,17 @@ public interface ParserContext { */ public static final ParserContext TEMPLATE_EXPRESSION = new ParserContext() { + @Override public String getExpressionPrefix() { return "#{"; } + @Override public String getExpressionSuffix() { return "}"; } + @Override public boolean isTemplate() { return true; } diff --git a/spring-expression/src/main/java/org/springframework/expression/common/CompositeStringExpression.java b/spring-expression/src/main/java/org/springframework/expression/common/CompositeStringExpression.java index 840ad1b85417..a24a545479b6 100644 --- a/spring-expression/src/main/java/org/springframework/expression/common/CompositeStringExpression.java +++ b/spring-expression/src/main/java/org/springframework/expression/common/CompositeStringExpression.java @@ -50,10 +50,12 @@ public CompositeStringExpression(String expressionString, Expression[] expressio } + @Override public final String getExpressionString() { return this.expressionString; } + @Override public String getValue() throws EvaluationException { StringBuilder sb = new StringBuilder(); for (Expression expression : this.expressions) { @@ -65,6 +67,7 @@ public String getValue() throws EvaluationException { return sb.toString(); } + @Override public String getValue(Object rootObject) throws EvaluationException { StringBuilder sb = new StringBuilder(); for (Expression expression : this.expressions) { @@ -76,6 +79,7 @@ public String getValue(Object rootObject) throws EvaluationException { return sb.toString(); } + @Override public String getValue(EvaluationContext context) throws EvaluationException { StringBuilder sb = new StringBuilder(); for (Expression expression : this.expressions) { @@ -87,6 +91,7 @@ public String getValue(EvaluationContext context) throws EvaluationException { return sb.toString(); } + @Override public String getValue(EvaluationContext context, Object rootObject) throws EvaluationException { StringBuilder sb = new StringBuilder(); for (Expression expression : this.expressions) { @@ -98,36 +103,44 @@ public String getValue(EvaluationContext context, Object rootObject) throws Eval return sb.toString(); } + @Override public Class getValueType(EvaluationContext context) { return String.class; } + @Override public Class getValueType() { return String.class; } + @Override public TypeDescriptor getValueTypeDescriptor(EvaluationContext context) { return TypeDescriptor.valueOf(String.class); } + @Override public TypeDescriptor getValueTypeDescriptor() { return TypeDescriptor.valueOf(String.class); } + @Override public void setValue(EvaluationContext context, Object value) throws EvaluationException { throw new EvaluationException(this.expressionString, "Cannot call setValue on a composite expression"); } + @Override public T getValue(EvaluationContext context, Class expectedResultType) throws EvaluationException { Object value = getValue(context); return ExpressionUtils.convert(context, value, expectedResultType); } + @Override public T getValue(Class expectedResultType) throws EvaluationException { Object value = getValue(); return ExpressionUtils.convert(null, value, expectedResultType); } + @Override public boolean isWritable(EvaluationContext context) { return false; } @@ -137,45 +150,55 @@ public Expression[] getExpressions() { } + @Override public T getValue(Object rootObject, Class desiredResultType) throws EvaluationException { Object value = getValue(rootObject); return ExpressionUtils.convert(null, value, desiredResultType); } + @Override public T getValue(EvaluationContext context, Object rootObject, Class desiredResultType) throws EvaluationException { Object value = getValue(context,rootObject); return ExpressionUtils.convert(context, value, desiredResultType); } + @Override public Class getValueType(Object rootObject) throws EvaluationException { return String.class; } + @Override public Class getValueType(EvaluationContext context, Object rootObject) throws EvaluationException { return String.class; } + @Override public TypeDescriptor getValueTypeDescriptor(Object rootObject) throws EvaluationException { return TypeDescriptor.valueOf(String.class); } + @Override public TypeDescriptor getValueTypeDescriptor(EvaluationContext context, Object rootObject) throws EvaluationException { return TypeDescriptor.valueOf(String.class); } + @Override public boolean isWritable(EvaluationContext context, Object rootObject) throws EvaluationException { return false; } + @Override public void setValue(EvaluationContext context, Object rootObject, Object value) throws EvaluationException { throw new EvaluationException(this.expressionString, "Cannot call setValue on a composite expression"); } + @Override public boolean isWritable(Object rootObject) throws EvaluationException { return false; } + @Override public void setValue(Object rootObject, Object value) throws EvaluationException { throw new EvaluationException(this.expressionString, "Cannot call setValue on a composite expression"); } diff --git a/spring-expression/src/main/java/org/springframework/expression/common/LiteralExpression.java b/spring-expression/src/main/java/org/springframework/expression/common/LiteralExpression.java index ae7713c50f36..ea6742ae07b2 100644 --- a/spring-expression/src/main/java/org/springframework/expression/common/LiteralExpression.java +++ b/spring-expression/src/main/java/org/springframework/expression/common/LiteralExpression.java @@ -41,98 +41,121 @@ public LiteralExpression(String literalValue) { } + @Override public final String getExpressionString() { return this.literalValue; } + @Override public String getValue() { return this.literalValue; } + @Override public String getValue(EvaluationContext context) { return this.literalValue; } + @Override public String getValue(Object rootObject) { return this.literalValue; } + @Override public Class getValueType(EvaluationContext context) { return String.class; } + @Override public TypeDescriptor getValueTypeDescriptor(EvaluationContext context) { return TypeDescriptor.valueOf(String.class); } + @Override public TypeDescriptor getValueTypeDescriptor() { return TypeDescriptor.valueOf(String.class); } + @Override public void setValue(EvaluationContext context, Object value) throws EvaluationException { throw new EvaluationException(literalValue, "Cannot call setValue() on a LiteralExpression"); } + @Override public T getValue(EvaluationContext context, Class expectedResultType) throws EvaluationException { Object value = getValue(context); return ExpressionUtils.convert(context, value, expectedResultType); } + @Override public T getValue(Class expectedResultType) throws EvaluationException { Object value = getValue(); return ExpressionUtils.convert(null, value, expectedResultType); } + @Override public boolean isWritable(EvaluationContext context) { return false; } + @Override public Class getValueType() { return String.class; } + @Override public T getValue(Object rootObject, Class desiredResultType) throws EvaluationException { Object value = getValue(rootObject); return ExpressionUtils.convert(null, value, desiredResultType); } + @Override public String getValue(EvaluationContext context, Object rootObject) throws EvaluationException { return this.literalValue; } + @Override public T getValue(EvaluationContext context, Object rootObject, Class desiredResultType) throws EvaluationException { Object value = getValue(context, rootObject); return ExpressionUtils.convert(null, value, desiredResultType); } + @Override public Class getValueType(Object rootObject) throws EvaluationException { return String.class; } + @Override public Class getValueType(EvaluationContext context, Object rootObject) throws EvaluationException { return String.class; } + @Override public TypeDescriptor getValueTypeDescriptor(Object rootObject) throws EvaluationException { return TypeDescriptor.valueOf(String.class); } + @Override public TypeDescriptor getValueTypeDescriptor(EvaluationContext context, Object rootObject) throws EvaluationException { return TypeDescriptor.valueOf(String.class); } + @Override public boolean isWritable(EvaluationContext context, Object rootObject) throws EvaluationException { return false; } + @Override public void setValue(EvaluationContext context, Object rootObject, Object value) throws EvaluationException { throw new EvaluationException(literalValue, "Cannot call setValue() on a LiteralExpression"); } + @Override public boolean isWritable(Object rootObject) throws EvaluationException { return false; } + @Override public void setValue(Object rootObject, Object value) throws EvaluationException { throw new EvaluationException(literalValue, "Cannot call setValue() on a LiteralExpression"); } diff --git a/spring-expression/src/main/java/org/springframework/expression/common/TemplateAwareExpressionParser.java b/spring-expression/src/main/java/org/springframework/expression/common/TemplateAwareExpressionParser.java index 187065fde9ce..82b6ab07bbfe 100644 --- a/spring-expression/src/main/java/org/springframework/expression/common/TemplateAwareExpressionParser.java +++ b/spring-expression/src/main/java/org/springframework/expression/common/TemplateAwareExpressionParser.java @@ -40,22 +40,27 @@ public abstract class TemplateAwareExpressionParser implements ExpressionParser * Default ParserContext instance for non-template expressions. */ private static final ParserContext NON_TEMPLATE_PARSER_CONTEXT = new ParserContext() { + @Override public String getExpressionPrefix() { return null; } + @Override public String getExpressionSuffix() { return null; } + @Override public boolean isTemplate() { return false; } }; + @Override public Expression parseExpression(String expressionString) throws ParseException { return parseExpression(expressionString, NON_TEMPLATE_PARSER_CONTEXT); } + @Override public Expression parseExpression(String expressionString, ParserContext context) throws ParseException { if (context == null) { context = NON_TEMPLATE_PARSER_CONTEXT; diff --git a/spring-expression/src/main/java/org/springframework/expression/common/TemplateParserContext.java b/spring-expression/src/main/java/org/springframework/expression/common/TemplateParserContext.java index 046ed6a90102..768e567b5a28 100644 --- a/spring-expression/src/main/java/org/springframework/expression/common/TemplateParserContext.java +++ b/spring-expression/src/main/java/org/springframework/expression/common/TemplateParserContext.java @@ -50,14 +50,17 @@ public TemplateParserContext(String expressionPrefix, String expressionSuffix) { } + @Override public final boolean isTemplate() { return true; } + @Override public final String getExpressionPrefix() { return this.expressionPrefix; } + @Override public final String getExpressionSuffix() { return this.expressionSuffix; } diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/InternalParseException.java b/spring-expression/src/main/java/org/springframework/expression/spel/InternalParseException.java index 8a09bf2b9232..5a712417eb68 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/InternalParseException.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/InternalParseException.java @@ -32,6 +32,7 @@ public InternalParseException(SpelParseException cause) { super(cause); } + @Override public SpelParseException getCause() { return (SpelParseException) super.getCause(); } diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/ast/Indexer.java b/spring-expression/src/main/java/org/springframework/expression/spel/ast/Indexer.java index 2e19cc81e29c..4f919beec21e 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/Indexer.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/Indexer.java @@ -106,16 +106,19 @@ private class ArrayIndexingValueRef implements ValueRef { this.typeDescriptor = typeDescriptor; } + @Override public TypedValue getValue() { Object arrayElement = accessArrayElement(this.array, this.idx); return new TypedValue(arrayElement, this.typeDescriptor.elementTypeDescriptor(arrayElement)); } + @Override public void setValue(Object newValue) { setArrayElement(this.typeConverter, this.array, this.idx, newValue, this.typeDescriptor.getElementTypeDescriptor().getType()); } + @Override public boolean isWritable() { return true; } @@ -140,11 +143,13 @@ private class MapIndexingValueRef implements ValueRef { this.mapEntryTypeDescriptor = mapEntryTypeDescriptor; } + @Override public TypedValue getValue() { Object value = this.map.get(this.key); return new TypedValue(value, this.mapEntryTypeDescriptor.getMapValueTypeDescriptor(value)); } + @Override public void setValue(Object newValue) { if (this.mapEntryTypeDescriptor.getMapValueTypeDescriptor() != null) { newValue = this.typeConverter.convertValue(newValue, TypeDescriptor.forObject(newValue), @@ -153,6 +158,7 @@ public void setValue(Object newValue) { this.map.put(this.key, newValue); } + @Override public boolean isWritable() { return true; } @@ -177,6 +183,7 @@ public PropertyIndexingValueRef(Object targetObject, String value, EvaluationCon this.td = targetObjectTypeDescriptor; } + @Override public TypedValue getValue() { Class targetObjectRuntimeClass = getObjectClass(targetObject); try { @@ -210,6 +217,7 @@ public TypedValue getValue() { this.td.toString()); } + @Override public void setValue(Object newValue) { Class contextObjectClass = getObjectClass(targetObject); try { @@ -239,6 +247,7 @@ public void setValue(Object newValue) { } } + @Override public boolean isWritable() { return true; } @@ -270,6 +279,7 @@ private class CollectionIndexingValueRef implements ValueRef { this.maximumSize = maximumSize; } + @Override public TypedValue getValue() { growCollectionIfNecessary(); if (this.collection instanceof List) { @@ -286,6 +296,7 @@ public TypedValue getValue() { throw new IllegalStateException("Failed to find indexed element " + this.index + ": " + this.collection); } + @Override public void setValue(Object newValue) { growCollectionIfNecessary(); if (this.collection instanceof List) { @@ -332,6 +343,7 @@ private void growCollectionIfNecessary() { } } + @Override public boolean isWritable() { return true; } @@ -352,6 +364,7 @@ public StringIndexingLValue(String target, int index, TypeDescriptor td) { this.td = td; } + @Override public TypedValue getValue() { if (this.index >= this.target.length()) { throw new SpelEvaluationException(getStartPosition(), SpelMessage.STRING_INDEX_OUT_OF_BOUNDS, @@ -360,11 +373,13 @@ public TypedValue getValue() { return new TypedValue(String.valueOf(this.target.charAt(this.index))); } + @Override public void setValue(Object newValue) { throw new SpelEvaluationException(getStartPosition(), SpelMessage.INDEXING_NOT_SUPPORTED_FOR_TYPE, this.td.toString()); } + @Override public boolean isWritable() { return true; } diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/ast/MethodReference.java b/spring-expression/src/main/java/org/springframework/expression/spel/ast/MethodReference.java index e10927814925..26c5179005fc 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/MethodReference.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/MethodReference.java @@ -236,6 +236,7 @@ private class MethodValueRef implements ValueRef { this.arguments = arguments; } + @Override public TypedValue getValue() { MethodExecutor executorToUse = cachedExecutor; if (executorToUse != null) { @@ -274,10 +275,12 @@ public TypedValue getValue() { } } + @Override public void setValue(Object newValue) { throw new IllegalAccessError(); } + @Override public boolean isWritable() { return false; } diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/ast/OpMinus.java b/spring-expression/src/main/java/org/springframework/expression/spel/ast/OpMinus.java index c8eeb2b0f7b8..1afb3b28c4c5 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/OpMinus.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/OpMinus.java @@ -93,6 +93,7 @@ public String toStringAST() { } return super.toStringAST(); } + @Override public SpelNodeImpl getRightOperand() { if (children.length<2) {return null;} return children[1]; diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/ast/PropertyOrFieldReference.java b/spring-expression/src/main/java/org/springframework/expression/spel/ast/PropertyOrFieldReference.java index 99e79ff5048c..043a57e6fd2d 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/PropertyOrFieldReference.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/PropertyOrFieldReference.java @@ -83,14 +83,17 @@ public AccessorLValue( this.isAutoGrowNullReferences = isAutoGrowNullReferences; } + @Override public TypedValue getValue() { return ref.getValueInternal(contextObject,eContext,isAutoGrowNullReferences); } + @Override public void setValue(Object newValue) { ref.writeProperty(contextObject,eContext, ref.name, newValue); } + @Override public boolean isWritable() { return true; } diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/ast/SpelNodeImpl.java b/spring-expression/src/main/java/org/springframework/expression/spel/ast/SpelNodeImpl.java index e1ee6f90b481..7964824a3c25 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/SpelNodeImpl.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/SpelNodeImpl.java @@ -88,6 +88,7 @@ protected boolean nextChildIs(Class... clazzes) { return false; } + @Override public final Object getValue(ExpressionState expressionState) throws EvaluationException { if (expressionState != null) { return getValueInternal(expressionState).getValue(); @@ -97,6 +98,7 @@ public final Object getValue(ExpressionState expressionState) throws EvaluationE } } + @Override public final TypedValue getTypedValue(ExpressionState expressionState) throws EvaluationException { if (expressionState != null) { return getValueInternal(expressionState); @@ -107,22 +109,27 @@ public final TypedValue getTypedValue(ExpressionState expressionState) throws Ev } // by default Ast nodes are not writable + @Override public boolean isWritable(ExpressionState expressionState) throws EvaluationException { return false; } + @Override public void setValue(ExpressionState expressionState, Object newValue) throws EvaluationException { throw new SpelEvaluationException(getStartPosition(), SpelMessage.SETVALUE_NOT_SUPPORTED, getClass()); } + @Override public SpelNode getChild(int index) { return children[index]; } + @Override public int getChildCount() { return children.length; } + @Override public Class getObjectClass(Object obj) { if (obj == null) { return null; @@ -136,12 +143,15 @@ protected final T getValue(ExpressionState state, Class desiredReturnType public abstract TypedValue getValueInternal(ExpressionState expressionState) throws EvaluationException; + @Override public abstract String toStringAST(); + @Override public int getStartPosition() { return (pos>>16); } + @Override public int getEndPosition() { return (pos&0xffff); } diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/ast/ValueRef.java b/spring-expression/src/main/java/org/springframework/expression/spel/ast/ValueRef.java index a373ed386822..c4fa571b851c 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/ValueRef.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/ValueRef.java @@ -40,10 +40,12 @@ static class NullValueRef implements ValueRef { static NullValueRef instance = new NullValueRef(); + @Override public TypedValue getValue() { return TypedValue.NULL; } + @Override public void setValue(Object newValue) { // The exception position '0' isn't right but the overhead of creating // instances of this per node (where the node is solely for error reporting) @@ -51,6 +53,7 @@ public void setValue(Object newValue) { throw new SpelEvaluationException(0,SpelMessage.NOT_ASSIGNABLE,"null"); } + @Override public boolean isWritable() { return false; } @@ -70,15 +73,18 @@ public TypedValueHolderValueRef(TypedValue typedValue,SpelNodeImpl node) { this.node = node; } + @Override public TypedValue getValue() { return typedValue; } + @Override public void setValue(Object newValue) { throw new SpelEvaluationException( node.pos, SpelMessage.NOT_ASSIGNABLE, node.toStringAST()); } + @Override public boolean isWritable() { return false; } diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/ast/VariableReference.java b/spring-expression/src/main/java/org/springframework/expression/spel/ast/VariableReference.java index 785d317cacf1..3c33992070ce 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/VariableReference.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/VariableReference.java @@ -55,14 +55,17 @@ public VariableRef(String name, TypedValue value, this.eContext = evaluationContext; } + @Override public TypedValue getValue() { return value; } + @Override public void setValue(Object newValue) { eContext.setVariable(name, newValue); } + @Override public boolean isWritable() { return true; } diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/standard/SpelExpression.java b/spring-expression/src/main/java/org/springframework/expression/spel/standard/SpelExpression.java index ac52f98a55f7..dfefb5516db8 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/standard/SpelExpression.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/standard/SpelExpression.java @@ -62,56 +62,67 @@ public SpelExpression(String expression, SpelNodeImpl ast, SpelParserConfigurati // implementing Expression + @Override public Object getValue() throws EvaluationException { ExpressionState expressionState = new ExpressionState(getEvaluationContext(), configuration); return ast.getValue(expressionState); } + @Override public Object getValue(Object rootObject) throws EvaluationException { ExpressionState expressionState = new ExpressionState(getEvaluationContext(), toTypedValue(rootObject), configuration); return ast.getValue(expressionState); } + @Override public T getValue(Class expectedResultType) throws EvaluationException { ExpressionState expressionState = new ExpressionState(getEvaluationContext(), configuration); TypedValue typedResultValue = ast.getTypedValue(expressionState); return ExpressionUtils.convertTypedValue(expressionState.getEvaluationContext(), typedResultValue, expectedResultType); } + @Override public T getValue(Object rootObject, Class expectedResultType) throws EvaluationException { ExpressionState expressionState = new ExpressionState(getEvaluationContext(), toTypedValue(rootObject), configuration); TypedValue typedResultValue = ast.getTypedValue(expressionState); return ExpressionUtils.convertTypedValue(expressionState.getEvaluationContext(), typedResultValue, expectedResultType); } + @Override public Object getValue(EvaluationContext context) throws EvaluationException { Assert.notNull(context, "The EvaluationContext is required"); return ast.getValue(new ExpressionState(context, configuration)); } + @Override public Object getValue(EvaluationContext context, Object rootObject) throws EvaluationException { Assert.notNull(context, "The EvaluationContext is required"); return ast.getValue(new ExpressionState(context, toTypedValue(rootObject), configuration)); } + @Override public T getValue(EvaluationContext context, Class expectedResultType) throws EvaluationException { TypedValue typedResultValue = ast.getTypedValue(new ExpressionState(context, configuration)); return ExpressionUtils.convertTypedValue(context, typedResultValue, expectedResultType); } + @Override public T getValue(EvaluationContext context, Object rootObject, Class expectedResultType) throws EvaluationException { TypedValue typedResultValue = ast.getTypedValue(new ExpressionState(context, toTypedValue(rootObject), configuration)); return ExpressionUtils.convertTypedValue(context, typedResultValue, expectedResultType); } + @Override public Class getValueType() throws EvaluationException { return getValueType(getEvaluationContext()); } + @Override public Class getValueType(Object rootObject) throws EvaluationException { return getValueType(getEvaluationContext(), rootObject); } + @Override public Class getValueType(EvaluationContext context) throws EvaluationException { Assert.notNull(context, "The EvaluationContext is required"); ExpressionState eState = new ExpressionState(context, configuration); @@ -119,60 +130,72 @@ public Class getValueType(EvaluationContext context) throws EvaluationExcepti return typeDescriptor != null ? typeDescriptor.getType() : null; } + @Override public Class getValueType(EvaluationContext context, Object rootObject) throws EvaluationException { ExpressionState eState = new ExpressionState(context, toTypedValue(rootObject), configuration); TypeDescriptor typeDescriptor = ast.getValueInternal(eState).getTypeDescriptor(); return typeDescriptor != null ? typeDescriptor.getType() : null; } + @Override public TypeDescriptor getValueTypeDescriptor() throws EvaluationException { return getValueTypeDescriptor(getEvaluationContext()); } + @Override public TypeDescriptor getValueTypeDescriptor(Object rootObject) throws EvaluationException { ExpressionState eState = new ExpressionState(getEvaluationContext(), toTypedValue(rootObject), configuration); return ast.getValueInternal(eState).getTypeDescriptor(); } + @Override public TypeDescriptor getValueTypeDescriptor(EvaluationContext context) throws EvaluationException { Assert.notNull(context, "The EvaluationContext is required"); ExpressionState eState = new ExpressionState(context, configuration); return ast.getValueInternal(eState).getTypeDescriptor(); } + @Override public TypeDescriptor getValueTypeDescriptor(EvaluationContext context, Object rootObject) throws EvaluationException { Assert.notNull(context, "The EvaluationContext is required"); ExpressionState eState = new ExpressionState(context, toTypedValue(rootObject), configuration); return ast.getValueInternal(eState).getTypeDescriptor(); } + @Override public String getExpressionString() { return expression; } + @Override public boolean isWritable(EvaluationContext context) throws EvaluationException { Assert.notNull(context, "The EvaluationContext is required"); return ast.isWritable(new ExpressionState(context, configuration)); } + @Override public boolean isWritable(Object rootObject) throws EvaluationException { return ast.isWritable(new ExpressionState(getEvaluationContext(), toTypedValue(rootObject), configuration)); } + @Override public boolean isWritable(EvaluationContext context, Object rootObject) throws EvaluationException { Assert.notNull(context, "The EvaluationContext is required"); return ast.isWritable(new ExpressionState(context, toTypedValue(rootObject), configuration)); } + @Override public void setValue(EvaluationContext context, Object value) throws EvaluationException { Assert.notNull(context, "The EvaluationContext is required"); ast.setValue(new ExpressionState(context, configuration), value); } + @Override public void setValue(Object rootObject, Object value) throws EvaluationException { ast.setValue(new ExpressionState(getEvaluationContext(), toTypedValue(rootObject), configuration), value); } + @Override public void setValue(EvaluationContext context, Object rootObject, Object value) throws EvaluationException { Assert.notNull(context, "The EvaluationContext is required"); ast.setValue(new ExpressionState(context, toTypedValue(rootObject), configuration), value); diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/standard/Token.java b/spring-expression/src/main/java/org/springframework/expression/spel/standard/Token.java index aaba8236a7e4..12b71d6b6d84 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/standard/Token.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/standard/Token.java @@ -50,6 +50,7 @@ public TokenKind getKind() { return kind; } + @Override public String toString() { StringBuilder s = new StringBuilder(); s.append("[").append(kind.toString()); diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/standard/TokenKind.java b/spring-expression/src/main/java/org/springframework/expression/spel/standard/TokenKind.java index cd1db13d6d41..d0b42deea236 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/standard/TokenKind.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/standard/TokenKind.java @@ -45,6 +45,7 @@ private TokenKind() { this(""); } + @Override public String toString() { return this.name()+(tokenChars.length!=0?"("+new String(tokenChars)+")":""); } diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectionHelper.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectionHelper.java index 2e6ff92d7371..68e47d8533b2 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectionHelper.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectionHelper.java @@ -487,6 +487,7 @@ public boolean isMatchRequiringConversion() { return (this.kind == ArgsMatchKind.REQUIRES_CONVERSION); } + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("ArgumentMatch: ").append(this.kind); diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorExecutor.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorExecutor.java index 1f17187c6e71..e2601c893b3a 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorExecutor.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorExecutor.java @@ -54,6 +54,7 @@ public ReflectiveConstructorExecutor(Constructor ctor, int[] argsRequiringCon this.argsRequiringConversion = argsRequiringConversion; } + @Override public TypedValue execute(EvaluationContext context, Object... arguments) throws AccessException { try { if (arguments != null) { diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorResolver.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorResolver.java index 4342941af80d..36d48cbf879f 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorResolver.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorResolver.java @@ -49,6 +49,7 @@ public class ReflectiveConstructorResolver implements ConstructorResolver { * registered type converter. * */ + @Override public ConstructorExecutor resolve(EvaluationContext context, String typename, List argumentTypes) throws AccessException { @@ -58,6 +59,7 @@ public ConstructorExecutor resolve(EvaluationContext context, String typename, L Constructor[] ctors = type.getConstructors(); Arrays.sort(ctors, new Comparator() { + @Override public int compare(Constructor c1, Constructor c2) { int c1pl = c1.getParameterTypes().length; int c2pl = c2.getParameterTypes().length; diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveMethodExecutor.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveMethodExecutor.java index fc48314f27a7..1b4da4b2848b 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveMethodExecutor.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveMethodExecutor.java @@ -55,6 +55,7 @@ public ReflectiveMethodExecutor(Method theMethod, int[] argumentsRequiringConver } + @Override public TypedValue execute(EvaluationContext context, Object target, Object... arguments) throws AccessException { try { if (arguments != null) { diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveMethodResolver.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveMethodResolver.java index fbd0b77bcaf1..fe2f5aa1d1c7 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveMethodResolver.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveMethodResolver.java @@ -87,6 +87,7 @@ public ReflectiveMethodResolver(boolean useDistance) { * according to the registered type converter. * */ + @Override public MethodExecutor resolve(EvaluationContext context, Object targetObject, String name, List argumentTypes) throws AccessException { @@ -105,6 +106,7 @@ public MethodExecutor resolve(EvaluationContext context, Object targetObject, St // Sort methods into a sensible order if (methods.size() > 1) { Collections.sort(methods, new Comparator() { + @Override public int compare(Method m1, Method m2) { int m1pl = m1.getParameterTypes().length; int m2pl = m2.getParameterTypes().length; diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyAccessor.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyAccessor.java index 6c5b249114de..ca38218661e0 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyAccessor.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyAccessor.java @@ -59,10 +59,12 @@ public class ReflectivePropertyAccessor implements PropertyAccessor { /** * @return null which means this is a general purpose accessor */ + @Override public Class[] getSpecificTargetClasses() { return null; } + @Override public boolean canRead(EvaluationContext context, Object target, String name) throws AccessException { if (target == null) { return false; @@ -97,6 +99,7 @@ public boolean canRead(EvaluationContext context, Object target, String name) th return false; } + @Override public TypedValue read(EvaluationContext context, Object target, String name) throws AccessException { if (target == null) { throw new AccessException("Cannot read property of null target"); @@ -163,6 +166,7 @@ public TypedValue read(EvaluationContext context, Object target, String name) th throw new AccessException("Neither getter nor field found for property '" + name + "'"); } + @Override public boolean canWrite(EvaluationContext context, Object target, String name) throws AccessException { if (target == null) { return false; @@ -192,6 +196,7 @@ public boolean canWrite(EvaluationContext context, Object target, String name) t return false; } + @Override public void write(EvaluationContext context, Object target, String name, Object newValue) throws AccessException { if (target == null) { throw new AccessException("Cannot write property on null target"); @@ -357,6 +362,7 @@ protected Method findSetterForProperty(String propertyName, Class clazz, bool private Method[] getSortedClassMethods(Class clazz) { Method[] methods = clazz.getMethods(); Arrays.sort(methods, new Comparator() { + @Override public int compare(Method o1, Method o2) { return (o1.isBridge() == o2.isBridge()) ? 0 : (o1.isBridge() ? 1 : -1); } @@ -531,10 +537,12 @@ private static class OptimalPropertyAccessor implements PropertyAccessor { } } + @Override public Class[] getSpecificTargetClasses() { throw new UnsupportedOperationException("Should not be called on an OptimalPropertyAccessor"); } + @Override public boolean canRead(EvaluationContext context, Object target, String name) throws AccessException { if (target == null) { return false; @@ -558,6 +566,7 @@ public boolean canRead(EvaluationContext context, Object target, String name) th } } + @Override public TypedValue read(EvaluationContext context, Object target, String name) throws AccessException { if (this.member instanceof Method) { try { @@ -586,10 +595,12 @@ public TypedValue read(EvaluationContext context, Object target, String name) th throw new AccessException("Neither getter nor field found for property '" + name + "'"); } + @Override public boolean canWrite(EvaluationContext context, Object target, String name) { throw new UnsupportedOperationException("Should not be called on an OptimalPropertyAccessor"); } + @Override public void write(EvaluationContext context, Object target, String name, Object newValue) { throw new UnsupportedOperationException("Should not be called on an OptimalPropertyAccessor"); } diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardEvaluationContext.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardEvaluationContext.java index c4a4425bed51..ce03b4927c9b 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardEvaluationContext.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardEvaluationContext.java @@ -89,6 +89,7 @@ public void setRootObject(Object rootObject) { this.rootObject = (rootObject != null ? new TypedValue(rootObject) : TypedValue.NULL); } + @Override public TypedValue getRootObject() { return this.rootObject; } @@ -103,6 +104,7 @@ public boolean removeConstructorResolver(ConstructorResolver resolver) { return this.constructorResolvers.remove(resolver); } + @Override public List getConstructorResolvers() { ensureConstructorResolversInitialized(); return this.constructorResolvers; @@ -123,6 +125,7 @@ public boolean removeMethodResolver(MethodResolver methodResolver) { return this.methodResolvers.remove(methodResolver); } + @Override public List getMethodResolvers() { ensureMethodResolversInitialized(); return this.methodResolvers; @@ -132,6 +135,7 @@ public void setBeanResolver(BeanResolver beanResolver) { this.beanResolver = beanResolver; } + @Override public BeanResolver getBeanResolver() { return this.beanResolver; } @@ -150,6 +154,7 @@ public boolean removePropertyAccessor(PropertyAccessor accessor) { return this.propertyAccessors.remove(accessor); } + @Override public List getPropertyAccessors() { ensurePropertyAccessorsInitialized(); return this.propertyAccessors; @@ -165,6 +170,7 @@ public void setTypeLocator(TypeLocator typeLocator) { this.typeLocator = typeLocator; } + @Override public TypeLocator getTypeLocator() { if (this.typeLocator == null) { this.typeLocator = new StandardTypeLocator(); @@ -177,6 +183,7 @@ public void setTypeConverter(TypeConverter typeConverter) { this.typeConverter = typeConverter; } + @Override public TypeConverter getTypeConverter() { if (this.typeConverter == null) { this.typeConverter = new StandardTypeConverter(); @@ -189,6 +196,7 @@ public void setTypeComparator(TypeComparator typeComparator) { this.typeComparator = typeComparator; } + @Override public TypeComparator getTypeComparator() { return this.typeComparator; } @@ -198,10 +206,12 @@ public void setOperatorOverloader(OperatorOverloader operatorOverloader) { this.operatorOverloader = operatorOverloader; } + @Override public OperatorOverloader getOperatorOverloader() { return this.operatorOverloader; } + @Override public void setVariable(String name, Object value) { this.variables.put(name, value); } @@ -214,6 +224,7 @@ public void registerFunction(String name, Method method) { this.variables.put(name, method); } + @Override public Object lookupVariable(String name) { return this.variables.get(name); } diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardOperatorOverloader.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardOperatorOverloader.java index be2a36e6738d..c120bf66ed37 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardOperatorOverloader.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardOperatorOverloader.java @@ -26,11 +26,13 @@ */ public class StandardOperatorOverloader implements OperatorOverloader { + @Override public boolean overridesOperation(Operation operation, Object leftOperand, Object rightOperand) throws EvaluationException { return false; } + @Override public Object operate(Operation operation, Object leftOperand, Object rightOperand) throws EvaluationException { throw new EvaluationException("No operation overloaded by default"); } diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardTypeComparator.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardTypeComparator.java index 18f29d148bc9..92aafb28bc54 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardTypeComparator.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardTypeComparator.java @@ -29,6 +29,7 @@ */ public class StandardTypeComparator implements TypeComparator { + @Override @SuppressWarnings("unchecked") public int compare(Object left, Object right) throws SpelEvaluationException { // If one is null, check if the other is @@ -72,6 +73,7 @@ public int compare(Object left, Object right) throws SpelEvaluationException { throw new SpelEvaluationException(SpelMessage.NOT_COMPARABLE, left.getClass(), right.getClass()); } + @Override public boolean canCompare(Object left, Object right) { if (left == null || right == null) { return true; diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardTypeConverter.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardTypeConverter.java index 483dade31e4a..0500dde5d536 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardTypeConverter.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardTypeConverter.java @@ -57,10 +57,12 @@ public StandardTypeConverter(ConversionService conversionService) { } + @Override public boolean canConvert(TypeDescriptor sourceType, TypeDescriptor targetType) { return this.conversionService.canConvert(sourceType, targetType); } + @Override public Object convertValue(Object value, TypeDescriptor sourceType, TypeDescriptor targetType) { try { return this.conversionService.convert(value, sourceType, targetType); diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardTypeLocator.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardTypeLocator.java index 2a210e3fda56..319985fe8a07 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardTypeLocator.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardTypeLocator.java @@ -59,6 +59,7 @@ public StandardTypeLocator(ClassLoader loader) { * @return the class object for the type * @throws EvaluationException if the type cannot be found */ + @Override public Class findType(String typename) throws EvaluationException { String nameToLookup = typename; try { diff --git a/spring-expression/src/test/java/org/springframework/expression/spel/SpelReproTests.java b/spring-expression/src/test/java/org/springframework/expression/spel/SpelReproTests.java index e6e28eedd3c4..ba69e5682868 100644 --- a/spring-expression/src/test/java/org/springframework/expression/spel/SpelReproTests.java +++ b/spring-expression/src/test/java/org/springframework/expression/spel/SpelReproTests.java @@ -165,7 +165,8 @@ public String tryToInvokeWithNull3(Integer value,String... strings) { return sb.toString(); } - public String toString() { + @Override + public String toString() { return "instance"; } } @@ -790,6 +791,7 @@ private D(String s) { a=s; } + @Override public String toString() { return "D("+a+")"; } diff --git a/spring-expression/src/test/java/org/springframework/expression/spel/testresources/Fruit.java b/spring-expression/src/test/java/org/springframework/expression/spel/testresources/Fruit.java index 04cf7fa004ee..68f6c6b15c9b 100644 --- a/spring-expression/src/test/java/org/springframework/expression/spel/testresources/Fruit.java +++ b/spring-expression/src/test/java/org/springframework/expression/spel/testresources/Fruit.java @@ -34,6 +34,7 @@ public int stringscount() { return stringscount; } + @Override public String toString() { return "A" + (colorName != null && colorName.startsWith("o") ? "n " : " ") + colorName + " " + name; } diff --git a/spring-expression/src/test/java/org/springframework/expression/spel/testresources/PlaceOfBirth.java b/spring-expression/src/test/java/org/springframework/expression/spel/testresources/PlaceOfBirth.java index ea5c1d970a4f..c099c2d4e8c0 100644 --- a/spring-expression/src/test/java/org/springframework/expression/spel/testresources/PlaceOfBirth.java +++ b/spring-expression/src/test/java/org/springframework/expression/spel/testresources/PlaceOfBirth.java @@ -30,6 +30,7 @@ public int doubleIt(int i) { return i*2; } + @Override public boolean equals(Object o) { if (!(o instanceof PlaceOfBirth)) { return false; @@ -38,6 +39,7 @@ public boolean equals(Object o) { return (city.equals(oPOB.city)); } + @Override public int hashCode() { return city.hashCode(); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/config/JdbcNamespaceHandler.java b/spring-jdbc/src/main/java/org/springframework/jdbc/config/JdbcNamespaceHandler.java index 70510f971d22..e5567d1cfd02 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/config/JdbcNamespaceHandler.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/config/JdbcNamespaceHandler.java @@ -26,6 +26,7 @@ */ public class JdbcNamespaceHandler extends NamespaceHandlerSupport { + @Override public void init() { registerBeanDefinitionParser("embedded-database", new EmbeddedDatabaseBeanDefinitionParser()); registerBeanDefinitionParser("initialize-database", new InitializeDatabaseBeanDefinitionParser()); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/config/SortedResourcesFactoryBean.java b/spring-jdbc/src/main/java/org/springframework/jdbc/config/SortedResourcesFactoryBean.java index 6569ba893f76..6f20b20a9e2d 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/config/SortedResourcesFactoryBean.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/config/SortedResourcesFactoryBean.java @@ -59,6 +59,7 @@ public SortedResourcesFactoryBean(ResourceLoader resourceLoader, List lo } + @Override public void setResourceLoader(ResourceLoader resourceLoader) { this.resourcePatternResolver = ResourcePatternUtils.getResourcePatternResolver(resourceLoader); } @@ -76,6 +77,7 @@ protected Resource[] createInstance() throws Exception { List resources = new ArrayList( Arrays.asList(this.resourcePatternResolver.getResources(location))); Collections.sort(resources, new Comparator() { + @Override public int compare(Resource r1, Resource r2) { try { return r1.getURL().toString().compareTo(r2.getURL().toString()); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentPreparedStatementSetter.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentPreparedStatementSetter.java index 24bc6870a7e0..75ca1930ef9d 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentPreparedStatementSetter.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentPreparedStatementSetter.java @@ -39,6 +39,7 @@ public ArgumentPreparedStatementSetter(Object[] args) { } + @Override public void setValues(PreparedStatement ps) throws SQLException { if (this.args != null) { for (int i = 0; i < this.args.length; i++) { @@ -66,6 +67,7 @@ protected void doSetValue(PreparedStatement ps, int parameterPosition, Object ar } } + @Override public void cleanupParameters() { StatementCreatorUtils.cleanupParameters(this.args); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentTypePreparedStatementSetter.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentTypePreparedStatementSetter.java index ceb3d78542ec..f52aea49db45 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentTypePreparedStatementSetter.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentTypePreparedStatementSetter.java @@ -52,6 +52,7 @@ public ArgumentTypePreparedStatementSetter(Object[] args, int[] argTypes) { } + @Override public void setValues(PreparedStatement ps) throws SQLException { int parameterPosition = 1; if (this.args != null) { @@ -96,6 +97,7 @@ protected void doSetValue(PreparedStatement ps, int parameterPosition, int argTy StatementCreatorUtils.setParameterValue(ps, parameterPosition, argType, argValue); } + @Override public void cleanupParameters() { StatementCreatorUtils.cleanupParameters(this.args); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/BatchUpdateUtils.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/BatchUpdateUtils.java index b67f4ffdd144..c888b47ef353 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/BatchUpdateUtils.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/BatchUpdateUtils.java @@ -33,11 +33,13 @@ public static int[] executeBatchUpdate(String sql, final List batchVal sql, new BatchPreparedStatementSetter() { + @Override public void setValues(PreparedStatement ps, int i) throws SQLException { Object[] values = batchValues.get(i); setStatementParameters(values, ps, columnTypes); } + @Override public int getBatchSize() { return batchValues.size(); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java index dde806775349..74dbd6ce7fa4 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java @@ -228,6 +228,7 @@ public boolean isPrimitivesDefaultedForNullValue() { *

Utilizes public setters and result set metadata. * @see java.sql.ResultSetMetaData */ + @Override public T mapRow(ResultSet rs, int rowNumber) throws SQLException { Assert.state(this.mappedClass != null, "Mapped class was not specified"); T mappedObject = BeanUtils.instantiate(this.mappedClass); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/CallableStatementCreatorFactory.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/CallableStatementCreatorFactory.java index 279ab5a58719..c4cdb8ab264c 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/CallableStatementCreatorFactory.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/CallableStatementCreatorFactory.java @@ -150,6 +150,7 @@ public CallableStatementCreatorImpl(Map inParams) { this.inParameters = inParams; } + @Override public CallableStatement createCallableStatement(Connection con) throws SQLException { // If we were given a ParameterMapper, we must let the mapper do its thing to create the Map. if (this.inParameterMapper != null) { @@ -218,10 +219,12 @@ public CallableStatement createCallableStatement(Connection con) throws SQLExcep return cs; } + @Override public String getSql() { return callString; } + @Override public void cleanupParameters() { if (this.inParameters != null) { StatementCreatorUtils.cleanupParameters(this.inParameters.values()); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/ColumnMapRowMapper.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ColumnMapRowMapper.java index 103333fe9876..1a0ac8277fdf 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/ColumnMapRowMapper.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ColumnMapRowMapper.java @@ -47,6 +47,7 @@ */ public class ColumnMapRowMapper implements RowMapper> { + @Override public Map mapRow(ResultSet rs, int rowNum) throws SQLException { ResultSetMetaData rsmd = rs.getMetaData(); int columnCount = rsmd.getColumnCount(); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/JdbcTemplate.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/JdbcTemplate.java index 6edb4ca48c98..89092f58eaab 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/JdbcTemplate.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/JdbcTemplate.java @@ -325,6 +325,7 @@ public boolean isResultsMapCaseInsensitive() { // Methods dealing with a plain java.sql.Connection //------------------------------------------------------------------------- + @Override public T execute(ConnectionCallback action) throws DataAccessException { Assert.notNull(action, "Callback object must not be null"); @@ -376,6 +377,7 @@ protected Connection createConnectionProxy(Connection con) { // Methods dealing with static SQL (java.sql.Statement) //------------------------------------------------------------------------- + @Override public T execute(StatementCallback action) throws DataAccessException { Assert.notNull(action, "Callback object must not be null"); @@ -412,15 +414,18 @@ public T execute(StatementCallback action) throws DataAccessException { } } + @Override public void execute(final String sql) throws DataAccessException { if (logger.isDebugEnabled()) { logger.debug("Executing SQL statement [" + sql + "]"); } class ExecuteStatementCallback implements StatementCallback, SqlProvider { + @Override public Object doInStatement(Statement stmt) throws SQLException { stmt.execute(sql); return null; } + @Override public String getSql() { return sql; } @@ -428,6 +433,7 @@ public String getSql() { execute(new ExecuteStatementCallback()); } + @Override public T query(final String sql, final ResultSetExtractor rse) throws DataAccessException { Assert.notNull(sql, "SQL must not be null"); Assert.notNull(rse, "ResultSetExtractor must not be null"); @@ -435,6 +441,7 @@ public T query(final String sql, final ResultSetExtractor rse) throws Dat logger.debug("Executing SQL query [" + sql + "]"); } class QueryStatementCallback implements StatementCallback, SqlProvider { + @Override public T doInStatement(Statement stmt) throws SQLException { ResultSet rs = null; try { @@ -449,6 +456,7 @@ public T doInStatement(Statement stmt) throws SQLException { JdbcUtils.closeResultSet(rs); } } + @Override public String getSql() { return sql; } @@ -456,57 +464,69 @@ public String getSql() { return execute(new QueryStatementCallback()); } + @Override public void query(String sql, RowCallbackHandler rch) throws DataAccessException { query(sql, new RowCallbackHandlerResultSetExtractor(rch)); } + @Override public List query(String sql, RowMapper rowMapper) throws DataAccessException { return query(sql, new RowMapperResultSetExtractor(rowMapper)); } + @Override public Map queryForMap(String sql) throws DataAccessException { return queryForObject(sql, getColumnMapRowMapper()); } + @Override public T queryForObject(String sql, RowMapper rowMapper) throws DataAccessException { List results = query(sql, rowMapper); return DataAccessUtils.requiredSingleResult(results); } + @Override public T queryForObject(String sql, Class requiredType) throws DataAccessException { return queryForObject(sql, getSingleColumnRowMapper(requiredType)); } + @Override @Deprecated public long queryForLong(String sql) throws DataAccessException { Number number = queryForObject(sql, Long.class); return (number != null ? number.longValue() : 0); } + @Override @Deprecated public int queryForInt(String sql) throws DataAccessException { Number number = queryForObject(sql, Integer.class); return (number != null ? number.intValue() : 0); } + @Override public List queryForList(String sql, Class elementType) throws DataAccessException { return query(sql, getSingleColumnRowMapper(elementType)); } + @Override public List> queryForList(String sql) throws DataAccessException { return query(sql, getColumnMapRowMapper()); } + @Override public SqlRowSet queryForRowSet(String sql) throws DataAccessException { return query(sql, new SqlRowSetResultSetExtractor()); } + @Override public int update(final String sql) throws DataAccessException { Assert.notNull(sql, "SQL must not be null"); if (logger.isDebugEnabled()) { logger.debug("Executing SQL update [" + sql + "]"); } class UpdateStatementCallback implements StatementCallback, SqlProvider { + @Override public Integer doInStatement(Statement stmt) throws SQLException { int rows = stmt.executeUpdate(sql); if (logger.isDebugEnabled()) { @@ -514,6 +534,7 @@ public Integer doInStatement(Statement stmt) throws SQLException { } return rows; } + @Override public String getSql() { return sql; } @@ -521,6 +542,7 @@ public String getSql() { return execute(new UpdateStatementCallback()); } + @Override public int[] batchUpdate(final String[] sql) throws DataAccessException { Assert.notEmpty(sql, "SQL array must not be empty"); if (logger.isDebugEnabled()) { @@ -528,6 +550,7 @@ public int[] batchUpdate(final String[] sql) throws DataAccessException { } class BatchUpdateStatementCallback implements StatementCallback, SqlProvider { private String currSql; + @Override public int[] doInStatement(Statement stmt) throws SQLException, DataAccessException { int[] rowsAffected = new int[sql.length]; if (JdbcUtils.supportsBatchUpdates(stmt.getConnection())) { @@ -550,6 +573,7 @@ public int[] doInStatement(Statement stmt) throws SQLException, DataAccessExcept } return rowsAffected; } + @Override public String getSql() { return this.currSql; } @@ -562,6 +586,7 @@ public String getSql() { // Methods dealing with prepared statements //------------------------------------------------------------------------- + @Override public T execute(PreparedStatementCreator psc, PreparedStatementCallback action) throws DataAccessException { @@ -613,6 +638,7 @@ public T execute(PreparedStatementCreator psc, PreparedStatementCallback } } + @Override public T execute(String sql, PreparedStatementCallback action) throws DataAccessException { return execute(new SimplePreparedStatementCreator(sql), action); } @@ -637,6 +663,7 @@ public T query( logger.debug("Executing prepared SQL query"); return execute(psc, new PreparedStatementCallback() { + @Override public T doInPreparedStatement(PreparedStatement ps) throws SQLException { ResultSet rs = null; try { @@ -660,66 +687,82 @@ public T doInPreparedStatement(PreparedStatement ps) throws SQLException { }); } + @Override public T query(PreparedStatementCreator psc, ResultSetExtractor rse) throws DataAccessException { return query(psc, null, rse); } + @Override public T query(String sql, PreparedStatementSetter pss, ResultSetExtractor rse) throws DataAccessException { return query(new SimplePreparedStatementCreator(sql), pss, rse); } + @Override public T query(String sql, Object[] args, int[] argTypes, ResultSetExtractor rse) throws DataAccessException { return query(sql, newArgTypePreparedStatementSetter(args, argTypes), rse); } + @Override public T query(String sql, Object[] args, ResultSetExtractor rse) throws DataAccessException { return query(sql, newArgPreparedStatementSetter(args), rse); } + @Override public T query(String sql, ResultSetExtractor rse, Object... args) throws DataAccessException { return query(sql, newArgPreparedStatementSetter(args), rse); } + @Override public void query(PreparedStatementCreator psc, RowCallbackHandler rch) throws DataAccessException { query(psc, new RowCallbackHandlerResultSetExtractor(rch)); } + @Override public void query(String sql, PreparedStatementSetter pss, RowCallbackHandler rch) throws DataAccessException { query(sql, pss, new RowCallbackHandlerResultSetExtractor(rch)); } + @Override public void query(String sql, Object[] args, int[] argTypes, RowCallbackHandler rch) throws DataAccessException { query(sql, newArgTypePreparedStatementSetter(args, argTypes), rch); } + @Override public void query(String sql, Object[] args, RowCallbackHandler rch) throws DataAccessException { query(sql, newArgPreparedStatementSetter(args), rch); } + @Override public void query(String sql, RowCallbackHandler rch, Object... args) throws DataAccessException { query(sql, newArgPreparedStatementSetter(args), rch); } + @Override public List query(PreparedStatementCreator psc, RowMapper rowMapper) throws DataAccessException { return query(psc, new RowMapperResultSetExtractor(rowMapper)); } + @Override public List query(String sql, PreparedStatementSetter pss, RowMapper rowMapper) throws DataAccessException { return query(sql, pss, new RowMapperResultSetExtractor(rowMapper)); } + @Override public List query(String sql, Object[] args, int[] argTypes, RowMapper rowMapper) throws DataAccessException { return query(sql, args, argTypes, new RowMapperResultSetExtractor(rowMapper)); } + @Override public List query(String sql, Object[] args, RowMapper rowMapper) throws DataAccessException { return query(sql, args, new RowMapperResultSetExtractor(rowMapper)); } + @Override public List query(String sql, RowMapper rowMapper, Object... args) throws DataAccessException { return query(sql, args, new RowMapperResultSetExtractor(rowMapper)); } + @Override public T queryForObject(String sql, Object[] args, int[] argTypes, RowMapper rowMapper) throws DataAccessException { @@ -727,86 +770,104 @@ public T queryForObject(String sql, Object[] args, int[] argTypes, RowMapper return DataAccessUtils.requiredSingleResult(results); } + @Override public T queryForObject(String sql, Object[] args, RowMapper rowMapper) throws DataAccessException { List results = query(sql, args, new RowMapperResultSetExtractor(rowMapper, 1)); return DataAccessUtils.requiredSingleResult(results); } + @Override public T queryForObject(String sql, RowMapper rowMapper, Object... args) throws DataAccessException { List results = query(sql, args, new RowMapperResultSetExtractor(rowMapper, 1)); return DataAccessUtils.requiredSingleResult(results); } + @Override public T queryForObject(String sql, Object[] args, int[] argTypes, Class requiredType) throws DataAccessException { return queryForObject(sql, args, argTypes, getSingleColumnRowMapper(requiredType)); } + @Override public T queryForObject(String sql, Object[] args, Class requiredType) throws DataAccessException { return queryForObject(sql, args, getSingleColumnRowMapper(requiredType)); } + @Override public T queryForObject(String sql, Class requiredType, Object... args) throws DataAccessException { return queryForObject(sql, args, getSingleColumnRowMapper(requiredType)); } + @Override public Map queryForMap(String sql, Object[] args, int[] argTypes) throws DataAccessException { return queryForObject(sql, args, argTypes, getColumnMapRowMapper()); } + @Override public Map queryForMap(String sql, Object... args) throws DataAccessException { return queryForObject(sql, args, getColumnMapRowMapper()); } + @Override @Deprecated public long queryForLong(String sql, Object[] args, int[] argTypes) throws DataAccessException { Number number = queryForObject(sql, args, argTypes, Long.class); return (number != null ? number.longValue() : 0); } + @Override @Deprecated public long queryForLong(String sql, Object... args) throws DataAccessException { Number number = queryForObject(sql, args, Long.class); return (number != null ? number.longValue() : 0); } + @Override @Deprecated public int queryForInt(String sql, Object[] args, int[] argTypes) throws DataAccessException { Number number = queryForObject(sql, args, argTypes, Integer.class); return (number != null ? number.intValue() : 0); } + @Override @Deprecated public int queryForInt(String sql, Object... args) throws DataAccessException { Number number = queryForObject(sql, args, Integer.class); return (number != null ? number.intValue() : 0); } + @Override public List queryForList(String sql, Object[] args, int[] argTypes, Class elementType) throws DataAccessException { return query(sql, args, argTypes, getSingleColumnRowMapper(elementType)); } + @Override public List queryForList(String sql, Object[] args, Class elementType) throws DataAccessException { return query(sql, args, getSingleColumnRowMapper(elementType)); } + @Override public List queryForList(String sql, Class elementType, Object... args) throws DataAccessException { return query(sql, args, getSingleColumnRowMapper(elementType)); } + @Override public List> queryForList(String sql, Object[] args, int[] argTypes) throws DataAccessException { return query(sql, args, argTypes, getColumnMapRowMapper()); } + @Override public List> queryForList(String sql, Object... args) throws DataAccessException { return query(sql, args, getColumnMapRowMapper()); } + @Override public SqlRowSet queryForRowSet(String sql, Object[] args, int[] argTypes) throws DataAccessException { return query(sql, args, argTypes, new SqlRowSetResultSetExtractor()); } + @Override public SqlRowSet queryForRowSet(String sql, Object... args) throws DataAccessException { return query(sql, args, new SqlRowSetResultSetExtractor()); } @@ -816,6 +877,7 @@ protected int update(final PreparedStatementCreator psc, final PreparedStatement logger.debug("Executing prepared SQL update"); return execute(psc, new PreparedStatementCallback() { + @Override public Integer doInPreparedStatement(PreparedStatement ps) throws SQLException { try { if (pss != null) { @@ -836,10 +898,12 @@ public Integer doInPreparedStatement(PreparedStatement ps) throws SQLException { }); } + @Override public int update(PreparedStatementCreator psc) throws DataAccessException { return update(psc, (PreparedStatementSetter) null); } + @Override public int update(final PreparedStatementCreator psc, final KeyHolder generatedKeyHolder) throws DataAccessException { @@ -847,6 +911,7 @@ public int update(final PreparedStatementCreator psc, final KeyHolder generatedK logger.debug("Executing SQL update and returning generated keys"); return execute(psc, new PreparedStatementCallback() { + @Override public Integer doInPreparedStatement(PreparedStatement ps) throws SQLException { int rows = ps.executeUpdate(); List> generatedKeys = generatedKeyHolder.getKeyList(); @@ -870,24 +935,29 @@ public Integer doInPreparedStatement(PreparedStatement ps) throws SQLException { }); } + @Override public int update(String sql, PreparedStatementSetter pss) throws DataAccessException { return update(new SimplePreparedStatementCreator(sql), pss); } + @Override public int update(String sql, Object[] args, int[] argTypes) throws DataAccessException { return update(sql, newArgTypePreparedStatementSetter(args, argTypes)); } + @Override public int update(String sql, Object... args) throws DataAccessException { return update(sql, newArgPreparedStatementSetter(args)); } + @Override public int[] batchUpdate(String sql, final BatchPreparedStatementSetter pss) throws DataAccessException { if (logger.isDebugEnabled()) { logger.debug("Executing SQL batch update [" + sql + "]"); } return execute(sql, new PreparedStatementCallback() { + @Override public int[] doInPreparedStatement(PreparedStatement ps) throws SQLException { try { int batchSize = pss.getBatchSize(); @@ -929,10 +999,12 @@ public int[] doInPreparedStatement(PreparedStatement ps) throws SQLException { }); } + @Override public int[] batchUpdate(String sql, List batchArgs) { return batchUpdate(sql, batchArgs, new int[0]); } + @Override public int[] batchUpdate(String sql, List batchArgs, int[] argTypes) { return BatchUpdateUtils.executeBatchUpdate(sql, batchArgs, argTypes, this); } @@ -943,11 +1015,13 @@ public int[] batchUpdate(String sql, List batchArgs, int[] argTypes) { * * Contribution by Nicolas Fabre */ + @Override public int[][] batchUpdate(String sql, final Collection batchArgs, final int batchSize, final ParameterizedPreparedStatementSetter pss) { if (logger.isDebugEnabled()) { logger.debug("Executing SQL batch update [" + sql + "] with a batch size of " + batchSize); } return execute(sql, new PreparedStatementCallback() { + @Override public int[][] doInPreparedStatement(PreparedStatement ps) throws SQLException { List rowsAffected = new ArrayList(); try { @@ -994,6 +1068,7 @@ public int[][] doInPreparedStatement(PreparedStatement ps) throws SQLException { // Methods dealing with callable statements //------------------------------------------------------------------------- + @Override public T execute(CallableStatementCreator csc, CallableStatementCallback action) throws DataAccessException { @@ -1044,10 +1119,12 @@ public T execute(CallableStatementCreator csc, CallableStatementCallback } } + @Override public T execute(String callString, CallableStatementCallback action) throws DataAccessException { return execute(new SimpleCallableStatementCreator(callString), action); } + @Override public Map call(CallableStatementCreator csc, List declaredParameters) throws DataAccessException { @@ -1068,6 +1145,7 @@ public Map call(CallableStatementCreator csc, List } } return execute(csc, new CallableStatementCallback>() { + @Override public Map doInCallableStatement(CallableStatement cs) throws SQLException { boolean retVal = cs.execute(); int updateCount = cs.getUpdateCount(); @@ -1377,6 +1455,7 @@ public CloseSuppressingInvocationHandler(Connection target) { this.target = target; } + @Override @SuppressWarnings("rawtypes") public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on ConnectionProxy interface coming in... @@ -1442,10 +1521,12 @@ public SimplePreparedStatementCreator(String sql) { this.sql = sql; } + @Override public PreparedStatement createPreparedStatement(Connection con) throws SQLException { return con.prepareStatement(this.sql); } + @Override public String getSql() { return this.sql; } @@ -1464,10 +1545,12 @@ public SimpleCallableStatementCreator(String callString) { this.callString = callString; } + @Override public CallableStatement createCallableStatement(Connection con) throws SQLException { return con.prepareCall(this.callString); } + @Override public String getSql() { return this.callString; } @@ -1487,6 +1570,7 @@ public RowCallbackHandlerResultSetExtractor(RowCallbackHandler rch) { this.rch = rch; } + @Override public Object extractData(ResultSet rs) throws SQLException { while (rs.next()) { this.rch.processRow(rs); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/PreparedStatementCreatorFactory.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/PreparedStatementCreatorFactory.java index 6ba84b72b825..db9c03e7cc85 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/PreparedStatementCreatorFactory.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/PreparedStatementCreatorFactory.java @@ -224,6 +224,7 @@ public PreparedStatementCreatorImpl(String actualSql, List parameters) { } } + @Override public PreparedStatement createPreparedStatement(Connection con) throws SQLException { PreparedStatement ps; if (generatedKeysColumnNames != null || returnGeneratedKeys) { @@ -252,6 +253,7 @@ else if (resultSetType == ResultSet.TYPE_FORWARD_ONLY && !updatableResults) { return ps; } + @Override public void setValues(PreparedStatement ps) throws SQLException { // Determine PreparedStatement to pass to custom types. PreparedStatement psToUse = ps; @@ -300,10 +302,12 @@ public void setValues(PreparedStatement ps) throws SQLException { } } + @Override public String getSql() { return sql; } + @Override public void cleanupParameters() { StatementCreatorUtils.cleanupParameters(this.parameters); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/RowCountCallbackHandler.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/RowCountCallbackHandler.java index 7aeb9ee31fc0..376810bf26c4 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/RowCountCallbackHandler.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/RowCountCallbackHandler.java @@ -69,6 +69,7 @@ public class RowCountCallbackHandler implements RowCallbackHandler { * by overriding the {@code processRow(ResultSet, int)} method. * @see #processRow(java.sql.ResultSet, int) */ + @Override public final void processRow(ResultSet rs) throws SQLException { if (this.rowCount == 0) { ResultSetMetaData rsmd = rs.getMetaData(); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/RowMapperResultSetExtractor.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/RowMapperResultSetExtractor.java index 8ce94536222b..98043f57b82c 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/RowMapperResultSetExtractor.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/RowMapperResultSetExtractor.java @@ -85,6 +85,7 @@ public RowMapperResultSetExtractor(RowMapper rowMapper, int rowsExpected) { } + @Override public List extractData(ResultSet rs) throws SQLException { List results = (this.rowsExpected > 0 ? new ArrayList(this.rowsExpected) : new ArrayList()); int rowNum = 0; diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/SingleColumnRowMapper.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/SingleColumnRowMapper.java index 9583ec752ce8..2597b097431d 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/SingleColumnRowMapper.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/SingleColumnRowMapper.java @@ -78,6 +78,7 @@ public void setRequiredType(Class requiredType) { * @see #getColumnValue(java.sql.ResultSet, int, Class) * @see #convertValueToRequiredType(Object, Class) */ + @Override @SuppressWarnings("unchecked") public T mapRow(ResultSet rs, int rowNum) throws SQLException { // Validate column count. diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/SqlRowSetResultSetExtractor.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/SqlRowSetResultSetExtractor.java index 38efce95b619..a0db5625a4c0 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/SqlRowSetResultSetExtractor.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/SqlRowSetResultSetExtractor.java @@ -58,6 +58,7 @@ public class SqlRowSetResultSetExtractor implements ResultSetExtractor getCallParameterMetaData() { return this.callParameterMetaData; } + @Override public String procedureNameToUse(String procedureName) { if (procedureName == null) { return null; @@ -121,6 +125,7 @@ else if(isStoresLowerCaseIdentifiers()) { } } + @Override public String catalogNameToUse(String catalogName) { if (catalogName == null) { return null; @@ -136,6 +141,7 @@ else if(isStoresLowerCaseIdentifiers()) { } } + @Override public String schemaNameToUse(String schemaName) { if (schemaName == null) { return null; @@ -151,6 +157,7 @@ else if(isStoresLowerCaseIdentifiers()) { } } + @Override public String metaDataCatalogNameToUse(String catalogName) { if (isSupportsCatalogsInProcedureCalls()) { return catalogNameToUse(catalogName); @@ -160,6 +167,7 @@ public String metaDataCatalogNameToUse(String catalogName) { } } + @Override public String metaDataSchemaNameToUse(String schemaName) { if (isSupportsSchemasInProcedureCalls()) { return schemaNameToUse(schemaName); @@ -169,6 +177,7 @@ public String metaDataSchemaNameToUse(String schemaName) { } } + @Override public String parameterNameToUse(String parameterName) { if (parameterName == null) { return null; @@ -184,38 +193,47 @@ else if(isStoresLowerCaseIdentifiers()) { } } + @Override public boolean byPassReturnParameter(String parameterName) { return false; } + @Override public SqlParameter createDefaultOutParameter(String parameterName, CallParameterMetaData meta) { return new SqlOutParameter(parameterName, meta.getSqlType()); } + @Override public SqlParameter createDefaultInOutParameter(String parameterName, CallParameterMetaData meta) { return new SqlInOutParameter(parameterName, meta.getSqlType()); } + @Override public SqlParameter createDefaultInParameter(String parameterName, CallParameterMetaData meta) { return new SqlParameter(parameterName, meta.getSqlType()); } + @Override public String getUserName() { return this.userName; } + @Override public boolean isReturnResultSetSupported() { return true; } + @Override public boolean isRefCursorSupported() { return false; } + @Override public int getRefCursorSqlType() { return Types.OTHER; } + @Override public boolean isProcedureColumnMetaDataUsed() { return this.procedureColumnMetaDataUsed; } @@ -231,6 +249,7 @@ protected void setSupportsCatalogsInProcedureCalls(boolean supportsCatalogsInPro /** * Does the database support the use of catalog name in procedure calls */ + @Override public boolean isSupportsCatalogsInProcedureCalls() { return this.supportsCatalogsInProcedureCalls; } @@ -245,6 +264,7 @@ protected void setSupportsSchemasInProcedureCalls(boolean supportsSchemasInProce /** * Does the database support the use of schema name in procedure calls */ + @Override public boolean isSupportsSchemasInProcedureCalls() { return this.supportsSchemasInProcedureCalls; } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/GenericTableMetaDataProvider.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/GenericTableMetaDataProvider.java index 8eb1e1ea5a16..f7798d2bc84f 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/GenericTableMetaDataProvider.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/GenericTableMetaDataProvider.java @@ -113,22 +113,27 @@ public boolean isStoresLowerCaseIdentifiers() { return this.storesLowerCaseIdentifiers; } + @Override public boolean isTableColumnMetaDataUsed() { return this.tableColumnMetaDataUsed; } + @Override public List getTableParameterMetaData() { return this.insertParameterMetaData; } + @Override public boolean isGetGeneratedKeysSupported() { return this.getGeneratedKeysSupported; } + @Override public boolean isGetGeneratedKeysSimulated(){ return false; } + @Override public String getSimpleQueryForGetGeneratedKey(String tableName, String keyColumnName) { return null; } @@ -147,10 +152,12 @@ public void setGeneratedKeysColumnNameArraySupported(boolean generatedKeysColumn this.generatedKeysColumnNameArraySupported = generatedKeysColumnNameArraySupported; } + @Override public boolean isGeneratedKeysColumnNameArraySupported() { return this.generatedKeysColumnNameArraySupported; } + @Override public void setNativeJdbcExtractor(NativeJdbcExtractor nativeJdbcExtractor) { this.nativeJdbcExtractor = nativeJdbcExtractor; } @@ -160,6 +167,7 @@ protected NativeJdbcExtractor getNativeJdbcExtractor() { } + @Override public void initializeWithMetaData(DatabaseMetaData databaseMetaData) throws SQLException { try { if (databaseMetaData.supportsGetGeneratedKeys()) { @@ -214,6 +222,7 @@ public void initializeWithMetaData(DatabaseMetaData databaseMetaData) throws SQL } + @Override public void initializeWithTableColumnMetaData(DatabaseMetaData databaseMetaData, String catalogName, String schemaName, String tableName) throws SQLException { @@ -221,6 +230,7 @@ public void initializeWithTableColumnMetaData(DatabaseMetaData databaseMetaData, locateTableAndProcessMetaData(databaseMetaData, catalogName, schemaName, tableName); } + @Override public String tableNameToUse(String tableName) { if (tableName == null) { return null; @@ -236,6 +246,7 @@ else if(isStoresLowerCaseIdentifiers()) { } } + @Override public String catalogNameToUse(String catalogName) { if (catalogName == null) { return null; @@ -251,6 +262,7 @@ else if(isStoresLowerCaseIdentifiers()) { } } + @Override public String schemaNameToUse(String schemaName) { if (schemaName == null) { return null; @@ -266,10 +278,12 @@ else if(isStoresLowerCaseIdentifiers()) { } } + @Override public String metaDataCatalogNameToUse(String catalogName) { return catalogNameToUse(catalogName); } + @Override public String metaDataSchemaNameToUse(String schemaName) { if (schemaName == null) { return schemaNameToUse(getDefaultSchema()); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/TableMetaDataProviderFactory.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/TableMetaDataProviderFactory.java index cf56a04999a2..36bc50ed8483 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/TableMetaDataProviderFactory.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/TableMetaDataProviderFactory.java @@ -62,6 +62,7 @@ public static TableMetaDataProvider createMetaDataProvider(DataSource dataSource try { return (TableMetaDataProvider) JdbcUtils.extractDatabaseMetaData(dataSource, new DatabaseMetaDataCallback() { + @Override public Object processMetaData(DatabaseMetaData databaseMetaData) throws SQLException { String databaseProductName = JdbcUtils.commonDatabaseName(databaseMetaData.getDatabaseProductName()); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/AbstractSqlParameterSource.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/AbstractSqlParameterSource.java index f8ff89e47942..79526492fbd6 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/AbstractSqlParameterSource.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/AbstractSqlParameterSource.java @@ -61,6 +61,7 @@ public void registerTypeName(String paramName, String typeName) { * @return the SQL type of the parameter, * or {@code TYPE_UNKNOWN} if not registered */ + @Override public int getSqlType(String paramName) { Assert.notNull(paramName, "Parameter name must not be null"); Integer sqlType = this.sqlTypes.get(paramName); @@ -76,6 +77,7 @@ public int getSqlType(String paramName) { * @return the type name of the parameter, * or {@code null} if not registered */ + @Override public String getTypeName(String paramName) { Assert.notNull(paramName, "Parameter name must not be null"); return this.typeNames.get(paramName); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/BeanPropertySqlParameterSource.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/BeanPropertySqlParameterSource.java index 92e06e04cbdb..364b075b612e 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/BeanPropertySqlParameterSource.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/BeanPropertySqlParameterSource.java @@ -55,10 +55,12 @@ public BeanPropertySqlParameterSource(Object object) { } + @Override public boolean hasValue(String paramName) { return this.beanWrapper.isReadableProperty(paramName); } + @Override public Object getValue(String paramName) throws IllegalArgumentException { try { return this.beanWrapper.getPropertyValue(paramName); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/EmptySqlParameterSource.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/EmptySqlParameterSource.java index a0b525f0dcd8..e90d4085954a 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/EmptySqlParameterSource.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/EmptySqlParameterSource.java @@ -30,18 +30,22 @@ public class EmptySqlParameterSource implements SqlParameterSource { public static final EmptySqlParameterSource INSTANCE = new EmptySqlParameterSource(); + @Override public boolean hasValue(String paramName) { return false; } + @Override public Object getValue(String paramName) throws IllegalArgumentException { throw new IllegalArgumentException("This SqlParameterSource is empty"); } + @Override public int getSqlType(String paramName) { return TYPE_UNKNOWN; } + @Override public String getTypeName(String paramName) { return null; } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/MapSqlParameterSource.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/MapSqlParameterSource.java index fc7b32f4ef11..1212c42c246d 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/MapSqlParameterSource.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/MapSqlParameterSource.java @@ -149,10 +149,12 @@ public Map getValues() { } + @Override public boolean hasValue(String paramName) { return this.values.containsKey(paramName); } + @Override public Object getValue(String paramName) { if (!hasValue(paramName)) { throw new IllegalArgumentException("No value registered for key '" + paramName + "'"); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/NamedParameterBatchUpdateUtils.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/NamedParameterBatchUpdateUtils.java index 4438498a8832..fd711b43278a 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/NamedParameterBatchUpdateUtils.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/NamedParameterBatchUpdateUtils.java @@ -41,12 +41,14 @@ public static int[] executeBatchUpdateWithNamedParameters(final ParsedSql parsed sqlToUse, new BatchPreparedStatementSetter() { + @Override public void setValues(PreparedStatement ps, int i) throws SQLException { Object[] values = NamedParameterUtils.buildValueArray(parsedSql, batchArgs[i], null); int[] columnTypes = NamedParameterUtils.buildSqlTypeArray(parsedSql, batchArgs[i]); setStatementParameters(values, ps, columnTypes); } + @Override public int getBatchSize() { return batchArgs.length; } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/NamedParameterJdbcTemplate.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/NamedParameterJdbcTemplate.java index d8258cefc957..593e231511fc 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/NamedParameterJdbcTemplate.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/NamedParameterJdbcTemplate.java @@ -105,6 +105,7 @@ public NamedParameterJdbcTemplate(JdbcOperations classicJdbcTemplate) { * Expose the classic Spring JdbcTemplate to allow invocation of * less commonly used methods. */ + @Override public JdbcOperations getJdbcOperations() { return this.classicJdbcTemplate; } @@ -125,70 +126,83 @@ public int getCacheLimit() { } + @Override public T execute(String sql, SqlParameterSource paramSource, PreparedStatementCallback action) throws DataAccessException { return getJdbcOperations().execute(getPreparedStatementCreator(sql, paramSource), action); } + @Override public T execute(String sql, Map paramMap, PreparedStatementCallback action) throws DataAccessException { return execute(sql, new MapSqlParameterSource(paramMap), action); } + @Override public T execute(String sql, PreparedStatementCallback action) throws DataAccessException { return execute(sql, EmptySqlParameterSource.INSTANCE, action); } + @Override public T query(String sql, SqlParameterSource paramSource, ResultSetExtractor rse) throws DataAccessException { return getJdbcOperations().query(getPreparedStatementCreator(sql, paramSource), rse); } + @Override public T query(String sql, Map paramMap, ResultSetExtractor rse) throws DataAccessException { return query(sql, new MapSqlParameterSource(paramMap), rse); } + @Override public T query(String sql, ResultSetExtractor rse) throws DataAccessException { return query(sql, EmptySqlParameterSource.INSTANCE, rse); } + @Override public void query(String sql, SqlParameterSource paramSource, RowCallbackHandler rch) throws DataAccessException { getJdbcOperations().query(getPreparedStatementCreator(sql, paramSource), rch); } + @Override public void query(String sql, Map paramMap, RowCallbackHandler rch) throws DataAccessException { query(sql, new MapSqlParameterSource(paramMap), rch); } + @Override public void query(String sql, RowCallbackHandler rch) throws DataAccessException { query(sql, EmptySqlParameterSource.INSTANCE, rch); } + @Override public List query(String sql, SqlParameterSource paramSource, RowMapper rowMapper) throws DataAccessException { return getJdbcOperations().query(getPreparedStatementCreator(sql, paramSource), rowMapper); } + @Override public List query(String sql, Map paramMap, RowMapper rowMapper) throws DataAccessException { return query(sql, new MapSqlParameterSource(paramMap), rowMapper); } + @Override public List query(String sql, RowMapper rowMapper) throws DataAccessException { return query(sql, EmptySqlParameterSource.INSTANCE, rowMapper); } + @Override public T queryForObject(String sql, SqlParameterSource paramSource, RowMapper rowMapper) throws DataAccessException { @@ -196,101 +210,120 @@ public T queryForObject(String sql, SqlParameterSource paramSource, RowMappe return DataAccessUtils.requiredSingleResult(results); } + @Override public T queryForObject(String sql, Map paramMap, RowMapperrowMapper) throws DataAccessException { return queryForObject(sql, new MapSqlParameterSource(paramMap), rowMapper); } + @Override public T queryForObject(String sql, SqlParameterSource paramSource, Class requiredType) throws DataAccessException { return queryForObject(sql, paramSource, new SingleColumnRowMapper(requiredType)); } + @Override public T queryForObject(String sql, Map paramMap, Class requiredType) throws DataAccessException { return queryForObject(sql, paramMap, new SingleColumnRowMapper(requiredType)); } + @Override public Map queryForMap(String sql, SqlParameterSource paramSource) throws DataAccessException { return queryForObject(sql, paramSource, new ColumnMapRowMapper()); } + @Override public Map queryForMap(String sql, Map paramMap) throws DataAccessException { return queryForObject(sql, paramMap, new ColumnMapRowMapper()); } + @Override @Deprecated public long queryForLong(String sql, SqlParameterSource paramSource) throws DataAccessException { Number number = queryForObject(sql, paramSource, Long.class); return (number != null ? number.longValue() : 0); } + @Override @Deprecated public long queryForLong(String sql, Map paramMap) throws DataAccessException { return queryForLong(sql, new MapSqlParameterSource(paramMap)); } + @Override @Deprecated public int queryForInt(String sql, SqlParameterSource paramSource) throws DataAccessException { Number number = queryForObject(sql, paramSource, Integer.class); return (number != null ? number.intValue() : 0); } + @Override @Deprecated public int queryForInt(String sql, Map paramMap) throws DataAccessException { return queryForInt(sql, new MapSqlParameterSource(paramMap)); } + @Override public List queryForList(String sql, SqlParameterSource paramSource, Class elementType) throws DataAccessException { return query(sql, paramSource, new SingleColumnRowMapper(elementType)); } + @Override public List queryForList(String sql, Map paramMap, Class elementType) throws DataAccessException { return queryForList(sql, new MapSqlParameterSource(paramMap), elementType); } + @Override public List> queryForList(String sql, SqlParameterSource paramSource) throws DataAccessException { return query(sql, paramSource, new ColumnMapRowMapper()); } + @Override public List> queryForList(String sql, Map paramMap) throws DataAccessException { return queryForList(sql, new MapSqlParameterSource(paramMap)); } + @Override public SqlRowSet queryForRowSet(String sql, SqlParameterSource paramSource) throws DataAccessException { return getJdbcOperations().query( getPreparedStatementCreator(sql, paramSource), new SqlRowSetResultSetExtractor()); } + @Override public SqlRowSet queryForRowSet(String sql, Map paramMap) throws DataAccessException { return queryForRowSet(sql, new MapSqlParameterSource(paramMap)); } + @Override public int update(String sql, SqlParameterSource paramSource) throws DataAccessException { return getJdbcOperations().update(getPreparedStatementCreator(sql, paramSource)); } + @Override public int update(String sql, Map paramMap) throws DataAccessException { return update(sql, new MapSqlParameterSource(paramMap)); } + @Override public int update(String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder) throws DataAccessException { return update(sql, paramSource, generatedKeyHolder, null); } + @Override public int update( String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder, String[] keyColumnNames) throws DataAccessException { @@ -309,6 +342,7 @@ public int update( return getJdbcOperations().update(pscf.newPreparedStatementCreator(params), generatedKeyHolder); } + @Override public int[] batchUpdate(String sql, Map[] batchValues) { SqlParameterSource[] batchArgs = new SqlParameterSource[batchValues.length]; int i = 0; @@ -319,6 +353,7 @@ public int[] batchUpdate(String sql, Map[] batchValues) { return batchUpdate(sql, batchArgs); } + @Override public int[] batchUpdate(String sql, SqlParameterSource[] batchArgs) { ParsedSql parsedSql = this.getParsedSql(sql); return NamedParameterBatchUpdateUtils.executeBatchUpdateWithNamedParameters(parsedSql, batchArgs, getJdbcOperations()); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/AbstractJdbcInsert.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/AbstractJdbcInsert.java index cb66d803c70f..d011e8ad91b8 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/AbstractJdbcInsert.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/AbstractJdbcInsert.java @@ -435,6 +435,7 @@ private KeyHolder executeInsertAndReturnKeyHolderInternal(final List val if (this.tableMetaDataContext.isGetGeneratedKeysSupported()) { getJdbcTemplate().update( new PreparedStatementCreator() { + @Override public PreparedStatement createPreparedStatement(Connection con) throws SQLException { PreparedStatement ps = prepareStatementForGeneratedKeys(con); setParameterValues(ps, values, getInsertTypes()); @@ -472,6 +473,7 @@ public PreparedStatement createPreparedStatement(Connection con) throws SQLExcep } else { getJdbcTemplate().execute(new ConnectionCallback() { + @Override public Object doInConnection(Connection con) throws SQLException, DataAccessException { // Do the insert PreparedStatement ps = null; @@ -580,10 +582,12 @@ private int[] executeBatchInternal(final List[] batchValues) { } return getJdbcTemplate().batchUpdate(getInsertString(), new BatchPreparedStatementSetter() { + @Override public void setValues(PreparedStatement ps, int i) throws SQLException { List values = batchValues[i]; setParameterValues(ps, values, getInsertTypes()); } + @Override public int getBatchSize() { return batchValues.length; } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/SimpleJdbcCall.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/SimpleJdbcCall.java index 9a37a589a37d..6b695b6509f2 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/SimpleJdbcCall.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/SimpleJdbcCall.java @@ -79,33 +79,39 @@ public SimpleJdbcCall(JdbcTemplate jdbcTemplate) { } + @Override public SimpleJdbcCall withProcedureName(String procedureName) { setProcedureName(procedureName); setFunction(false); return this; } + @Override public SimpleJdbcCall withFunctionName(String functionName) { setProcedureName(functionName); setFunction(true); return this; } + @Override public SimpleJdbcCall withSchemaName(String schemaName) { setSchemaName(schemaName); return this; } + @Override public SimpleJdbcCall withCatalogName(String catalogName) { setCatalogName(catalogName); return this; } + @Override public SimpleJdbcCall withReturnValue() { setReturnValueRequired(true); return this; } + @Override public SimpleJdbcCall declareParameters(SqlParameter... sqlParameters) { for (SqlParameter sqlParameter : sqlParameters) { if (sqlParameter != null) { @@ -115,59 +121,71 @@ public SimpleJdbcCall declareParameters(SqlParameter... sqlParameters) { return this; } + @Override public SimpleJdbcCall useInParameterNames(String... inParameterNames) { setInParameterNames(new HashSet(Arrays.asList(inParameterNames))); return this; } + @Override public SimpleJdbcCall returningResultSet(String parameterName, RowMapper rowMapper) { addDeclaredRowMapper(parameterName, rowMapper); return this; } + @Override public SimpleJdbcCall withoutProcedureColumnMetaDataAccess() { setAccessCallParameterMetaData(false); return this; } + @Override @SuppressWarnings("unchecked") public T executeFunction(Class returnType, Object... args) { return (T) doExecute(args).get(getScalarOutParameterName()); } + @Override @SuppressWarnings("unchecked") public T executeFunction(Class returnType, Map args) { return (T) doExecute(args).get(getScalarOutParameterName()); } + @Override @SuppressWarnings("unchecked") public T executeFunction(Class returnType, SqlParameterSource args) { return (T) doExecute(args).get(getScalarOutParameterName()); } + @Override @SuppressWarnings("unchecked") public T executeObject(Class returnType, Object... args) { return (T) doExecute(args).get(getScalarOutParameterName()); } + @Override @SuppressWarnings("unchecked") public T executeObject(Class returnType, Map args) { return (T) doExecute(args).get(getScalarOutParameterName()); } + @Override @SuppressWarnings("unchecked") public T executeObject(Class returnType, SqlParameterSource args) { return (T) doExecute(args).get(getScalarOutParameterName()); } + @Override public Map execute(Object... args) { return doExecute(args); } + @Override public Map execute(Map args) { return doExecute(args); } + @Override public Map execute(SqlParameterSource parameterSource) { return doExecute(parameterSource); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/SimpleJdbcInsert.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/SimpleJdbcInsert.java index 98b89e9f1f27..99dda1f43dbf 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/SimpleJdbcInsert.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/SimpleJdbcInsert.java @@ -70,74 +70,90 @@ public SimpleJdbcInsert(JdbcTemplate jdbcTemplate) { } + @Override public SimpleJdbcInsert withTableName(String tableName) { setTableName(tableName); return this; } + @Override public SimpleJdbcInsert withSchemaName(String schemaName) { setSchemaName(schemaName); return this; } + @Override public SimpleJdbcInsert withCatalogName(String catalogName) { setCatalogName(catalogName); return this; } + @Override public SimpleJdbcInsert usingColumns(String... columnNames) { setColumnNames(Arrays.asList(columnNames)); return this; } + @Override public SimpleJdbcInsert usingGeneratedKeyColumns(String... columnNames) { setGeneratedKeyNames(columnNames); return this; } + @Override public SimpleJdbcInsertOperations withoutTableColumnMetaDataAccess() { setAccessTableColumnMetaData(false); return this; } + @Override public SimpleJdbcInsertOperations includeSynonymsForTableColumnMetaData() { setOverrideIncludeSynonymsDefault(true); return this; } + @Override public SimpleJdbcInsertOperations useNativeJdbcExtractorForMetaData(NativeJdbcExtractor nativeJdbcExtractor) { setNativeJdbcExtractor(nativeJdbcExtractor); return this; } + @Override public int execute(Map args) { return doExecute(args); } + @Override public int execute(SqlParameterSource parameterSource) { return doExecute(parameterSource); } + @Override public Number executeAndReturnKey(Map args) { return doExecuteAndReturnKey(args); } + @Override public Number executeAndReturnKey(SqlParameterSource parameterSource) { return doExecuteAndReturnKey(parameterSource); } + @Override public KeyHolder executeAndReturnKeyHolder(Map args) { return doExecuteAndReturnKeyHolder(args); } + @Override public KeyHolder executeAndReturnKeyHolder(SqlParameterSource parameterSource) { return doExecuteAndReturnKeyHolder(parameterSource); } + @Override public int[] executeBatch(Map[] batch) { return doExecuteBatch(batch); } + @Override public int[] executeBatch(SqlParameterSource[] batch) { return doExecuteBatch(batch); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/SimpleJdbcTemplate.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/SimpleJdbcTemplate.java index a4ec41fc0645..78e85682bd70 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/SimpleJdbcTemplate.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/SimpleJdbcTemplate.java @@ -91,6 +91,7 @@ public SimpleJdbcTemplate(NamedParameterJdbcOperations namedParameterJdbcTemplat * Expose the classic Spring JdbcTemplate to allow invocation of * less commonly used methods. */ + @Override public JdbcOperations getJdbcOperations() { return this.namedParameterJdbcOperations.getJdbcOperations(); } @@ -99,172 +100,207 @@ public JdbcOperations getJdbcOperations() { * Expose the Spring NamedParameterJdbcTemplate to allow invocation of * less commonly used methods. */ + @Override public NamedParameterJdbcOperations getNamedParameterJdbcOperations() { return this.namedParameterJdbcOperations; } + @Override public int queryForInt(String sql, Map args) throws DataAccessException { return getNamedParameterJdbcOperations().queryForInt(sql, args); } + @Override public int queryForInt(String sql, SqlParameterSource args) throws DataAccessException { return getNamedParameterJdbcOperations().queryForInt(sql, args); } + @Override public int queryForInt(String sql, Object... args) throws DataAccessException { return (ObjectUtils.isEmpty(args) ? getJdbcOperations().queryForInt(sql) : getJdbcOperations().queryForInt(sql, getArguments(args))); } + @Override public long queryForLong(String sql, Map args) throws DataAccessException { return getNamedParameterJdbcOperations().queryForLong(sql, args); } + @Override public long queryForLong(String sql, SqlParameterSource args) throws DataAccessException { return getNamedParameterJdbcOperations().queryForLong(sql, args); } + @Override public long queryForLong(String sql, Object... args) throws DataAccessException { return (ObjectUtils.isEmpty(args) ? getJdbcOperations().queryForLong(sql) : getJdbcOperations().queryForLong(sql, getArguments(args))); } + @Override public T queryForObject(String sql, Class requiredType, Map args) throws DataAccessException { return getNamedParameterJdbcOperations().queryForObject(sql, args, requiredType); } + @Override public T queryForObject(String sql, Class requiredType, SqlParameterSource args) throws DataAccessException { return getNamedParameterJdbcOperations().queryForObject(sql, args, requiredType); } + @Override public T queryForObject(String sql, Class requiredType, Object... args) throws DataAccessException { return (ObjectUtils.isEmpty(args) ? getJdbcOperations().queryForObject(sql, requiredType) : getJdbcOperations().queryForObject(sql, getArguments(args), requiredType)); } + @Override public T queryForObject(String sql, RowMapper rm, Map args) throws DataAccessException { return getNamedParameterJdbcOperations().queryForObject(sql, args, rm); } + @Override @Deprecated public T queryForObject(String sql, ParameterizedRowMapper rm, Map args) throws DataAccessException { return queryForObject(sql, (RowMapper) rm, args); } + @Override public T queryForObject(String sql, RowMapper rm, SqlParameterSource args) throws DataAccessException { return getNamedParameterJdbcOperations().queryForObject(sql, args, rm); } + @Override @Deprecated public T queryForObject(String sql, ParameterizedRowMapper rm, SqlParameterSource args) throws DataAccessException { return queryForObject(sql, (RowMapper) rm, args); } + @Override public T queryForObject(String sql, RowMapper rm, Object... args) throws DataAccessException { return (ObjectUtils.isEmpty(args) ? getJdbcOperations().queryForObject(sql, rm): getJdbcOperations().queryForObject(sql, getArguments(args), rm)); } + @Override @Deprecated public T queryForObject(String sql, ParameterizedRowMapper rm, Object... args) throws DataAccessException { return queryForObject(sql, (RowMapper) rm, args); } + @Override public List query(String sql, RowMapper rm, Map args) throws DataAccessException { return getNamedParameterJdbcOperations().query(sql, args, rm); } + @Override @Deprecated public List query(String sql, ParameterizedRowMapper rm, Map args) throws DataAccessException { return query(sql, (RowMapper) rm, args); } + @Override public List query(String sql, RowMapper rm, SqlParameterSource args) throws DataAccessException { return getNamedParameterJdbcOperations().query(sql, args, rm); } + @Override @Deprecated public List query(String sql, ParameterizedRowMapper rm, SqlParameterSource args) throws DataAccessException { return query(sql, (RowMapper) rm, args); } + @Override public List query(String sql, RowMapper rm, Object... args) throws DataAccessException { return (ObjectUtils.isEmpty(args) ? getJdbcOperations().query(sql, rm) : getJdbcOperations().query(sql, getArguments(args), rm)); } + @Override @Deprecated public List query(String sql, ParameterizedRowMapper rm, Object... args) throws DataAccessException { return query(sql, (RowMapper) rm, args); } + @Override public Map queryForMap(String sql, Map args) throws DataAccessException { return getNamedParameterJdbcOperations().queryForMap(sql, args); } + @Override public Map queryForMap(String sql, SqlParameterSource args) throws DataAccessException { return getNamedParameterJdbcOperations().queryForMap(sql, args); } + @Override public Map queryForMap(String sql, Object... args) throws DataAccessException { return (ObjectUtils.isEmpty(args) ? getJdbcOperations().queryForMap(sql) : getJdbcOperations().queryForMap(sql, getArguments(args))); } + @Override public List> queryForList(String sql, Map args) throws DataAccessException { return getNamedParameterJdbcOperations().queryForList(sql, args); } + @Override public List> queryForList(String sql, SqlParameterSource args) throws DataAccessException { return getNamedParameterJdbcOperations().queryForList(sql, args); } + @Override public List> queryForList(String sql, Object... args) throws DataAccessException { return (ObjectUtils.isEmpty(args) ? getJdbcOperations().queryForList(sql) : getJdbcOperations().queryForList(sql, getArguments(args))); } + @Override public int update(String sql, Map args) throws DataAccessException { return getNamedParameterJdbcOperations().update(sql, args); } + @Override public int update(String sql, SqlParameterSource args) throws DataAccessException { return getNamedParameterJdbcOperations().update(sql, args); } + @Override public int update(String sql, Object ... args) throws DataAccessException { return (ObjectUtils.isEmpty(args) ? getJdbcOperations().update(sql) : getJdbcOperations().update(sql, getArguments(args))); } + @Override public int[] batchUpdate(String sql, List batchArgs) { return batchUpdate(sql, batchArgs, new int[0]); } + @Override public int[] batchUpdate(String sql, List batchArgs, int[] argTypes) { return BatchUpdateUtils.executeBatchUpdate(sql, batchArgs, argTypes, getJdbcOperations()); } + @Override public int[] batchUpdate(String sql, Map[] batchValues) { return getNamedParameterJdbcOperations().batchUpdate(sql, batchValues); } + @Override public int[] batchUpdate(String sql, SqlParameterSource[] batchArgs) { return getNamedParameterJdbcOperations().batchUpdate(sql, batchArgs); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractInterruptibleBatchPreparedStatementSetter.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractInterruptibleBatchPreparedStatementSetter.java index 83d37435ece3..7fb5e6d1c204 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractInterruptibleBatchPreparedStatementSetter.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractInterruptibleBatchPreparedStatementSetter.java @@ -40,6 +40,7 @@ public abstract class AbstractInterruptibleBatchPreparedStatementSetter * This implementation calls {@link #setValuesIfAvailable} * and sets this instance's exhaustion flag accordingly. */ + @Override public final void setValues(PreparedStatement ps, int i) throws SQLException { this.exhausted = !setValuesIfAvailable(ps, i); } @@ -47,6 +48,7 @@ public final void setValues(PreparedStatement ps, int i) throws SQLException { /** * This implementation return this instance's current exhaustion flag. */ + @Override public final boolean isBatchExhausted(int i) { return this.exhausted; } @@ -55,6 +57,7 @@ public final boolean isBatchExhausted(int i) { * This implementation returns {@code Integer.MAX_VALUE}. * Can be overridden in subclasses to lower the maximum batch size. */ + @Override public int getBatchSize() { return Integer.MAX_VALUE; } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractLobCreatingPreparedStatementCallback.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractLobCreatingPreparedStatementCallback.java index c106ad57f413..ee4633d56615 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractLobCreatingPreparedStatementCallback.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractLobCreatingPreparedStatementCallback.java @@ -68,6 +68,7 @@ public AbstractLobCreatingPreparedStatementCallback(LobHandler lobHandler) { } + @Override public final Integer doInPreparedStatement(PreparedStatement ps) throws SQLException, DataAccessException { LobCreator lobCreator = this.lobHandler.getLobCreator(); try { diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractLobStreamingResultSetExtractor.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractLobStreamingResultSetExtractor.java index 83a9aedffc25..4a15e97fd404 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractLobStreamingResultSetExtractor.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractLobStreamingResultSetExtractor.java @@ -64,6 +64,7 @@ public abstract class AbstractLobStreamingResultSetExtractor implements ResultSe * @see #streamData * @see org.springframework.jdbc.LobRetrievalFailureException */ + @Override public final Object extractData(ResultSet rs) throws SQLException, DataAccessException { if (!rs.next()) { handleNoRowFound(); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractSqlTypeValue.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractSqlTypeValue.java index d751933913b3..67f325c8d55d 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractSqlTypeValue.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractSqlTypeValue.java @@ -52,6 +52,7 @@ */ public abstract class AbstractSqlTypeValue implements SqlTypeValue { + @Override public final void setTypeValue(PreparedStatement ps, int paramIndex, int sqlType, String typeName) throws SQLException { diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/JdbcBeanDefinitionReader.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/JdbcBeanDefinitionReader.java index 7039eeacc84d..bdcd1c30736e 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/JdbcBeanDefinitionReader.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/JdbcBeanDefinitionReader.java @@ -107,6 +107,7 @@ public void loadBeanDefinitions(String sql) { Assert.notNull(this.jdbcTemplate, "Not fully configured - specify DataSource or JdbcTemplate"); final Properties props = new Properties(); this.jdbcTemplate.query(sql, new RowCallbackHandler() { + @Override public void processRow(ResultSet rs) throws SQLException { String beanName = rs.getString(1); String property = rs.getString(2); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/SqlLobValue.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/SqlLobValue.java index 2cc5f9f9099e..8e46d42b7505 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/SqlLobValue.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/SqlLobValue.java @@ -168,6 +168,7 @@ public SqlLobValue(Reader reader, int length, LobHandler lobHandler) { /** * Set the specified content via the LobCreator. */ + @Override public void setTypeValue(PreparedStatement ps, int paramIndex, int sqlType, String typeName) throws SQLException { if (sqlType == Types.BLOB) { @@ -208,6 +209,7 @@ else if (this.content instanceof Reader) { /** * Close the LobCreator, if any. */ + @Override public void cleanup() { this.lobCreator.close(); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/AbstractDataSource.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/AbstractDataSource.java index 0674c79b4779..63d9ddff388e 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/AbstractDataSource.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/AbstractDataSource.java @@ -45,6 +45,7 @@ public abstract class AbstractDataSource implements DataSource { /** * Returns 0, indicating the default system timeout is to be used. */ + @Override public int getLoginTimeout() throws SQLException { return 0; } @@ -52,6 +53,7 @@ public int getLoginTimeout() throws SQLException { /** * Setting a login timeout is not supported. */ + @Override public void setLoginTimeout(int timeout) throws SQLException { throw new UnsupportedOperationException("setLoginTimeout"); } @@ -59,6 +61,7 @@ public void setLoginTimeout(int timeout) throws SQLException { /** * LogWriter methods are not supported. */ + @Override public PrintWriter getLogWriter() { throw new UnsupportedOperationException("getLogWriter"); } @@ -66,6 +69,7 @@ public PrintWriter getLogWriter() { /** * LogWriter methods are not supported. */ + @Override public void setLogWriter(PrintWriter pw) throws SQLException { throw new UnsupportedOperationException("setLogWriter"); } @@ -75,6 +79,7 @@ public void setLogWriter(PrintWriter pw) throws SQLException { // Implementation of JDBC 4.0's Wrapper interface //--------------------------------------------------------------------- + @Override @SuppressWarnings("unchecked") public T unwrap(Class iface) throws SQLException { if (iface.isInstance(this)) { @@ -84,6 +89,7 @@ public T unwrap(Class iface) throws SQLException { "] cannot be unwrapped as [" + iface.getName() + "]"); } + @Override public boolean isWrapperFor(Class iface) throws SQLException { return iface.isInstance(this); } @@ -93,6 +99,7 @@ public boolean isWrapperFor(Class iface) throws SQLException { // Implementation of JDBC 4.1's getParentLogger method //--------------------------------------------------------------------- + @Override public Logger getParentLogger() { return Logger.getLogger(Logger.GLOBAL_LOGGER_NAME); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/AbstractDriverBasedDataSource.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/AbstractDriverBasedDataSource.java index c7e7e19918d7..0a2808fe9394 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/AbstractDriverBasedDataSource.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/AbstractDriverBasedDataSource.java @@ -115,6 +115,7 @@ public Properties getConnectionProperties() { * @see #setUsername * @see #setPassword */ + @Override public Connection getConnection() throws SQLException { return getConnectionFromDriver(getUsername(), getPassword()); } @@ -124,6 +125,7 @@ public Connection getConnection() throws SQLException { * using the given username and password. * @see #getConnectionFromDriver(String, String) */ + @Override public Connection getConnection(String username, String password) throws SQLException { return getConnectionFromDriver(username, password); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/DataSourceTransactionManager.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/DataSourceTransactionManager.java index b0e9811e3a3b..0c337bc90ebc 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/DataSourceTransactionManager.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/DataSourceTransactionManager.java @@ -162,6 +162,7 @@ public DataSource getDataSource() { return this.dataSource; } + @Override public void afterPropertiesSet() { if (getDataSource() == null) { throw new IllegalArgumentException("Property 'dataSource' is required"); @@ -169,6 +170,7 @@ public void afterPropertiesSet() { } + @Override public Object getResourceFactory() { return getDataSource(); } @@ -360,6 +362,7 @@ public void setRollbackOnly() { getConnectionHolder().setRollbackOnly(); } + @Override public boolean isRollbackOnly() { return getConnectionHolder().isRollbackOnly(); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/DelegatingDataSource.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/DelegatingDataSource.java index a4c162dde8d0..3adef83c8197 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/DelegatingDataSource.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/DelegatingDataSource.java @@ -73,6 +73,7 @@ public DataSource getTargetDataSource() { return this.targetDataSource; } + @Override public void afterPropertiesSet() { if (getTargetDataSource() == null) { throw new IllegalArgumentException("Property 'targetDataSource' is required"); @@ -80,26 +81,32 @@ public void afterPropertiesSet() { } + @Override public Connection getConnection() throws SQLException { return getTargetDataSource().getConnection(); } + @Override public Connection getConnection(String username, String password) throws SQLException { return getTargetDataSource().getConnection(username, password); } + @Override public PrintWriter getLogWriter() throws SQLException { return getTargetDataSource().getLogWriter(); } + @Override public void setLogWriter(PrintWriter out) throws SQLException { getTargetDataSource().setLogWriter(out); } + @Override public int getLoginTimeout() throws SQLException { return getTargetDataSource().getLoginTimeout(); } + @Override public void setLoginTimeout(int seconds) throws SQLException { getTargetDataSource().setLoginTimeout(seconds); } @@ -109,6 +116,7 @@ public void setLoginTimeout(int seconds) throws SQLException { // Implementation of JDBC 4.0's Wrapper interface //--------------------------------------------------------------------- + @Override @SuppressWarnings("unchecked") public T unwrap(Class iface) throws SQLException { if (iface.isInstance(this)) { @@ -117,6 +125,7 @@ public T unwrap(Class iface) throws SQLException { return getTargetDataSource().unwrap(iface); } + @Override public boolean isWrapperFor(Class iface) throws SQLException { return (iface.isInstance(this) || getTargetDataSource().isWrapperFor(iface)); } @@ -126,6 +135,7 @@ public boolean isWrapperFor(Class iface) throws SQLException { // Implementation of JDBC 4.1's getParentLogger method //--------------------------------------------------------------------- + @Override public Logger getParentLogger() { return Logger.getLogger(Logger.GLOBAL_LOGGER_NAME); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/JdbcTransactionObjectSupport.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/JdbcTransactionObjectSupport.java index e2b7f0a896af..18c6572883bd 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/JdbcTransactionObjectSupport.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/JdbcTransactionObjectSupport.java @@ -87,6 +87,7 @@ public boolean isSavepointAllowed() { return this.savepointAllowed; } + @Override public void flush() { // no-op } @@ -100,6 +101,7 @@ public void flush() { * This implementation creates a JDBC 3.0 Savepoint and returns it. * @see java.sql.Connection#setSavepoint */ + @Override public Object createSavepoint() throws TransactionException { ConnectionHolder conHolder = getConnectionHolderForSavepoint(); try { @@ -124,6 +126,7 @@ public Object createSavepoint() throws TransactionException { * This implementation rolls back to the given JDBC 3.0 Savepoint. * @see java.sql.Connection#rollback(java.sql.Savepoint) */ + @Override public void rollbackToSavepoint(Object savepoint) throws TransactionException { try { getConnectionHolderForSavepoint().getConnection().rollback((Savepoint) savepoint); @@ -137,6 +140,7 @@ public void rollbackToSavepoint(Object savepoint) throws TransactionException { * This implementation releases the given JDBC 3.0 Savepoint. * @see java.sql.Connection#releaseSavepoint */ + @Override public void releaseSavepoint(Object savepoint) throws TransactionException { try { getConnectionHolderForSavepoint().getConnection().releaseSavepoint((Savepoint) savepoint); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/LazyConnectionDataSourceProxy.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/LazyConnectionDataSourceProxy.java index 5495aa68ce7c..4b931564a9ec 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/LazyConnectionDataSourceProxy.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/LazyConnectionDataSourceProxy.java @@ -273,6 +273,7 @@ public LazyConnectionInvocationHandler(String username, String password) { this.password = password; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on ConnectionProxy interface coming in... diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/SimpleConnectionHandle.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/SimpleConnectionHandle.java index 8df56627c2cf..6140a51f1a99 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/SimpleConnectionHandle.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/SimpleConnectionHandle.java @@ -44,6 +44,7 @@ public SimpleConnectionHandle(Connection connection) { /** * Return the specified Connection as-is. */ + @Override public Connection getConnection() { return this.connection; } @@ -52,6 +53,7 @@ public Connection getConnection() { * This implementation is empty, as we're using a standard * Connection handle that does not have to be released. */ + @Override public void releaseConnection(Connection con) { } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/SingleConnectionDataSource.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/SingleConnectionDataSource.java index 83b736bd7308..4ee8e3c57343 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/SingleConnectionDataSource.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/SingleConnectionDataSource.java @@ -191,6 +191,7 @@ public Connection getConnection(String username, String password) throws SQLExce /** * This is a single Connection: Do not close it when returning to the "pool". */ + @Override public boolean shouldClose(Connection con) { synchronized (this.connectionMonitor) { return (con != this.connection && con != this.target); @@ -203,6 +204,7 @@ public boolean shouldClose(Connection con) { *

As this bean implements DisposableBean, a bean factory will * automatically invoke this on destruction of its cached singletons. */ + @Override public void destroy() { synchronized (this.connectionMonitor) { closeConnection(); @@ -292,6 +294,7 @@ public CloseSuppressingInvocationHandler(Connection target) { this.target = target; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on ConnectionProxy interface coming in... diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy.java index 3bde77765d11..81953eb2e34e 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy.java @@ -174,6 +174,7 @@ public TransactionAwareInvocationHandler(DataSource targetDataSource) { this.targetDataSource = targetDataSource; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on ConnectionProxy interface coming in... diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/AbstractEmbeddedDatabaseConfigurer.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/AbstractEmbeddedDatabaseConfigurer.java index 1af0e0e38e9e..2497a6cc0198 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/AbstractEmbeddedDatabaseConfigurer.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/AbstractEmbeddedDatabaseConfigurer.java @@ -35,6 +35,7 @@ abstract class AbstractEmbeddedDatabaseConfigurer implements EmbeddedDatabaseCon protected final Log logger = LogFactory.getLog(getClass()); + @Override public void shutdown(DataSource dataSource, String databaseName) { try { Connection connection = dataSource.getConnection(); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/DerbyEmbeddedDatabaseConfigurer.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/DerbyEmbeddedDatabaseConfigurer.java index 05fad2712496..962b2dff6e2b 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/DerbyEmbeddedDatabaseConfigurer.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/DerbyEmbeddedDatabaseConfigurer.java @@ -69,6 +69,7 @@ public static synchronized DerbyEmbeddedDatabaseConfigurer getInstance() throws private DerbyEmbeddedDatabaseConfigurer() { } + @Override public void configureConnectionProperties(ConnectionProperties properties, String databaseName) { properties.setDriverClass(EmbeddedDriver.class); properties.setUrl(String.format(URL_TEMPLATE, databaseName, "create=true")); @@ -76,6 +77,7 @@ public void configureConnectionProperties(ConnectionProperties properties, Strin properties.setPassword(""); } + @Override public void shutdown(DataSource dataSource, String databaseName) { try { new EmbeddedDriver().connect( diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseFactory.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseFactory.java index 20a5bfdf6174..d515e31778d5 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseFactory.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseFactory.java @@ -172,43 +172,53 @@ public EmbeddedDataSourceProxy(DataSource dataSource) { this.dataSource = dataSource; } + @Override public Connection getConnection() throws SQLException { return this.dataSource.getConnection(); } + @Override public Connection getConnection(String username, String password) throws SQLException { return this.dataSource.getConnection(username, password); } + @Override public PrintWriter getLogWriter() throws SQLException { return this.dataSource.getLogWriter(); } + @Override public void setLogWriter(PrintWriter out) throws SQLException { this.dataSource.setLogWriter(out); } + @Override public int getLoginTimeout() throws SQLException { return this.dataSource.getLoginTimeout(); } + @Override public void setLoginTimeout(int seconds) throws SQLException { this.dataSource.setLoginTimeout(seconds); } + @Override public T unwrap(Class iface) throws SQLException { return this.dataSource.unwrap(iface); } + @Override public boolean isWrapperFor(Class iface) throws SQLException { return this.dataSource.isWrapperFor(iface); } // getParentLogger() is required for JDBC 4.1 compatibility + @Override public Logger getParentLogger() { return Logger.getLogger(Logger.GLOBAL_LOGGER_NAME); } + @Override public void shutdown() { shutdownDatabase(); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseFactoryBean.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseFactoryBean.java index 79e83a9f69ac..f41180ca850f 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseFactoryBean.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseFactoryBean.java @@ -54,10 +54,12 @@ public void setDatabaseCleaner(DatabasePopulator databaseCleaner) { this.databaseCleaner = databaseCleaner; } + @Override public void afterPropertiesSet() { initDatabase(); } + @Override public void destroy() { if (this.databaseCleaner != null) { DatabasePopulatorUtils.execute(this.databaseCleaner, getDataSource()); @@ -66,14 +68,17 @@ public void destroy() { } + @Override public DataSource getObject() { return getDataSource(); } + @Override public Class getObjectType() { return DataSource.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/H2EmbeddedDatabaseConfigurer.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/H2EmbeddedDatabaseConfigurer.java index 9ac8270849c0..197b5fb6beca 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/H2EmbeddedDatabaseConfigurer.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/H2EmbeddedDatabaseConfigurer.java @@ -52,6 +52,7 @@ private H2EmbeddedDatabaseConfigurer(Class driverClass) { this.driverClass = driverClass; } + @Override public void configureConnectionProperties(ConnectionProperties properties, String databaseName) { properties.setDriverClass(this.driverClass); properties.setUrl(String.format("jdbc:h2:mem:%s;DB_CLOSE_DELAY=-1", databaseName)); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/HsqlEmbeddedDatabaseConfigurer.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/HsqlEmbeddedDatabaseConfigurer.java index 084516edf2e1..4e4f9646eae6 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/HsqlEmbeddedDatabaseConfigurer.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/HsqlEmbeddedDatabaseConfigurer.java @@ -52,6 +52,7 @@ private HsqlEmbeddedDatabaseConfigurer(Class driverClass) { this.driverClass = driverClass; } + @Override public void configureConnectionProperties(ConnectionProperties properties, String databaseName) { properties.setDriverClass(this.driverClass); properties.setUrl("jdbc:hsqldb:mem:" + databaseName); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/OutputStreamFactory.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/OutputStreamFactory.java index a1471bd54197..964c3b33232e 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/OutputStreamFactory.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/OutputStreamFactory.java @@ -33,6 +33,7 @@ public class OutputStreamFactory { */ public static OutputStream getNoopOutputStream() { return new OutputStream() { + @Override public void write(int b) throws IOException { // ignore the output } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/SimpleDriverDataSourceFactory.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/SimpleDriverDataSourceFactory.java index 58b176721bdf..309d776534aa 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/SimpleDriverDataSourceFactory.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/SimpleDriverDataSourceFactory.java @@ -33,26 +33,32 @@ final class SimpleDriverDataSourceFactory implements DataSourceFactory { private final SimpleDriverDataSource dataSource = new SimpleDriverDataSource(); + @Override public ConnectionProperties getConnectionProperties() { return new ConnectionProperties() { + @Override public void setDriverClass(Class driverClass) { dataSource.setDriverClass(driverClass); } + @Override public void setUrl(String url) { dataSource.setUrl(url); } + @Override public void setUsername(String username) { dataSource.setUsername(username); } + @Override public void setPassword(String password) { dataSource.setPassword(password); } }; } + @Override public DataSource getDataSource() { return this.dataSource; } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/init/CompositeDatabasePopulator.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/init/CompositeDatabasePopulator.java index eba847e6211d..4920ada8f7f9 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/init/CompositeDatabasePopulator.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/init/CompositeDatabasePopulator.java @@ -50,6 +50,7 @@ public void addPopulators(DatabasePopulator... populators) { } + @Override public void populate(Connection connection) throws SQLException { for (DatabasePopulator populator : this.populators) { populator.populate(connection); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/init/DataSourceInitializer.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/init/DataSourceInitializer.java index 9958aa7d6b58..177e7781873c 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/init/DataSourceInitializer.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/init/DataSourceInitializer.java @@ -78,6 +78,7 @@ public void setEnabled(boolean enabled) { /** * Use the populator to set up data in the data source. */ + @Override public void afterPropertiesSet() { if (this.databasePopulator != null && this.enabled) { DatabasePopulatorUtils.execute(this.databasePopulator, this.dataSource); @@ -87,6 +88,7 @@ public void afterPropertiesSet() { /** * Use the populator to clean up data in the data source. */ + @Override public void destroy() { if (this.databaseCleaner != null && this.enabled) { DatabasePopulatorUtils.execute(this.databaseCleaner, this.dataSource); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/init/ResourceDatabasePopulator.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/init/ResourceDatabasePopulator.java index e2f6eafe368a..1f615026cb4c 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/init/ResourceDatabasePopulator.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/init/ResourceDatabasePopulator.java @@ -129,6 +129,7 @@ public void setIgnoreFailedDrops(boolean ignoreFailedDrops) { } + @Override public void populate(Connection connection) throws SQLException { for (Resource script : this.scripts) { executeSqlScript(connection, applyEncodingIfNecessary(script), this.continueOnError, this.ignoreFailedDrops); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/AbstractRoutingDataSource.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/AbstractRoutingDataSource.java index f42cbb72f85e..610c9e630919 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/AbstractRoutingDataSource.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/AbstractRoutingDataSource.java @@ -107,6 +107,7 @@ public void setDataSourceLookup(DataSourceLookup dataSourceLookup) { } + @Override public void afterPropertiesSet() { if (this.targetDataSources == null) { throw new IllegalArgumentException("Property 'targetDataSources' is required"); @@ -158,10 +159,12 @@ else if (dataSource instanceof String) { } + @Override public Connection getConnection() throws SQLException { return determineTargetDataSource().getConnection(); } + @Override public Connection getConnection(String username, String password) throws SQLException { return determineTargetDataSource().getConnection(username, password); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/BeanFactoryDataSourceLookup.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/BeanFactoryDataSourceLookup.java index 915b3271533f..f4dbbaf5a251 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/BeanFactoryDataSourceLookup.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/BeanFactoryDataSourceLookup.java @@ -62,11 +62,13 @@ public BeanFactoryDataSourceLookup(BeanFactory beanFactory) { } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } + @Override public DataSource getDataSource(String dataSourceName) throws DataSourceLookupFailureException { Assert.state(this.beanFactory != null, "BeanFactory is required"); try { diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/JndiDataSourceLookup.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/JndiDataSourceLookup.java index 2a48efaaf52d..96677aa2e77a 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/JndiDataSourceLookup.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/JndiDataSourceLookup.java @@ -39,6 +39,7 @@ public JndiDataSourceLookup() { setResourceRef(true); } + @Override public DataSource getDataSource(String dataSourceName) throws DataSourceLookupFailureException { try { return lookup(dataSourceName, DataSource.class); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/MapDataSourceLookup.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/MapDataSourceLookup.java index 0a4eb32b4bae..e392303e7981 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/MapDataSourceLookup.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/MapDataSourceLookup.java @@ -98,6 +98,7 @@ public void addDataSource(String dataSourceName, DataSource dataSource) { this.dataSources.put(dataSourceName, dataSource); } + @Override public DataSource getDataSource(String dataSourceName) throws DataSourceLookupFailureException { Assert.notNull(dataSourceName, "DataSource name must not be null"); DataSource dataSource = this.dataSources.get(dataSourceName); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/SingleDataSourceLookup.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/SingleDataSourceLookup.java index 25ec879b67d1..8bd9a4bbcedc 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/SingleDataSourceLookup.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/lookup/SingleDataSourceLookup.java @@ -42,6 +42,7 @@ public SingleDataSourceLookup(DataSource dataSource) { } + @Override public DataSource getDataSource(String dataSourceName) { return this.dataSource; } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/object/BatchSqlUpdate.java b/spring-jdbc/src/main/java/org/springframework/jdbc/object/BatchSqlUpdate.java index 039e5c34f5fd..6372990866dc 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/object/BatchSqlUpdate.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/object/BatchSqlUpdate.java @@ -184,9 +184,11 @@ public int[] flush() { int[] rowsAffected = getJdbcTemplate().batchUpdate( getSql(), new BatchPreparedStatementSetter() { + @Override public int getBatchSize() { return parameterQueue.size(); } + @Override public void setValues(PreparedStatement ps, int index) throws SQLException { Object[] params = parameterQueue.removeFirst(); newPreparedStatementSetter(params).setValues(ps); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/object/GenericSqlQuery.java b/spring-jdbc/src/main/java/org/springframework/jdbc/object/GenericSqlQuery.java index 1cf222e0029a..3b0b7342bfe4 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/object/GenericSqlQuery.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/object/GenericSqlQuery.java @@ -37,11 +37,13 @@ public void setRowMapperClass(Class rowMapperClass) "'org.springframework.jdbc.core.RowMapper'"); } + @Override public void afterPropertiesSet() { super.afterPropertiesSet(); Assert.notNull(rowMapperClass, "The 'rowMapperClass' property is required"); } + @Override protected RowMapper newRowMapper(Object[] parameters, Map context) { try { return (RowMapper) rowMapperClass.newInstance(); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/object/MappingSqlQueryWithParameters.java b/spring-jdbc/src/main/java/org/springframework/jdbc/object/MappingSqlQueryWithParameters.java index 6e8355e639bc..37db4a54ce68 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/object/MappingSqlQueryWithParameters.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/object/MappingSqlQueryWithParameters.java @@ -111,6 +111,7 @@ public RowMapperImpl(Object[] parameters, Map context) { this.context = context; } + @Override public T mapRow(ResultSet rs, int rowNum) throws SQLException { return MappingSqlQueryWithParameters.this.mapRow(rs, rowNum, this.params, this.context); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/object/RdbmsOperation.java b/spring-jdbc/src/main/java/org/springframework/jdbc/object/RdbmsOperation.java index f2d0bb58a049..6067251bacff 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/object/RdbmsOperation.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/object/RdbmsOperation.java @@ -313,6 +313,7 @@ protected List getDeclaredParameters() { /** * Ensures compilation if used in a bean factory. */ + @Override public void afterPropertiesSet() { compile(); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/object/UpdatableSqlQuery.java b/spring-jdbc/src/main/java/org/springframework/jdbc/object/UpdatableSqlQuery.java index 90603687a1c2..3ceb131d7f02 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/object/UpdatableSqlQuery.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/object/UpdatableSqlQuery.java @@ -94,6 +94,7 @@ public RowMapperImpl(Map context) { this.context = context; } + @Override public T mapRow(ResultSet rs, int rowNum) throws SQLException { T result = updateRow(rs, rowNum, this.context); rs.updateRow(); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/AbstractFallbackSQLExceptionTranslator.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/AbstractFallbackSQLExceptionTranslator.java index 7b6d91814ce2..6e4c548eab2a 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/AbstractFallbackSQLExceptionTranslator.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/AbstractFallbackSQLExceptionTranslator.java @@ -60,6 +60,7 @@ public SQLExceptionTranslator getFallbackTranslator() { * Pre-checks the arguments, calls {@link #doTranslate}, and invokes the * {@link #getFallbackTranslator() fallback translator} if necessary. */ + @Override public DataAccessException translate(String task, String sql, SQLException ex) { Assert.notNull(ex, "Cannot translate a null SQLException"); if (task == null) { diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/CustomSQLExceptionTranslatorRegistrar.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/CustomSQLExceptionTranslatorRegistrar.java index 668022162d16..2faaaba18eb3 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/CustomSQLExceptionTranslatorRegistrar.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/CustomSQLExceptionTranslatorRegistrar.java @@ -48,6 +48,7 @@ public void setTranslators(Map translators) { this.translators.putAll(translators); } + @Override public void afterPropertiesSet() { for (String dbName : this.translators.keySet()) { CustomSQLExceptionTranslatorRegistry.getInstance().registerTranslator(dbName, this.translators.get(dbName)); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/DatabaseStartupValidator.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/DatabaseStartupValidator.java index f1858ac576a2..738709acc641 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/DatabaseStartupValidator.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/DatabaseStartupValidator.java @@ -93,6 +93,7 @@ public void setTimeout(int timeout) { * from the specified DataSource, with the specified interval between * checks, until the specified timeout. */ + @Override public void afterPropertiesSet() { if (this.dataSource == null) { throw new IllegalArgumentException("dataSource is required"); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/GeneratedKeyHolder.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/GeneratedKeyHolder.java index 389a3fc2c30c..abdab1e872f3 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/GeneratedKeyHolder.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/GeneratedKeyHolder.java @@ -57,6 +57,7 @@ public GeneratedKeyHolder(List> keyList) { } + @Override public Number getKey() throws InvalidDataAccessApiUsageException, DataRetrievalFailureException { if (this.keyList.size() == 0) { return null; @@ -83,6 +84,7 @@ public Number getKey() throws InvalidDataAccessApiUsageException, DataRetrievalF } } + @Override public Map getKeys() throws InvalidDataAccessApiUsageException { if (this.keyList.size() == 0) { return null; @@ -94,6 +96,7 @@ public Map getKeys() throws InvalidDataAccessApiUsageException { return this.keyList.get(0); } + @Override public List> getKeyList() { return this.keyList; } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/JdbcAccessor.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/JdbcAccessor.java index 89940f0cf2f9..f383a4d83396 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/JdbcAccessor.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/JdbcAccessor.java @@ -129,6 +129,7 @@ public boolean isLazyInit() { * Eagerly initialize the exception translator, if demanded, * creating a default one for the specified DataSource if none set. */ + @Override public void afterPropertiesSet() { if (getDataSource() == null) { throw new IllegalArgumentException("Property 'dataSource' is required"); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/JdbcUtils.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/JdbcUtils.java index 95f2ee364358..8e682e131588 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/JdbcUtils.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/JdbcUtils.java @@ -319,6 +319,7 @@ public static Object extractDatabaseMetaData(DataSource dataSource, final String return extractDatabaseMetaData(dataSource, new DatabaseMetaDataCallback() { + @Override public Object processMetaData(DatabaseMetaData dbmd) throws SQLException, MetaDataAccessException { try { Method method = DatabaseMetaData.class.getMethod(metaDataMethodName, (Class[]) null); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/incrementer/AbstractDataFieldMaxValueIncrementer.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/incrementer/AbstractDataFieldMaxValueIncrementer.java index 3fd0d80f68e3..933c166a627b 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/incrementer/AbstractDataFieldMaxValueIncrementer.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/incrementer/AbstractDataFieldMaxValueIncrementer.java @@ -107,6 +107,7 @@ public int getPaddingLength() { return this.paddingLength; } + @Override public void afterPropertiesSet() { if (this.dataSource == null) { throw new IllegalArgumentException("Property 'dataSource' is required"); @@ -117,14 +118,17 @@ public void afterPropertiesSet() { } + @Override public int nextIntValue() throws DataAccessException { return (int) getNextKey(); } + @Override public long nextLongValue() throws DataAccessException { return getNextKey(); } + @Override public String nextStringValue() throws DataAccessException { String s = Long.toString(getNextKey()); int len = s.length(); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/AbstractLobHandler.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/AbstractLobHandler.java index 4da40d61faaf..2caea6f28701 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/AbstractLobHandler.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/AbstractLobHandler.java @@ -33,22 +33,27 @@ */ public abstract class AbstractLobHandler implements LobHandler { + @Override public byte[] getBlobAsBytes(ResultSet rs, String columnName) throws SQLException { return getBlobAsBytes(rs, rs.findColumn(columnName)); } + @Override public InputStream getBlobAsBinaryStream(ResultSet rs, String columnName) throws SQLException { return getBlobAsBinaryStream(rs, rs.findColumn(columnName)); } + @Override public String getClobAsString(ResultSet rs, String columnName) throws SQLException { return getClobAsString(rs, rs.findColumn(columnName)); } + @Override public InputStream getClobAsAsciiStream(ResultSet rs, String columnName) throws SQLException { return getClobAsAsciiStream(rs, rs.findColumn(columnName)); } + @Override public Reader getClobAsCharacterStream(ResultSet rs, String columnName) throws SQLException { return getClobAsCharacterStream(rs, rs.findColumn(columnName)); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/DefaultLobHandler.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/DefaultLobHandler.java index e570be24f03c..3584557999c1 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/DefaultLobHandler.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/DefaultLobHandler.java @@ -139,6 +139,7 @@ public void setCreateTemporaryLob(boolean createTemporaryLob) { } + @Override public byte[] getBlobAsBytes(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning BLOB as bytes"); if (this.wrapAsLob) { @@ -150,6 +151,7 @@ public byte[] getBlobAsBytes(ResultSet rs, int columnIndex) throws SQLException } } + @Override public InputStream getBlobAsBinaryStream(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning BLOB as binary stream"); if (this.wrapAsLob) { @@ -161,6 +163,7 @@ public InputStream getBlobAsBinaryStream(ResultSet rs, int columnIndex) throws S } } + @Override public String getClobAsString(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning CLOB as string"); if (this.wrapAsLob) { @@ -172,6 +175,7 @@ public String getClobAsString(ResultSet rs, int columnIndex) throws SQLException } } + @Override public InputStream getClobAsAsciiStream(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning CLOB as ASCII stream"); if (this.wrapAsLob) { @@ -183,6 +187,7 @@ public InputStream getClobAsAsciiStream(ResultSet rs, int columnIndex) throws SQ } } + @Override public Reader getClobAsCharacterStream(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning CLOB as character stream"); if (this.wrapAsLob) { @@ -194,6 +199,7 @@ public Reader getClobAsCharacterStream(ResultSet rs, int columnIndex) throws SQL } } + @Override public LobCreator getLobCreator() { return (this.createTemporaryLob ? new TemporaryLobCreator() : new DefaultLobCreator()); } @@ -205,6 +211,7 @@ public LobCreator getLobCreator() { */ protected class DefaultLobCreator implements LobCreator { + @Override public void setBlobAsBytes(PreparedStatement ps, int paramIndex, byte[] content) throws SQLException { @@ -233,6 +240,7 @@ else if (wrapAsLob) { } } + @Override public void setBlobAsBinaryStream( PreparedStatement ps, int paramIndex, InputStream binaryStream, int contentLength) throws SQLException { @@ -262,6 +270,7 @@ else if (wrapAsLob) { } } + @Override public void setClobAsString(PreparedStatement ps, int paramIndex, String content) throws SQLException { @@ -290,6 +299,7 @@ else if (wrapAsLob) { } } + @Override public void setClobAsAsciiStream( PreparedStatement ps, int paramIndex, InputStream asciiStream, int contentLength) throws SQLException { @@ -324,6 +334,7 @@ else if (wrapAsLob) { } } + @Override public void setClobAsCharacterStream( PreparedStatement ps, int paramIndex, Reader characterStream, int contentLength) throws SQLException { @@ -353,6 +364,7 @@ else if (wrapAsLob) { } } + @Override public void close() { // nothing to do when not creating temporary LOBs } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/JtaLobCreatorSynchronization.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/JtaLobCreatorSynchronization.java index 19c85608c326..80ae5d1ea68b 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/JtaLobCreatorSynchronization.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/JtaLobCreatorSynchronization.java @@ -46,6 +46,7 @@ public JtaLobCreatorSynchronization(LobCreator lobCreator) { this.lobCreator = lobCreator; } + @Override public void beforeCompletion() { // Close the LobCreator early if possible, to avoid issues with strict JTA // implementations that issue warnings when doing JDBC operations after @@ -54,6 +55,7 @@ public void beforeCompletion() { this.lobCreator.close(); } + @Override public void afterCompletion(int status) { if (!this.beforeCompletionCalled) { // beforeCompletion not called before (probably because of JTA rollback). diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/LobCreator.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/LobCreator.java index ad0e3719e39e..8bee169c79b7 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/LobCreator.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/LobCreator.java @@ -135,6 +135,7 @@ void setClobAsCharacterStream( * been executed or the affected O/R mapping sessions have been flushed. * Otherwise, the database resources for the temporary BLOBs might stay allocated. */ + @Override void close(); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/OracleLobHandler.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/OracleLobHandler.java index 2b239b3504d8..b5b3b93154a6 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/OracleLobHandler.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/OracleLobHandler.java @@ -227,6 +227,7 @@ protected synchronized void initOracleDriverClasses(Connection con) { } + @Override public byte[] getBlobAsBytes(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning Oracle BLOB as bytes"); Blob blob = rs.getBlob(columnIndex); @@ -236,6 +237,7 @@ public byte[] getBlobAsBytes(ResultSet rs, int columnIndex) throws SQLException return retVal; } + @Override public InputStream getBlobAsBinaryStream(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning Oracle BLOB as binary stream"); Blob blob = rs.getBlob(columnIndex); @@ -245,6 +247,7 @@ public InputStream getBlobAsBinaryStream(ResultSet rs, int columnIndex) throws S return retVal; } + @Override public String getClobAsString(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning Oracle CLOB as string"); Clob clob = rs.getClob(columnIndex); @@ -254,6 +257,7 @@ public String getClobAsString(ResultSet rs, int columnIndex) throws SQLException return retVal; } + @Override public InputStream getClobAsAsciiStream(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning Oracle CLOB as ASCII stream"); Clob clob = rs.getClob(columnIndex); @@ -263,6 +267,7 @@ public InputStream getClobAsAsciiStream(ResultSet rs, int columnIndex) throws SQ return retVal; } + @Override public Reader getClobAsCharacterStream(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning Oracle CLOB as character stream"); Clob clob = rs.getClob(columnIndex); @@ -272,6 +277,7 @@ public Reader getClobAsCharacterStream(ResultSet rs, int columnIndex) throws SQL return retVal; } + @Override public LobCreator getLobCreator() { return new OracleLobCreator(); } @@ -384,11 +390,13 @@ protected class OracleLobCreator implements LobCreator { private final List temporaryLobs = new LinkedList(); + @Override public void setBlobAsBytes(PreparedStatement ps, int paramIndex, final byte[] content) throws SQLException { if (content != null) { Blob blob = (Blob) createLob(ps, false, new LobCallback() { + @Override public void populateLob(Object lob) throws Exception { Method methodToInvoke = lob.getClass().getMethod("getBinaryOutputStream"); OutputStream out = (OutputStream) methodToInvoke.invoke(lob); @@ -406,12 +414,14 @@ public void populateLob(Object lob) throws Exception { } } + @Override public void setBlobAsBinaryStream( PreparedStatement ps, int paramIndex, final InputStream binaryStream, int contentLength) throws SQLException { if (binaryStream != null) { Blob blob = (Blob) createLob(ps, false, new LobCallback() { + @Override public void populateLob(Object lob) throws Exception { Method methodToInvoke = lob.getClass().getMethod("getBinaryOutputStream", (Class[]) null); OutputStream out = (OutputStream) methodToInvoke.invoke(lob, (Object[]) null); @@ -429,11 +439,13 @@ public void populateLob(Object lob) throws Exception { } } + @Override public void setClobAsString(PreparedStatement ps, int paramIndex, final String content) throws SQLException { if (content != null) { Clob clob = (Clob) createLob(ps, true, new LobCallback() { + @Override public void populateLob(Object lob) throws Exception { Method methodToInvoke = lob.getClass().getMethod("getCharacterOutputStream", (Class[]) null); Writer writer = (Writer) methodToInvoke.invoke(lob, (Object[]) null); @@ -451,12 +463,14 @@ public void populateLob(Object lob) throws Exception { } } + @Override public void setClobAsAsciiStream( PreparedStatement ps, int paramIndex, final InputStream asciiStream, int contentLength) throws SQLException { if (asciiStream != null) { Clob clob = (Clob) createLob(ps, true, new LobCallback() { + @Override public void populateLob(Object lob) throws Exception { Method methodToInvoke = lob.getClass().getMethod("getAsciiOutputStream", (Class[]) null); OutputStream out = (OutputStream) methodToInvoke.invoke(lob, (Object[]) null); @@ -474,12 +488,14 @@ public void populateLob(Object lob) throws Exception { } } + @Override public void setClobAsCharacterStream( PreparedStatement ps, int paramIndex, final Reader characterStream, int contentLength) throws SQLException { if (characterStream != null) { Clob clob = (Clob) createLob(ps, true, new LobCallback() { + @Override public void populateLob(Object lob) throws Exception { Method methodToInvoke = lob.getClass().getMethod("getCharacterOutputStream", (Class[]) null); Writer writer = (Writer) methodToInvoke.invoke(lob, (Object[]) null); @@ -570,6 +586,7 @@ protected Object prepareLob(Connection con, Class lobClass) throws Exception { /** * Free all temporary BLOBs and CLOBs created by this creator. */ + @Override public void close() { try { for (Iterator it = this.temporaryLobs.iterator(); it.hasNext();) { diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/PassThroughBlob.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/PassThroughBlob.java index 8d4a653c4bac..d55a0fd5c28b 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/PassThroughBlob.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/PassThroughBlob.java @@ -49,47 +49,58 @@ public PassThroughBlob(InputStream binaryStream, long contentLength) { } + @Override public long length() throws SQLException { return this.contentLength; } + @Override public InputStream getBinaryStream() throws SQLException { return (this.content != null ? new ByteArrayInputStream(this.content) : this.binaryStream); } + @Override public InputStream getBinaryStream(long pos, long length) throws SQLException { throw new UnsupportedOperationException(); } + @Override public OutputStream setBinaryStream(long pos) throws SQLException { throw new UnsupportedOperationException(); } + @Override public byte[] getBytes(long pos, int length) throws SQLException { throw new UnsupportedOperationException(); } + @Override public int setBytes(long pos, byte[] bytes) throws SQLException { throw new UnsupportedOperationException(); } + @Override public int setBytes(long pos, byte[] bytes, int offset, int len) throws SQLException { throw new UnsupportedOperationException(); } + @Override public long position(byte pattern[], long start) throws SQLException { throw new UnsupportedOperationException(); } + @Override public long position(Blob pattern, long start) throws SQLException { throw new UnsupportedOperationException(); } + @Override public void truncate(long len) throws SQLException { throw new UnsupportedOperationException(); } + @Override public void free() throws SQLException { // no-op } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/PassThroughClob.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/PassThroughClob.java index 05c6a96f6f59..82e5d004acf1 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/PassThroughClob.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/PassThroughClob.java @@ -64,10 +64,12 @@ public PassThroughClob(InputStream asciiStream, long contentLength) { } + @Override public long length() throws SQLException { return this.contentLength; } + @Override public Reader getCharacterStream() throws SQLException { try { if (this.content != null) { @@ -85,6 +87,7 @@ else if (this.characterStream != null) { } } + @Override public InputStream getAsciiStream() throws SQLException { try { if (this.content != null) { @@ -107,42 +110,52 @@ else if (this.characterStream != null) { } + @Override public Reader getCharacterStream(long pos, long length) throws SQLException { throw new UnsupportedOperationException(); } + @Override public Writer setCharacterStream(long pos) throws SQLException { throw new UnsupportedOperationException(); } + @Override public OutputStream setAsciiStream(long pos) throws SQLException { throw new UnsupportedOperationException(); } + @Override public String getSubString(long pos, int length) throws SQLException { throw new UnsupportedOperationException(); } + @Override public int setString(long pos, String str) throws SQLException { throw new UnsupportedOperationException(); } + @Override public int setString(long pos, String str, int offset, int len) throws SQLException { throw new UnsupportedOperationException(); } + @Override public long position(String searchstr, long start) throws SQLException { throw new UnsupportedOperationException(); } + @Override public long position(Clob searchstr, long start) throws SQLException { throw new UnsupportedOperationException(); } + @Override public void truncate(long len) throws SQLException { throw new UnsupportedOperationException(); } + @Override public void free() throws SQLException { // no-op } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/TemporaryLobCreator.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/TemporaryLobCreator.java index f8c52660cb7d..fbe1b55744a7 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/TemporaryLobCreator.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/TemporaryLobCreator.java @@ -55,6 +55,7 @@ public class TemporaryLobCreator implements LobCreator { private final Set temporaryClobs = new LinkedHashSet(1); + @Override public void setBlobAsBytes(PreparedStatement ps, int paramIndex, byte[] content) throws SQLException { @@ -70,6 +71,7 @@ public void setBlobAsBytes(PreparedStatement ps, int paramIndex, byte[] content) } } + @Override public void setBlobAsBinaryStream( PreparedStatement ps, int paramIndex, InputStream binaryStream, int contentLength) throws SQLException { @@ -92,6 +94,7 @@ public void setBlobAsBinaryStream( } } + @Override public void setClobAsString(PreparedStatement ps, int paramIndex, String content) throws SQLException { @@ -107,6 +110,7 @@ public void setClobAsString(PreparedStatement ps, int paramIndex, String content } } + @Override public void setClobAsAsciiStream( PreparedStatement ps, int paramIndex, InputStream asciiStream, int contentLength) throws SQLException { @@ -129,6 +133,7 @@ public void setClobAsAsciiStream( } } + @Override public void setClobAsCharacterStream( PreparedStatement ps, int paramIndex, Reader characterStream, int contentLength) throws SQLException { @@ -151,6 +156,7 @@ public void setClobAsCharacterStream( } } + @Override public void close() { try { for (Blob blob : this.temporaryBlobs) { diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/nativejdbc/NativeJdbcExtractorAdapter.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/nativejdbc/NativeJdbcExtractorAdapter.java index 2614338bec99..60d859b71533 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/nativejdbc/NativeJdbcExtractorAdapter.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/nativejdbc/NativeJdbcExtractorAdapter.java @@ -61,6 +61,7 @@ public abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor /** * Return {@code false} by default. */ + @Override public boolean isNativeConnectionNecessaryForNativeStatements() { return false; } @@ -68,6 +69,7 @@ public boolean isNativeConnectionNecessaryForNativeStatements() { /** * Return {@code false} by default. */ + @Override public boolean isNativeConnectionNecessaryForNativePreparedStatements() { return false; } @@ -75,6 +77,7 @@ public boolean isNativeConnectionNecessaryForNativePreparedStatements() { /** * Return {@code false} by default. */ + @Override public boolean isNativeConnectionNecessaryForNativeCallableStatements() { return false; } @@ -91,6 +94,7 @@ public boolean isNativeConnectionNecessaryForNativeCallableStatements() { * @see org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy * @see org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy */ + @Override public Connection getNativeConnection(Connection con) throws SQLException { if (con == null) { return null; @@ -128,6 +132,7 @@ protected Connection doGetNativeConnection(Connection con) throws SQLException { * @see #getNativeConnection * @see Statement#getConnection */ + @Override public Connection getNativeConnectionFromStatement(Statement stmt) throws SQLException { if (stmt == null) { return null; @@ -138,6 +143,7 @@ public Connection getNativeConnectionFromStatement(Statement stmt) throws SQLExc /** * Not able to unwrap: return passed-in Statement. */ + @Override public Statement getNativeStatement(Statement stmt) throws SQLException { return stmt; } @@ -145,6 +151,7 @@ public Statement getNativeStatement(Statement stmt) throws SQLException { /** * Not able to unwrap: return passed-in PreparedStatement. */ + @Override public PreparedStatement getNativePreparedStatement(PreparedStatement ps) throws SQLException { return ps; } @@ -152,6 +159,7 @@ public PreparedStatement getNativePreparedStatement(PreparedStatement ps) throws /** * Not able to unwrap: return passed-in CallableStatement. */ + @Override public CallableStatement getNativeCallableStatement(CallableStatement cs) throws SQLException { return cs; } @@ -159,6 +167,7 @@ public CallableStatement getNativeCallableStatement(CallableStatement cs) throws /** * Not able to unwrap: return passed-in ResultSet. */ + @Override public ResultSet getNativeResultSet(ResultSet rs) throws SQLException { return rs; } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/rowset/ResultSetWrappingSqlRowSet.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/rowset/ResultSetWrappingSqlRowSet.java index 69f10432e4a0..96d66dfbfd70 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/rowset/ResultSetWrappingSqlRowSet.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/rowset/ResultSetWrappingSqlRowSet.java @@ -125,6 +125,7 @@ public final ResultSet getResultSet() { /** * @see java.sql.ResultSetMetaData#getCatalogName(int) */ + @Override public final SqlRowSetMetaData getMetaData() { return this.rowSetMetaData; } @@ -132,6 +133,7 @@ public final SqlRowSetMetaData getMetaData() { /** * @see java.sql.ResultSet#findColumn(String) */ + @Override public int findColumn(String columnLabel) throws InvalidResultSetAccessException { Integer columnIndex = this.columnLabelMap.get(columnLabel); if (columnIndex != null) { @@ -153,6 +155,7 @@ public int findColumn(String columnLabel) throws InvalidResultSetAccessException /** * @see java.sql.ResultSet#getBigDecimal(int) */ + @Override public BigDecimal getBigDecimal(int columnIndex) throws InvalidResultSetAccessException { try { return this.resultSet.getBigDecimal(columnIndex); @@ -165,6 +168,7 @@ public BigDecimal getBigDecimal(int columnIndex) throws InvalidResultSetAccessEx /** * @see java.sql.ResultSet#getBigDecimal(String) */ + @Override public BigDecimal getBigDecimal(String columnLabel) throws InvalidResultSetAccessException { return getBigDecimal(findColumn(columnLabel)); } @@ -172,6 +176,7 @@ public BigDecimal getBigDecimal(String columnLabel) throws InvalidResultSetAcces /** * @see java.sql.ResultSet#getBoolean(int) */ + @Override public boolean getBoolean(int columnIndex) throws InvalidResultSetAccessException { try { return this.resultSet.getBoolean(columnIndex); @@ -184,6 +189,7 @@ public boolean getBoolean(int columnIndex) throws InvalidResultSetAccessExceptio /** * @see java.sql.ResultSet#getBoolean(String) */ + @Override public boolean getBoolean(String columnLabel) throws InvalidResultSetAccessException { return getBoolean(findColumn(columnLabel)); } @@ -191,6 +197,7 @@ public boolean getBoolean(String columnLabel) throws InvalidResultSetAccessExcep /** * @see java.sql.ResultSet#getByte(int) */ + @Override public byte getByte(int columnIndex) throws InvalidResultSetAccessException { try { return this.resultSet.getByte(columnIndex); @@ -203,6 +210,7 @@ public byte getByte(int columnIndex) throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#getByte(String) */ + @Override public byte getByte(String columnLabel) throws InvalidResultSetAccessException { return getByte(findColumn(columnLabel)); } @@ -210,6 +218,7 @@ public byte getByte(String columnLabel) throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#getDate(int, java.util.Calendar) */ + @Override public Date getDate(int columnIndex, Calendar cal) throws InvalidResultSetAccessException { try { return this.resultSet.getDate(columnIndex, cal); @@ -222,6 +231,7 @@ public Date getDate(int columnIndex, Calendar cal) throws InvalidResultSetAccess /** * @see java.sql.ResultSet#getDate(int) */ + @Override public Date getDate(int columnIndex) throws InvalidResultSetAccessException { try { return this.resultSet.getDate(columnIndex); @@ -233,6 +243,7 @@ public Date getDate(int columnIndex) throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#getDate(String, java.util.Calendar) */ + @Override public Date getDate(String columnLabel, Calendar cal) throws InvalidResultSetAccessException { return getDate(findColumn(columnLabel), cal); } @@ -240,6 +251,7 @@ public Date getDate(String columnLabel, Calendar cal) throws InvalidResultSetAcc /** * @see java.sql.ResultSet#getDate(String) */ + @Override public Date getDate(String columnLabel) throws InvalidResultSetAccessException { return getDate(findColumn(columnLabel)); } @@ -247,6 +259,7 @@ public Date getDate(String columnLabel) throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#getDouble(int) */ + @Override public double getDouble(int columnIndex) throws InvalidResultSetAccessException { try { return this.resultSet.getDouble(columnIndex); @@ -259,6 +272,7 @@ public double getDouble(int columnIndex) throws InvalidResultSetAccessException /** * @see java.sql.ResultSet#getDouble(String) */ + @Override public double getDouble(String columnLabel) throws InvalidResultSetAccessException { return getDouble(findColumn(columnLabel)); } @@ -266,6 +280,7 @@ public double getDouble(String columnLabel) throws InvalidResultSetAccessExcepti /** * @see java.sql.ResultSet#getFloat(int) */ + @Override public float getFloat(int columnIndex) throws InvalidResultSetAccessException { try { return this.resultSet.getFloat(columnIndex); @@ -278,12 +293,14 @@ public float getFloat(int columnIndex) throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#getFloat(String) */ + @Override public float getFloat(String columnLabel) throws InvalidResultSetAccessException { return getFloat(findColumn(columnLabel)); } /** * @see java.sql.ResultSet#getInt(int) */ + @Override public int getInt(int columnIndex) throws InvalidResultSetAccessException { try { return this.resultSet.getInt(columnIndex); @@ -296,6 +313,7 @@ public int getInt(int columnIndex) throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#getInt(String) */ + @Override public int getInt(String columnLabel) throws InvalidResultSetAccessException { return getInt(findColumn(columnLabel)); } @@ -303,6 +321,7 @@ public int getInt(String columnLabel) throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#getLong(int) */ + @Override public long getLong(int columnIndex) throws InvalidResultSetAccessException { try { return this.resultSet.getLong(columnIndex); @@ -315,6 +334,7 @@ public long getLong(int columnIndex) throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#getLong(String) */ + @Override public long getLong(String columnLabel) throws InvalidResultSetAccessException { return getLong(findColumn(columnLabel)); } @@ -322,6 +342,7 @@ public long getLong(String columnLabel) throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#getObject(int, java.util.Map) */ + @Override public Object getObject(int i, Map> map) throws InvalidResultSetAccessException { try { return this.resultSet.getObject(i, map); @@ -334,6 +355,7 @@ public Object getObject(int i, Map> map) throws InvalidResultS /** * @see java.sql.ResultSet#getObject(int) */ + @Override public Object getObject(int columnIndex) throws InvalidResultSetAccessException { try { return this.resultSet.getObject(columnIndex); @@ -346,6 +368,7 @@ public Object getObject(int columnIndex) throws InvalidResultSetAccessException /** * @see java.sql.ResultSet#getObject(String, java.util.Map) */ + @Override public Object getObject(String columnLabel, Map> map) throws InvalidResultSetAccessException { return getObject(findColumn(columnLabel), map); } @@ -353,6 +376,7 @@ public Object getObject(String columnLabel, Map> map) throws I /** * @see java.sql.ResultSet#getObject(String) */ + @Override public Object getObject(String columnLabel) throws InvalidResultSetAccessException { return getObject(findColumn(columnLabel)); } @@ -360,6 +384,7 @@ public Object getObject(String columnLabel) throws InvalidResultSetAccessExcepti /** * @see java.sql.ResultSet#getShort(int) */ + @Override public short getShort(int columnIndex) throws InvalidResultSetAccessException { try { return this.resultSet.getShort(columnIndex); @@ -372,6 +397,7 @@ public short getShort(int columnIndex) throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#getShort(String) */ + @Override public short getShort(String columnLabel) throws InvalidResultSetAccessException { return getShort(findColumn(columnLabel)); } @@ -379,6 +405,7 @@ public short getShort(String columnLabel) throws InvalidResultSetAccessException /** * @see java.sql.ResultSet#getString(int) */ + @Override public String getString(int columnIndex) throws InvalidResultSetAccessException { try { return this.resultSet.getString(columnIndex); @@ -391,6 +418,7 @@ public String getString(int columnIndex) throws InvalidResultSetAccessException /** * @see java.sql.ResultSet#getString(String) */ + @Override public String getString(String columnLabel) throws InvalidResultSetAccessException { return getString(findColumn(columnLabel)); } @@ -398,6 +426,7 @@ public String getString(String columnLabel) throws InvalidResultSetAccessExcepti /** * @see java.sql.ResultSet#getTime(int, java.util.Calendar) */ + @Override public Time getTime(int columnIndex, Calendar cal) throws InvalidResultSetAccessException { try { return this.resultSet.getTime(columnIndex, cal); @@ -410,6 +439,7 @@ public Time getTime(int columnIndex, Calendar cal) throws InvalidResultSetAccess /** * @see java.sql.ResultSet#getTime(int) */ + @Override public Time getTime(int columnIndex) throws InvalidResultSetAccessException { try { return this.resultSet.getTime(columnIndex); @@ -422,6 +452,7 @@ public Time getTime(int columnIndex) throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#getTime(String, java.util.Calendar) */ + @Override public Time getTime(String columnLabel, Calendar cal) throws InvalidResultSetAccessException { return getTime(findColumn(columnLabel), cal); } @@ -429,6 +460,7 @@ public Time getTime(String columnLabel, Calendar cal) throws InvalidResultSetAcc /** * @see java.sql.ResultSet#getTime(String) */ + @Override public Time getTime(String columnLabel) throws InvalidResultSetAccessException { return getTime(findColumn(columnLabel)); } @@ -436,6 +468,7 @@ public Time getTime(String columnLabel) throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#getTimestamp(int, java.util.Calendar) */ + @Override public Timestamp getTimestamp(int columnIndex, Calendar cal) throws InvalidResultSetAccessException { try { return this.resultSet.getTimestamp(columnIndex, cal); @@ -448,6 +481,7 @@ public Timestamp getTimestamp(int columnIndex, Calendar cal) throws InvalidResul /** * @see java.sql.ResultSet#getTimestamp(int) */ + @Override public Timestamp getTimestamp(int columnIndex) throws InvalidResultSetAccessException { try { return this.resultSet.getTimestamp(columnIndex); @@ -460,6 +494,7 @@ public Timestamp getTimestamp(int columnIndex) throws InvalidResultSetAccessExce /** * @see java.sql.ResultSet#getTimestamp(String, java.util.Calendar) */ + @Override public Timestamp getTimestamp(String columnLabel, Calendar cal) throws InvalidResultSetAccessException { return getTimestamp(findColumn(columnLabel), cal); } @@ -467,6 +502,7 @@ public Timestamp getTimestamp(String columnLabel, Calendar cal) throws InvalidRe /** * @see java.sql.ResultSet#getTimestamp(String) */ + @Override public Timestamp getTimestamp(String columnLabel) throws InvalidResultSetAccessException { return getTimestamp(findColumn(columnLabel)); } @@ -477,6 +513,7 @@ public Timestamp getTimestamp(String columnLabel) throws InvalidResultSetAccessE /** * @see java.sql.ResultSet#absolute(int) */ + @Override public boolean absolute(int row) throws InvalidResultSetAccessException { try { return this.resultSet.absolute(row); @@ -489,6 +526,7 @@ public boolean absolute(int row) throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#afterLast() */ + @Override public void afterLast() throws InvalidResultSetAccessException { try { this.resultSet.afterLast(); @@ -501,6 +539,7 @@ public void afterLast() throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#beforeFirst() */ + @Override public void beforeFirst() throws InvalidResultSetAccessException { try { this.resultSet.beforeFirst(); @@ -513,6 +552,7 @@ public void beforeFirst() throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#first() */ + @Override public boolean first() throws InvalidResultSetAccessException { try { return this.resultSet.first(); @@ -525,6 +565,7 @@ public boolean first() throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#getRow() */ + @Override public int getRow() throws InvalidResultSetAccessException { try { return this.resultSet.getRow(); @@ -537,6 +578,7 @@ public int getRow() throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#isAfterLast() */ + @Override public boolean isAfterLast() throws InvalidResultSetAccessException { try { return this.resultSet.isAfterLast(); @@ -549,6 +591,7 @@ public boolean isAfterLast() throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#isBeforeFirst() */ + @Override public boolean isBeforeFirst() throws InvalidResultSetAccessException { try { return this.resultSet.isBeforeFirst(); @@ -561,6 +604,7 @@ public boolean isBeforeFirst() throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#isFirst() */ + @Override public boolean isFirst() throws InvalidResultSetAccessException { try { return this.resultSet.isFirst(); @@ -573,6 +617,7 @@ public boolean isFirst() throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#isLast() */ + @Override public boolean isLast() throws InvalidResultSetAccessException { try { return this.resultSet.isLast(); @@ -585,6 +630,7 @@ public boolean isLast() throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#last() */ + @Override public boolean last() throws InvalidResultSetAccessException { try { return this.resultSet.last(); @@ -597,6 +643,7 @@ public boolean last() throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#next() */ + @Override public boolean next() throws InvalidResultSetAccessException { try { return this.resultSet.next(); @@ -609,6 +656,7 @@ public boolean next() throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#previous() */ + @Override public boolean previous() throws InvalidResultSetAccessException { try { return this.resultSet.previous(); @@ -621,6 +669,7 @@ public boolean previous() throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#relative(int) */ + @Override public boolean relative(int rows) throws InvalidResultSetAccessException { try { return this.resultSet.relative(rows); @@ -633,6 +682,7 @@ public boolean relative(int rows) throws InvalidResultSetAccessException { /** * @see java.sql.ResultSet#wasNull() */ + @Override public boolean wasNull() throws InvalidResultSetAccessException { try { return this.resultSet.wasNull(); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/rowset/ResultSetWrappingSqlRowSetMetaData.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/rowset/ResultSetWrappingSqlRowSetMetaData.java index 31d9d9e14e61..cf5f83dac51a 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/rowset/ResultSetWrappingSqlRowSetMetaData.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/rowset/ResultSetWrappingSqlRowSetMetaData.java @@ -55,6 +55,7 @@ public ResultSetWrappingSqlRowSetMetaData(ResultSetMetaData resultSetMetaData) { } + @Override public String getCatalogName(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getCatalogName(column); @@ -64,6 +65,7 @@ public String getCatalogName(int column) throws InvalidResultSetAccessException } } + @Override public String getColumnClassName(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getColumnClassName(column); @@ -73,6 +75,7 @@ public String getColumnClassName(int column) throws InvalidResultSetAccessExcept } } + @Override public int getColumnCount() throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getColumnCount(); @@ -82,6 +85,7 @@ public int getColumnCount() throws InvalidResultSetAccessException { } } + @Override public String[] getColumnNames() throws InvalidResultSetAccessException { if (this.columnNames == null) { this.columnNames = new String[getColumnCount()]; @@ -92,6 +96,7 @@ public String[] getColumnNames() throws InvalidResultSetAccessException { return this.columnNames; } + @Override public int getColumnDisplaySize(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getColumnDisplaySize(column); @@ -101,6 +106,7 @@ public int getColumnDisplaySize(int column) throws InvalidResultSetAccessExcepti } } + @Override public String getColumnLabel(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getColumnLabel(column); @@ -110,6 +116,7 @@ public String getColumnLabel(int column) throws InvalidResultSetAccessException } } + @Override public String getColumnName(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getColumnName(column); @@ -119,6 +126,7 @@ public String getColumnName(int column) throws InvalidResultSetAccessException { } } + @Override public int getColumnType(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getColumnType(column); @@ -128,6 +136,7 @@ public int getColumnType(int column) throws InvalidResultSetAccessException { } } + @Override public String getColumnTypeName(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getColumnTypeName(column); @@ -137,6 +146,7 @@ public String getColumnTypeName(int column) throws InvalidResultSetAccessExcepti } } + @Override public int getPrecision(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getPrecision(column); @@ -146,6 +156,7 @@ public int getPrecision(int column) throws InvalidResultSetAccessException { } } + @Override public int getScale(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getScale(column); @@ -155,6 +166,7 @@ public int getScale(int column) throws InvalidResultSetAccessException { } } + @Override public String getSchemaName(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getSchemaName(column); @@ -164,6 +176,7 @@ public String getSchemaName(int column) throws InvalidResultSetAccessException { } } + @Override public String getTableName(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getTableName(column); @@ -173,6 +186,7 @@ public String getTableName(int column) throws InvalidResultSetAccessException { } } + @Override public boolean isCaseSensitive(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.isCaseSensitive(column); @@ -182,6 +196,7 @@ public boolean isCaseSensitive(int column) throws InvalidResultSetAccessExceptio } } + @Override public boolean isCurrency(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.isCurrency(column); @@ -191,6 +206,7 @@ public boolean isCurrency(int column) throws InvalidResultSetAccessException { } } + @Override public boolean isSigned(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.isSigned(column); diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/xml/Jdbc4SqlXmlHandler.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/xml/Jdbc4SqlXmlHandler.java index 13f036337763..ed9d66190c1f 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/xml/Jdbc4SqlXmlHandler.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/xml/Jdbc4SqlXmlHandler.java @@ -50,35 +50,43 @@ public class Jdbc4SqlXmlHandler implements SqlXmlHandler { // Convenience methods for accessing XML content //------------------------------------------------------------------------- + @Override public String getXmlAsString(ResultSet rs, String columnName) throws SQLException { return rs.getSQLXML(columnName).getString(); } + @Override public String getXmlAsString(ResultSet rs, int columnIndex) throws SQLException { return rs.getSQLXML(columnIndex).getString(); } + @Override public InputStream getXmlAsBinaryStream(ResultSet rs, String columnName) throws SQLException { return rs.getSQLXML(columnName).getBinaryStream(); } + @Override public InputStream getXmlAsBinaryStream(ResultSet rs, int columnIndex) throws SQLException { return rs.getSQLXML(columnIndex).getBinaryStream(); } + @Override public Reader getXmlAsCharacterStream(ResultSet rs, String columnName) throws SQLException { return rs.getSQLXML(columnName).getCharacterStream(); } + @Override public Reader getXmlAsCharacterStream(ResultSet rs, int columnIndex) throws SQLException { return rs.getSQLXML(columnIndex).getCharacterStream(); } + @Override @SuppressWarnings("unchecked") public Source getXmlAsSource(ResultSet rs, String columnName, Class sourceClass) throws SQLException { return rs.getSQLXML(columnName).getSource(sourceClass != null ? sourceClass : DOMSource.class); } + @Override @SuppressWarnings("unchecked") public Source getXmlAsSource(ResultSet rs, int columnIndex, Class sourceClass) throws SQLException { return rs.getSQLXML(columnIndex).getSource(sourceClass != null ? sourceClass : DOMSource.class); @@ -89,6 +97,7 @@ public Source getXmlAsSource(ResultSet rs, int columnIndex, Class sourceClass) t // Convenience methods for building XML content //------------------------------------------------------------------------- + @Override public SqlXmlValue newSqlXmlValue(final String value) { return new AbstractJdbc4SqlXmlValue() { @Override @@ -98,6 +107,7 @@ protected void provideXml(SQLXML xmlObject) throws SQLException, IOException { }; } + @Override public SqlXmlValue newSqlXmlValue(final XmlBinaryStreamProvider provider) { return new AbstractJdbc4SqlXmlValue() { @Override @@ -107,6 +117,7 @@ protected void provideXml(SQLXML xmlObject) throws SQLException, IOException { }; } + @Override public SqlXmlValue newSqlXmlValue(final XmlCharacterStreamProvider provider) { return new AbstractJdbc4SqlXmlValue() { @Override @@ -116,6 +127,7 @@ protected void provideXml(SQLXML xmlObject) throws SQLException, IOException { }; } + @Override public SqlXmlValue newSqlXmlValue(final Class resultClass, final XmlResultProvider provider) { return new AbstractJdbc4SqlXmlValue() { @Override @@ -126,6 +138,7 @@ protected void provideXml(SQLXML xmlObject) throws SQLException, IOException { }; } + @Override public SqlXmlValue newSqlXmlValue(final Document document) { return new AbstractJdbc4SqlXmlValue() { @Override @@ -143,6 +156,7 @@ private static abstract class AbstractJdbc4SqlXmlValue implements SqlXmlValue { private SQLXML xmlObject; + @Override public void setValue(PreparedStatement ps, int paramIndex) throws SQLException { this.xmlObject = ps.getConnection().createSQLXML(); try { @@ -154,6 +168,7 @@ public void setValue(PreparedStatement ps, int paramIndex) throws SQLException { ps.setSQLXML(paramIndex, this.xmlObject); } + @Override public void cleanup() { try { this.xmlObject.free(); diff --git a/spring-jdbc/src/test/java/org/springframework/jdbc/Customer.java b/spring-jdbc/src/test/java/org/springframework/jdbc/Customer.java index 7c804be1d82b..46b646b099da 100644 --- a/spring-jdbc/src/test/java/org/springframework/jdbc/Customer.java +++ b/spring-jdbc/src/test/java/org/springframework/jdbc/Customer.java @@ -43,6 +43,7 @@ public void setForename(String forename) { } + @Override public String toString() { return "Customer: id=" + id + "; forename=" + forename; } diff --git a/spring-jdbc/src/test/java/org/springframework/jdbc/core/RowMapperTests.java b/spring-jdbc/src/test/java/org/springframework/jdbc/core/RowMapperTests.java index a44686f3a617..c31d0809e2af 100644 --- a/spring-jdbc/src/test/java/org/springframework/jdbc/core/RowMapperTests.java +++ b/spring-jdbc/src/test/java/org/springframework/jdbc/core/RowMapperTests.java @@ -50,6 +50,7 @@ public class RowMapperTests extends TestCase { private List result; + @Override @Before public void setUp() throws SQLException { connection = mock(Connection.class); diff --git a/spring-jms/src/main/java/org/springframework/jms/JmsException.java b/spring-jms/src/main/java/org/springframework/jms/JmsException.java index 9da83d02ece8..b2d3a6f44268 100644 --- a/spring-jms/src/main/java/org/springframework/jms/JmsException.java +++ b/spring-jms/src/main/java/org/springframework/jms/JmsException.java @@ -80,6 +80,7 @@ public String getErrorCode() { * if there is one. * @see javax.jms.JMSException#getLinkedException() */ + @Override public String getMessage() { String message = super.getMessage(); Throwable cause = getCause(); diff --git a/spring-jms/src/main/java/org/springframework/jms/config/AbstractListenerContainerParser.java b/spring-jms/src/main/java/org/springframework/jms/config/AbstractListenerContainerParser.java index fe937c97e8c6..c60f7b6cc04a 100644 --- a/spring-jms/src/main/java/org/springframework/jms/config/AbstractListenerContainerParser.java +++ b/spring-jms/src/main/java/org/springframework/jms/config/AbstractListenerContainerParser.java @@ -89,6 +89,7 @@ abstract class AbstractListenerContainerParser implements BeanDefinitionParser { protected static final String PREFETCH_ATTRIBUTE = "prefetch"; + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { CompositeComponentDefinition compositeDef = new CompositeComponentDefinition(element.getTagName(), parserContext.extractSource(element)); diff --git a/spring-jms/src/main/java/org/springframework/jms/config/JcaListenerContainerParser.java b/spring-jms/src/main/java/org/springframework/jms/config/JcaListenerContainerParser.java index 4c3474821101..327c15b3e9c6 100644 --- a/spring-jms/src/main/java/org/springframework/jms/config/JcaListenerContainerParser.java +++ b/spring-jms/src/main/java/org/springframework/jms/config/JcaListenerContainerParser.java @@ -37,6 +37,7 @@ class JcaListenerContainerParser extends AbstractListenerContainerParser { private static final String ACTIVATION_SPEC_FACTORY_ATTRIBUTE = "activation-spec-factory"; + @Override protected BeanDefinition parseContainer(Element listenerEle, Element containerEle, ParserContext parserContext) { RootBeanDefinition containerDef = new RootBeanDefinition(); containerDef.setSource(parserContext.extractSource(containerEle)); diff --git a/spring-jms/src/main/java/org/springframework/jms/config/JmsListenerContainerParser.java b/spring-jms/src/main/java/org/springframework/jms/config/JmsListenerContainerParser.java index 77daef56b55f..db8e4859ff89 100644 --- a/spring-jms/src/main/java/org/springframework/jms/config/JmsListenerContainerParser.java +++ b/spring-jms/src/main/java/org/springframework/jms/config/JmsListenerContainerParser.java @@ -50,6 +50,7 @@ class JmsListenerContainerParser extends AbstractListenerContainerParser { private static final String RECEIVE_TIMEOUT_ATTRIBUTE = "receive-timeout"; + @Override protected BeanDefinition parseContainer(Element listenerEle, Element containerEle, ParserContext parserContext) { RootBeanDefinition containerDef = new RootBeanDefinition(); containerDef.setSource(parserContext.extractSource(containerEle)); diff --git a/spring-jms/src/main/java/org/springframework/jms/config/JmsNamespaceHandler.java b/spring-jms/src/main/java/org/springframework/jms/config/JmsNamespaceHandler.java index d4642a6bda15..7b78bd093bac 100644 --- a/spring-jms/src/main/java/org/springframework/jms/config/JmsNamespaceHandler.java +++ b/spring-jms/src/main/java/org/springframework/jms/config/JmsNamespaceHandler.java @@ -28,6 +28,7 @@ */ public class JmsNamespaceHandler extends NamespaceHandlerSupport { + @Override public void init() { registerBeanDefinitionParser("listener-container", new JmsListenerContainerParser()); registerBeanDefinitionParser("jca-listener-container", new JcaListenerContainerParser()); diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageConsumer.java b/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageConsumer.java index ef2a3350f335..c0b7e5589e19 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageConsumer.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageConsumer.java @@ -42,47 +42,58 @@ public CachedMessageConsumer(MessageConsumer target) { } + @Override public String getMessageSelector() throws JMSException { return this.target.getMessageSelector(); } + @Override public Queue getQueue() throws JMSException { return (this.target instanceof QueueReceiver ? ((QueueReceiver) this.target).getQueue() : null); } + @Override public Topic getTopic() throws JMSException { return (this.target instanceof TopicSubscriber ? ((TopicSubscriber) this.target).getTopic() : null); } + @Override public boolean getNoLocal() throws JMSException { return (this.target instanceof TopicSubscriber && ((TopicSubscriber) this.target).getNoLocal()); } + @Override public MessageListener getMessageListener() throws JMSException { return this.target.getMessageListener(); } + @Override public void setMessageListener(MessageListener messageListener) throws JMSException { this.target.setMessageListener(messageListener); } + @Override public Message receive() throws JMSException { return this.target.receive(); } + @Override public Message receive(long timeout) throws JMSException { return this.target.receive(timeout); } + @Override public Message receiveNoWait() throws JMSException { return this.target.receiveNoWait(); } + @Override public void close() throws JMSException { // It's a cached MessageConsumer... } + @Override public String toString() { return "Cached JMS MessageConsumer: " + this.target; } diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageProducer.java b/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageProducer.java index fd2a9fb0129d..ffc246037cd5 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageProducer.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageProducer.java @@ -92,6 +92,7 @@ public CachedMessageProducer(MessageProducer target) throws JMSException { } + @Override public void setDisableMessageID(boolean disableMessageID) throws JMSException { if (this.originalDisableMessageID == null) { this.originalDisableMessageID = this.target.getDisableMessageID(); @@ -99,10 +100,12 @@ public void setDisableMessageID(boolean disableMessageID) throws JMSException { this.target.setDisableMessageID(disableMessageID); } + @Override public boolean getDisableMessageID() throws JMSException { return this.target.getDisableMessageID(); } + @Override public void setDisableMessageTimestamp(boolean disableMessageTimestamp) throws JMSException { if (this.originalDisableMessageTimestamp == null) { this.originalDisableMessageTimestamp = this.target.getDisableMessageTimestamp(); @@ -110,6 +113,7 @@ public void setDisableMessageTimestamp(boolean disableMessageTimestamp) throws J this.target.setDisableMessageTimestamp(disableMessageTimestamp); } + @Override public boolean getDisableMessageTimestamp() throws JMSException { return this.target.getDisableMessageTimestamp(); } @@ -125,82 +129,102 @@ public long getDeliveryDelay() { return (Long) ReflectionUtils.invokeMethod(getDeliveryDelayMethod, this.target); } + @Override public void setDeliveryMode(int deliveryMode) { this.deliveryMode = deliveryMode; } + @Override public int getDeliveryMode() { return this.deliveryMode; } + @Override public void setPriority(int priority) { this.priority = priority; } + @Override public int getPriority() { return this.priority; } + @Override public void setTimeToLive(long timeToLive) { this.timeToLive = timeToLive; } + @Override public long getTimeToLive() { return this.timeToLive; } + @Override public Destination getDestination() throws JMSException { return this.target.getDestination(); } + @Override public Queue getQueue() throws JMSException { return (Queue) this.target.getDestination(); } + @Override public Topic getTopic() throws JMSException { return (Topic) this.target.getDestination(); } + @Override public void send(Message message) throws JMSException { this.target.send(message, this.deliveryMode, this.priority, this.timeToLive); } + @Override public void send(Message message, int deliveryMode, int priority, long timeToLive) throws JMSException { this.target.send(message, deliveryMode, priority, timeToLive); } + @Override public void send(Destination destination, Message message) throws JMSException { this.target.send(destination, message, this.deliveryMode, this.priority, this.timeToLive); } + @Override public void send(Destination destination, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException { this.target.send(destination, message, deliveryMode, priority, timeToLive); } + @Override public void send(Queue queue, Message message) throws JMSException { this.target.send(queue, message, this.deliveryMode, this.priority, this.timeToLive); } + @Override public void send(Queue queue, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException { this.target.send(queue, message, deliveryMode, priority, timeToLive); } + @Override public void publish(Message message) throws JMSException { this.target.send(message, this.deliveryMode, this.priority, this.timeToLive); } + @Override public void publish(Message message, int deliveryMode, int priority, long timeToLive) throws JMSException { this.target.send(message, deliveryMode, priority, timeToLive); } + @Override public void publish(Topic topic, Message message) throws JMSException { this.target.send(topic, message, this.deliveryMode, this.priority, this.timeToLive); } + @Override public void publish(Topic topic, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException { this.target.send(topic, message, deliveryMode, priority, timeToLive); } + @Override public void close() throws JMSException { // It's a cached MessageProducer... reset properties only. if (this.originalDisableMessageID != null) { @@ -217,6 +241,7 @@ public void close() throws JMSException { } } + @Override public String toString() { return "Cached JMS MessageProducer: " + this.target; } @@ -245,6 +270,7 @@ public MessageProducer getProxyIfNecessary() { */ private class Jms2MessageProducerInvocationHandler implements InvocationHandler { + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { if (method.getName().equals("send") && args != null && diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java b/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java index 368f87586b09..c9068787d9cb 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java @@ -182,6 +182,7 @@ public boolean isCacheConsumers() { /** * Resets the Session cache as well. */ + @Override public void resetConnection() { this.active = false; synchronized (this.cachedSessions) { @@ -208,6 +209,7 @@ public void resetConnection() { /** * Checks for a cached Session for the given mode. */ + @Override protected Session getSession(Connection con, Integer mode) throws JMSException { LinkedList sessionList; synchronized (this.cachedSessions) { @@ -285,6 +287,7 @@ public CachedSessionInvocationHandler(Session target, LinkedList sessio this.sessionList = sessionList; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String methodName = method.getName(); if (methodName.equals("equals")) { @@ -509,12 +512,14 @@ protected boolean destinationEquals(DestinationCacheKey otherKey) { getDestinationString().equals(otherKey.getDestinationString()))); } + @Override public boolean equals(Object other) { // Effectively checking object equality as well as toString equality. // On WebSphere MQ, Destination objects do not implement equals... return (other == this || destinationEquals((DestinationCacheKey) other)); } + @Override public int hashCode() { // Can't use a more specific hashCode since we can't rely on // this.destination.hashCode() actually being the same value @@ -543,6 +548,7 @@ public ConsumerCacheKey(Destination destination, String selector, Boolean noLoca this.subscription = subscription; } + @Override public boolean equals(Object other) { if (other == this) { return true; diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/ChainedExceptionListener.java b/spring-jms/src/main/java/org/springframework/jms/connection/ChainedExceptionListener.java index 31f9ad675bb0..4ca40d842cc6 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/ChainedExceptionListener.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/ChainedExceptionListener.java @@ -52,6 +52,7 @@ public final ExceptionListener[] getDelegates() { } + @Override public void onException(JMSException ex) { for (ExceptionListener listener : this.delegates) { listener.onException(ex); diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/ConnectionFactoryUtils.java b/spring-jms/src/main/java/org/springframework/jms/connection/ConnectionFactoryUtils.java index a668a1d62ecf..72f04974538c 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/ConnectionFactoryUtils.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/ConnectionFactoryUtils.java @@ -136,18 +136,23 @@ public static Session getTransactionalSession( throws JMSException { return doGetTransactionalSession(cf, new ResourceFactory() { + @Override public Session getSession(JmsResourceHolder holder) { return holder.getSession(Session.class, existingCon); } + @Override public Connection getConnection(JmsResourceHolder holder) { return (existingCon != null ? existingCon : holder.getConnection()); } + @Override public Connection createConnection() throws JMSException { return cf.createConnection(); } + @Override public Session createSession(Connection con) throws JMSException { return con.createSession(synchedLocalTransactionAllowed, Session.AUTO_ACKNOWLEDGE); } + @Override public boolean isSynchedLocalTransactionAllowed() { return synchedLocalTransactionAllowed; } @@ -173,18 +178,23 @@ public static QueueSession getTransactionalQueueSession( throws JMSException { return (QueueSession) doGetTransactionalSession(cf, new ResourceFactory() { + @Override public Session getSession(JmsResourceHolder holder) { return holder.getSession(QueueSession.class, existingCon); } + @Override public Connection getConnection(JmsResourceHolder holder) { return (existingCon != null ? existingCon : holder.getConnection(QueueConnection.class)); } + @Override public Connection createConnection() throws JMSException { return cf.createQueueConnection(); } + @Override public Session createSession(Connection con) throws JMSException { return ((QueueConnection) con).createQueueSession(synchedLocalTransactionAllowed, Session.AUTO_ACKNOWLEDGE); } + @Override public boolean isSynchedLocalTransactionAllowed() { return synchedLocalTransactionAllowed; } @@ -210,18 +220,23 @@ public static TopicSession getTransactionalTopicSession( throws JMSException { return (TopicSession) doGetTransactionalSession(cf, new ResourceFactory() { + @Override public Session getSession(JmsResourceHolder holder) { return holder.getSession(TopicSession.class, existingCon); } + @Override public Connection getConnection(JmsResourceHolder holder) { return (existingCon != null ? existingCon : holder.getConnection(TopicConnection.class)); } + @Override public Connection createConnection() throws JMSException { return cf.createTopicConnection(); } + @Override public Session createSession(Connection con) throws JMSException { return ((TopicConnection) con).createTopicSession(synchedLocalTransactionAllowed, Session.AUTO_ACKNOWLEDGE); } + @Override public boolean isSynchedLocalTransactionAllowed() { return synchedLocalTransactionAllowed; } @@ -395,10 +410,12 @@ public JmsResourceSynchronization(JmsResourceHolder resourceHolder, Object resou this.transacted = transacted; } + @Override protected boolean shouldReleaseBeforeCompletion() { return !this.transacted; } + @Override protected void processResourceAfterCommit(JmsResourceHolder resourceHolder) { try { resourceHolder.commitAll(); @@ -408,6 +425,7 @@ protected void processResourceAfterCommit(JmsResourceHolder resourceHolder) { } } + @Override protected void releaseResource(JmsResourceHolder resourceHolder, Object resourceKey) { resourceHolder.closeAll(); } diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/DelegatingConnectionFactory.java b/spring-jms/src/main/java/org/springframework/jms/connection/DelegatingConnectionFactory.java index e01bfec1f0dc..85a1a589deb8 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/DelegatingConnectionFactory.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/DelegatingConnectionFactory.java @@ -85,6 +85,7 @@ public void setShouldStopConnections(boolean shouldStopConnections) { this.shouldStopConnections = shouldStopConnections; } + @Override public void afterPropertiesSet() { if (getTargetConnectionFactory() == null) { throw new IllegalArgumentException("'targetConnectionFactory' is required"); @@ -92,14 +93,17 @@ public void afterPropertiesSet() { } + @Override public Connection createConnection() throws JMSException { return getTargetConnectionFactory().createConnection(); } + @Override public Connection createConnection(String username, String password) throws JMSException { return getTargetConnectionFactory().createConnection(username, password); } + @Override public QueueConnection createQueueConnection() throws JMSException { ConnectionFactory cf = getTargetConnectionFactory(); if (cf instanceof QueueConnectionFactory) { @@ -114,6 +118,7 @@ public QueueConnection createQueueConnection() throws JMSException { } } + @Override public QueueConnection createQueueConnection(String username, String password) throws JMSException { ConnectionFactory cf = getTargetConnectionFactory(); if (cf instanceof QueueConnectionFactory) { @@ -128,6 +133,7 @@ public QueueConnection createQueueConnection(String username, String password) t } } + @Override public TopicConnection createTopicConnection() throws JMSException { ConnectionFactory cf = getTargetConnectionFactory(); if (cf instanceof TopicConnectionFactory) { @@ -142,6 +148,7 @@ public TopicConnection createTopicConnection() throws JMSException { } } + @Override public TopicConnection createTopicConnection(String username, String password) throws JMSException { ConnectionFactory cf = getTargetConnectionFactory(); if (cf instanceof TopicConnectionFactory) { @@ -156,6 +163,7 @@ public TopicConnection createTopicConnection(String username, String password) t } } + @Override public boolean shouldStop(Connection con) { return this.shouldStopConnections; } diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/JmsTransactionManager.java b/spring-jms/src/main/java/org/springframework/jms/connection/JmsTransactionManager.java index 28a683c8f5c8..3587b135823b 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/JmsTransactionManager.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/JmsTransactionManager.java @@ -146,6 +146,7 @@ public ConnectionFactory getConnectionFactory() { /** * Make sure the ConnectionFactory has been set. */ + @Override public void afterPropertiesSet() { if (getConnectionFactory() == null) { throw new IllegalArgumentException("Property 'connectionFactory' is required"); @@ -153,10 +154,12 @@ public void afterPropertiesSet() { } + @Override public Object getResourceFactory() { return getConnectionFactory(); } + @Override protected Object doGetTransaction() { JmsTransactionObject txObject = new JmsTransactionObject(); txObject.setResourceHolder( @@ -164,11 +167,13 @@ protected Object doGetTransaction() { return txObject; } + @Override protected boolean isExistingTransaction(Object transaction) { JmsTransactionObject txObject = (JmsTransactionObject) transaction; return (txObject.getResourceHolder() != null); } + @Override protected void doBegin(Object transaction, TransactionDefinition definition) { if (definition.getIsolationLevel() != TransactionDefinition.ISOLATION_DEFAULT) { throw new InvalidIsolationLevelException("JMS does not support an isolation level concept"); @@ -204,17 +209,20 @@ protected void doBegin(Object transaction, TransactionDefinition definition) { } } + @Override protected Object doSuspend(Object transaction) { JmsTransactionObject txObject = (JmsTransactionObject) transaction; txObject.setResourceHolder(null); return TransactionSynchronizationManager.unbindResource(getConnectionFactory()); } + @Override protected void doResume(Object transaction, Object suspendedResources) { JmsResourceHolder conHolder = (JmsResourceHolder) suspendedResources; TransactionSynchronizationManager.bindResource(getConnectionFactory(), conHolder); } + @Override protected void doCommit(DefaultTransactionStatus status) { JmsTransactionObject txObject = (JmsTransactionObject) status.getTransaction(); Session session = txObject.getResourceHolder().getSession(); @@ -232,6 +240,7 @@ protected void doCommit(DefaultTransactionStatus status) { } } + @Override protected void doRollback(DefaultTransactionStatus status) { JmsTransactionObject txObject = (JmsTransactionObject) status.getTransaction(); Session session = txObject.getResourceHolder().getSession(); @@ -246,11 +255,13 @@ protected void doRollback(DefaultTransactionStatus status) { } } + @Override protected void doSetRollbackOnly(DefaultTransactionStatus status) { JmsTransactionObject txObject = (JmsTransactionObject) status.getTransaction(); txObject.getResourceHolder().setRollbackOnly(); } + @Override protected void doCleanupAfterCompletion(Object transaction) { JmsTransactionObject txObject = (JmsTransactionObject) transaction; TransactionSynchronizationManager.unbindResource(getConnectionFactory()); @@ -302,10 +313,12 @@ public JmsResourceHolder getResourceHolder() { return this.resourceHolder; } + @Override public boolean isRollbackOnly() { return this.resourceHolder.isRollbackOnly(); } + @Override public void flush() { // no-op } diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/SingleConnectionFactory.java b/spring-jms/src/main/java/org/springframework/jms/connection/SingleConnectionFactory.java index ce1669c5aaa5..db0d74aa1e81 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/SingleConnectionFactory.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/SingleConnectionFactory.java @@ -212,6 +212,7 @@ protected boolean isReconnectOnException() { /** * Make sure a Connection or ConnectionFactory has been set. */ + @Override public void afterPropertiesSet() { if (this.connection == null && getTargetConnectionFactory() == null) { throw new IllegalArgumentException("Connection or 'targetConnectionFactory' is required"); @@ -219,6 +220,7 @@ public void afterPropertiesSet() { } + @Override public Connection createConnection() throws JMSException { synchronized (this.connectionMonitor) { if (this.connection == null) { @@ -228,11 +230,13 @@ public Connection createConnection() throws JMSException { } } + @Override public Connection createConnection(String username, String password) throws JMSException { throw new javax.jms.IllegalStateException( "SingleConnectionFactory does not support custom username and password"); } + @Override public QueueConnection createQueueConnection() throws JMSException { Connection con; synchronized (this.connectionMonitor) { @@ -246,11 +250,13 @@ public QueueConnection createQueueConnection() throws JMSException { return ((QueueConnection) con); } + @Override public QueueConnection createQueueConnection(String username, String password) throws JMSException { throw new javax.jms.IllegalStateException( "SingleConnectionFactory does not support custom username and password"); } + @Override public TopicConnection createTopicConnection() throws JMSException { Connection con; synchronized (this.connectionMonitor) { @@ -264,6 +270,7 @@ public TopicConnection createTopicConnection() throws JMSException { return ((TopicConnection) con); } + @Override public TopicConnection createTopicConnection(String username, String password) throws JMSException { throw new javax.jms.IllegalStateException( "SingleConnectionFactory does not support custom username and password"); @@ -297,6 +304,7 @@ public void initConnection() throws JMSException { /** * Exception listener callback that renews the underlying single Connection. */ + @Override public void onException(JMSException ex) { logger.warn("Encountered a JMSException - resetting the underlying JMS Connection", ex); resetConnection(); @@ -308,6 +316,7 @@ public void onException(JMSException ex) { *

As this bean implements DisposableBean, a bean factory will * automatically invoke this on destruction of its cached singletons. */ + @Override public void destroy() { resetConnection(); } @@ -469,6 +478,7 @@ public SharedConnectionInvocationHandler(Connection target) { this.target = target; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (method.getName().equals("equals")) { // Only consider equal when proxies are identical. diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/TransactionAwareConnectionFactoryProxy.java b/spring-jms/src/main/java/org/springframework/jms/connection/TransactionAwareConnectionFactoryProxy.java index ccacc0df0b83..de2b64c1fa49 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/TransactionAwareConnectionFactoryProxy.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/TransactionAwareConnectionFactoryProxy.java @@ -136,16 +136,19 @@ protected boolean isSynchedLocalTransactionAllowed() { } + @Override public Connection createConnection() throws JMSException { Connection targetConnection = this.targetConnectionFactory.createConnection(); return getTransactionAwareConnectionProxy(targetConnection); } + @Override public Connection createConnection(String username, String password) throws JMSException { Connection targetConnection = this.targetConnectionFactory.createConnection(username, password); return getTransactionAwareConnectionProxy(targetConnection); } + @Override public QueueConnection createQueueConnection() throws JMSException { if (!(this.targetConnectionFactory instanceof QueueConnectionFactory)) { throw new javax.jms.IllegalStateException("'targetConnectionFactory' is no QueueConnectionFactory"); @@ -155,6 +158,7 @@ public QueueConnection createQueueConnection() throws JMSException { return (QueueConnection) getTransactionAwareConnectionProxy(targetConnection); } + @Override public QueueConnection createQueueConnection(String username, String password) throws JMSException { if (!(this.targetConnectionFactory instanceof QueueConnectionFactory)) { throw new javax.jms.IllegalStateException("'targetConnectionFactory' is no QueueConnectionFactory"); @@ -164,6 +168,7 @@ public QueueConnection createQueueConnection(String username, String password) t return (QueueConnection) getTransactionAwareConnectionProxy(targetConnection); } + @Override public TopicConnection createTopicConnection() throws JMSException { if (!(this.targetConnectionFactory instanceof TopicConnectionFactory)) { throw new javax.jms.IllegalStateException("'targetConnectionFactory' is no TopicConnectionFactory"); @@ -173,6 +178,7 @@ public TopicConnection createTopicConnection() throws JMSException { return (TopicConnection) getTransactionAwareConnectionProxy(targetConnection); } + @Override public TopicConnection createTopicConnection(String username, String password) throws JMSException { if (!(this.targetConnectionFactory instanceof TopicConnectionFactory)) { throw new javax.jms.IllegalStateException("'targetConnectionFactory' is no TopicConnectionFactory"); @@ -216,6 +222,7 @@ public TransactionAwareConnectionInvocationHandler(Connection target) { this.target = target; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on ConnectionProxy interface coming in... @@ -288,6 +295,7 @@ public CloseSuppressingSessionInvocationHandler(Session target) { this.target = target; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on SessionProxy interface coming in... diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/UserCredentialsConnectionFactoryAdapter.java b/spring-jms/src/main/java/org/springframework/jms/connection/UserCredentialsConnectionFactoryAdapter.java index 2d1cc49b272d..3e912ea0a692 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/UserCredentialsConnectionFactoryAdapter.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/UserCredentialsConnectionFactoryAdapter.java @@ -104,6 +104,7 @@ public void setPassword(String password) { this.password = password; } + @Override public void afterPropertiesSet() { if (this.targetConnectionFactory == null) { throw new IllegalArgumentException("Property 'targetConnectionFactory' is required"); @@ -141,6 +142,7 @@ public void removeCredentialsFromCurrentThread() { * username and password (i.e. values of the bean properties) else. * @see #doCreateConnection */ + @Override public final Connection createConnection() throws JMSException { JmsUserCredentials threadCredentials = this.threadBoundCredentials.get(); if (threadCredentials != null) { @@ -154,6 +156,7 @@ public final Connection createConnection() throws JMSException { /** * Delegate the call straight to the target ConnectionFactory. */ + @Override public Connection createConnection(String username, String password) throws JMSException { return doCreateConnection(username, password); } @@ -186,6 +189,7 @@ protected Connection doCreateConnection(String username, String password) throws * username and password (i.e. values of the bean properties) else. * @see #doCreateQueueConnection */ + @Override public final QueueConnection createQueueConnection() throws JMSException { JmsUserCredentials threadCredentials = this.threadBoundCredentials.get(); if (threadCredentials != null) { @@ -199,6 +203,7 @@ public final QueueConnection createQueueConnection() throws JMSException { /** * Delegate the call straight to the target QueueConnectionFactory. */ + @Override public QueueConnection createQueueConnection(String username, String password) throws JMSException { return doCreateQueueConnection(username, password); } @@ -235,6 +240,7 @@ protected QueueConnection doCreateQueueConnection(String username, String passwo * username and password (i.e. values of the bean properties) else. * @see #doCreateTopicConnection */ + @Override public final TopicConnection createTopicConnection() throws JMSException { JmsUserCredentials threadCredentials = this.threadBoundCredentials.get(); if (threadCredentials != null) { @@ -248,6 +254,7 @@ public final TopicConnection createTopicConnection() throws JMSException { /** * Delegate the call straight to the target TopicConnectionFactory. */ + @Override public TopicConnection createTopicConnection(String username, String password) throws JMSException { return doCreateTopicConnection(username, password); } @@ -292,6 +299,7 @@ private JmsUserCredentials(String username, String password) { this.password = password; } + @Override public String toString() { return "JmsUserCredentials[username='" + this.username + "',password='" + this.password + "']"; } diff --git a/spring-jms/src/main/java/org/springframework/jms/core/JmsTemplate.java b/spring-jms/src/main/java/org/springframework/jms/core/JmsTemplate.java index e4bc172ca782..70f60cbf1e51 100644 --- a/spring-jms/src/main/java/org/springframework/jms/core/JmsTemplate.java +++ b/spring-jms/src/main/java/org/springframework/jms/core/JmsTemplate.java @@ -451,6 +451,7 @@ public long getTimeToLive() { // JmsOperations execute methods //------------------------------------------------------------------------- + @Override public T execute(SessionCallback action) throws JmsException { return execute(action, false); } @@ -498,6 +499,7 @@ public T execute(SessionCallback action, boolean startConnection) throws } } + @Override public T execute(ProducerCallback action) throws JmsException { String defaultDestinationName = getDefaultDestinationName(); if (defaultDestinationName != null) { @@ -508,9 +510,11 @@ public T execute(ProducerCallback action) throws JmsException { } } + @Override public T execute(final Destination destination, final ProducerCallback action) throws JmsException { Assert.notNull(action, "Callback object must not be null"); return execute(new SessionCallback() { + @Override public T doInJms(Session session) throws JMSException { MessageProducer producer = createProducer(session, destination); try { @@ -523,9 +527,11 @@ public T doInJms(Session session) throws JMSException { }, false); } + @Override public T execute(final String destinationName, final ProducerCallback action) throws JmsException { Assert.notNull(action, "Callback object must not be null"); return execute(new SessionCallback() { + @Override public T doInJms(Session session) throws JMSException { Destination destination = resolveDestinationName(session, destinationName); MessageProducer producer = createProducer(session, destination); @@ -544,6 +550,7 @@ public T doInJms(Session session) throws JMSException { // Convenience methods for sending messages //------------------------------------------------------------------------- + @Override public void send(MessageCreator messageCreator) throws JmsException { Destination defaultDestination = getDefaultDestination(); if (defaultDestination != null) { @@ -554,8 +561,10 @@ public void send(MessageCreator messageCreator) throws JmsException { } } + @Override public void send(final Destination destination, final MessageCreator messageCreator) throws JmsException { execute(new SessionCallback() { + @Override public Object doInJms(Session session) throws JMSException { doSend(session, destination, messageCreator); return null; @@ -563,8 +572,10 @@ public Object doInJms(Session session) throws JMSException { }, false); } + @Override public void send(final String destinationName, final MessageCreator messageCreator) throws JmsException { execute(new SessionCallback() { + @Override public Object doInJms(Session session) throws JMSException { Destination destination = resolveDestinationName(session, destinationName); doSend(session, destination, messageCreator); @@ -628,6 +639,7 @@ protected void doSend(MessageProducer producer, Message message) throws JMSExcep // Convenience methods for sending auto-converted messages //------------------------------------------------------------------------- + @Override public void convertAndSend(Object message) throws JmsException { Destination defaultDestination = getDefaultDestination(); if (defaultDestination != null) { @@ -638,22 +650,27 @@ public void convertAndSend(Object message) throws JmsException { } } + @Override public void convertAndSend(Destination destination, final Object message) throws JmsException { send(destination, new MessageCreator() { + @Override public Message createMessage(Session session) throws JMSException { return getRequiredMessageConverter().toMessage(message, session); } }); } + @Override public void convertAndSend(String destinationName, final Object message) throws JmsException { send(destinationName, new MessageCreator() { + @Override public Message createMessage(Session session) throws JMSException { return getRequiredMessageConverter().toMessage(message, session); } }); } + @Override public void convertAndSend(Object message, MessagePostProcessor postProcessor) throws JmsException { Destination defaultDestination = getDefaultDestination(); if (defaultDestination != null) { @@ -664,11 +681,13 @@ public void convertAndSend(Object message, MessagePostProcessor postProcessor) t } } + @Override public void convertAndSend( Destination destination, final Object message, final MessagePostProcessor postProcessor) throws JmsException { send(destination, new MessageCreator() { + @Override public Message createMessage(Session session) throws JMSException { Message msg = getRequiredMessageConverter().toMessage(message, session); return postProcessor.postProcessMessage(msg); @@ -676,11 +695,13 @@ public Message createMessage(Session session) throws JMSException { }); } + @Override public void convertAndSend( String destinationName, final Object message, final MessagePostProcessor postProcessor) throws JmsException { send(destinationName, new MessageCreator() { + @Override public Message createMessage(Session session) throws JMSException { Message msg = getRequiredMessageConverter().toMessage(message, session); return postProcessor.postProcessMessage(msg); @@ -693,6 +714,7 @@ public Message createMessage(Session session) throws JMSException { // Convenience methods for receiving messages //------------------------------------------------------------------------- + @Override public Message receive() throws JmsException { Destination defaultDestination = getDefaultDestination(); if (defaultDestination != null) { @@ -703,14 +725,17 @@ public Message receive() throws JmsException { } } + @Override public Message receive(Destination destination) throws JmsException { return receiveSelected(destination, null); } + @Override public Message receive(String destinationName) throws JmsException { return receiveSelected(destinationName, null); } + @Override public Message receiveSelected(String messageSelector) throws JmsException { Destination defaultDestination = getDefaultDestination(); if (defaultDestination != null) { @@ -721,16 +746,20 @@ public Message receiveSelected(String messageSelector) throws JmsException { } } + @Override public Message receiveSelected(final Destination destination, final String messageSelector) throws JmsException { return execute(new SessionCallback() { + @Override public Message doInJms(Session session) throws JMSException { return doReceive(session, destination, messageSelector); } }, true); } + @Override public Message receiveSelected(final String destinationName, final String messageSelector) throws JmsException { return execute(new SessionCallback() { + @Override public Message doInJms(Session session) throws JMSException { Destination destination = resolveDestinationName(session, destinationName); return doReceive(session, destination, messageSelector); @@ -813,26 +842,32 @@ else if (timeout > 0) { // Convenience methods for receiving auto-converted messages //------------------------------------------------------------------------- + @Override public Object receiveAndConvert() throws JmsException { return doConvertFromMessage(receive()); } + @Override public Object receiveAndConvert(Destination destination) throws JmsException { return doConvertFromMessage(receive(destination)); } + @Override public Object receiveAndConvert(String destinationName) throws JmsException { return doConvertFromMessage(receive(destinationName)); } + @Override public Object receiveSelectedAndConvert(String messageSelector) throws JmsException { return doConvertFromMessage(receiveSelected(messageSelector)); } + @Override public Object receiveSelectedAndConvert(Destination destination, String messageSelector) throws JmsException { return doConvertFromMessage(receiveSelected(destination, messageSelector)); } + @Override public Object receiveSelectedAndConvert(String destinationName, String messageSelector) throws JmsException { return doConvertFromMessage(receiveSelected(destinationName, messageSelector)); } @@ -859,6 +894,7 @@ protected Object doConvertFromMessage(Message message) { // Convenience methods for browsing messages //------------------------------------------------------------------------- + @Override public T browse(BrowserCallback action) throws JmsException { Queue defaultQueue = getDefaultQueue(); if (defaultQueue != null) { @@ -869,14 +905,17 @@ public T browse(BrowserCallback action) throws JmsException { } } + @Override public T browse(Queue queue, BrowserCallback action) throws JmsException { return browseSelected(queue, null, action); } + @Override public T browse(String queueName, BrowserCallback action) throws JmsException { return browseSelected(queueName, null, action); } + @Override public T browseSelected(String messageSelector, BrowserCallback action) throws JmsException { Queue defaultQueue = getDefaultQueue(); if (defaultQueue != null) { @@ -887,11 +926,13 @@ public T browseSelected(String messageSelector, BrowserCallback action) t } } + @Override public T browseSelected(final Queue queue, final String messageSelector, final BrowserCallback action) throws JmsException { Assert.notNull(action, "Callback object must not be null"); return execute(new SessionCallback() { + @Override public T doInJms(Session session) throws JMSException { QueueBrowser browser = createBrowser(session, queue, messageSelector); try { @@ -904,11 +945,13 @@ public T doInJms(Session session) throws JMSException { }, true); } + @Override public T browseSelected(final String queueName, final String messageSelector, final BrowserCallback action) throws JmsException { Assert.notNull(action, "Callback object must not be null"); return execute(new SessionCallback() { + @Override public T doInJms(Session session) throws JMSException { Queue queue = (Queue) getDestinationResolver().resolveDestinationName(session, queueName, false); QueueBrowser browser = createBrowser(session, queue, messageSelector); @@ -1049,22 +1092,27 @@ protected QueueBrowser createBrowser(Session session, Queue queue, String messag */ private class JmsTemplateResourceFactory implements ConnectionFactoryUtils.ResourceFactory { + @Override public Connection getConnection(JmsResourceHolder holder) { return JmsTemplate.this.getConnection(holder); } + @Override public Session getSession(JmsResourceHolder holder) { return JmsTemplate.this.getSession(holder); } + @Override public Connection createConnection() throws JMSException { return JmsTemplate.this.createConnection(); } + @Override public Session createSession(Connection con) throws JMSException { return JmsTemplate.this.createSession(con); } + @Override public boolean isSynchedLocalTransactionAllowed() { return JmsTemplate.this.isSessionTransacted(); } diff --git a/spring-jms/src/main/java/org/springframework/jms/core/support/JmsGatewaySupport.java b/spring-jms/src/main/java/org/springframework/jms/core/support/JmsGatewaySupport.java index 95314fd3b2d0..277e7ed893bb 100644 --- a/spring-jms/src/main/java/org/springframework/jms/core/support/JmsGatewaySupport.java +++ b/spring-jms/src/main/java/org/springframework/jms/core/support/JmsGatewaySupport.java @@ -96,6 +96,7 @@ public final JmsTemplate getJmsTemplate() { return this.jmsTemplate; } + @Override public final void afterPropertiesSet() throws IllegalArgumentException, BeanInitializationException { if (this.jmsTemplate == null) { throw new IllegalArgumentException("'connectionFactory' or 'jmsTemplate' is required"); diff --git a/spring-jms/src/main/java/org/springframework/jms/listener/AbstractJmsListeningContainer.java b/spring-jms/src/main/java/org/springframework/jms/listener/AbstractJmsListeningContainer.java index 87507c28b7c3..f7170925bb62 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/AbstractJmsListeningContainer.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/AbstractJmsListeningContainer.java @@ -113,6 +113,7 @@ public void setAutoStartup(boolean autoStartup) { this.autoStartup = autoStartup; } + @Override public boolean isAutoStartup() { return this.autoStartup; } @@ -131,10 +132,12 @@ public void setPhase(int phase) { /** * Return the phase in which this container will be started and stopped. */ + @Override public int getPhase() { return this.phase; } + @Override public void setBeanName(String beanName) { this.beanName = beanName; } @@ -169,6 +172,7 @@ protected void validateConfiguration() { * Calls {@link #shutdown()} when the BeanFactory destroys the container instance. * @see #shutdown() */ + @Override public void destroy() { shutdown(); } @@ -260,6 +264,7 @@ public final boolean isActive() { * @throws JmsException if starting failed * @see #doStart */ + @Override public void start() throws JmsException { try { doStart(); @@ -298,6 +303,7 @@ protected void doStart() throws JMSException { * @throws JmsException if stopping failed * @see #doStop */ + @Override public void stop() throws JmsException { try { doStop(); @@ -307,6 +313,7 @@ public void stop() throws JmsException { } } + @Override public void stop(Runnable callback) { this.stop(); callback.run(); @@ -335,6 +342,7 @@ protected void doStop() throws JMSException { * @see #stop() * @see #runningAllowed() */ + @Override public final boolean isRunning() { synchronized (this.lifecycleMonitor) { return (this.running && runningAllowed()); diff --git a/spring-jms/src/main/java/org/springframework/jms/listener/AbstractPollingMessageListenerContainer.java b/spring-jms/src/main/java/org/springframework/jms/listener/AbstractPollingMessageListenerContainer.java index e899ca12cdec..e5db170e7313 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/AbstractPollingMessageListenerContainer.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/AbstractPollingMessageListenerContainer.java @@ -509,14 +509,17 @@ protected MessageConsumer createConsumer(Session session, Destination destinatio */ private class MessageListenerContainerResourceFactory implements ConnectionFactoryUtils.ResourceFactory { + @Override public Connection getConnection(JmsResourceHolder holder) { return AbstractPollingMessageListenerContainer.this.getConnection(holder); } + @Override public Session getSession(JmsResourceHolder holder) { return AbstractPollingMessageListenerContainer.this.getSession(holder); } + @Override public Connection createConnection() throws JMSException { if (AbstractPollingMessageListenerContainer.this.sharedConnectionEnabled()) { Connection sharedCon = AbstractPollingMessageListenerContainer.this.getSharedConnection(); @@ -527,10 +530,12 @@ public Connection createConnection() throws JMSException { } } + @Override public Session createSession(Connection con) throws JMSException { return AbstractPollingMessageListenerContainer.this.createSession(con); } + @Override public boolean isSynchedLocalTransactionAllowed() { return AbstractPollingMessageListenerContainer.this.isSessionTransacted(); } diff --git a/spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java b/spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java index de0132dae168..9d25ea6e7324 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java @@ -974,6 +974,7 @@ private class AsyncMessageListenerInvoker implements SchedulingAwareRunnable { private volatile boolean idle = true; + @Override public void run() { synchronized (lifecycleMonitor) { activeInvokerCount++; @@ -1150,6 +1151,7 @@ private void clearResources() { this.session = null; } + @Override public boolean isLongLived() { return (maxMessagesPerTask < 0); } diff --git a/spring-jms/src/main/java/org/springframework/jms/listener/SimpleMessageListenerContainer.java b/spring-jms/src/main/java/org/springframework/jms/listener/SimpleMessageListenerContainer.java index c3f0f22e5925..2a503cc75460 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/SimpleMessageListenerContainer.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/SimpleMessageListenerContainer.java @@ -240,6 +240,7 @@ protected void prepareSharedConnection(Connection connection) throws JMSExceptio * shared connection and its sessions and consumers. * @param ex the reported connection exception */ + @Override public void onException(JMSException ex) { // First invoke the user-specific ExceptionListener, if any. invokeExceptionListener(ex); @@ -301,8 +302,10 @@ protected MessageConsumer createListenerConsumer(final Session session) throws J if (this.taskExecutor != null) { consumer.setMessageListener(new MessageListener() { + @Override public void onMessage(final Message message) { taskExecutor.execute(new Runnable() { + @Override public void run() { processMessage(message, session); } @@ -312,6 +315,7 @@ public void run() { } else { consumer.setMessageListener(new MessageListener() { + @Override public void onMessage(Message message) { processMessage(message, session); } diff --git a/spring-jms/src/main/java/org/springframework/jms/listener/adapter/MessageListenerAdapter.java b/spring-jms/src/main/java/org/springframework/jms/listener/adapter/MessageListenerAdapter.java index 3aa313c9252d..23ead10e33c7 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/adapter/MessageListenerAdapter.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/adapter/MessageListenerAdapter.java @@ -301,6 +301,7 @@ protected MessageConverter getMessageConverter() { * @see #handleListenerException * @see #onMessage(javax.jms.Message, javax.jms.Session) */ + @Override public void onMessage(Message message) { try { onMessage(message, null); @@ -319,6 +320,7 @@ public void onMessage(Message message) { * @param session the JMS session to operate on * @throws JMSException if thrown by JMS API methods */ + @Override @SuppressWarnings("unchecked") public void onMessage(Message message, Session session) throws JMSException { // Check whether the delegate is a MessageListener impl itself. @@ -361,6 +363,7 @@ else if (!(delegate instanceof MessageListener)) { } } + @Override public String getSubscriptionName() { Object delegate = getDelegate(); if (delegate != this && delegate instanceof SubscriptionNameProvider) { diff --git a/spring-jms/src/main/java/org/springframework/jms/listener/endpoint/DefaultJmsActivationSpecFactory.java b/spring-jms/src/main/java/org/springframework/jms/listener/endpoint/DefaultJmsActivationSpecFactory.java index 0f11609876ab..c0e008f56014 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/endpoint/DefaultJmsActivationSpecFactory.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/endpoint/DefaultJmsActivationSpecFactory.java @@ -72,6 +72,7 @@ public class DefaultJmsActivationSpecFactory extends StandardJmsActivationSpecFa * "ActiveMQActivationSpec" in the same package, or a class named * "ActivationSpecImpl" in the same package as the ResourceAdapter class. */ + @Override protected Class determineActivationSpecClass(ResourceAdapter adapter) { String adapterClassName = adapter.getClass().getName(); @@ -131,6 +132,7 @@ else if (adapterClassName.endsWith(RESOURCE_ADAPTER_IMPL_SUFFIX)){ * "maxMessagesPerSessions"/"maxMessages", respectively * (following ActiveMQ's and JORAM's naming conventions). */ + @Override protected void populateActivationSpecProperties(BeanWrapper bw, JmsActivationSpecConfig config) { super.populateActivationSpecProperties(bw, config); if (config.getMaxConcurrency() > 0) { @@ -168,6 +170,7 @@ else if(bw.isWritableProperty("maxBatchSize")){ * ActivationSpec property named "useRAManagedTransaction", if available * (following ActiveMQ's naming conventions). */ + @Override protected void applyAcknowledgeMode(BeanWrapper bw, int ackMode) { if (ackMode == Session.SESSION_TRANSACTED && bw.isWritableProperty("useRAManagedTransaction")) { // ActiveMQ diff --git a/spring-jms/src/main/java/org/springframework/jms/listener/endpoint/JmsMessageEndpointFactory.java b/spring-jms/src/main/java/org/springframework/jms/listener/endpoint/JmsMessageEndpointFactory.java index 954dd4982ee9..1a86567d0a15 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/endpoint/JmsMessageEndpointFactory.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/endpoint/JmsMessageEndpointFactory.java @@ -59,6 +59,7 @@ public void setMessageListener(MessageListener messageListener) { /** * Creates a concrete JMS message endpoint, internal to this factory. */ + @Override protected AbstractMessageEndpoint createEndpointInternal() throws UnavailableException { return new JmsMessageEndpoint(); } @@ -69,6 +70,7 @@ protected AbstractMessageEndpoint createEndpointInternal() throws UnavailableExc */ private class JmsMessageEndpoint extends AbstractMessageEndpoint implements MessageListener { + @Override public void onMessage(Message message) { boolean applyDeliveryCalls = !hasBeforeDeliveryBeenCalled(); if (applyDeliveryCalls) { @@ -102,6 +104,7 @@ public void onMessage(Message message) { } } + @Override protected ClassLoader getEndpointClassLoader() { return messageListener.getClass().getClassLoader(); } diff --git a/spring-jms/src/main/java/org/springframework/jms/listener/endpoint/JmsMessageEndpointManager.java b/spring-jms/src/main/java/org/springframework/jms/listener/endpoint/JmsMessageEndpointManager.java index 455714c25af1..3586dffaad39 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/endpoint/JmsMessageEndpointManager.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/endpoint/JmsMessageEndpointManager.java @@ -128,6 +128,7 @@ public void setActivationSpecConfig(JmsActivationSpecConfig activationSpecConfig } + @Override public void afterPropertiesSet() throws ResourceException { if (this.messageListenerSet) { setMessageEndpointFactory(this.endpointFactory); diff --git a/spring-jms/src/main/java/org/springframework/jms/listener/endpoint/StandardJmsActivationSpecFactory.java b/spring-jms/src/main/java/org/springframework/jms/listener/endpoint/StandardJmsActivationSpecFactory.java index 7263a4c9937c..62ac11d7d227 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/endpoint/StandardJmsActivationSpecFactory.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/endpoint/StandardJmsActivationSpecFactory.java @@ -91,6 +91,7 @@ public void setDestinationResolver(DestinationResolver destinationResolver) { } + @Override public ActivationSpec createActivationSpec(ResourceAdapter adapter, JmsActivationSpecConfig config) { Class activationSpecClassToUse = this.activationSpecClass; if (activationSpecClassToUse == null) { diff --git a/spring-jms/src/main/java/org/springframework/jms/remoting/JmsInvokerClientInterceptor.java b/spring-jms/src/main/java/org/springframework/jms/remoting/JmsInvokerClientInterceptor.java index dfc481c0e453..66c1d7949027 100644 --- a/spring-jms/src/main/java/org/springframework/jms/remoting/JmsInvokerClientInterceptor.java +++ b/spring-jms/src/main/java/org/springframework/jms/remoting/JmsInvokerClientInterceptor.java @@ -180,6 +180,7 @@ protected long getReceiveTimeout() { } + @Override public void afterPropertiesSet() { if (getConnectionFactory() == null) { throw new IllegalArgumentException("Property 'connectionFactory' is required"); @@ -190,6 +191,7 @@ public void afterPropertiesSet() { } + @Override public Object invoke(MethodInvocation methodInvocation) throws Throwable { if (AopUtils.isToStringMethod(methodInvocation.getMethod())) { return "JMS invoker proxy for queue [" + this.queue + "]"; diff --git a/spring-jms/src/main/java/org/springframework/jms/remoting/JmsInvokerProxyFactoryBean.java b/spring-jms/src/main/java/org/springframework/jms/remoting/JmsInvokerProxyFactoryBean.java index 1b4cce84d70f..0bfe3407afae 100644 --- a/spring-jms/src/main/java/org/springframework/jms/remoting/JmsInvokerProxyFactoryBean.java +++ b/spring-jms/src/main/java/org/springframework/jms/remoting/JmsInvokerProxyFactoryBean.java @@ -64,10 +64,12 @@ public void setServiceInterface(Class serviceInterface) { this.serviceInterface = serviceInterface; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public void afterPropertiesSet() { super.afterPropertiesSet(); if (this.serviceInterface == null) { @@ -77,14 +79,17 @@ public void afterPropertiesSet() { } + @Override public Object getObject() { return this.serviceProxy; } + @Override public Class getObjectType() { return this.serviceInterface; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-jms/src/main/java/org/springframework/jms/remoting/JmsInvokerServiceExporter.java b/spring-jms/src/main/java/org/springframework/jms/remoting/JmsInvokerServiceExporter.java index 38dbfe53cfca..8d5ba01cead6 100644 --- a/spring-jms/src/main/java/org/springframework/jms/remoting/JmsInvokerServiceExporter.java +++ b/spring-jms/src/main/java/org/springframework/jms/remoting/JmsInvokerServiceExporter.java @@ -89,11 +89,13 @@ public void setIgnoreInvalidRequests(boolean ignoreInvalidRequests) { this.ignoreInvalidRequests = ignoreInvalidRequests; } + @Override public void afterPropertiesSet() { this.proxy = getProxyForService(); } + @Override public void onMessage(Message requestMessage, Session session) throws JMSException { RemoteInvocation invocation = readRemoteInvocation(requestMessage); if (invocation != null) { diff --git a/spring-jms/src/main/java/org/springframework/jms/support/JmsAccessor.java b/spring-jms/src/main/java/org/springframework/jms/support/JmsAccessor.java index 80023bc3d018..70b06ad0337d 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/JmsAccessor.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/JmsAccessor.java @@ -147,6 +147,7 @@ public int getSessionAcknowledgeMode() { return this.sessionAcknowledgeMode; } + @Override public void afterPropertiesSet() { if (getConnectionFactory() == null) { throw new IllegalArgumentException("Property 'connectionFactory' is required"); diff --git a/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java b/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java index 6596d59ea5b1..28418fd10beb 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java @@ -147,11 +147,13 @@ public void setTypeIdMappings(Map> typeIdMappings) { } } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public Message toMessage(Object object, Session session) throws JMSException, MessageConversionException { Message message; try { @@ -173,6 +175,7 @@ public Message toMessage(Object object, Session session) throws JMSException, Me return message; } + @Override public Object fromMessage(Message message) throws JMSException, MessageConversionException { try { JavaType targetJavaType = getJavaTypeForMessage(message); diff --git a/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJacksonMessageConverter.java b/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJacksonMessageConverter.java index 3cb471edfc6e..56c80b095243 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJacksonMessageConverter.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJacksonMessageConverter.java @@ -147,11 +147,13 @@ public void setTypeIdMappings(Map> typeIdMappings) { } } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public Message toMessage(Object object, Session session) throws JMSException, MessageConversionException { Message message; try { @@ -173,6 +175,7 @@ public Message toMessage(Object object, Session session) throws JMSException, Me return message; } + @Override public Object fromMessage(Message message) throws JMSException, MessageConversionException { try { JavaType targetJavaType = getJavaTypeForMessage(message); diff --git a/spring-jms/src/main/java/org/springframework/jms/support/converter/MarshallingMessageConverter.java b/spring-jms/src/main/java/org/springframework/jms/support/converter/MarshallingMessageConverter.java index 9378d21c4729..9cdaaae36225 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/converter/MarshallingMessageConverter.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/converter/MarshallingMessageConverter.java @@ -132,6 +132,7 @@ public void setTargetType(MessageType targetType) { this.targetType = targetType; } + @Override public void afterPropertiesSet() { Assert.notNull(this.marshaller, "Property 'marshaller' is required"); Assert.notNull(this.unmarshaller, "Property 'unmarshaller' is required"); @@ -145,6 +146,7 @@ public void afterPropertiesSet() { * @see #marshalToTextMessage * @see #marshalToBytesMessage */ + @Override public Message toMessage(Object object, Session session) throws JMSException, MessageConversionException { try { switch (this.targetType) { @@ -169,6 +171,7 @@ public Message toMessage(Object object, Session session) throws JMSException, Me * @see #unmarshalFromTextMessage * @see #unmarshalFromBytesMessage */ + @Override public Object fromMessage(Message message) throws JMSException, MessageConversionException { try { if (message instanceof TextMessage) { diff --git a/spring-jms/src/main/java/org/springframework/jms/support/converter/SimpleMessageConverter.java b/spring-jms/src/main/java/org/springframework/jms/support/converter/SimpleMessageConverter.java index 939bd0f21165..fd5e4be5a05a 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/converter/SimpleMessageConverter.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/converter/SimpleMessageConverter.java @@ -56,6 +56,7 @@ public class SimpleMessageConverter implements MessageConverter { * @see #createMessageForMap * @see #createMessageForSerializable */ + @Override public Message toMessage(Object object, Session session) throws JMSException, MessageConversionException { if (object instanceof Message) { return (Message) object; @@ -89,6 +90,7 @@ else if (object instanceof Serializable) { * @see #extractMapFromMessage * @see #extractSerializableFromMessage */ + @Override public Object fromMessage(Message message) throws JMSException, MessageConversionException { if (message instanceof TextMessage) { return extractStringFromMessage((TextMessage) message); diff --git a/spring-jms/src/main/java/org/springframework/jms/support/destination/BeanFactoryDestinationResolver.java b/spring-jms/src/main/java/org/springframework/jms/support/destination/BeanFactoryDestinationResolver.java index e3105c223d8b..73591a51eb25 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/destination/BeanFactoryDestinationResolver.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/destination/BeanFactoryDestinationResolver.java @@ -63,11 +63,13 @@ public BeanFactoryDestinationResolver(BeanFactory beanFactory) { } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } + @Override public Destination resolveDestinationName(Session session, String destinationName, boolean pubSubDomain) throws JMSException { diff --git a/spring-jms/src/main/java/org/springframework/jms/support/destination/DynamicDestinationResolver.java b/spring-jms/src/main/java/org/springframework/jms/support/destination/DynamicDestinationResolver.java index f3d39361f895..7f6450fffe5d 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/destination/DynamicDestinationResolver.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/destination/DynamicDestinationResolver.java @@ -54,6 +54,7 @@ public class DynamicDestinationResolver implements DestinationResolver { * @see #resolveTopic(javax.jms.Session, String) * @see #resolveQueue(javax.jms.Session, String) */ + @Override public Destination resolveDestinationName(Session session, String destinationName, boolean pubSubDomain) throws JMSException { diff --git a/spring-jms/src/main/java/org/springframework/jms/support/destination/JndiDestinationResolver.java b/spring-jms/src/main/java/org/springframework/jms/support/destination/JndiDestinationResolver.java index b9bf560e8e18..5ed84764954b 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/destination/JndiDestinationResolver.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/destination/JndiDestinationResolver.java @@ -98,6 +98,7 @@ public void setDynamicDestinationResolver(DestinationResolver dynamicDestination } + @Override public Destination resolveDestinationName(Session session, String destinationName, boolean pubSubDomain) throws JMSException { @@ -150,10 +151,12 @@ protected void validateDestination(Destination destination, String destinationNa } + @Override public void removeFromCache(String destinationName) { this.destinationCache.remove(destinationName); } + @Override public void clearCache() { this.destinationCache.clear(); } diff --git a/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/HibernateExceptionTranslator.java b/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/HibernateExceptionTranslator.java index 4801a5afbc72..7223e8d7da55 100644 --- a/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/HibernateExceptionTranslator.java +++ b/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/HibernateExceptionTranslator.java @@ -38,6 +38,7 @@ */ public class HibernateExceptionTranslator implements PersistenceExceptionTranslator { + @Override public DataAccessException translateExceptionIfPossible(RuntimeException ex) { if (ex instanceof HibernateException) { return convertHibernateAccessException((HibernateException) ex); diff --git a/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/HibernateTransactionManager.java b/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/HibernateTransactionManager.java index 5871bb8a87e9..e70866812947 100644 --- a/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/HibernateTransactionManager.java +++ b/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/HibernateTransactionManager.java @@ -318,10 +318,12 @@ else if (this.entityInterceptor instanceof String) { * bean names. It does not need to be set for any other mode of operation. * @see #setEntityInterceptorBeanName */ + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } + @Override public void afterPropertiesSet() { if (getSessionFactory() == null) { throw new IllegalArgumentException("Property 'sessionFactory' is required"); @@ -345,6 +347,7 @@ public void afterPropertiesSet() { } + @Override public Object getResourceFactory() { return getSessionFactory(); } @@ -738,6 +741,7 @@ public void setRollbackOnly() { } } + @Override public boolean isRollbackOnly() { return this.sessionHolder.isRollbackOnly() || (hasConnectionHolder() && getConnectionHolder().isRollbackOnly()); diff --git a/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/LocalSessionFactoryBean.java b/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/LocalSessionFactoryBean.java index f28141500875..b36d067234dd 100644 --- a/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/LocalSessionFactoryBean.java +++ b/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/LocalSessionFactoryBean.java @@ -269,11 +269,13 @@ public void setJtaTransactionManager(Object jtaTransactionManager) { this.jtaTransactionManager = jtaTransactionManager; } + @Override public void setResourceLoader(ResourceLoader resourceLoader) { this.resourcePatternResolver = ResourcePatternUtils.getResourcePatternResolver(resourceLoader); } + @Override public void afterPropertiesSet() throws IOException { LocalSessionFactoryBuilder sfb = new LocalSessionFactoryBuilder(this.dataSource, this.resourcePatternResolver); @@ -386,19 +388,23 @@ public final Configuration getConfiguration() { } + @Override public SessionFactory getObject() { return this.sessionFactory; } + @Override public Class getObjectType() { return (this.sessionFactory != null ? this.sessionFactory.getClass() : SessionFactory.class); } + @Override public boolean isSingleton() { return true; } + @Override public void destroy() { this.sessionFactory.close(); } diff --git a/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/SpringSessionContext.java b/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/SpringSessionContext.java index 1a5c4bd678a7..1dfd5aa86652 100644 --- a/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/SpringSessionContext.java +++ b/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/SpringSessionContext.java @@ -62,6 +62,7 @@ public SpringSessionContext(SessionFactoryImplementor sessionFactory) { /** * Retrieve the Spring-managed Session for the current thread, if any. */ + @Override public Session currentSession() throws HibernateException { Object value = TransactionSynchronizationManager.getResource(this.sessionFactory); if (value instanceof Session) { diff --git a/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/SpringSessionSynchronization.java b/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/SpringSessionSynchronization.java index a831617d9c3d..9f48f5f0102c 100644 --- a/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/SpringSessionSynchronization.java +++ b/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/SpringSessionSynchronization.java @@ -52,10 +52,12 @@ private Session getCurrentSession() { } + @Override public int getOrder() { return SessionFactoryUtils.SESSION_SYNCHRONIZATION_ORDER; } + @Override public void suspend() { if (this.holderActive) { TransactionSynchronizationManager.unbindResource(this.sessionFactory); @@ -64,12 +66,14 @@ public void suspend() { } } + @Override public void resume() { if (this.holderActive) { TransactionSynchronizationManager.bindResource(this.sessionFactory, this.sessionHolder); } } + @Override public void flush() { try { SessionFactoryUtils.logger.debug("Flushing Hibernate Session on explicit request"); @@ -80,6 +84,7 @@ public void flush() { } } + @Override public void beforeCommit(boolean readOnly) throws DataAccessException { if (!readOnly) { Session session = getCurrentSession(); @@ -97,6 +102,7 @@ public void beforeCommit(boolean readOnly) throws DataAccessException { } } + @Override public void beforeCompletion() { Session session = this.sessionHolder.getSession(); if (this.sessionHolder.getPreviousFlushMode() != null) { @@ -107,9 +113,11 @@ public void beforeCompletion() { session.disconnect(); } + @Override public void afterCommit() { } + @Override public void afterCompletion(int status) { try { if (status != STATUS_COMMITTED) { diff --git a/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/support/OpenSessionInViewInterceptor.java b/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/support/OpenSessionInViewInterceptor.java index 8994255e755f..4d82160eb7c5 100644 --- a/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/support/OpenSessionInViewInterceptor.java +++ b/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/support/OpenSessionInViewInterceptor.java @@ -95,6 +95,7 @@ public SessionFactory getSessionFactory() { * {@code HibernateAccessor} and bind it to the thread via the * {@link org.springframework.transaction.support.TransactionSynchronizationManager}. */ + @Override public void preHandle(WebRequest request) throws DataAccessException { String participateAttributeName = getParticipateAttributeName(); @@ -123,6 +124,7 @@ public void preHandle(WebRequest request) throws DataAccessException { } } + @Override public void postHandle(WebRequest request, ModelMap model) { } @@ -130,6 +132,7 @@ public void postHandle(WebRequest request, ModelMap model) { * Unbind the Hibernate {@code Session} from the thread and close it). * @see org.springframework.transaction.support.TransactionSynchronizationManager */ + @Override public void afterCompletion(WebRequest request, Exception ex) throws DataAccessException { if (!decrementParticipateCount(request)) { SessionHolder sessionHolder = @@ -156,6 +159,7 @@ private boolean decrementParticipateCount(WebRequest request) { return true; } + @Override public void afterConcurrentHandlingStarted(WebRequest request) { if (!decrementParticipateCount(request)) { TransactionSynchronizationManager.unbindResource(getSessionFactory()); diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/AbstractSessionFactoryBean.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/AbstractSessionFactoryBean.java index 4475af596a82..2a53432f8184 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/AbstractSessionFactoryBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/AbstractSessionFactoryBean.java @@ -184,6 +184,7 @@ protected boolean isExposeTransactionAwareSessionFactory() { * @see #buildSessionFactory() * @see #wrapSessionFactoryIfNecessary */ + @Override public void afterPropertiesSet() throws Exception { SessionFactory rawSf = buildSessionFactory(); this.sessionFactory = wrapSessionFactoryIfNecessary(rawSf); @@ -219,6 +220,7 @@ protected final SessionFactory getSessionFactory() { /** * Close the SessionFactory on bean factory shutdown. */ + @Override public void destroy() throws HibernateException { logger.info("Closing Hibernate SessionFactory"); try { @@ -233,14 +235,17 @@ public void destroy() throws HibernateException { /** * Return the singleton SessionFactory. */ + @Override public SessionFactory getObject() { return this.sessionFactory; } + @Override public Class getObjectType() { return (this.sessionFactory != null ? this.sessionFactory.getClass() : SessionFactory.class); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/FilterDefinitionFactoryBean.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/FilterDefinitionFactoryBean.java index e445a51f154e..41b1f28a2ae3 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/FilterDefinitionFactoryBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/FilterDefinitionFactoryBean.java @@ -111,26 +111,31 @@ public void setDefaultFilterCondition(String defaultFilterCondition) { * the FilterDefinitionFactoryBean will be used. * @see #setFilterName */ + @Override public void setBeanName(String name) { if (this.filterName == null) { this.filterName = name; } } + @Override public void afterPropertiesSet() { this.filterDefinition = new FilterDefinition(this.filterName, this.defaultFilterCondition, this.parameterTypeMap); } + @Override public FilterDefinition getObject() { return this.filterDefinition; } + @Override public Class getObjectType() { return FilterDefinition.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateAccessor.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateAccessor.java index ddc08aed8bee..fb0dc74444aa 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateAccessor.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateAccessor.java @@ -305,10 +305,12 @@ public String[] getFilterNames() { * bean names. It does not need to be set for any other mode of operation. * @see #setEntityInterceptorBeanName */ + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } + @Override public void afterPropertiesSet() { if (getSessionFactory() == null) { throw new IllegalArgumentException("Property 'sessionFactory' is required"); diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateExceptionTranslator.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateExceptionTranslator.java index b302d15da20b..ded5f70434bb 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateExceptionTranslator.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateExceptionTranslator.java @@ -63,6 +63,7 @@ public void setJdbcExceptionTranslator(SQLExceptionTranslator jdbcExceptionTrans } + @Override public DataAccessException translateExceptionIfPossible(RuntimeException ex) { if (ex instanceof HibernateException) { return convertHibernateAccessException((HibernateException) ex); diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateInterceptor.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateInterceptor.java index a7faee60a093..91d5a4524f53 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateInterceptor.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateInterceptor.java @@ -86,6 +86,7 @@ public void setExceptionConversionEnabled(boolean exceptionConversionEnabled) { } + @Override public Object invoke(MethodInvocation methodInvocation) throws Throwable { Session session = getSession(); SessionHolder sessionHolder = diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateTemplate.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateTemplate.java index 43765e5e235b..205738d84ade 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateTemplate.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateTemplate.java @@ -335,10 +335,12 @@ public int getMaxResults() { } + @Override public T execute(HibernateCallback action) throws DataAccessException { return doExecute(action, false, false); } + @Override public List executeFind(HibernateCallback action) throws DataAccessException { Object result = doExecute(action, false, false); if (result != null && !(result instanceof List)) { @@ -502,14 +504,17 @@ else if (session instanceof SessionImplementor) { // Convenience methods for loading individual objects //------------------------------------------------------------------------- + @Override public T get(Class entityClass, Serializable id) throws DataAccessException { return get(entityClass, id, null); } + @Override public T get(final Class entityClass, final Serializable id, final LockMode lockMode) throws DataAccessException { return executeWithNativeSession(new HibernateCallback() { + @Override @SuppressWarnings("unchecked") public T doInHibernate(Session session) throws HibernateException { if (lockMode != null) { @@ -522,14 +527,17 @@ public T doInHibernate(Session session) throws HibernateException { }); } + @Override public Object get(String entityName, Serializable id) throws DataAccessException { return get(entityName, id, null); } + @Override public Object get(final String entityName, final Serializable id, final LockMode lockMode) throws DataAccessException { return executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { if (lockMode != null) { return session.get(entityName, id, lockMode); @@ -541,14 +549,17 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public T load(Class entityClass, Serializable id) throws DataAccessException { return load(entityClass, id, null); } + @Override public T load(final Class entityClass, final Serializable id, final LockMode lockMode) throws DataAccessException { return executeWithNativeSession(new HibernateCallback() { + @Override @SuppressWarnings("unchecked") public T doInHibernate(Session session) throws HibernateException { if (lockMode != null) { @@ -561,14 +572,17 @@ public T doInHibernate(Session session) throws HibernateException { }); } + @Override public Object load(String entityName, Serializable id) throws DataAccessException { return load(entityName, id, null); } + @Override public Object load(final String entityName, final Serializable id, final LockMode lockMode) throws DataAccessException { return executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { if (lockMode != null) { return session.load(entityName, id, lockMode); @@ -580,8 +594,10 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public List loadAll(final Class entityClass) throws DataAccessException { return executeWithNativeSession(new HibernateCallback>() { + @Override @SuppressWarnings("unchecked") public List doInHibernate(Session session) throws HibernateException { Criteria criteria = session.createCriteria(entityClass); @@ -592,8 +608,10 @@ public List doInHibernate(Session session) throws HibernateException { }); } + @Override public void load(final Object entity, final Serializable id) throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { session.load(entity, id); return null; @@ -601,12 +619,15 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public void refresh(final Object entity) throws DataAccessException { refresh(entity, null); } + @Override public void refresh(final Object entity, final LockMode lockMode) throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { if (lockMode != null) { session.refresh(entity, lockMode); @@ -619,16 +640,20 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public boolean contains(final Object entity) throws DataAccessException { return executeWithNativeSession(new HibernateCallback() { + @Override public Boolean doInHibernate(Session session) { return session.contains(entity); } }); } + @Override public void evict(final Object entity) throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { session.evict(entity); return null; @@ -636,6 +661,7 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public void initialize(Object proxy) throws DataAccessException { try { Hibernate.initialize(proxy); @@ -645,6 +671,7 @@ public void initialize(Object proxy) throws DataAccessException { } } + @Override public Filter enableFilter(String filterName) throws IllegalStateException { Session session = SessionFactoryUtils.getSession(getSessionFactory(), false); Filter filter = session.getEnabledFilter(filterName); @@ -659,8 +686,10 @@ public Filter enableFilter(String filterName) throws IllegalStateException { // Convenience methods for storing individual objects //------------------------------------------------------------------------- + @Override public void lock(final Object entity, final LockMode lockMode) throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { session.lock(entity, lockMode); return null; @@ -668,10 +697,12 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public void lock(final String entityName, final Object entity, final LockMode lockMode) throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { session.lock(entityName, entity, lockMode); return null; @@ -679,8 +710,10 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public Serializable save(final Object entity) throws DataAccessException { return executeWithNativeSession(new HibernateCallback() { + @Override public Serializable doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(session); return session.save(entity); @@ -688,8 +721,10 @@ public Serializable doInHibernate(Session session) throws HibernateException { }); } + @Override public Serializable save(final String entityName, final Object entity) throws DataAccessException { return executeWithNativeSession(new HibernateCallback() { + @Override public Serializable doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(session); return session.save(entityName, entity); @@ -697,12 +732,15 @@ public Serializable doInHibernate(Session session) throws HibernateException { }); } + @Override public void update(Object entity) throws DataAccessException { update(entity, null); } + @Override public void update(final Object entity, final LockMode lockMode) throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(session); session.update(entity); @@ -714,14 +752,17 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public void update(String entityName, Object entity) throws DataAccessException { update(entityName, entity, null); } + @Override public void update(final String entityName, final Object entity, final LockMode lockMode) throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(session); session.update(entityName, entity); @@ -733,8 +774,10 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public void saveOrUpdate(final Object entity) throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(session); session.saveOrUpdate(entity); @@ -743,8 +786,10 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public void saveOrUpdate(final String entityName, final Object entity) throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(session); session.saveOrUpdate(entityName, entity); @@ -753,10 +798,12 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public void replicate(final Object entity, final ReplicationMode replicationMode) throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(session); session.replicate(entity, replicationMode); @@ -765,10 +812,12 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public void replicate(final String entityName, final Object entity, final ReplicationMode replicationMode) throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(session); session.replicate(entityName, entity, replicationMode); @@ -777,8 +826,10 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public void persist(final Object entity) throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(session); session.persist(entity); @@ -787,8 +838,10 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public void persist(final String entityName, final Object entity) throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(session); session.persist(entityName, entity); @@ -797,8 +850,10 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public T merge(final T entity) throws DataAccessException { return executeWithNativeSession(new HibernateCallback() { + @Override @SuppressWarnings("unchecked") public T doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(session); @@ -807,8 +862,10 @@ public T doInHibernate(Session session) throws HibernateException { }); } + @Override public T merge(final String entityName, final T entity) throws DataAccessException { return executeWithNativeSession(new HibernateCallback() { + @Override @SuppressWarnings("unchecked") public T doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(session); @@ -817,12 +874,15 @@ public T doInHibernate(Session session) throws HibernateException { }); } + @Override public void delete(Object entity) throws DataAccessException { delete(entity, null); } + @Override public void delete(final Object entity, final LockMode lockMode) throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(session); if (lockMode != null) { @@ -834,14 +894,17 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public void delete(String entityName, Object entity) throws DataAccessException { delete(entityName, entity, null); } + @Override public void delete(final String entityName, final Object entity, final LockMode lockMode) throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(session); if (lockMode != null) { @@ -853,8 +916,10 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public void deleteAll(final Collection entities) throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(session); for (Object entity : entities) { @@ -865,8 +930,10 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public void flush() throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { session.flush(); return null; @@ -874,8 +941,10 @@ public Object doInHibernate(Session session) throws HibernateException { }); } + @Override public void clear() throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) { session.clear(); return null; @@ -888,16 +957,20 @@ public Object doInHibernate(Session session) { // Convenience finder methods for HQL strings //------------------------------------------------------------------------- + @Override public List find(String queryString) throws DataAccessException { return find(queryString, (Object[]) null); } + @Override public List find(String queryString, Object value) throws DataAccessException { return find(queryString, new Object[] {value}); } + @Override public List find(final String queryString, final Object... values) throws DataAccessException { return executeWithNativeSession(new HibernateCallback() { + @Override public List doInHibernate(Session session) throws HibernateException { Query queryObject = session.createQuery(queryString); prepareQuery(queryObject); @@ -911,12 +984,14 @@ public List doInHibernate(Session session) throws HibernateException { }); } + @Override public List findByNamedParam(String queryString, String paramName, Object value) throws DataAccessException { return findByNamedParam(queryString, new String[] {paramName}, new Object[] {value}); } + @Override public List findByNamedParam(final String queryString, final String[] paramNames, final Object[] values) throws DataAccessException { @@ -924,6 +999,7 @@ public List findByNamedParam(final String queryString, final String[] paramNames throw new IllegalArgumentException("Length of paramNames array must match length of values array"); } return executeWithNativeSession(new HibernateCallback() { + @Override public List doInHibernate(Session session) throws HibernateException { Query queryObject = session.createQuery(queryString); prepareQuery(queryObject); @@ -937,10 +1013,12 @@ public List doInHibernate(Session session) throws HibernateException { }); } + @Override public List findByValueBean(final String queryString, final Object valueBean) throws DataAccessException { return executeWithNativeSession(new HibernateCallback() { + @Override public List doInHibernate(Session session) throws HibernateException { Query queryObject = session.createQuery(queryString); prepareQuery(queryObject); @@ -955,16 +1033,20 @@ public List doInHibernate(Session session) throws HibernateException { // Convenience finder methods for named queries //------------------------------------------------------------------------- + @Override public List findByNamedQuery(String queryName) throws DataAccessException { return findByNamedQuery(queryName, (Object[]) null); } + @Override public List findByNamedQuery(String queryName, Object value) throws DataAccessException { return findByNamedQuery(queryName, new Object[] {value}); } + @Override public List findByNamedQuery(final String queryName, final Object... values) throws DataAccessException { return executeWithNativeSession(new HibernateCallback() { + @Override public List doInHibernate(Session session) throws HibernateException { Query queryObject = session.getNamedQuery(queryName); prepareQuery(queryObject); @@ -978,12 +1060,14 @@ public List doInHibernate(Session session) throws HibernateException { }); } + @Override public List findByNamedQueryAndNamedParam(String queryName, String paramName, Object value) throws DataAccessException { return findByNamedQueryAndNamedParam(queryName, new String[] {paramName}, new Object[] {value}); } + @Override public List findByNamedQueryAndNamedParam( final String queryName, final String[] paramNames, final Object[] values) throws DataAccessException { @@ -992,6 +1076,7 @@ public List findByNamedQueryAndNamedParam( throw new IllegalArgumentException("Length of paramNames array must match length of values array"); } return executeWithNativeSession(new HibernateCallback() { + @Override public List doInHibernate(Session session) throws HibernateException { Query queryObject = session.getNamedQuery(queryName); prepareQuery(queryObject); @@ -1005,10 +1090,12 @@ public List doInHibernate(Session session) throws HibernateException { }); } + @Override public List findByNamedQueryAndValueBean(final String queryName, final Object valueBean) throws DataAccessException { return executeWithNativeSession(new HibernateCallback() { + @Override public List doInHibernate(Session session) throws HibernateException { Query queryObject = session.getNamedQuery(queryName); prepareQuery(queryObject); @@ -1023,15 +1110,18 @@ public List doInHibernate(Session session) throws HibernateException { // Convenience finder methods for detached criteria //------------------------------------------------------------------------- + @Override public List findByCriteria(DetachedCriteria criteria) throws DataAccessException { return findByCriteria(criteria, -1, -1); } + @Override public List findByCriteria(final DetachedCriteria criteria, final int firstResult, final int maxResults) throws DataAccessException { Assert.notNull(criteria, "DetachedCriteria must not be null"); return executeWithNativeSession(new HibernateCallback() { + @Override public List doInHibernate(Session session) throws HibernateException { Criteria executableCriteria = criteria.getExecutableCriteria(session); prepareCriteria(executableCriteria); @@ -1046,24 +1136,29 @@ public List doInHibernate(Session session) throws HibernateException { }); } + @Override public List findByExample(Object exampleEntity) throws DataAccessException { return findByExample(null, exampleEntity, -1, -1); } + @Override public List findByExample(String entityName, Object exampleEntity) throws DataAccessException { return findByExample(entityName, exampleEntity, -1, -1); } + @Override public List findByExample(Object exampleEntity, int firstResult, int maxResults) throws DataAccessException { return findByExample(null, exampleEntity, firstResult, maxResults); } + @Override public List findByExample( final String entityName, final Object exampleEntity, final int firstResult, final int maxResults) throws DataAccessException { Assert.notNull(exampleEntity, "Example entity must not be null"); return executeWithNativeSession(new HibernateCallback() { + @Override public List doInHibernate(Session session) throws HibernateException { Criteria executableCriteria = (entityName != null ? session.createCriteria(entityName) : session.createCriteria(exampleEntity.getClass())); @@ -1085,16 +1180,20 @@ public List doInHibernate(Session session) throws HibernateException { // Convenience query methods for iteration and bulk updates/deletes //------------------------------------------------------------------------- + @Override public Iterator iterate(String queryString) throws DataAccessException { return iterate(queryString, (Object[]) null); } + @Override public Iterator iterate(String queryString, Object value) throws DataAccessException { return iterate(queryString, new Object[] {value}); } + @Override public Iterator iterate(final String queryString, final Object... values) throws DataAccessException { return executeWithNativeSession(new HibernateCallback() { + @Override public Iterator doInHibernate(Session session) throws HibernateException { Query queryObject = session.createQuery(queryString); prepareQuery(queryObject); @@ -1108,6 +1207,7 @@ public Iterator doInHibernate(Session session) throws HibernateException { }); } + @Override public void closeIterator(Iterator it) throws DataAccessException { try { Hibernate.close(it); @@ -1117,16 +1217,20 @@ public void closeIterator(Iterator it) throws DataAccessException { } } + @Override public int bulkUpdate(String queryString) throws DataAccessException { return bulkUpdate(queryString, (Object[]) null); } + @Override public int bulkUpdate(String queryString, Object value) throws DataAccessException { return bulkUpdate(queryString, new Object[] {value}); } + @Override public int bulkUpdate(final String queryString, final Object... values) throws DataAccessException { return executeWithNativeSession(new HibernateCallback() { + @Override public Integer doInHibernate(Session session) throws HibernateException { Query queryObject = session.createQuery(queryString); prepareQuery(queryObject); @@ -1249,6 +1353,7 @@ public CloseSuppressingInvocationHandler(Session target) { this.target = target; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on Session interface coming in... diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateTransactionManager.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateTransactionManager.java index 90c9eb1d4baa..3e30dd8519bb 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateTransactionManager.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/HibernateTransactionManager.java @@ -395,10 +395,12 @@ public SQLExceptionTranslator getJdbcExceptionTranslator() { * bean names. It does not need to be set for any other mode of operation. * @see #setEntityInterceptorBeanName */ + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } + @Override public void afterPropertiesSet() { if (getSessionFactory() == null) { throw new IllegalArgumentException("Property 'sessionFactory' is required"); @@ -422,6 +424,7 @@ public void afterPropertiesSet() { } + @Override public Object getResourceFactory() { return getSessionFactory(); } @@ -882,6 +885,7 @@ public void setRollbackOnly() { } } + @Override public boolean isRollbackOnly() { return this.sessionHolder.isRollbackOnly() || (hasConnectionHolder() && getConnectionHolder().isRollbackOnly()); diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalDataSourceConnectionProvider.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalDataSourceConnectionProvider.java index 43d4264ff8f5..17c2312b1dd1 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalDataSourceConnectionProvider.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalDataSourceConnectionProvider.java @@ -44,6 +44,7 @@ public class LocalDataSourceConnectionProvider implements ConnectionProvider { private DataSource dataSourceToUse; + @Override public void configure(Properties props) throws HibernateException { this.dataSource = LocalSessionFactoryBean.getConfigTimeDataSource(); // absolutely needs thread-bound DataSource to initialize @@ -78,6 +79,7 @@ public DataSource getDataSource() { * This implementation delegates to the underlying DataSource. * @see javax.sql.DataSource#getConnection() */ + @Override public Connection getConnection() throws SQLException { try { return this.dataSourceToUse.getConnection(); @@ -92,6 +94,7 @@ public Connection getConnection() throws SQLException { * This implementation calls {@link DataSourceUtils#doCloseConnection}, * checking against a {@link org.springframework.jdbc.datasource.SmartDataSource}. */ + @Override public void closeConnection(Connection con) throws SQLException { try { DataSourceUtils.doCloseConnection(con, this.dataSourceToUse); @@ -106,6 +109,7 @@ public void closeConnection(Connection con) throws SQLException { * This implementation does nothing: * We're dealing with an externally managed DataSource. */ + @Override public void close() { } @@ -114,6 +118,7 @@ public void close() { * to receive the same Connection within a transaction, not even when * dealing with a JNDI DataSource. */ + @Override public boolean supportsAggressiveRelease() { return false; } diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalRegionFactoryProxy.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalRegionFactoryProxy.java index 02f4bca84c5e..b23952bcc1ba 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalRegionFactoryProxy.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalRegionFactoryProxy.java @@ -67,44 +67,53 @@ public LocalRegionFactoryProxy(Properties properties) { } + @Override public void start(Settings settings, Properties properties) throws CacheException { this.regionFactory.start(settings, properties); } + @Override public void stop() { this.regionFactory.stop(); } + @Override public boolean isMinimalPutsEnabledByDefault() { return this.regionFactory.isMinimalPutsEnabledByDefault(); } + @Override public AccessType getDefaultAccessType() { return this.regionFactory.getDefaultAccessType(); } + @Override public long nextTimestamp() { return this.regionFactory.nextTimestamp(); } + @Override public EntityRegion buildEntityRegion(String regionName, Properties properties, CacheDataDescription metadata) throws CacheException { return this.regionFactory.buildEntityRegion(regionName, properties, metadata); } + @Override public CollectionRegion buildCollectionRegion(String regionName, Properties properties, CacheDataDescription metadata) throws CacheException { return this.regionFactory.buildCollectionRegion(regionName, properties, metadata); } + @Override public QueryResultsRegion buildQueryResultsRegion(String regionName, Properties properties) throws CacheException { return this.regionFactory.buildQueryResultsRegion(regionName, properties); } + @Override public TimestampsRegion buildTimestampsRegion(String regionName, Properties properties) throws CacheException { diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalSessionFactoryBean.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalSessionFactoryBean.java index eb1fc0103e89..bc99406ff0c3 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalSessionFactoryBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalSessionFactoryBean.java @@ -506,6 +506,7 @@ public void setSchemaUpdate(boolean schemaUpdate) { this.schemaUpdate = schemaUpdate; } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } @@ -882,6 +883,7 @@ public void updateDatabaseSchema() throws DataAccessException { hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_NEVER); hibernateTemplate.execute( new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException, SQLException { @SuppressWarnings("deprecation") Connection con = session.connection(); @@ -927,6 +929,7 @@ public void validateDatabaseSchema() throws DataAccessException { hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_NEVER); hibernateTemplate.execute( new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException, SQLException { @SuppressWarnings("deprecation") Connection con = session.connection(); @@ -964,6 +967,7 @@ public void dropDatabaseSchema() throws DataAccessException { HibernateTemplate hibernateTemplate = new HibernateTemplate(sessionFactory); hibernateTemplate.execute( new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException, SQLException { @SuppressWarnings("deprecation") Connection con = session.connection(); @@ -1001,6 +1005,7 @@ public void createDatabaseSchema() throws DataAccessException { HibernateTemplate hibernateTemplate = new HibernateTemplate(sessionFactory); hibernateTemplate.execute( new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException, SQLException { @SuppressWarnings("deprecation") Connection con = session.connection(); diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalTransactionManagerLookup.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalTransactionManagerLookup.java index 2b46f7ef841f..37781de5a062 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalTransactionManagerLookup.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalTransactionManagerLookup.java @@ -58,14 +58,17 @@ public LocalTransactionManagerLookup() { this.transactionManager = tm; } + @Override public TransactionManager getTransactionManager(Properties props) { return this.transactionManager; } + @Override public String getUserTransactionName() { return null; } + @Override public Object getTransactionIdentifier(Transaction transaction) { return transaction; } diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/SpringSessionContext.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/SpringSessionContext.java index 0254d3cce58e..0e33b324586b 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/SpringSessionContext.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/SpringSessionContext.java @@ -56,6 +56,7 @@ public SpringSessionContext(SessionFactoryImplementor sessionFactory) { /** * Retrieve the Spring-managed Session for the current thread, if any. */ + @Override public Session currentSession() throws HibernateException { try { return (org.hibernate.classic.Session) SessionFactoryUtils.doGetSession(this.sessionFactory, false); diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/SpringSessionSynchronization.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/SpringSessionSynchronization.java index 88b80e167f43..28acc3b604f9 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/SpringSessionSynchronization.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/SpringSessionSynchronization.java @@ -106,10 +106,12 @@ private Session getCurrentSession() { } + @Override public int getOrder() { return SessionFactoryUtils.SESSION_SYNCHRONIZATION_ORDER; } + @Override public void suspend() { if (this.holderActive) { TransactionSynchronizationManager.unbindResource(this.sessionFactory); @@ -118,12 +120,14 @@ public void suspend() { } } + @Override public void resume() { if (this.holderActive) { TransactionSynchronizationManager.bindResource(this.sessionFactory, this.sessionHolder); } } + @Override public void flush() { try { SessionFactoryUtils.logger.debug("Flushing Hibernate Session on explicit request"); @@ -134,6 +138,7 @@ public void flush() { } } + @Override public void beforeCommit(boolean readOnly) throws DataAccessException { if (!readOnly) { Session session = getCurrentSession(); @@ -160,6 +165,7 @@ private DataAccessException translateException(HibernateException ex) { return SessionFactoryUtils.convertHibernateAccessException(ex); } + @Override public void beforeCompletion() { if (this.jtaTransaction != null) { // Typically in case of a suspended JTA transaction: @@ -214,9 +220,11 @@ public void beforeCompletion() { } } + @Override public void afterCommit() { } + @Override public void afterCompletion(int status) { try { if (!this.hibernateTransactionCompletion || !this.newSession) { diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/SpringTransactionFactory.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/SpringTransactionFactory.java index 8fa1e9403478..c0258c7a5fe4 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/SpringTransactionFactory.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/SpringTransactionFactory.java @@ -46,25 +46,31 @@ public class SpringTransactionFactory implements TransactionFactory { * However, for Spring's resource management (in particular for * HibernateTransactionManager), "on_close" is the better default. */ + @Override public ConnectionReleaseMode getDefaultReleaseMode() { return ConnectionReleaseMode.ON_CLOSE; } + @Override public Transaction createTransaction(JDBCContext jdbcContext, Context transactionContext) { return new JDBCTransaction(jdbcContext, transactionContext); } + @Override public void configure(Properties props) { } + @Override public boolean isTransactionManagerRequired() { return false; } + @Override public boolean areCallbacksLocalToHibernateTransactions() { return true; } + @Override public boolean isTransactionInProgress( JDBCContext jdbcContext, Context transactionContext, Transaction transaction) { diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/TypeDefinitionBean.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/TypeDefinitionBean.java index d478d6aa9795..9b448402b05a 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/TypeDefinitionBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/TypeDefinitionBean.java @@ -111,12 +111,14 @@ public Properties getParameters() { * the TypeDefinitionBean will be used. * @see #setTypeName */ + @Override public void setBeanName(String name) { if (this.typeName == null) { this.typeName = name; } } + @Override public void afterPropertiesSet() { if (this.typeName == null) { throw new IllegalArgumentException("typeName is required"); diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/annotation/AnnotationSessionFactoryBean.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/annotation/AnnotationSessionFactoryBean.java index 469cd0327b3e..9a281edc0fee 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/annotation/AnnotationSessionFactoryBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/annotation/AnnotationSessionFactoryBean.java @@ -137,6 +137,7 @@ public void setEntityTypeFilters(TypeFilter[] entityTypeFilters) { this.entityTypeFilters = entityTypeFilters; } + @Override public void setResourceLoader(ResourceLoader resourceLoader) { this.resourcePatternResolver = ResourcePatternUtils.getResourcePatternResolver(resourceLoader); } diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/AbstractLobType.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/AbstractLobType.java index e30f1e1f1c3f..58bea92d6a1d 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/AbstractLobType.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/AbstractLobType.java @@ -87,6 +87,7 @@ protected AbstractLobType(LobHandler lobHandler, TransactionManager jtaTransacti /** * This implementation returns false. */ + @Override public boolean isMutable() { return false; } @@ -95,6 +96,7 @@ public boolean isMutable() { * This implementation delegates to the Hibernate EqualsHelper. * @see org.hibernate.util.EqualsHelper#equals */ + @Override public boolean equals(Object x, Object y) throws HibernateException { return EqualsHelper.equals(x, y); } @@ -102,6 +104,7 @@ public boolean equals(Object x, Object y) throws HibernateException { /** * This implementation returns the hashCode of the given objectz. */ + @Override public int hashCode(Object x) throws HibernateException { return x.hashCode(); } @@ -109,6 +112,7 @@ public int hashCode(Object x) throws HibernateException { /** * This implementation returns the passed-in value as-is. */ + @Override public Object deepCopy(Object value) throws HibernateException { return value; } @@ -116,6 +120,7 @@ public Object deepCopy(Object value) throws HibernateException { /** * This implementation returns the passed-in value as-is. */ + @Override public Serializable disassemble(Object value) throws HibernateException { return (Serializable) value; } @@ -123,6 +128,7 @@ public Serializable disassemble(Object value) throws HibernateException { /** * This implementation returns the passed-in value as-is. */ + @Override public Object assemble(Serializable cached, Object owner) throws HibernateException { return cached; } @@ -130,6 +136,7 @@ public Object assemble(Serializable cached, Object owner) throws HibernateExcept /** * This implementation returns the passed-in original as-is. */ + @Override public Object replace(Object original, Object target, Object owner) throws HibernateException { return original; } @@ -140,6 +147,7 @@ public Object replace(Object original, Object target, Object owner) throws Hiber * passing in the LobHandler of this type. * @see #nullSafeGetInternal */ + @Override public final Object nullSafeGet(ResultSet rs, String[] names, Object owner) throws HibernateException, SQLException { @@ -162,6 +170,7 @@ public final Object nullSafeGet(ResultSet rs, String[] names, Object owner) * LobHandler of this type. * @see #nullSafeSetInternal */ + @Override public final void nullSafeSet(PreparedStatement st, Object value, int index) throws HibernateException, SQLException { diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/BlobByteArrayType.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/BlobByteArrayType.java index bdfaf07bd7d9..a29ddc8068c3 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/BlobByteArrayType.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/BlobByteArrayType.java @@ -60,10 +60,12 @@ protected BlobByteArrayType(LobHandler lobHandler, TransactionManager jtaTransac super(lobHandler, jtaTransactionManager); } + @Override public int[] sqlTypes() { return new int[] {Types.BLOB}; } + @Override public Class returnedClass() { return byte[].class; } diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/BlobSerializableType.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/BlobSerializableType.java index ddcf4f510857..3b560b94f383 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/BlobSerializableType.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/BlobSerializableType.java @@ -76,10 +76,12 @@ protected BlobSerializableType(LobHandler lobHandler, TransactionManager jtaTran super(lobHandler, jtaTransactionManager); } + @Override public int[] sqlTypes() { return new int[] {Types.BLOB}; } + @Override public Class returnedClass() { return Serializable.class; } diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/BlobStringType.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/BlobStringType.java index 3066382286d2..5f00c63ba461 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/BlobStringType.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/BlobStringType.java @@ -66,10 +66,12 @@ protected BlobStringType(LobHandler lobHandler, TransactionManager jtaTransactio super(lobHandler, jtaTransactionManager); } + @Override public int[] sqlTypes() { return new int[] {Types.BLOB}; } + @Override public Class returnedClass() { return String.class; } diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/ClobStringType.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/ClobStringType.java index bef035c6f7ef..97814b3fd74b 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/ClobStringType.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/ClobStringType.java @@ -62,10 +62,12 @@ protected ClobStringType(LobHandler lobHandler, TransactionManager jtaTransactio super(lobHandler, jtaTransactionManager); } + @Override public int[] sqlTypes() { return new int[] {Types.CLOB}; } + @Override public Class returnedClass() { return String.class; } diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/OpenSessionInViewInterceptor.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/OpenSessionInViewInterceptor.java index 692db0ba20db..9daf211d5034 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/OpenSessionInViewInterceptor.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/support/OpenSessionInViewInterceptor.java @@ -144,6 +144,7 @@ protected boolean isSingleSession() { * {@link TransactionSynchronizationManager}. * @see org.springframework.orm.hibernate3.SessionFactoryUtils#getSession */ + @Override public void preHandle(WebRequest request) throws DataAccessException { WebAsyncManager asyncManager = WebAsyncUtils.getAsyncManager(request); @@ -189,6 +190,7 @@ public void preHandle(WebRequest request) throws DataAccessException { * assuming that service layer transactions have flushed their changes on commit. * @see #setFlushMode */ + @Override public void postHandle(WebRequest request, ModelMap model) throws DataAccessException { if (isSingleSession()) { // Only potentially flush in single session mode. @@ -210,6 +212,7 @@ public void postHandle(WebRequest request, ModelMap model) throws DataAccessExce * been opened during the current request (in deferred close mode). * @see org.springframework.transaction.support.TransactionSynchronizationManager */ + @Override public void afterCompletion(WebRequest request, Exception ex) throws DataAccessException { if (!decrementParticipateCount(request)) { if (isSingleSession()) { @@ -226,6 +229,7 @@ public void afterCompletion(WebRequest request, Exception ex) throws DataAccessE } } + @Override public void afterConcurrentHandlingStarted(WebRequest request) { if (!decrementParticipateCount(request)) { if (isSingleSession()) { diff --git a/spring-orm/src/main/java/org/springframework/orm/jdo/DefaultJdoDialect.java b/spring-orm/src/main/java/org/springframework/orm/jdo/DefaultJdoDialect.java index a7fd96514571..279b5aeb703a 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jdo/DefaultJdoDialect.java +++ b/spring-orm/src/main/java/org/springframework/orm/jdo/DefaultJdoDialect.java @@ -112,6 +112,7 @@ public SQLExceptionTranslator getJdbcExceptionTranslator() { * @see javax.jdo.Transaction#begin * @see org.springframework.transaction.InvalidIsolationLevelException */ + @Override public Object beginTransaction(Transaction transaction, TransactionDefinition definition) throws JDOException, SQLException, TransactionException { @@ -155,6 +156,7 @@ protected String getJdoIsolationLevel(TransactionDefinition definition) { * does not require any cleanup. * @see #beginTransaction */ + @Override public void cleanupTransaction(Object transactionData) { } @@ -175,6 +177,7 @@ public void cleanupTransaction(Object transactionData) { * @see org.springframework.jdbc.support.nativejdbc.NativeJdbcExtractor * @see org.springframework.jdbc.datasource.DataSourceUtils#releaseConnection */ + @Override public ConnectionHandle getJdbcConnection(PersistenceManager pm, boolean readOnly) throws JDOException, SQLException { @@ -189,6 +192,7 @@ public ConnectionHandle getJdbcConnection(PersistenceManager pm, boolean readOnl * {@code Connection.close} here. * @see java.sql.Connection#close() */ + @Override public void releaseJdbcConnection(ConnectionHandle conHandle, PersistenceManager pm) throws JDOException, SQLException { } @@ -206,6 +210,7 @@ public void releaseJdbcConnection(ConnectionHandle conHandle, PersistenceManager * @see org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor * @see #translateException */ + @Override public DataAccessException translateExceptionIfPossible(RuntimeException ex) { if (ex instanceof JDOException) { return translateException((JDOException) ex); @@ -217,6 +222,7 @@ public DataAccessException translateExceptionIfPossible(RuntimeException ex) { * This implementation delegates to PersistenceManagerFactoryUtils. * @see PersistenceManagerFactoryUtils#convertJdoAccessException */ + @Override public DataAccessException translateException(JDOException ex) { if (getJdbcExceptionTranslator() != null && ex.getCause() instanceof SQLException) { return getJdbcExceptionTranslator().translate("JDO operation: " + ex.getMessage(), @@ -252,10 +258,12 @@ public DataStoreConnectionHandle(PersistenceManager persistenceManager) { this.persistenceManager = persistenceManager; } + @Override public Connection getConnection() { return (Connection) this.persistenceManager.getDataStoreConnection(); } + @Override public void releaseConnection(Connection con) { JdbcUtils.closeConnection(con); } diff --git a/spring-orm/src/main/java/org/springframework/orm/jdo/JdoTransactionManager.java b/spring-orm/src/main/java/org/springframework/orm/jdo/JdoTransactionManager.java index 310319e39196..f2086038cafa 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jdo/JdoTransactionManager.java +++ b/spring-orm/src/main/java/org/springframework/orm/jdo/JdoTransactionManager.java @@ -231,6 +231,7 @@ public JdoDialect getJdoDialect() { * for the specified PersistenceManagerFactory if none set. * Auto-detect the PersistenceManagerFactory's DataSource, if any. */ + @Override public void afterPropertiesSet() { if (getPersistenceManagerFactory() == null) { throw new IllegalArgumentException("Property 'persistenceManagerFactory' is required"); @@ -255,6 +256,7 @@ public void afterPropertiesSet() { } + @Override public Object getResourceFactory() { return getPersistenceManagerFactory(); } @@ -570,11 +572,13 @@ public void setRollbackOnly() { } } + @Override public boolean isRollbackOnly() { Transaction tx = this.persistenceManagerHolder.getPersistenceManager().currentTransaction(); return tx.getRollbackOnly(); } + @Override public void flush() { try { this.persistenceManagerHolder.getPersistenceManager().flush(); diff --git a/spring-orm/src/main/java/org/springframework/orm/jdo/LocalPersistenceManagerFactoryBean.java b/spring-orm/src/main/java/org/springframework/orm/jdo/LocalPersistenceManagerFactoryBean.java index a4e2817adae0..5010a81200ae 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jdo/LocalPersistenceManagerFactoryBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/jdo/LocalPersistenceManagerFactoryBean.java @@ -195,6 +195,7 @@ public void setJdoDialect(JdoDialect jdoDialect) { this.jdoDialect = jdoDialect; } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } @@ -206,6 +207,7 @@ public void setBeanClassLoader(ClassLoader beanClassLoader) { * @throws IOException if the properties could not be loaded from the given location * @throws JDOException in case of JDO initialization errors */ + @Override public void afterPropertiesSet() throws IllegalArgumentException, IOException, JDOException { if (this.persistenceManagerFactoryName != null) { if (this.configLocation != null || !this.jdoPropertyMap.isEmpty()) { @@ -274,15 +276,18 @@ protected PersistenceManagerFactory newPersistenceManagerFactory(Map props) { /** * Return the singleton PersistenceManagerFactory. */ + @Override public PersistenceManagerFactory getObject() { return this.persistenceManagerFactory; } + @Override public Class getObjectType() { return (this.persistenceManagerFactory != null ? this.persistenceManagerFactory.getClass() : PersistenceManagerFactory.class); } + @Override public boolean isSingleton() { return true; } @@ -297,6 +302,7 @@ public boolean isSingleton() { * @see JdoDialect#translateException * @see PersistenceManagerFactoryUtils#convertJdoAccessException */ + @Override public DataAccessException translateExceptionIfPossible(RuntimeException ex) { if (ex instanceof JDOException) { if (this.jdoDialect != null) { @@ -313,6 +319,7 @@ public DataAccessException translateExceptionIfPossible(RuntimeException ex) { /** * Close the PersistenceManagerFactory on bean factory shutdown. */ + @Override public void destroy() { logger.info("Closing JDO PersistenceManagerFactory"); this.persistenceManagerFactory.close(); diff --git a/spring-orm/src/main/java/org/springframework/orm/jdo/PersistenceManagerFactoryUtils.java b/spring-orm/src/main/java/org/springframework/orm/jdo/PersistenceManagerFactoryUtils.java index 5c4533e4954d..51be19d277a5 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jdo/PersistenceManagerFactoryUtils.java +++ b/spring-orm/src/main/java/org/springframework/orm/jdo/PersistenceManagerFactoryUtils.java @@ -300,6 +300,7 @@ public PersistenceManagerSynchronization( this.newPersistenceManager = newPersistenceManager; } + @Override public int getOrder() { return PERSISTENCE_MANAGER_SYNCHRONIZATION_ORDER; } diff --git a/spring-orm/src/main/java/org/springframework/orm/jdo/TransactionAwarePersistenceManagerFactoryProxy.java b/spring-orm/src/main/java/org/springframework/orm/jdo/TransactionAwarePersistenceManagerFactoryProxy.java index 0fd044619c26..249885b536b0 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jdo/TransactionAwarePersistenceManagerFactoryProxy.java +++ b/spring-orm/src/main/java/org/springframework/orm/jdo/TransactionAwarePersistenceManagerFactoryProxy.java @@ -116,14 +116,17 @@ protected boolean isAllowCreate() { } + @Override public PersistenceManagerFactory getObject() { return this.proxy; } + @Override public Class getObjectType() { return PersistenceManagerFactory.class; } + @Override public boolean isSingleton() { return true; } @@ -136,6 +139,7 @@ public boolean isSingleton() { */ private class PersistenceManagerFactoryInvocationHandler implements InvocationHandler { + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on PersistenceManagerFactory interface coming in... @@ -182,6 +186,7 @@ public PersistenceManagerInvocationHandler(PersistenceManager target, Persistenc this.persistenceManagerFactory = pmf; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on PersistenceManager interface coming in... diff --git a/spring-orm/src/main/java/org/springframework/orm/jdo/support/OpenPersistenceManagerInViewInterceptor.java b/spring-orm/src/main/java/org/springframework/orm/jdo/support/OpenPersistenceManagerInViewInterceptor.java index acb7b2479434..2f73c637d67b 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jdo/support/OpenPersistenceManagerInViewInterceptor.java +++ b/spring-orm/src/main/java/org/springframework/orm/jdo/support/OpenPersistenceManagerInViewInterceptor.java @@ -86,6 +86,7 @@ public PersistenceManagerFactory getPersistenceManagerFactory() { } + @Override public void preHandle(WebRequest request) throws DataAccessException { if (TransactionSynchronizationManager.hasResource(getPersistenceManagerFactory())) { // Do not modify the PersistenceManager: just mark the request accordingly. @@ -103,9 +104,11 @@ public void preHandle(WebRequest request) throws DataAccessException { } } + @Override public void postHandle(WebRequest request, ModelMap model) { } + @Override public void afterCompletion(WebRequest request, Exception ex) throws DataAccessException { String participateAttributeName = getParticipateAttributeName(); Integer count = (Integer) request.getAttribute(participateAttributeName, WebRequest.SCOPE_REQUEST); diff --git a/spring-orm/src/main/java/org/springframework/orm/jdo/support/SpringPersistenceManagerProxyBean.java b/spring-orm/src/main/java/org/springframework/orm/jdo/support/SpringPersistenceManagerProxyBean.java index ce529d1c10f0..c4e03c11ccbf 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jdo/support/SpringPersistenceManagerProxyBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/jdo/support/SpringPersistenceManagerProxyBean.java @@ -141,6 +141,7 @@ protected boolean isAllowCreate() { return this.allowCreate; } + @Override public void afterPropertiesSet() { if (getPersistenceManagerFactory() == null) { throw new IllegalArgumentException("Property 'persistenceManagerFactory' is required"); @@ -155,14 +156,17 @@ public void afterPropertiesSet() { } + @Override public PersistenceManager getObject() { return this.proxy; } + @Override public Class getObjectType() { return getPersistenceManagerInterface(); } + @Override public boolean isSingleton() { return true; } @@ -174,6 +178,7 @@ public boolean isSingleton() { */ private class PersistenceManagerInvocationHandler implements InvocationHandler { + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on PersistenceManager interface coming in... diff --git a/spring-orm/src/main/java/org/springframework/orm/jdo/support/StandardPersistenceManagerProxyBean.java b/spring-orm/src/main/java/org/springframework/orm/jdo/support/StandardPersistenceManagerProxyBean.java index 6f3adae8dfc0..b3d61598c22a 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jdo/support/StandardPersistenceManagerProxyBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/jdo/support/StandardPersistenceManagerProxyBean.java @@ -55,14 +55,17 @@ public void setPersistenceManagerFactory(PersistenceManagerFactory pmf) { } + @Override public PersistenceManager getObject() { return this.proxy; } + @Override public Class getObjectType() { return (this.proxy != null ? this.proxy.getClass() : PersistenceManager.class); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/AbstractEntityManagerFactoryBean.java b/spring-orm/src/main/java/org/springframework/orm/jpa/AbstractEntityManagerFactoryBean.java index d7c8270a1c0b..e1e41aedfeb8 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/AbstractEntityManagerFactoryBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/AbstractEntityManagerFactoryBean.java @@ -140,6 +140,7 @@ public void setPersistenceProvider(PersistenceProvider persistenceProvider) { this.persistenceProvider = persistenceProvider; } + @Override public PersistenceProvider getPersistenceProvider() { return this.persistenceProvider; } @@ -155,6 +156,7 @@ public void setPersistenceUnitName(String persistenceUnitName) { this.persistenceUnitName = persistenceUnitName; } + @Override public String getPersistenceUnitName() { return this.persistenceUnitName; } @@ -221,6 +223,7 @@ public void setEntityManagerInterface(Class emInterface this.entityManagerInterface = emInterface; } + @Override public Class getEntityManagerInterface() { return this.entityManagerInterface; } @@ -236,6 +239,7 @@ public void setJpaDialect(JpaDialect jpaDialect) { this.jpaDialect = jpaDialect; } + @Override public JpaDialect getJpaDialect() { return this.jpaDialect; } @@ -258,23 +262,28 @@ public JpaVendorAdapter getJpaVendorAdapter() { return this.jpaVendorAdapter; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public ClassLoader getBeanClassLoader() { return this.beanClassLoader; } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } + @Override public void setBeanName(String name) { this.beanName = name; } + @Override public final void afterPropertiesSet() throws PersistenceException { if (this.jpaVendorAdapter != null) { if (this.persistenceProvider == null) { @@ -402,19 +411,23 @@ else if (method.getName().equals("createEntityManager") && args != null && args. * @see JpaDialect#translateExceptionIfPossible * @see EntityManagerFactoryUtils#convertJpaAccessExceptionIfPossible */ + @Override public DataAccessException translateExceptionIfPossible(RuntimeException ex) { return (this.jpaDialect != null ? this.jpaDialect.translateExceptionIfPossible(ex) : EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(ex)); } + @Override public EntityManagerFactory getNativeEntityManagerFactory() { return this.nativeEntityManagerFactory; } + @Override public PersistenceUnitInfo getPersistenceUnitInfo() { return null; } + @Override public DataSource getDataSource() { return null; } @@ -423,14 +436,17 @@ public DataSource getDataSource() { /** * Return the singleton EntityManagerFactory. */ + @Override public EntityManagerFactory getObject() { return this.entityManagerFactory; } + @Override public Class getObjectType() { return (this.entityManagerFactory != null ? this.entityManagerFactory.getClass() : EntityManagerFactory.class); } + @Override public boolean isSingleton() { return true; } @@ -439,6 +455,7 @@ public boolean isSingleton() { /** * Close the EntityManagerFactory on bean factory shutdown. */ + @Override public void destroy() { if (logger.isInfoEnabled()) { logger.info("Closing JPA EntityManagerFactory for persistence unit '" + getPersistenceUnitName() + "'"); @@ -502,6 +519,7 @@ public ManagedEntityManagerFactoryInvocationHandler(AbstractEntityManagerFactory this.entityManagerFactoryBean = emfb; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { if (method.getName().equals("equals")) { diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/DefaultJpaDialect.java b/spring-orm/src/main/java/org/springframework/orm/jpa/DefaultJpaDialect.java index 1a8f6919152f..39d0898ba305 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/DefaultJpaDialect.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/DefaultJpaDialect.java @@ -55,6 +55,7 @@ public class DefaultJpaDialect implements JpaDialect, Serializable { * @see org.springframework.transaction.InvalidIsolationLevelException * @see #cleanupTransaction */ + @Override public Object beginTransaction(EntityManager entityManager, TransactionDefinition definition) throws PersistenceException, SQLException, TransactionException { @@ -67,6 +68,7 @@ public Object beginTransaction(EntityManager entityManager, TransactionDefinitio return null; } + @Override public Object prepareTransaction(EntityManager entityManager, boolean readOnly, String name) throws PersistenceException { @@ -78,6 +80,7 @@ public Object prepareTransaction(EntityManager entityManager, boolean readOnly, * implementation does not require any cleanup. * @see #beginTransaction */ + @Override public void cleanupTransaction(Object transactionData) { } @@ -85,6 +88,7 @@ public void cleanupTransaction(Object transactionData) { * This implementation always returns {@code null}, * indicating that no JDBC Connection can be provided. */ + @Override public ConnectionHandle getJdbcConnection(EntityManager entityManager, boolean readOnly) throws PersistenceException, SQLException { @@ -99,6 +103,7 @@ public ConnectionHandle getJdbcConnection(EntityManager entityManager, boolean r * {@code Connection.close()} (or some other method with similar effect) here. * @see java.sql.Connection#close() */ + @Override public void releaseJdbcConnection(ConnectionHandle conHandle, EntityManager em) throws PersistenceException, SQLException { } @@ -112,6 +117,7 @@ public void releaseJdbcConnection(ConnectionHandle conHandle, EntityManager em) * This implementation delegates to EntityManagerFactoryUtils. * @see EntityManagerFactoryUtils#convertJpaAccessExceptionIfPossible */ + @Override public DataAccessException translateExceptionIfPossible(RuntimeException ex) { return EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(ex); } diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/EntityManagerFactoryAccessor.java b/spring-orm/src/main/java/org/springframework/orm/jpa/EntityManagerFactoryAccessor.java index e5463d6d2726..dba34467c9e1 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/EntityManagerFactoryAccessor.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/EntityManagerFactoryAccessor.java @@ -126,6 +126,7 @@ public Map getJpaPropertyMap() { * Falls back to a default EntityManagerFactory bean if no persistence unit specified. * @see #setPersistenceUnitName */ + @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { if (getEntityManagerFactory() == null) { if (!(beanFactory instanceof ListableBeanFactory)) { diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/EntityManagerFactoryUtils.java b/spring-orm/src/main/java/org/springframework/orm/jpa/EntityManagerFactoryUtils.java index 2257e000d1c8..bb61641c7699 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/EntityManagerFactoryUtils.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/EntityManagerFactoryUtils.java @@ -457,6 +457,7 @@ public TransactionalEntityManagerSynchronization( this.newEntityManager = newEm; } + @Override public int getOrder() { return ENTITY_MANAGER_SYNCHRONIZATION_ORDER; } @@ -518,6 +519,7 @@ public TransactionScopedEntityManagerSynchronization(EntityManagerHolder emHolde super(emHolder, emf); } + @Override public int getOrder() { return ENTITY_MANAGER_SYNCHRONIZATION_ORDER + 1; } diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/ExtendedEntityManagerCreator.java b/spring-orm/src/main/java/org/springframework/orm/jpa/ExtendedEntityManagerCreator.java index 475fcd8ad3f8..f7f24f147e5e 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/ExtendedEntityManagerCreator.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/ExtendedEntityManagerCreator.java @@ -267,6 +267,7 @@ private boolean isJtaEntityManager() { } } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on EntityManager interface coming in... @@ -418,6 +419,7 @@ public ExtendedEntityManagerSynchronization( this.exceptionTranslator = exceptionTranslator; } + @Override public int getOrder() { return EntityManagerFactoryUtils.ENTITY_MANAGER_SYNCHRONIZATION_ORDER - 1; } diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/JpaTransactionManager.java b/spring-orm/src/main/java/org/springframework/orm/jpa/JpaTransactionManager.java index 237efcaca2b0..49d2cea7cc5b 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/JpaTransactionManager.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/JpaTransactionManager.java @@ -281,6 +281,7 @@ public JpaDialect getJpaDialect() { * Falls back to a default EntityManagerFactory bean if no persistence unit specified. * @see #setPersistenceUnitName */ + @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { if (getEntityManagerFactory() == null) { if (!(beanFactory instanceof ListableBeanFactory)) { @@ -297,6 +298,7 @@ public void setBeanFactory(BeanFactory beanFactory) throws BeansException { * for the specified EntityManagerFactory if none set. * Auto-detect the EntityManagerFactory's DataSource, if any. */ + @Override public void afterPropertiesSet() { if (getEntityManagerFactory() == null) { throw new IllegalArgumentException("'entityManagerFactory' or 'persistenceUnitName' is required"); @@ -315,6 +317,7 @@ public void afterPropertiesSet() { } + @Override public Object getResourceFactory() { return getEntityManagerFactory(); } @@ -654,11 +657,13 @@ public void setRollbackOnly() { } } + @Override public boolean isRollbackOnly() { EntityTransaction tx = this.entityManagerHolder.getEntityManager().getTransaction(); return tx.getRollbackOnly(); } + @Override public void flush() { try { this.entityManagerHolder.getEntityManager().flush(); diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/LocalContainerEntityManagerFactoryBean.java b/spring-orm/src/main/java/org/springframework/orm/jpa/LocalContainerEntityManagerFactoryBean.java index 3cb7c52ad26f..a9c165c8c847 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/LocalContainerEntityManagerFactoryBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/LocalContainerEntityManagerFactoryBean.java @@ -242,10 +242,12 @@ public void setPersistenceUnitPostProcessors(PersistenceUnitPostProcessor... pos * @see org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver * @see org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader */ + @Override public void setLoadTimeWeaver(LoadTimeWeaver loadTimeWeaver) { this.internalPersistenceUnitManager.setLoadTimeWeaver(loadTimeWeaver); } + @Override public void setResourceLoader(ResourceLoader resourceLoader) { this.internalPersistenceUnitManager.setResourceLoader(resourceLoader); } diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/SharedEntityManagerCreator.java b/spring-orm/src/main/java/org/springframework/orm/jpa/SharedEntityManagerCreator.java index faa098553023..ad4e077e0221 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/SharedEntityManagerCreator.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/SharedEntityManagerCreator.java @@ -167,6 +167,7 @@ private void initProxyClassLoader() { } } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on EntityManager interface coming in... @@ -297,6 +298,7 @@ public DeferredQueryInvocationHandler(Query target, EntityManager em) { this.em = em; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on Query interface coming in... diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/ClassFileTransformerAdapter.java b/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/ClassFileTransformerAdapter.java index b96413c51248..f75450d8c33f 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/ClassFileTransformerAdapter.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/ClassFileTransformerAdapter.java @@ -48,6 +48,7 @@ public ClassFileTransformerAdapter(ClassTransformer classTransformer) { } + @Override public byte[] transform( ClassLoader loader, String className, Class classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) { diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java b/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java index bdfd0304439c..3a0fe03f2821 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java @@ -317,6 +317,7 @@ public PersistenceUnitPostProcessor[] getPersistenceUnitPostProcessors() { * @see org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver * @see org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader */ + @Override public void setLoadTimeWeaver(LoadTimeWeaver loadTimeWeaver) { this.loadTimeWeaver = loadTimeWeaver; } @@ -329,11 +330,13 @@ public LoadTimeWeaver getLoadTimeWeaver() { return this.loadTimeWeaver; } + @Override public void setResourceLoader(ResourceLoader resourceLoader) { this.resourcePatternResolver = ResourcePatternUtils.getResourcePatternResolver(resourceLoader); } + @Override public void afterPropertiesSet() { if (this.loadTimeWeaver == null && InstrumentationLoadTimeWeaver.isInstrumentationAvailable()) { this.loadTimeWeaver = new InstrumentationLoadTimeWeaver(this.resourcePatternResolver.getClassLoader()); @@ -524,6 +527,7 @@ protected boolean isPersistenceUnitOverrideAllowed() { } + @Override public PersistenceUnitInfo obtainDefaultPersistenceUnitInfo() { if (this.persistenceUnitInfoNames.isEmpty()) { throw new IllegalStateException("No persistence units parsed from " + @@ -541,6 +545,7 @@ public PersistenceUnitInfo obtainDefaultPersistenceUnitInfo() { return pui; } + @Override public PersistenceUnitInfo obtainPersistenceUnitInfo(String persistenceUnitName) { PersistenceUnitInfo pui = this.persistenceUnitInfos.remove(persistenceUnitName); if (pui == null) { diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/MutablePersistenceUnitInfo.java b/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/MutablePersistenceUnitInfo.java index 2b75c78e7b86..96dff70d3e3e 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/MutablePersistenceUnitInfo.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/MutablePersistenceUnitInfo.java @@ -78,6 +78,7 @@ public void setPersistenceUnitName(String persistenceUnitName) { this.persistenceUnitName = persistenceUnitName; } + @Override public String getPersistenceUnitName() { return this.persistenceUnitName; } @@ -86,6 +87,7 @@ public void setPersistenceProviderClassName(String persistenceProviderClassName) this.persistenceProviderClassName = persistenceProviderClassName; } + @Override public String getPersistenceProviderClassName() { return this.persistenceProviderClassName; } @@ -94,6 +96,7 @@ public void setTransactionType(PersistenceUnitTransactionType transactionType) { this.transactionType = transactionType; } + @Override public PersistenceUnitTransactionType getTransactionType() { if (this.transactionType != null) { return this.transactionType; @@ -108,6 +111,7 @@ public void setJtaDataSource(DataSource jtaDataSource) { this.jtaDataSource = jtaDataSource; } + @Override public DataSource getJtaDataSource() { return this.jtaDataSource; } @@ -116,6 +120,7 @@ public void setNonJtaDataSource(DataSource nonJtaDataSource) { this.nonJtaDataSource = nonJtaDataSource; } + @Override public DataSource getNonJtaDataSource() { return this.nonJtaDataSource; } @@ -124,6 +129,7 @@ public void addMappingFileName(String mappingFileName) { this.mappingFileNames.add(mappingFileName); } + @Override public List getMappingFileNames() { return this.mappingFileNames; } @@ -132,6 +138,7 @@ public void addJarFileUrl(URL jarFileUrl) { this.jarFileUrls.add(jarFileUrl); } + @Override public List getJarFileUrls() { return this.jarFileUrls; } @@ -140,6 +147,7 @@ public void setPersistenceUnitRootUrl(URL persistenceUnitRootUrl) { this.persistenceUnitRootUrl = persistenceUnitRootUrl; } + @Override public URL getPersistenceUnitRootUrl() { return this.persistenceUnitRootUrl; } @@ -148,6 +156,7 @@ public void addManagedClassName(String managedClassName) { this.managedClassNames.add(managedClassName); } + @Override public List getManagedClassNames() { return this.managedClassNames; } @@ -156,6 +165,7 @@ public void setExcludeUnlistedClasses(boolean excludeUnlistedClasses) { this.excludeUnlistedClasses = excludeUnlistedClasses; } + @Override public boolean excludeUnlistedClasses() { return this.excludeUnlistedClasses; } @@ -164,6 +174,7 @@ public void setSharedCacheMode(SharedCacheMode sharedCacheMode) { this.sharedCacheMode = sharedCacheMode; } + @Override public SharedCacheMode getSharedCacheMode() { return this.sharedCacheMode; } @@ -172,6 +183,7 @@ public void setValidationMode(ValidationMode validationMode) { this.validationMode = validationMode; } + @Override public ValidationMode getValidationMode() { return this.validationMode; } @@ -187,6 +199,7 @@ public void setProperties(Properties properties) { this.properties = properties; } + @Override public Properties getProperties() { return this.properties; } @@ -195,10 +208,12 @@ public void setPersistenceXMLSchemaVersion(String persistenceXMLSchemaVersion) { this.persistenceXMLSchemaVersion = persistenceXMLSchemaVersion; } + @Override public String getPersistenceXMLSchemaVersion() { return this.persistenceXMLSchemaVersion; } + @Override public void setPersistenceProviderPackageName(String persistenceProviderPackageName) { this.persistenceProviderPackageName = persistenceProviderPackageName; } @@ -212,6 +227,7 @@ public String getPersistenceProviderPackageName() { * This implementation returns the default ClassLoader. * @see org.springframework.util.ClassUtils#getDefaultClassLoader() */ + @Override public ClassLoader getClassLoader() { return ClassUtils.getDefaultClassLoader(); } @@ -219,6 +235,7 @@ public ClassLoader getClassLoader() { /** * This implementation throws an UnsupportedOperationException. */ + @Override public void addTransformer(ClassTransformer classTransformer) { throw new UnsupportedOperationException("addTransformer not supported"); } @@ -226,6 +243,7 @@ public void addTransformer(ClassTransformer classTransformer) { /** * This implementation throws an UnsupportedOperationException. */ + @Override public ClassLoader getNewTempClassLoader() { throw new UnsupportedOperationException("getNewTempClassLoader not supported"); } diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/support/OpenEntityManagerInViewInterceptor.java b/spring-orm/src/main/java/org/springframework/orm/jpa/support/OpenEntityManagerInViewInterceptor.java index 9b0cd70969a4..fdebb8c8c867 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/support/OpenEntityManagerInViewInterceptor.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/support/OpenEntityManagerInViewInterceptor.java @@ -68,6 +68,7 @@ public class OpenEntityManagerInViewInterceptor extends EntityManagerFactoryAcce public static final String PARTICIPATE_SUFFIX = ".PARTICIPATE"; + @Override public void preHandle(WebRequest request) throws DataAccessException { String participateAttributeName = getParticipateAttributeName(); @@ -101,9 +102,11 @@ public void preHandle(WebRequest request) throws DataAccessException { } } + @Override public void postHandle(WebRequest request, ModelMap model) { } + @Override public void afterCompletion(WebRequest request, Exception ex) throws DataAccessException { if (!decrementParticipateCount(request)) { EntityManagerHolder emHolder = (EntityManagerHolder) @@ -129,6 +132,7 @@ private boolean decrementParticipateCount(WebRequest request) { return true; } + @Override public void afterConcurrentHandlingStarted(WebRequest request) { if (!decrementParticipateCount(request)) { TransactionSynchronizationManager.unbindResource(getEntityManagerFactory()); diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.java b/spring-orm/src/main/java/org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.java index 97a412ede3d1..7c07c760774e 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.java @@ -312,10 +312,12 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } + @Override public void setBeanFactory(BeanFactory beanFactory) { if (beanFactory instanceof ListableBeanFactory) { this.beanFactory = (ListableBeanFactory) beanFactory; @@ -323,6 +325,7 @@ public void setBeanFactory(BeanFactory beanFactory) { } + @Override public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, Class beanType, String beanName) { if (beanType != null) { InjectionMetadata metadata = findPersistenceMetadata(beanType); @@ -330,14 +333,17 @@ public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, C } } + @Override public Object postProcessBeforeInstantiation(Class beanClass, String beanName) throws BeansException { return null; } + @Override public boolean postProcessAfterInstantiation(Object bean, String beanName) throws BeansException { return true; } + @Override public PropertyValues postProcessPropertyValues( PropertyValues pvs, PropertyDescriptor[] pds, Object bean, String beanName) throws BeansException { @@ -351,14 +357,17 @@ public PropertyValues postProcessPropertyValues( return pvs; } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { return bean; } + @Override public void postProcessBeforeDestruction(Object bean, String beanName) throws BeansException { EntityManager emToClose = this.extendedEntityManagersToClose.remove(bean); EntityManagerFactoryUtils.closeEntityManager(emToClose); diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/support/SharedEntityManagerBean.java b/spring-orm/src/main/java/org/springframework/orm/jpa/support/SharedEntityManagerBean.java index 0b6e3a5d59c6..f392734cd398 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/support/SharedEntityManagerBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/support/SharedEntityManagerBean.java @@ -81,6 +81,7 @@ public void setSynchronizedWithTransaction(boolean synchronizedWithTransaction) } + @Override public final void afterPropertiesSet() { EntityManagerFactory emf = getEntityManagerFactory(); if (emf == null) { @@ -105,14 +106,17 @@ public final void afterPropertiesSet() { } + @Override public EntityManager getObject() { return this.shared; } + @Override public Class getObjectType() { return (this.entityManagerInterface != null ? this.entityManagerInterface : EntityManager.class); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/AbstractJpaVendorAdapter.java b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/AbstractJpaVendorAdapter.java index 18499e412d42..99041f2dc9b6 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/AbstractJpaVendorAdapter.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/AbstractJpaVendorAdapter.java @@ -110,22 +110,27 @@ protected boolean isShowSql() { } + @Override public String getPersistenceProviderRootPackage() { return null; } + @Override public Map getJpaPropertyMap() { return null; } + @Override public JpaDialect getJpaDialect() { return null; } + @Override public Class getEntityManagerFactoryInterface() { return EntityManagerFactory.class; } + @Override public Class getEntityManagerInterface() { return EntityManager.class; } @@ -134,6 +139,7 @@ public Class getEntityManagerInterface() { * Post-process the EntityManagerFactory after it has been initialized. * @param emf the EntityManagerFactory to process */ + @Override public void postProcessEntityManagerFactory(EntityManagerFactory emf) { } diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaVendorAdapter.java b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaVendorAdapter.java index a977c0873975..907e9dbbe114 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaVendorAdapter.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaVendorAdapter.java @@ -48,6 +48,7 @@ public class EclipseLinkJpaVendorAdapter extends AbstractJpaVendorAdapter { private final JpaDialect jpaDialect = new EclipseLinkJpaDialect(); + @Override public PersistenceProvider getPersistenceProvider() { return this.persistenceProvider; } diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaDialect.java b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaDialect.java index 83a931549e9e..037da1f4ce9c 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaDialect.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaDialect.java @@ -143,6 +143,7 @@ public HibernateConnectionHandle(Session session) { this.session = session; } + @Override public Connection getConnection() { try { if (connectionMethodToUse == null) { @@ -156,6 +157,7 @@ public Connection getConnection() { } } + @Override public void releaseConnection(Connection con) { if (sessionConnectionMethod != null) { // Need to explicitly call close() with Hibernate 3.x in order to allow diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaSessionFactoryBean.java b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaSessionFactoryBean.java index 065cf759a77a..511cd91c586e 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaSessionFactoryBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaSessionFactoryBean.java @@ -39,16 +39,19 @@ */ public class HibernateJpaSessionFactoryBean extends EntityManagerFactoryAccessor implements FactoryBean { + @Override public SessionFactory getObject() { EntityManagerFactory emf = getEntityManagerFactory(); Assert.isInstanceOf(HibernateEntityManagerFactory.class, emf); return ((HibernateEntityManagerFactory) emf).getSessionFactory(); } + @Override public Class getObjectType() { return SessionFactory.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaVendorAdapter.java b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaVendorAdapter.java index b3eec0491259..e1367d393076 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaVendorAdapter.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaVendorAdapter.java @@ -59,6 +59,7 @@ public class HibernateJpaVendorAdapter extends AbstractJpaVendorAdapter { private final JpaDialect jpaDialect = new HibernateJpaDialect(); + @Override public PersistenceProvider getPersistenceProvider() { return this.persistenceProvider; } diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java index c7a025864914..6cdebfe14176 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaDialect.java @@ -88,6 +88,7 @@ public OpenJpaTransactionData(OpenJPAEntityManager entityManager) { this.entityManager = entityManager; } + @Override public Object createSavepoint() throws TransactionException { this.savepointCounter++; String savepointName = ConnectionHolder.SAVEPOINT_NAME_PREFIX + this.savepointCounter; @@ -95,10 +96,12 @@ public Object createSavepoint() throws TransactionException { return savepointName; } + @Override public void rollbackToSavepoint(Object savepoint) throws TransactionException { this.entityManager.rollbackToSavepoint((String) savepoint); } + @Override public void releaseSavepoint(Object savepoint) throws TransactionException { this.entityManager.releaseSavepoint((String) savepoint); } @@ -120,10 +123,12 @@ public OpenJpaConnectionHandle(OpenJPAEntityManager entityManager) { this.entityManager = entityManager; } + @Override public Connection getConnection() { return (Connection) this.entityManager.getConnection(); } + @Override public void releaseConnection(Connection con) { JdbcUtils.closeConnection(con); } diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java index abadbf8b2972..39592480f5e1 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java @@ -48,6 +48,7 @@ public class OpenJpaVendorAdapter extends AbstractJpaVendorAdapter { private final OpenJpaDialect jpaDialect = new OpenJpaDialect(); + @Override public PersistenceProvider getPersistenceProvider() { return this.persistenceProvider; } diff --git a/spring-oxm/src/main/java/org/springframework/oxm/castor/CastorMarshaller.java b/spring-oxm/src/main/java/org/springframework/oxm/castor/CastorMarshaller.java index 131b782c876a..ab78c0bd2272 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/castor/CastorMarshaller.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/castor/CastorMarshaller.java @@ -430,11 +430,13 @@ public void setObjectFactory(ObjectFactory objectFactory) { this.objectFactory = objectFactory; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public void afterPropertiesSet() throws CastorMappingException, IOException { try { this.xmlContext = createXMLContext(this.mappingLocations, this.targetClasses, this.targetPackages); @@ -485,6 +487,7 @@ protected XMLContext createXMLContext(Resource[] mappingLocations, Class[] targe /** * Returns {@code true} for all classes, i.e. Castor supports arbitrary classes. */ + @Override public boolean supports(Class clazz) { return true; } diff --git a/spring-oxm/src/main/java/org/springframework/oxm/config/OxmNamespaceHandler.java b/spring-oxm/src/main/java/org/springframework/oxm/config/OxmNamespaceHandler.java index 19bf683caeb5..c11bc0bdd580 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/config/OxmNamespaceHandler.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/config/OxmNamespaceHandler.java @@ -27,6 +27,7 @@ */ public class OxmNamespaceHandler extends NamespaceHandlerSupport { + @Override public void init() { registerBeanDefinitionParser("jaxb2-marshaller", new Jaxb2MarshallerBeanDefinitionParser()); registerBeanDefinitionParser("jibx-marshaller", new JibxMarshallerBeanDefinitionParser()); diff --git a/spring-oxm/src/main/java/org/springframework/oxm/jaxb/Jaxb2Marshaller.java b/spring-oxm/src/main/java/org/springframework/oxm/jaxb/Jaxb2Marshaller.java index 104e4f3d9bd3..018a1bbf3019 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/jaxb/Jaxb2Marshaller.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/jaxb/Jaxb2Marshaller.java @@ -385,11 +385,13 @@ public void setMappedClass(Class mappedClass) { this.mappedClass = mappedClass; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public void afterPropertiesSet() throws Exception { boolean hasContextPath = StringUtils.hasLength(this.contextPath); boolean hasClassesToBeBound = !ObjectUtils.isEmpty(this.classesToBeBound); @@ -520,11 +522,13 @@ private Schema loadSchema(Resource[] resources, String schemaLanguage) throws IO } + @Override public boolean supports(Class clazz) { return ((this.supportJaxbElementClass && JAXBElement.class.isAssignableFrom(clazz)) || supportsInternal(clazz, this.checkForXmlRootElement)); } + @Override public boolean supports(Type genericType) { if (genericType instanceof ParameterizedType) { ParameterizedType parameterizedType = (ParameterizedType) genericType; @@ -614,10 +618,12 @@ private boolean isStandardClass(Class clazz) { // Marshalling + @Override public void marshal(Object graph, Result result) throws XmlMappingException { marshal(graph, result, null); } + @Override public void marshal(Object graph, Result result, MimeContainer mimeContainer) throws XmlMappingException { try { Marshaller marshaller = createMarshaller(); @@ -699,10 +705,12 @@ protected void initJaxbMarshaller(Marshaller marshaller) throws JAXBException { // Unmarshalling + @Override public Object unmarshal(Source source) throws XmlMappingException { return unmarshal(source, null); } + @Override public Object unmarshal(Source source, MimeContainer mimeContainer) throws XmlMappingException { try { Unmarshaller unmarshaller = createUnmarshaller(); @@ -927,18 +935,22 @@ private ByteArrayDataSource(String contentType, byte[] data, int offset, int len this.length = length; } + @Override public InputStream getInputStream() throws IOException { return new ByteArrayInputStream(this.data, this.offset, this.length); } + @Override public OutputStream getOutputStream() throws IOException { throw new UnsupportedOperationException(); } + @Override public String getContentType() { return this.contentType; } + @Override public String getName() { return "ByteArrayDataSource"; } diff --git a/spring-oxm/src/main/java/org/springframework/oxm/jibx/JibxMarshaller.java b/spring-oxm/src/main/java/org/springframework/oxm/jibx/JibxMarshaller.java index 2ded691c8ba9..b374b52f094b 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/jibx/JibxMarshaller.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/jibx/JibxMarshaller.java @@ -200,6 +200,7 @@ public void setDocTypeInternalSubset(String docTypeInternalSubset) { this.docTypeInternalSubset = docTypeInternalSubset; } + @Override public void afterPropertiesSet() throws JiBXException { if (this.targetClass != null) { if (StringUtils.hasLength(this.bindingName)) { @@ -228,6 +229,7 @@ public void afterPropertiesSet() throws JiBXException { } + @Override public boolean supports(Class clazz) { Assert.notNull(clazz, "'clazz' must not be null"); if (this.targetClass != null) { diff --git a/spring-oxm/src/main/java/org/springframework/oxm/support/AbstractMarshaller.java b/spring-oxm/src/main/java/org/springframework/oxm/support/AbstractMarshaller.java index cf584efa88e3..d42cb72a49f6 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/support/AbstractMarshaller.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/support/AbstractMarshaller.java @@ -88,6 +88,7 @@ public abstract class AbstractMarshaller implements Marshaller, Unmarshaller { * @see #marshalSaxResult(Object, javax.xml.transform.sax.SAXResult) * @see #marshalStreamResult(Object, javax.xml.transform.stream.StreamResult) */ + @Override public final void marshal(Object graph, Result result) throws IOException, XmlMappingException { if (result instanceof DOMResult) { marshalDomResult(graph, (DOMResult) result); @@ -120,6 +121,7 @@ else if (result instanceof StreamResult) { * @see #unmarshalSaxSource(javax.xml.transform.sax.SAXSource) * @see #unmarshalStreamSource(javax.xml.transform.stream.StreamSource) */ + @Override public final Object unmarshal(Source source) throws IOException, XmlMappingException { if (source instanceof DOMSource) { return unmarshalDomSource((DOMSource) source); diff --git a/spring-oxm/src/main/java/org/springframework/oxm/support/MarshallingSource.java b/spring-oxm/src/main/java/org/springframework/oxm/support/MarshallingSource.java index 7fbe4b4745c0..24e239c73351 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/support/MarshallingSource.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/support/MarshallingSource.java @@ -124,34 +124,42 @@ private MarshallingXMLReader(Marshaller marshaller, Object content) { this.content = content; } + @Override public void setContentHandler(ContentHandler contentHandler) { this.contentHandler = contentHandler; } + @Override public ContentHandler getContentHandler() { return this.contentHandler; } + @Override public void setDTDHandler(DTDHandler dtdHandler) { this.dtdHandler = dtdHandler; } + @Override public DTDHandler getDTDHandler() { return this.dtdHandler; } + @Override public void setEntityResolver(EntityResolver entityResolver) { this.entityResolver = entityResolver; } + @Override public EntityResolver getEntityResolver() { return this.entityResolver; } + @Override public void setErrorHandler(ErrorHandler errorHandler) { this.errorHandler = errorHandler; } + @Override public ErrorHandler getErrorHandler() { return this.errorHandler; } @@ -160,14 +168,17 @@ protected LexicalHandler getLexicalHandler() { return this.lexicalHandler; } + @Override public boolean getFeature(String name) throws SAXNotRecognizedException { throw new SAXNotRecognizedException(name); } + @Override public void setFeature(String name, boolean value) throws SAXNotRecognizedException { throw new SAXNotRecognizedException(name); } + @Override public Object getProperty(String name) throws SAXNotRecognizedException { if ("http://xml.org/sax/properties/lexical-handler".equals(name)) { return lexicalHandler; @@ -177,6 +188,7 @@ public Object getProperty(String name) throws SAXNotRecognizedException { } } + @Override public void setProperty(String name, Object value) throws SAXNotRecognizedException { if ("http://xml.org/sax/properties/lexical-handler".equals(name)) { this.lexicalHandler = (LexicalHandler) value; @@ -186,10 +198,12 @@ public void setProperty(String name, Object value) throws SAXNotRecognizedExcept } } + @Override public void parse(InputSource input) throws SAXException { parse(); } + @Override public void parse(String systemId) throws SAXException { parse(); } diff --git a/spring-oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansMarshaller.java b/spring-oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansMarshaller.java index 991d2626456a..83a463936303 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansMarshaller.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansMarshaller.java @@ -117,6 +117,7 @@ public boolean isValidating() { /** * This implementation returns true if the given class is an implementation of {@link XmlObject}. */ + @Override public boolean supports(Class clazz) { return XmlObject.class.isAssignableFrom(clazz); } diff --git a/spring-oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlOptionsFactoryBean.java b/spring-oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlOptionsFactoryBean.java index d5d668bac683..ca092b217238 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlOptionsFactoryBean.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlOptionsFactoryBean.java @@ -58,14 +58,17 @@ public void setOptions(Map optionsMap) { } + @Override public XmlOptions getObject() { return this.xmlOptions; } + @Override public Class getObjectType() { return XmlOptions.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshaller.java b/spring-oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshaller.java index dd36d17b8bfd..65fa78a6ee94 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshaller.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshaller.java @@ -352,11 +352,13 @@ public void setSupportedClasses(Class[] supportedClasses) { this.supportedClasses = supportedClasses; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.classLoader = classLoader; } + @Override public final void afterPropertiesSet() throws Exception { customizeXStream(this.xstream); } @@ -370,6 +372,7 @@ protected void customizeXStream(XStream xstream) { } + @Override public boolean supports(Class clazz) { if (ObjectUtils.isEmpty(this.supportedClasses)) { return true; diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/client/MockMvcClientHttpRequestFactory.java b/spring-test-mvc/src/main/java/org/springframework/test/web/client/MockMvcClientHttpRequestFactory.java index 914f949d0c55..bad3d4909077 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/client/MockMvcClientHttpRequestFactory.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/client/MockMvcClientHttpRequestFactory.java @@ -49,6 +49,7 @@ public MockMvcClientHttpRequestFactory(MockMvc mockMvc) { this.mockMvc = mockMvc; } + @Override public ClientHttpRequest createRequest(final URI uri, final HttpMethod httpMethod) throws IOException { return new MockClientHttpRequest(httpMethod, uri) { diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/client/MockRestServiceServer.java b/spring-test-mvc/src/main/java/org/springframework/test/web/client/MockRestServiceServer.java index 2ec087180166..416f8f3a5eff 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/client/MockRestServiceServer.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/client/MockRestServiceServer.java @@ -184,6 +184,7 @@ private class RequestMatcherClientHttpRequestFactory implements ClientHttpReques private Iterator requestIterator; + @Override public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException { Assert.notNull(uri, "'uri' must not be null"); Assert.notNull(httpMethod, "'httpMethod' must not be null"); diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/client/RequestMatcherClientHttpRequest.java b/spring-test-mvc/src/main/java/org/springframework/test/web/client/RequestMatcherClientHttpRequest.java index a0553cfd8d65..aa923c7b66af 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/client/RequestMatcherClientHttpRequest.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/client/RequestMatcherClientHttpRequest.java @@ -45,17 +45,20 @@ public RequestMatcherClientHttpRequest(RequestMatcher requestMatcher) { this.requestMatchers.add(requestMatcher); } + @Override public ResponseActions andExpect(RequestMatcher requestMatcher) { Assert.notNull(requestMatcher, "RequestMatcher is required"); this.requestMatchers.add(requestMatcher); return this; } + @Override public void andRespond(ResponseCreator responseCreator) { Assert.notNull(responseCreator, "ResponseCreator is required"); this.responseCreator = responseCreator; } + @Override public ClientHttpResponse executeInternal() throws IOException { if (this.requestMatchers.isEmpty()) { diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/client/match/ContentRequestMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/client/match/ContentRequestMatchers.java index 1bcb49a5b992..7b34dd115063 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/client/match/ContentRequestMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/client/match/ContentRequestMatchers.java @@ -64,6 +64,7 @@ public RequestMatcher contentType(String expectedContentType) { */ public RequestMatcher contentType(final MediaType expectedContentType) { return new RequestMatcher() { + @Override public void match(ClientHttpRequest request) throws IOException, AssertionError { MediaType actualContentType = request.getHeaders().getContentType(); assertTrue("Content type not set", actualContentType != null); @@ -86,6 +87,7 @@ public RequestMatcher contentTypeCompatibleWith(String contentType) { */ public RequestMatcher contentTypeCompatibleWith(final MediaType contentType) { return new RequestMatcher() { + @Override public void match(ClientHttpRequest request) throws IOException, AssertionError { MediaType actualContentType = request.getHeaders().getContentType(); assertTrue("Content type not set", actualContentType != null); @@ -100,6 +102,7 @@ public void match(ClientHttpRequest request) throws IOException, AssertionError */ public RequestMatcher string(final Matcher matcher) { return new RequestMatcher() { + @Override public void match(ClientHttpRequest request) throws IOException, AssertionError { MockClientHttpRequest mockRequest = (MockClientHttpRequest) request; assertThat("Request content", mockRequest.getBodyAsString(), matcher); @@ -112,6 +115,7 @@ public void match(ClientHttpRequest request) throws IOException, AssertionError */ public RequestMatcher string(final String expectedContent) { return new RequestMatcher() { + @Override public void match(ClientHttpRequest request) throws IOException, AssertionError { MockClientHttpRequest mockRequest = (MockClientHttpRequest) request; assertEquals("Request content", expectedContent, mockRequest.getBodyAsString()); @@ -124,6 +128,7 @@ public void match(ClientHttpRequest request) throws IOException, AssertionError */ public RequestMatcher bytes(final byte[] expectedContent) { return new RequestMatcher() { + @Override public void match(ClientHttpRequest request) throws IOException, AssertionError { MockClientHttpRequest mockRequest = (MockClientHttpRequest) request; assertEquals("Request content", expectedContent, mockRequest.getBodyAsBytes()); @@ -180,6 +185,7 @@ protected void matchInternal(MockClientHttpRequest request) throws Exception { */ private abstract static class AbstractXmlRequestMatcher implements RequestMatcher { + @Override public final void match(ClientHttpRequest request) throws IOException, AssertionError { try { MockClientHttpRequest mockRequest = (MockClientHttpRequest) request; diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/client/match/JsonPathRequestMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/client/match/JsonPathRequestMatchers.java index d4da756185ec..14be640a32ec 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/client/match/JsonPathRequestMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/client/match/JsonPathRequestMatchers.java @@ -118,6 +118,7 @@ protected void matchInternal(MockClientHttpRequest request) throws IOException, */ private abstract static class AbstractJsonPathRequestMatcher implements RequestMatcher { + @Override public final void match(ClientHttpRequest request) throws IOException, AssertionError { try { MockClientHttpRequest mockRequest = (MockClientHttpRequest) request; diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/client/match/MockRestRequestMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/client/match/MockRestRequestMatchers.java index ce3c7fb80d24..4f7df0879093 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/client/match/MockRestRequestMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/client/match/MockRestRequestMatchers.java @@ -59,6 +59,7 @@ private MockRestRequestMatchers() { */ public static RequestMatcher anything() { return new RequestMatcher() { + @Override public void match(ClientHttpRequest request) throws AssertionError { } }; @@ -73,6 +74,7 @@ public void match(ClientHttpRequest request) throws AssertionError { public static RequestMatcher requestTo(final Matcher matcher) { Assert.notNull(matcher, "'matcher' must not be null"); return new RequestMatcher() { + @Override public void match(ClientHttpRequest request) throws IOException, AssertionError { assertThat("Request URI", request.getURI().toString(), matcher); } @@ -88,6 +90,7 @@ public void match(ClientHttpRequest request) throws IOException, AssertionError public static RequestMatcher requestTo(final String expectedUri) { Assert.notNull(expectedUri, "'uri' must not be null"); return new RequestMatcher() { + @Override public void match(ClientHttpRequest request) throws IOException, AssertionError { assertEquals("Request URI", expectedUri, request.getURI().toString()); } @@ -103,6 +106,7 @@ public void match(ClientHttpRequest request) throws IOException, AssertionError public static RequestMatcher method(final HttpMethod method) { Assert.notNull(method, "'method' must not be null"); return new RequestMatcher() { + @Override public void match(ClientHttpRequest request) throws AssertionError { AssertionErrors.assertEquals("Unexpected HttpMethod", method, request.getMethod()); } @@ -118,6 +122,7 @@ public void match(ClientHttpRequest request) throws AssertionError { public static RequestMatcher requestTo(final URI uri) { Assert.notNull(uri, "'uri' must not be null"); return new RequestMatcher() { + @Override public void match(ClientHttpRequest request) throws IOException, AssertionError { AssertionErrors.assertEquals("Unexpected request", uri, request.getURI()); } @@ -129,6 +134,7 @@ public void match(ClientHttpRequest request) throws IOException, AssertionError */ public static RequestMatcher header(final String name, final Matcher... matchers) { return new RequestMatcher() { + @Override public void match(ClientHttpRequest request) { assertHeaderValueCount(name, request.getHeaders(), matchers.length); for (int i = 0 ; i < matchers.length; i++) { @@ -143,6 +149,7 @@ public void match(ClientHttpRequest request) { */ public static RequestMatcher header(final String name, final String... expectedValues) { return new RequestMatcher() { + @Override public void match(ClientHttpRequest request) { assertHeaderValueCount(name, request.getHeaders(), expectedValues.length); for (int i = 0 ; i < expectedValues.length; i++) { diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/client/match/XpathRequestMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/client/match/XpathRequestMatchers.java index 9c3ac04c417f..f983235be9b2 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/client/match/XpathRequestMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/client/match/XpathRequestMatchers.java @@ -185,6 +185,7 @@ protected void matchInternal(MockClientHttpRequest request) throws Exception { */ private abstract static class AbstractXpathRequestMatcher implements RequestMatcher { + @Override public final void match(ClientHttpRequest request) throws IOException, AssertionError { try { MockClientHttpRequest mockRequest = (MockClientHttpRequest) request; diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/client/response/DefaultResponseCreator.java b/spring-test-mvc/src/main/java/org/springframework/test/web/client/response/DefaultResponseCreator.java index 7518f14f64ad..3f2be1ae4cf8 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/client/response/DefaultResponseCreator.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/client/response/DefaultResponseCreator.java @@ -56,6 +56,7 @@ protected DefaultResponseCreator(HttpStatus statusCode) { this.statusCode = statusCode; } + @Override public ClientHttpResponse createResponse(ClientHttpRequest request) throws IOException { MockClientHttpResponse response; if (this.contentResource != null ){ diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/DefaultMvcResult.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/DefaultMvcResult.java index 117a95c2bf10..e9951189be7c 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/DefaultMvcResult.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/DefaultMvcResult.java @@ -61,14 +61,17 @@ public DefaultMvcResult(MockHttpServletRequest request, MockHttpServletResponse this.mockResponse = response; } + @Override public MockHttpServletResponse getResponse() { return mockResponse; } + @Override public MockHttpServletRequest getRequest() { return mockRequest; } + @Override public Object getHandler() { return this.handler; } @@ -77,6 +80,7 @@ public void setHandler(Object handler) { this.handler = handler; } + @Override public HandlerInterceptor[] getInterceptors() { return this.interceptors; } @@ -85,6 +89,7 @@ public void setInterceptors(HandlerInterceptor[] interceptors) { this.interceptors = interceptors; } + @Override public Exception getResolvedException() { return this.resolvedException; } @@ -93,6 +98,7 @@ public void setResolvedException(Exception resolvedException) { this.resolvedException = resolvedException; } + @Override public ModelAndView getModelAndView() { return this.modelAndView; } @@ -101,6 +107,7 @@ public void setModelAndView(ModelAndView mav) { this.modelAndView = mav; } + @Override public FlashMap getFlashMap() { return RequestContextUtils.getOutputFlashMap(mockRequest); } @@ -109,10 +116,12 @@ public void setAsyncResult(Object asyncResult) { this.asyncResult = asyncResult; } + @Override public Object getAsyncResult() { return getAsyncResult(-1); } + @Override public Object getAsyncResult(long timeout) { // MockHttpServletRequest type doesn't have async methods HttpServletRequest request = this.mockRequest; diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/MockMvc.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/MockMvc.java index a163c967215e..15020df3a089 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/MockMvc.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/MockMvc.java @@ -137,16 +137,19 @@ public ResultActions perform(RequestBuilder requestBuilder) throws Exception { return new ResultActions() { + @Override public ResultActions andExpect(ResultMatcher matcher) throws Exception { matcher.match(mvcResult); return this; } + @Override public ResultActions andDo(ResultHandler printer) throws Exception { printer.handle(mvcResult); return this; } + @Override public MvcResult andReturn() { return mvcResult; } diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/TestDispatcherServlet.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/TestDispatcherServlet.java index 8c57fae2475b..96389241c021 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/TestDispatcherServlet.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/TestDispatcherServlet.java @@ -73,12 +73,14 @@ private CountDownLatch registerAsyncInterceptors(final HttpServletRequest servle WebAsyncManager asyncManager = WebAsyncUtils.getAsyncManager(servletRequest); asyncManager.registerCallableInterceptor(KEY, new CallableProcessingInterceptorAdapter() { + @Override public void postProcess(NativeWebRequest request, Callable task, Object value) throws Exception { getMvcResult(servletRequest).setAsyncResult(value); asyncResultLatch.countDown(); } }); asyncManager.registerDeferredResultInterceptor(KEY, new DeferredResultProcessingInterceptorAdapter() { + @Override public void postProcess(NativeWebRequest request, DeferredResult result, Object value) throws Exception { getMvcResult(servletRequest).setAsyncResult(value); asyncResultLatch.countDown(); diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockAsyncContext.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockAsyncContext.java index e6d97658c7aa..753d63db5b20 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockAsyncContext.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockAsyncContext.java @@ -58,14 +58,17 @@ public MockAsyncContext(ServletRequest request, ServletResponse response) { this.response = (HttpServletResponse) response; } + @Override public ServletRequest getRequest() { return this.request; } + @Override public ServletResponse getResponse() { return this.response; } + @Override public boolean hasOriginalRequestAndResponse() { return (this.request instanceof MockHttpServletRequest) && (this.response instanceof MockHttpServletResponse); } @@ -74,18 +77,22 @@ public String getDispatchedPath() { return this.dispatchedPath; } + @Override public void dispatch() { dispatch(this.request.getRequestURI()); } + @Override public void dispatch(String path) { dispatch(null, path); } + @Override public void dispatch(ServletContext context, String path) { this.dispatchedPath = path; } + @Override public void complete() { Servlet3MockHttpServletRequest mockRequest = WebUtils.getNativeRequest(request, Servlet3MockHttpServletRequest.class); if (mockRequest != null) { @@ -101,6 +108,7 @@ public void complete() { } } + @Override public void start(Runnable runnable) { runnable.run(); } @@ -109,22 +117,27 @@ public List getListeners() { return this.listeners; } + @Override public void addListener(AsyncListener listener) { this.listeners.add(listener); } + @Override public void addListener(AsyncListener listener, ServletRequest request, ServletResponse response) { this.listeners.add(listener); } + @Override public T createListener(Class clazz) throws ServletException { return BeanUtils.instantiateClass(clazz); } + @Override public long getTimeout() { return this.timeout; } + @Override public void setTimeout(long timeout) { this.timeout = timeout; } diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java index 26afc30c9bfc..3a7d0169801c 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java @@ -426,6 +426,7 @@ public MockHttpServletRequestBuilder with(RequestPostProcessor postProcessor) { * {@inheritDoc} * @return always returns {@code true}. */ + @Override public boolean isMergeEnabled() { return true; } @@ -437,6 +438,7 @@ public boolean isMergeEnabled() { * @param parent the parent {@code RequestBuilder} to inherit properties from * @return the result of the merge */ + @Override public Object merge(Object parent) { if (parent == null) { return this; @@ -540,6 +542,7 @@ private boolean containsCookie(Cookie cookie) { /** * Build a {@link MockHttpServletRequest}. */ + @Override public final MockHttpServletRequest buildRequest(ServletContext servletContext) { MockHttpServletRequest request = createServletRequest(servletContext); diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java index 409359c2c7a9..d2076898bb6f 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java @@ -135,6 +135,7 @@ public static MockMultipartHttpServletRequestBuilder fileUpload(String urlTempla */ public static RequestBuilder asyncDispatch(final MvcResult mvcResult) { return new RequestBuilder() { + @Override public MockHttpServletRequest buildRequest(ServletContext servletContext) { MockHttpServletRequest request = mvcResult.getRequest(); Method method = ReflectionUtils.findMethod(request.getClass(), "setAsyncStarted", boolean.class); diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/Servlet3MockHttpServletRequest.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/Servlet3MockHttpServletRequest.java index ec4fafd59aaf..40ee42250f5b 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/Servlet3MockHttpServletRequest.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/Servlet3MockHttpServletRequest.java @@ -50,20 +50,24 @@ public Servlet3MockHttpServletRequest(ServletContext servletContext) { super(servletContext); } + @Override public boolean isAsyncSupported() { return true; } + @Override public AsyncContext startAsync() { return startAsync(this, null); } + @Override public AsyncContext startAsync(ServletRequest request, ServletResponse response) { this.asyncStarted = true; this.asyncContext = new MockAsyncContext(request, response); return this.asyncContext; } + @Override public AsyncContext getAsyncContext() { return this.asyncContext; } @@ -72,30 +76,37 @@ public void setAsyncContext(MockAsyncContext asyncContext) { this.asyncContext = asyncContext; } + @Override public DispatcherType getDispatcherType() { return DispatcherType.REQUEST; } + @Override public boolean isAsyncStarted() { return this.asyncStarted; } + @Override public void setAsyncStarted(boolean asyncStarted) { this.asyncStarted = asyncStarted; } + @Override public void addPart(Part part) { this.parts.put(part.getName(), part); } + @Override public Part getPart(String key) throws IOException, IllegalStateException, ServletException { return this.parts.get(key); } + @Override public Collection getParts() throws IOException, IllegalStateException, ServletException { return this.parts.values(); } + @Override public boolean authenticate(HttpServletResponse response) throws IOException, ServletException { throw new UnsupportedOperationException(); } diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/Servlet3MockMultipartHttpServletRequest.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/Servlet3MockMultipartHttpServletRequest.java index ef27070151ea..2133831d2b35 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/Servlet3MockMultipartHttpServletRequest.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/Servlet3MockMultipartHttpServletRequest.java @@ -45,20 +45,24 @@ class Servlet3MockMultipartHttpServletRequest extends MockMultipartHttpServletRe private Map parts = new HashMap(); + @Override public boolean isAsyncSupported() { return true; } + @Override public AsyncContext startAsync() { return startAsync(this, null); } + @Override public AsyncContext startAsync(ServletRequest request, ServletResponse response) { this.asyncStarted = true; this.asyncContext = new MockAsyncContext(request, response); return this.asyncContext; } + @Override public AsyncContext getAsyncContext() { return this.asyncContext; } @@ -67,30 +71,37 @@ public void setAsyncContext(MockAsyncContext asyncContext) { this.asyncContext = asyncContext; } + @Override public DispatcherType getDispatcherType() { return DispatcherType.REQUEST; } + @Override public boolean isAsyncStarted() { return this.asyncStarted; } + @Override public void setAsyncStarted(boolean asyncStarted) { this.asyncStarted = asyncStarted; } + @Override public void addPart(Part part) { this.parts.put(part.getName(), part); } + @Override public Part getPart(String key) throws IOException, IllegalStateException, ServletException { return this.parts.get(key); } + @Override public Collection getParts() throws IOException, IllegalStateException, ServletException { return this.parts.values(); } + @Override public boolean authenticate(HttpServletResponse response) throws IOException, ServletException { throw new UnsupportedOperationException(); } diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/ContentResultMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/ContentResultMatchers.java index 3368ffbeddef..c63209f55110 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/ContentResultMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/ContentResultMatchers.java @@ -70,6 +70,7 @@ public ResultMatcher contentType(String contentType) { */ public ResultMatcher contentType(final MediaType contentType) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String actual = result.getResponse().getContentType(); assertTrue("Content type not set", actual != null); @@ -92,6 +93,7 @@ public ResultMatcher contentTypeCompatibleWith(String contentType) { */ public ResultMatcher contentTypeCompatibleWith(final MediaType contentType) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String actual = result.getResponse().getContentType(); assertTrue("Content type not set", actual != null); @@ -108,6 +110,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher encoding(final String characterEncoding) { return new ResultMatcher() { + @Override public void match(MvcResult result) { String actual = result.getResponse().getCharacterEncoding(); assertEquals("Character encoding", characterEncoding, actual); @@ -124,6 +127,7 @@ public void match(MvcResult result) { */ public ResultMatcher string(final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { assertThat("Response content", result.getResponse().getContentAsString(), matcher); } @@ -135,6 +139,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher string(final String expectedContent) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { assertEquals("Response content", expectedContent, result.getResponse().getContentAsString()); } @@ -146,6 +151,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher bytes(final byte[] expectedContent) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { assertEquals("Response content", expectedContent, result.getResponse().getContentAsByteArray()); } @@ -166,6 +172,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher xml(final String xmlContent) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String content = result.getResponse().getContentAsString(); xmlHelper.assertXmlEqual(xmlContent, content); @@ -179,6 +186,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher node(final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String content = result.getResponse().getContentAsString(); xmlHelper.assertNode(content, matcher); @@ -194,6 +202,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher source(final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String content = result.getResponse().getContentAsString(); xmlHelper.assertSource(content, matcher); diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/CookieResultMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/CookieResultMatchers.java index 338777882a98..967a361c20cd 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/CookieResultMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/CookieResultMatchers.java @@ -49,6 +49,7 @@ protected CookieResultMatchers() { */ public ResultMatcher value(final String name, final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) { Cookie cookie = result.getResponse().getCookie(name); assertTrue("Response cookie not found: " + name, cookie != null); @@ -62,6 +63,7 @@ public void match(MvcResult result) { */ public ResultMatcher value(final String name, final String expectedValue) { return new ResultMatcher() { + @Override public void match(MvcResult result) { Cookie cookie = result.getResponse().getCookie(name); assertTrue("Response cookie not found: " + name, cookie != null); @@ -76,6 +78,7 @@ public void match(MvcResult result) { */ public ResultMatcher exists(final String name) { return new ResultMatcher() { + @Override public void match(MvcResult result) { Cookie cookie = result.getResponse().getCookie(name); assertTrue("No cookie with name: " + name, cookie != null); @@ -89,6 +92,7 @@ public void match(MvcResult result) { */ public ResultMatcher doesNotExist(final String name) { return new ResultMatcher() { + @Override public void match(MvcResult result) { Cookie cookie = result.getResponse().getCookie(name); assertTrue("Unexpected cookie with name " + name, cookie == null); @@ -101,6 +105,7 @@ public void match(MvcResult result) { */ public ResultMatcher maxAge(final String name, final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) { Cookie cookie = result.getResponse().getCookie(name); assertTrue("No cookie with name: " + name, cookie != null); @@ -114,6 +119,7 @@ public void match(MvcResult result) { */ public ResultMatcher maxAge(final String name, final int maxAge) { return new ResultMatcher() { + @Override public void match(MvcResult result) { Cookie cookie = result.getResponse().getCookie(name); assertTrue("No cookie with name: " + name, cookie != null); @@ -127,6 +133,7 @@ public void match(MvcResult result) { */ public ResultMatcher path(final String name, final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { Cookie cookie = result.getResponse().getCookie(name); assertThat("Response cookie path", cookie.getPath(), matcher); @@ -136,6 +143,7 @@ public void match(MvcResult result) throws Exception { public ResultMatcher path(final String name, final String path) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { Cookie cookie = result.getResponse().getCookie(name); assertEquals("Response cookie path", path, cookie.getPath()); @@ -148,6 +156,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher domain(final String name, final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { Cookie cookie = result.getResponse().getCookie(name); assertThat("Response cookie domain", cookie.getDomain(), matcher); @@ -160,6 +169,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher domain(final String name, final String domain) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { Cookie cookie = result.getResponse().getCookie(name); assertEquals("Response cookie domain", domain, cookie.getDomain()); @@ -172,6 +182,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher comment(final String name, final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { Cookie cookie = result.getResponse().getCookie(name); assertThat("Response cookie comment", cookie.getComment(), matcher); @@ -184,6 +195,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher comment(final String name, final String comment) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { Cookie cookie = result.getResponse().getCookie(name); assertEquals("Response cookie comment", comment, cookie.getComment()); @@ -196,6 +208,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher version(final String name, final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { Cookie cookie = result.getResponse().getCookie(name); assertThat("Response cookie version", cookie.getVersion(), matcher); @@ -208,6 +221,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher version(final String name, final int version) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { Cookie cookie = result.getResponse().getCookie(name); assertEquals("Response cookie version", version, cookie.getVersion()); @@ -220,6 +234,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher secure(final String name, final boolean secure) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { Cookie cookie = result.getResponse().getCookie(name); assertEquals("Response cookie secure", secure, cookie.getSecure()); diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/FlashAttributeResultMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/FlashAttributeResultMatchers.java index a2747bb102d9..1e3b5106ea34 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/FlashAttributeResultMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/FlashAttributeResultMatchers.java @@ -45,6 +45,7 @@ protected FlashAttributeResultMatchers() { */ public ResultMatcher attribute(final String name, final Matcher matcher) { return new ResultMatcher() { + @Override @SuppressWarnings("unchecked") public void match(MvcResult result) throws Exception { assertThat("Flash attribute", (T) result.getFlashMap().get(name), matcher); @@ -57,6 +58,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher attribute(final String name, final Object value) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { assertEquals("Flash attribute", value, result.getFlashMap().get(name)); } @@ -68,6 +70,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher attributeExists(final String... names) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { for (String name : names) { assertTrue("Flash attribute [" + name + "] does not exist", result.getFlashMap().get(name) != null); @@ -81,6 +84,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher attributeCount(final int count) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { assertEquals("FlashMap size", count, result.getFlashMap().size()); } diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/HandlerResultMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/HandlerResultMatchers.java index bcd5ea75ae81..502199fbd594 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/HandlerResultMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/HandlerResultMatchers.java @@ -52,6 +52,7 @@ protected HandlerResultMatchers() { */ public ResultMatcher handlerType(final Class type) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { Object handler = result.getHandler(); assertTrue("No handler: ", handler != null); @@ -73,6 +74,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher methodName(final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { Object handler = assertHandlerMethod(result); assertThat("HandlerMethod", ((HandlerMethod) handler).getMethod().getName(), matcher); @@ -88,6 +90,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher methodName(final String name) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { Object handler = assertHandlerMethod(result); assertEquals("HandlerMethod", name, ((HandlerMethod) handler).getMethod().getName()); @@ -103,6 +106,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher method(final Method method) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { Object handler = assertHandlerMethod(result); assertEquals("HandlerMethod", method, ((HandlerMethod) handler).getMethod()); diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/HeaderResultMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/HeaderResultMatchers.java index 5acee2dbd789..5e0f5b2a1d5f 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/HeaderResultMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/HeaderResultMatchers.java @@ -45,6 +45,7 @@ protected HeaderResultMatchers() { */ public ResultMatcher string(final String name, final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) { assertThat("Response header", result.getResponse().getHeader(name), matcher); } @@ -56,6 +57,7 @@ public void match(MvcResult result) { */ public ResultMatcher string(final String name, final String value) { return new ResultMatcher() { + @Override public void match(MvcResult result) { assertEquals("Response header", value, result.getResponse().getHeader(name)); } @@ -67,6 +69,7 @@ public void match(MvcResult result) { */ public ResultMatcher longValue(final String name, final long value) { return new ResultMatcher() { + @Override public void match(MvcResult result) { assertEquals("Response header " + name, value, Long.parseLong(result.getResponse().getHeader(name))); } diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/JsonPathResultMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/JsonPathResultMatchers.java index 0d68d365ac76..17e980380861 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/JsonPathResultMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/JsonPathResultMatchers.java @@ -49,6 +49,7 @@ protected JsonPathResultMatchers(String expression, Object ... args) { */ public ResultMatcher value(final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String content = result.getResponse().getContentAsString(); jsonPathHelper.assertValue(content, matcher); @@ -61,6 +62,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher value(final Object expectedValue) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { jsonPathHelper.assertValue(result.getResponse().getContentAsString(), expectedValue); } @@ -72,6 +74,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher exists() { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String content = result.getResponse().getContentAsString(); jsonPathHelper.exists(content); @@ -84,6 +87,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher doesNotExist() { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String content = result.getResponse().getContentAsString(); jsonPathHelper.doesNotExist(content); @@ -96,6 +100,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher isArray() { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String content = result.getResponse().getContentAsString(); jsonPathHelper.assertValueIsArray(content); diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/MockMvcResultHandlers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/MockMvcResultHandlers.java index cb491c953765..cfe96ca51838 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/MockMvcResultHandlers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/MockMvcResultHandlers.java @@ -49,11 +49,13 @@ private static class ConsolePrintingResultHandler extends PrintingResultHandler public ConsolePrintingResultHandler() { super(new ResultValuePrinter() { + @Override public void printHeading(String heading) { System.out.println(); System.out.println(String.format("%20s:", heading)); } + @Override public void printValue(String label, Object value) { if (value != null && value.getClass().isArray()) { value = CollectionUtils.arrayToList(value); diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/MockMvcResultMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/MockMvcResultMatchers.java index fb34c36ffd56..154971959818 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/MockMvcResultMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/MockMvcResultMatchers.java @@ -81,6 +81,7 @@ public static FlashAttributeResultMatchers flash() { */ public static ResultMatcher forwardedUrl(final String expectedUrl) { return new ResultMatcher() { + @Override public void match(MvcResult result) { assertEquals("Forwarded URL", expectedUrl, result.getResponse().getForwardedUrl()); } @@ -92,6 +93,7 @@ public void match(MvcResult result) { */ public static ResultMatcher redirectedUrl(final String expectedUrl) { return new ResultMatcher() { + @Override public void match(MvcResult result) { assertEquals("Redirected URL", expectedUrl, result.getResponse().getRedirectedUrl()); } diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/ModelResultMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/ModelResultMatchers.java index 6ec1d9346b72..012812f74c6f 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/ModelResultMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/ModelResultMatchers.java @@ -50,6 +50,7 @@ protected ModelResultMatchers() { */ public ResultMatcher attribute(final String name, final Matcher matcher) { return new ResultMatcher() { + @Override @SuppressWarnings("unchecked") public void match(MvcResult result) throws Exception { ModelAndView mav = getModelAndView(result); @@ -63,6 +64,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher attribute(final String name, final Object value) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { ModelAndView mav = getModelAndView(result); assertEquals("Model attribute '" + name + "'", value, mav.getModel().get(name)); @@ -75,6 +77,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher attributeExists(final String... names) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { ModelAndView mav = getModelAndView(result); for (String name : names) { @@ -89,6 +92,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher attributeErrorCount(final String name, final int expectedCount) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { ModelAndView mav = getModelAndView(result); Errors errors = getBindingResult(mav, name); @@ -103,6 +107,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher attributeHasErrors(final String... names) { return new ResultMatcher() { + @Override public void match(MvcResult mvcResult) throws Exception { ModelAndView mav = getModelAndView(mvcResult); for (String name : names) { @@ -118,6 +123,7 @@ public void match(MvcResult mvcResult) throws Exception { */ public ResultMatcher attributeHasNoErrors(final String... names) { return new ResultMatcher() { + @Override public void match(MvcResult mvcResult) throws Exception { ModelAndView mav = getModelAndView(mvcResult); for (String name : names) { @@ -133,6 +139,7 @@ public void match(MvcResult mvcResult) throws Exception { */ public ResultMatcher attributeHasFieldErrors(final String name, final String... fieldNames) { return new ResultMatcher() { + @Override public void match(MvcResult mvcResult) throws Exception { ModelAndView mav = getModelAndView(mvcResult); BindingResult result = getBindingResult(mav, name); @@ -150,6 +157,7 @@ public void match(MvcResult mvcResult) throws Exception { */ public ResultMatcher errorCount(final int expectedCount) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { int actualCount = getErrorCount(getModelAndView(result).getModelMap()); assertEquals("Binding/validation error count", expectedCount, actualCount); @@ -162,6 +170,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher hasErrors() { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { int count = getErrorCount(getModelAndView(result).getModelMap()); assertTrue("Expected binding/validation errors", count != 0); @@ -174,6 +183,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher hasNoErrors() { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { ModelAndView mav = getModelAndView(result); for (Object value : mav.getModel().values()) { @@ -191,6 +201,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher size(final int size) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { ModelAndView mav = getModelAndView(result); int actual = 0; diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/PrintingResultHandler.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/PrintingResultHandler.java index 1a5f07f6e9d8..3796841d6ab4 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/PrintingResultHandler.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/PrintingResultHandler.java @@ -71,6 +71,7 @@ protected ResultValuePrinter getPrinter() { /** * Print {@link MvcResult} details to the "standard" output stream. */ + @Override public final void handle(MvcResult result) throws Exception { this.printer.printHeading("MockHttpServletRequest"); diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/RequestResultMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/RequestResultMatchers.java index 15990939ee02..cf929d5efe07 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/RequestResultMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/RequestResultMatchers.java @@ -59,6 +59,7 @@ protected RequestResultMatchers() { */ public ResultMatcher asyncStarted() { return new ResultMatcher() { + @Override public void match(MvcResult result) { HttpServletRequest request = result.getRequest(); assertEquals("Async started", true, request.isAsyncStarted()); @@ -72,6 +73,7 @@ public void match(MvcResult result) { */ public ResultMatcher asyncNotStarted() { return new ResultMatcher() { + @Override public void match(MvcResult result) { HttpServletRequest request = result.getRequest(); assertEquals("Async started", false, request.isAsyncStarted()); @@ -84,6 +86,7 @@ public void match(MvcResult result) { */ public ResultMatcher asyncResult(final Matcher matcher) { return new ResultMatcher() { + @Override @SuppressWarnings("unchecked") public void match(MvcResult result) { HttpServletRequest request = result.getRequest(); @@ -101,6 +104,7 @@ public void match(MvcResult result) { */ public ResultMatcher asyncResult(final Object expectedResult) { return new ResultMatcher() { + @Override public void match(MvcResult result) { HttpServletRequest request = result.getRequest(); assertEquals("Async started", true, request.isAsyncStarted()); @@ -114,6 +118,7 @@ public void match(MvcResult result) { */ public ResultMatcher attribute(final String name, final Matcher matcher) { return new ResultMatcher() { + @Override @SuppressWarnings("unchecked") public void match(MvcResult result) { T value = (T) result.getRequest().getAttribute(name); @@ -127,6 +132,7 @@ public void match(MvcResult result) { */ public ResultMatcher attribute(final String name, final Object expectedValue) { return new ResultMatcher() { + @Override public void match(MvcResult result) { assertEquals("Request attribute", expectedValue, result.getRequest().getAttribute(name)); } @@ -138,6 +144,7 @@ public void match(MvcResult result) { */ public ResultMatcher sessionAttribute(final String name, final Matcher matcher) { return new ResultMatcher() { + @Override @SuppressWarnings("unchecked") public void match(MvcResult result) { T value = (T) result.getRequest().getSession().getAttribute(name); @@ -151,6 +158,7 @@ public void match(MvcResult result) { */ public ResultMatcher sessionAttribute(final String name, final Object value) { return new ResultMatcher() { + @Override public void match(MvcResult result) { assertEquals("Request attribute", value, result.getRequest().getSession().getAttribute(name)); } diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/StatusResultMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/StatusResultMatchers.java index 88c4083b6cbf..b8549bca3be6 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/StatusResultMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/StatusResultMatchers.java @@ -46,6 +46,7 @@ protected StatusResultMatchers() { */ public ResultMatcher is(final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { assertThat("Response status", result.getResponse().getStatus(), matcher); } @@ -57,6 +58,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher is(final int status) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { assertEquals("Response status", status, result.getResponse().getStatus()); } @@ -69,6 +71,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher reason(final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { assertThat("Response status reason", result.getResponse().getErrorMessage(), matcher); } @@ -80,6 +83,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher reason(final String reason) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { assertEquals("Response status reason", reason, result.getResponse().getErrorMessage()); } @@ -545,6 +549,7 @@ public ResultMatcher isNetworkAuthenticationRequired() { */ private ResultMatcher matcher(final HttpStatus status) { return new ResultMatcher() { + @Override public void match(MvcResult result) { assertEquals("Status", status.value(), result.getResponse().getStatus()); } diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/ViewResultMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/ViewResultMatchers.java index f2f5217dfaa2..c665d7a1d01c 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/ViewResultMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/ViewResultMatchers.java @@ -44,6 +44,7 @@ protected ViewResultMatchers() { */ public ResultMatcher name(final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { ModelAndView mav = result.getModelAndView(); assertTrue("No ModelAndView found", mav != null); @@ -57,6 +58,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher name(final String expectedViewName) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { ModelAndView mav = result.getModelAndView(); assertTrue("No ModelAndView found", mav != null); diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/XpathResultMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/XpathResultMatchers.java index 5e7a75368e07..36cdf5fc8690 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/XpathResultMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/XpathResultMatchers.java @@ -63,6 +63,7 @@ protected XpathResultMatchers(String expression, Map namespaces, */ public ResultMatcher node(final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String content = result.getResponse().getContentAsString(); xpathHelper.assertNode(content, matcher); @@ -75,6 +76,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher exists() { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String content = result.getResponse().getContentAsString(); xpathHelper.exists(content); @@ -87,6 +89,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher doesNotExist() { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String content = result.getResponse().getContentAsString(); xpathHelper.doesNotExist(content); @@ -100,6 +103,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher nodeCount(final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String content = result.getResponse().getContentAsString(); xpathHelper.assertNodeCount(content, matcher); @@ -112,6 +116,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher nodeCount(final int expectedCount) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String content = result.getResponse().getContentAsString(); xpathHelper.assertNodeCount(content, expectedCount); @@ -125,6 +130,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher string(final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String content = result.getResponse().getContentAsString(); xpathHelper.assertString(content, matcher); @@ -137,6 +143,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher string(final String expectedValue) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String content = result.getResponse().getContentAsString(); xpathHelper.assertString(content, expectedValue); @@ -150,6 +157,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher number(final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String content = result.getResponse().getContentAsString(); xpathHelper.assertNumber(content, matcher); @@ -162,6 +170,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher number(final Double expectedValue) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String content = result.getResponse().getContentAsString(); xpathHelper.assertNumber(content, expectedValue); @@ -174,6 +183,7 @@ public void match(MvcResult result) throws Exception { */ public ResultMatcher booleanValue(final Boolean value) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String content = result.getResponse().getContentAsString(); xpathHelper.assertBoolean(content, value); diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/DefaultMockMvcBuilder.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/DefaultMockMvcBuilder.java index 7e8b7afd6355..9cb798d8f298 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/DefaultMockMvcBuilder.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/DefaultMockMvcBuilder.java @@ -195,6 +195,7 @@ public final T dispatchOptions(boolean dispatchOptions) { /** * Build a {@link MockMvc} instance. */ + @Override public final MockMvc build() { initWebAppContext(this.webAppContext); diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/PatternMappingFilterProxy.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/PatternMappingFilterProxy.java index b582b3b68cc6..29e2845be310 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/PatternMappingFilterProxy.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/PatternMappingFilterProxy.java @@ -84,6 +84,7 @@ else if (urlPattern.endsWith(PATH_MAPPING_PATTERN)) { } } + @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { @@ -119,10 +120,12 @@ private boolean matches(String requestPath) { return false; } + @Override public void init(FilterConfig filterConfig) throws ServletException { this.delegate.init(filterConfig); } + @Override public void destroy() { this.delegate.destroy(); } diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/StandaloneMockMvcBuilder.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/StandaloneMockMvcBuilder.java index 079a42fc012a..9fa7e1b26fc6 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/StandaloneMockMvcBuilder.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/StandaloneMockMvcBuilder.java @@ -274,6 +274,7 @@ public StandaloneMockMvcBuilder setUseTrailingSlashPatternMatch(boolean useTrail return this; } + @Override protected void initWebAppContext(WebApplicationContext cxt) { StubWebApplicationContext mockCxt = (StubWebApplicationContext) cxt; registerMvcSingletons(mockCxt); @@ -419,6 +420,7 @@ public StaticViewResolver(View view) { this.view = view; } + @Override public View resolveViewName(String viewName, Locale locale) throws Exception { return this.view; } diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/StubWebApplicationContext.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/StubWebApplicationContext.java index 152203ec6a33..7192a9fca61c 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/StubWebApplicationContext.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/StubWebApplicationContext.java @@ -88,10 +88,12 @@ public StubWebApplicationContext(ServletContext servletContext) { /** * Returns an instance that can initialize {@link ApplicationContextAware} beans. */ + @Override public AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException { return this.beanFactory; } + @Override public ServletContext getServletContext() { return this.servletContext; } @@ -100,26 +102,32 @@ public ServletContext getServletContext() { // Implementation of ApplicationContext interface //--------------------------------------------------------------------- + @Override public String getId() { return this.id; } + @Override public String getApplicationName() { return ""; } + @Override public String getDisplayName() { return this.displayName; } + @Override public long getStartupDate() { return this.startupDate; } + @Override public ApplicationContext getParent() { return null; } + @Override public Environment getEnvironment() { return this.environment ; } @@ -139,42 +147,52 @@ public void addBeans(List beans) { // Implementation of BeanFactory interface //--------------------------------------------------------------------- + @Override public Object getBean(String name) throws BeansException { return this.beanFactory.getBean(name); } + @Override public T getBean(String name, Class requiredType) throws BeansException { return this.beanFactory.getBean(name, requiredType); } + @Override public T getBean(Class requiredType) throws BeansException { return this.beanFactory.getBean(requiredType); } + @Override public Object getBean(String name, Object... args) throws BeansException { return this.beanFactory.getBean(name, args); } + @Override public boolean containsBean(String name) { return this.beanFactory.containsBean(name); } + @Override public boolean isSingleton(String name) throws NoSuchBeanDefinitionException { return this.beanFactory.isSingleton(name); } + @Override public boolean isPrototype(String name) throws NoSuchBeanDefinitionException { return this.beanFactory.isPrototype(name); } + @Override public boolean isTypeMatch(String name, Class targetType) throws NoSuchBeanDefinitionException { return this.beanFactory.isTypeMatch(name, targetType); } + @Override public Class getType(String name) throws NoSuchBeanDefinitionException { return this.beanFactory.getType(name); } + @Override public String[] getAliases(String name) { return this.beanFactory.getAliases(name); } @@ -183,42 +201,51 @@ public String[] getAliases(String name) { // Implementation of ListableBeanFactory interface //--------------------------------------------------------------------- + @Override public boolean containsBeanDefinition(String beanName) { return this.beanFactory.containsBeanDefinition(beanName); } + @Override public int getBeanDefinitionCount() { return this.beanFactory.getBeanDefinitionCount(); } + @Override public String[] getBeanDefinitionNames() { return this.beanFactory.getBeanDefinitionNames(); } + @Override public String[] getBeanNamesForType(Class type) { return this.beanFactory.getBeanNamesForType(type); } + @Override public String[] getBeanNamesForType(Class type, boolean includeNonSingletons, boolean allowEagerInit) { return this.beanFactory.getBeanNamesForType(type, includeNonSingletons, allowEagerInit); } + @Override public Map getBeansOfType(Class type) throws BeansException { return this.beanFactory.getBeansOfType(type); } + @Override public Map getBeansOfType(Class type, boolean includeNonSingletons, boolean allowEagerInit) throws BeansException { return this.beanFactory.getBeansOfType(type, includeNonSingletons, allowEagerInit); } + @Override public Map getBeansWithAnnotation(Class annotationType) throws BeansException { return this.beanFactory.getBeansWithAnnotation(annotationType); } + @Override public A findAnnotationOnBean(String beanName, Class annotationType) { return this.beanFactory.findAnnotationOnBean(beanName, annotationType); } @@ -227,10 +254,12 @@ public A findAnnotationOnBean(String beanName, Class a // Implementation of HierarchicalBeanFactory interface //--------------------------------------------------------------------- + @Override public BeanFactory getParentBeanFactory() { return null; } + @Override public boolean containsLocalBean(String name) { return this.beanFactory.containsBean(name); } @@ -239,14 +268,17 @@ public boolean containsLocalBean(String name) { // Implementation of MessageSource interface //--------------------------------------------------------------------- + @Override public String getMessage(String code, Object args[], String defaultMessage, Locale locale) { return this.messageSource.getMessage(code, args, defaultMessage, locale); } + @Override public String getMessage(String code, Object args[], Locale locale) throws NoSuchMessageException { return this.messageSource.getMessage(code, args, locale); } + @Override public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException { return this.messageSource.getMessage(resolvable, locale); } @@ -255,10 +287,12 @@ public String getMessage(MessageSourceResolvable resolvable, Locale locale) thro // Implementation of ResourceLoader interface //--------------------------------------------------------------------- + @Override public ClassLoader getClassLoader() { return null; } + @Override public Resource getResource(String location) { return this.resourcePatternResolver.getResource(location); } @@ -267,9 +301,11 @@ public Resource getResource(String location) { // Other //--------------------------------------------------------------------- + @Override public void publishEvent(ApplicationEvent event) { } + @Override public Resource[] getResources(String locationPattern) throws IOException { return this.resourcePatternResolver.getResources(locationPattern); } @@ -282,6 +318,7 @@ public Resource[] getResources(String locationPattern) throws IOException { */ private class StubBeanFactory extends StaticListableBeanFactory implements AutowireCapableBeanFactory { + @Override public Object initializeBean(Object existingBean, String beanName) throws BeansException { if (existingBean instanceof ApplicationContextAware) { ((ApplicationContextAware) existingBean).setApplicationContext(StubWebApplicationContext.this); @@ -289,53 +326,65 @@ public Object initializeBean(Object existingBean, String beanName) throws BeansE return existingBean; } + @Override public T createBean(Class beanClass) { throw new UnsupportedOperationException(); } + @Override @SuppressWarnings("rawtypes") public Object createBean(Class beanClass, int autowireMode, boolean dependencyCheck) { throw new UnsupportedOperationException(); } + @Override @SuppressWarnings("rawtypes") public Object autowire(Class beanClass, int autowireMode, boolean dependencyCheck) { throw new UnsupportedOperationException(); } + @Override public void autowireBean(Object existingBean) throws BeansException { throw new UnsupportedOperationException(); } + @Override public void autowireBeanProperties(Object existingBean, int autowireMode, boolean dependencyCheck) { throw new UnsupportedOperationException(); } + @Override public Object configureBean(Object existingBean, String beanName) { throw new UnsupportedOperationException(); } + @Override public Object resolveDependency(DependencyDescriptor descriptor, String beanName) { throw new UnsupportedOperationException(); } + @Override public Object resolveDependency(DependencyDescriptor descriptor, String beanName, Set autowiredBeanNames, TypeConverter typeConverter) { throw new UnsupportedOperationException(); } + @Override public void applyBeanPropertyValues(Object existingBean, String beanName) throws BeansException { throw new UnsupportedOperationException(); } + @Override public Object applyBeanPostProcessorsBeforeInitialization(Object existingBean, String beanName) { throw new UnsupportedOperationException(); } + @Override public Object applyBeanPostProcessorsAfterInitialization(Object existingBean, String beanName) { throw new UnsupportedOperationException(); } + @Override public void destroyBean(Object existingBean) { throw new UnsupportedOperationException(); } diff --git a/spring-test-mvc/src/test/java/org/springframework/test/web/servlet/DefaultMvcResultTests.java b/spring-test-mvc/src/test/java/org/springframework/test/web/servlet/DefaultMvcResultTests.java index b0488791f9f5..c06329b35ab1 100644 --- a/spring-test-mvc/src/test/java/org/springframework/test/web/servlet/DefaultMvcResultTests.java +++ b/spring-test-mvc/src/test/java/org/springframework/test/web/servlet/DefaultMvcResultTests.java @@ -97,6 +97,7 @@ public ExtendedMockHttpServletRequest() { given(this.asyncContext.getTimeout()).willReturn(new Long(DEFAULT_TIMEOUT)); } + @Override public void setAsyncStarted(boolean asyncStarted) { this.asyncStarted = asyncStarted; } diff --git a/spring-test/src/main/java/org/springframework/mock/http/MockHttpInputMessage.java b/spring-test/src/main/java/org/springframework/mock/http/MockHttpInputMessage.java index d73a1ea0ef5b..0ee6d4d81943 100644 --- a/spring-test/src/main/java/org/springframework/mock/http/MockHttpInputMessage.java +++ b/spring-test/src/main/java/org/springframework/mock/http/MockHttpInputMessage.java @@ -48,10 +48,12 @@ public MockHttpInputMessage(InputStream body) { this.body = body; } + @Override public HttpHeaders getHeaders() { return this.headers; } + @Override public InputStream getBody() throws IOException { return this.body; } diff --git a/spring-test/src/main/java/org/springframework/mock/http/MockHttpOutputMessage.java b/spring-test/src/main/java/org/springframework/mock/http/MockHttpOutputMessage.java index 8cda7862a54b..df2995a6ea5e 100644 --- a/spring-test/src/main/java/org/springframework/mock/http/MockHttpOutputMessage.java +++ b/spring-test/src/main/java/org/springframework/mock/http/MockHttpOutputMessage.java @@ -44,6 +44,7 @@ public class MockHttpOutputMessage implements HttpOutputMessage { /** * Return the headers. */ + @Override public HttpHeaders getHeaders() { return this.headers; } @@ -51,6 +52,7 @@ public HttpHeaders getHeaders() { /** * Return the body content. */ + @Override public OutputStream getBody() throws IOException { return this.body; } diff --git a/spring-test/src/main/java/org/springframework/mock/http/client/MockClientHttpRequest.java b/spring-test/src/main/java/org/springframework/mock/http/client/MockClientHttpRequest.java index 0f46bbbcf326..c6896d277ce4 100644 --- a/spring-test/src/main/java/org/springframework/mock/http/client/MockClientHttpRequest.java +++ b/spring-test/src/main/java/org/springframework/mock/http/client/MockClientHttpRequest.java @@ -56,6 +56,7 @@ public MockClientHttpRequest(HttpMethod httpMethod, URI uri) { this.uri = uri; } + @Override public URI getURI() { return this.uri; } @@ -64,6 +65,7 @@ public void setURI(URI uri) { this.uri = uri; } + @Override public HttpMethod getMethod() { return this.httpMethod; } @@ -85,6 +87,7 @@ public boolean isExecuted() { * configured {@link #setResponse(ClientHttpResponse) response}. * @see #executeInternal() */ + @Override public final ClientHttpResponse execute() throws IOException { this.executed = true; return executeInternal(); diff --git a/spring-test/src/main/java/org/springframework/mock/http/client/MockClientHttpResponse.java b/spring-test/src/main/java/org/springframework/mock/http/client/MockClientHttpResponse.java index 9ed40774f1e9..64b229e558f1 100644 --- a/spring-test/src/main/java/org/springframework/mock/http/client/MockClientHttpResponse.java +++ b/spring-test/src/main/java/org/springframework/mock/http/client/MockClientHttpResponse.java @@ -52,18 +52,22 @@ public MockClientHttpResponse(InputStream body, HttpStatus statusCode) { this.status = statusCode; } + @Override public HttpStatus getStatusCode() throws IOException { return this.status; } + @Override public int getRawStatusCode() throws IOException { return this.status.value(); } + @Override public String getStatusText() throws IOException { return this.status.getReasonPhrase(); } + @Override public void close() { } diff --git a/spring-test/src/main/java/org/springframework/mock/jndi/ExpectedLookupTemplate.java b/spring-test/src/main/java/org/springframework/mock/jndi/ExpectedLookupTemplate.java index b19aaf5c5434..7bffe4de1355 100644 --- a/spring-test/src/main/java/org/springframework/mock/jndi/ExpectedLookupTemplate.java +++ b/spring-test/src/main/java/org/springframework/mock/jndi/ExpectedLookupTemplate.java @@ -67,6 +67,7 @@ public void addObject(String name, Object object) { * object provided in the constructor. If the name is unexpected, a * respective NamingException gets thrown. */ + @Override public Object lookup(String name) throws NamingException { Object object = this.jndiObjects.get(name); if (object == null) { diff --git a/spring-test/src/main/java/org/springframework/mock/jndi/SimpleNamingContext.java b/spring-test/src/main/java/org/springframework/mock/jndi/SimpleNamingContext.java index d35fbdc86571..4e1641b2cd89 100644 --- a/spring-test/src/main/java/org/springframework/mock/jndi/SimpleNamingContext.java +++ b/spring-test/src/main/java/org/springframework/mock/jndi/SimpleNamingContext.java @@ -91,6 +91,7 @@ public SimpleNamingContext(String root, Hashtable boundObjects, // Actual implementations of Context methods follow + @Override public NamingEnumeration list(String root) throws NamingException { if (logger.isDebugEnabled()) { logger.debug("Listing name/class pairs under [" + root + "]"); @@ -98,6 +99,7 @@ public NamingEnumeration list(String root) throws NamingException return new NameClassPairEnumeration(this, root); } + @Override public NamingEnumeration listBindings(String root) throws NamingException { if (logger.isDebugEnabled()) { logger.debug("Listing bindings under [" + root + "]"); @@ -111,6 +113,7 @@ public NamingEnumeration listBindings(String root) throws NamingExcepti * Will be used by any standard InitialContext JNDI lookups. * @throws javax.naming.NameNotFoundException if the object could not be found */ + @Override public Object lookup(String lookupName) throws NameNotFoundException { String name = this.root + lookupName; if (logger.isDebugEnabled()) { @@ -136,6 +139,7 @@ public Object lookup(String lookupName) throws NameNotFoundException { return found; } + @Override public Object lookupLink(String name) throws NameNotFoundException { return lookup(name); } @@ -147,6 +151,7 @@ public Object lookupLink(String name) throws NameNotFoundException { * Use SimpleNamingContextBuilder to set up JNDI bindings then. * @see org.springframework.mock.jndi.SimpleNamingContextBuilder#bind */ + @Override public void bind(String name, Object obj) { if (logger.isInfoEnabled()) { logger.info("Static JNDI binding: [" + this.root + name + "] = [" + obj + "]"); @@ -154,6 +159,7 @@ public void bind(String name, Object obj) { this.boundObjects.put(this.root + name, obj); } + @Override public void unbind(String name) { if (logger.isInfoEnabled()) { logger.info("Static JNDI remove: [" + this.root + name + "]"); @@ -161,16 +167,19 @@ public void unbind(String name) { this.boundObjects.remove(this.root + name); } + @Override public void rebind(String name, Object obj) { bind(name, obj); } + @Override public void rename(String oldName, String newName) throws NameNotFoundException { Object obj = lookup(oldName); unbind(oldName); bind(newName, obj); } + @Override public Context createSubcontext(String name) { String subcontextName = this.root + name; if (!subcontextName.endsWith("/")) { @@ -181,84 +190,104 @@ public Context createSubcontext(String name) { return subcontext; } + @Override public void destroySubcontext(String name) { unbind(name); } + @Override public String composeName(String name, String prefix) { return prefix + name; } + @Override public Hashtable getEnvironment() { return this.environment; } + @Override public Object addToEnvironment(String propName, Object propVal) { return this.environment.put(propName, propVal); } + @Override public Object removeFromEnvironment(String propName) { return this.environment.remove(propName); } + @Override public void close() { } // Unsupported methods follow: no support for javax.naming.Name + @Override public NamingEnumeration list(Name name) throws NamingException { throw new OperationNotSupportedException("SimpleNamingContext does not support [javax.naming.Name]"); } + @Override public NamingEnumeration listBindings(Name name) throws NamingException { throw new OperationNotSupportedException("SimpleNamingContext does not support [javax.naming.Name]"); } + @Override public Object lookup(Name name) throws NamingException { throw new OperationNotSupportedException("SimpleNamingContext does not support [javax.naming.Name]"); } + @Override public Object lookupLink(Name name) throws NamingException { throw new OperationNotSupportedException("SimpleNamingContext does not support [javax.naming.Name]"); } + @Override public void bind(Name name, Object obj) throws NamingException { throw new OperationNotSupportedException("SimpleNamingContext does not support [javax.naming.Name]"); } + @Override public void unbind(Name name) throws NamingException { throw new OperationNotSupportedException("SimpleNamingContext does not support [javax.naming.Name]"); } + @Override public void rebind(Name name, Object obj) throws NamingException { throw new OperationNotSupportedException("SimpleNamingContext does not support [javax.naming.Name]"); } + @Override public void rename(Name oldName, Name newName) throws NamingException { throw new OperationNotSupportedException("SimpleNamingContext does not support [javax.naming.Name]"); } + @Override public Context createSubcontext(Name name) throws NamingException { throw new OperationNotSupportedException("SimpleNamingContext does not support [javax.naming.Name]"); } + @Override public void destroySubcontext(Name name) throws NamingException { throw new OperationNotSupportedException("SimpleNamingContext does not support [javax.naming.Name]"); } + @Override public String getNameInNamespace() throws NamingException { throw new OperationNotSupportedException("SimpleNamingContext does not support [javax.naming.Name]"); } + @Override public NameParser getNameParser(Name name) throws NamingException { throw new OperationNotSupportedException("SimpleNamingContext does not support [javax.naming.Name]"); } + @Override public NameParser getNameParser(String name) throws NamingException { throw new OperationNotSupportedException("SimpleNamingContext does not support [javax.naming.Name]"); } + @Override public Name composeName(Name name, Name prefix) throws NamingException { throw new OperationNotSupportedException("SimpleNamingContext does not support [javax.naming.Name]"); } @@ -298,22 +327,27 @@ private AbstractNamingEnumeration(SimpleNamingContext context, String proot) thr protected abstract T createObject(String strippedName, Object obj); + @Override public boolean hasMore() { return this.iterator.hasNext(); } + @Override public T next() { return this.iterator.next(); } + @Override public boolean hasMoreElements() { return this.iterator.hasNext(); } + @Override public T nextElement() { return this.iterator.next(); } + @Override public void close() { } } @@ -325,6 +359,7 @@ private NameClassPairEnumeration(SimpleNamingContext context, String root) throw super(context, root); } + @Override protected NameClassPair createObject(String strippedName, Object obj) { return new NameClassPair(strippedName, obj.getClass().getName()); } @@ -337,6 +372,7 @@ private BindingEnumeration(SimpleNamingContext context, String root) throws Nami super(context, root); } + @Override protected Binding createObject(String strippedName, Object obj) { return new Binding(strippedName, obj); } diff --git a/spring-test/src/main/java/org/springframework/mock/jndi/SimpleNamingContextBuilder.java b/spring-test/src/main/java/org/springframework/mock/jndi/SimpleNamingContextBuilder.java index 5d2f70d51983..2e242c61fd63 100644 --- a/spring-test/src/main/java/org/springframework/mock/jndi/SimpleNamingContextBuilder.java +++ b/spring-test/src/main/java/org/springframework/mock/jndi/SimpleNamingContextBuilder.java @@ -191,6 +191,7 @@ public void bind(String name, Object obj) { * creating a new SimpleNamingContext instance. * @see SimpleNamingContext */ + @Override public InitialContextFactory createInitialContextFactory(Hashtable environment) { if (activated == null && environment != null) { Object icf = environment.get(Context.INITIAL_CONTEXT_FACTORY); @@ -224,6 +225,7 @@ else if (icf instanceof String) { // Default case... return new InitialContextFactory() { + @Override @SuppressWarnings("unchecked") public Context getInitialContext(Hashtable environment) { return new SimpleNamingContext("", boundObjects, (Hashtable) environment); diff --git a/spring-test/src/main/java/org/springframework/mock/web/DelegatingServletInputStream.java b/spring-test/src/main/java/org/springframework/mock/web/DelegatingServletInputStream.java index f97e60e2ebb7..1b8cf3eeba6b 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/DelegatingServletInputStream.java +++ b/spring-test/src/main/java/org/springframework/mock/web/DelegatingServletInputStream.java @@ -54,10 +54,12 @@ public final InputStream getSourceStream() { } + @Override public int read() throws IOException { return this.sourceStream.read(); } + @Override public void close() throws IOException { super.close(); this.sourceStream.close(); diff --git a/spring-test/src/main/java/org/springframework/mock/web/DelegatingServletOutputStream.java b/spring-test/src/main/java/org/springframework/mock/web/DelegatingServletOutputStream.java index 23694170305d..d580974a6084 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/DelegatingServletOutputStream.java +++ b/spring-test/src/main/java/org/springframework/mock/web/DelegatingServletOutputStream.java @@ -54,15 +54,18 @@ public final OutputStream getTargetStream() { } + @Override public void write(int b) throws IOException { this.targetStream.write(b); } + @Override public void flush() throws IOException { super.flush(); this.targetStream.flush(); } + @Override public void close() throws IOException { super.close(); this.targetStream.close(); diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockAsyncContext.java b/spring-test/src/main/java/org/springframework/mock/web/MockAsyncContext.java index 98207aa34599..d53e97505d1e 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockAsyncContext.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockAsyncContext.java @@ -56,26 +56,32 @@ public MockAsyncContext(ServletRequest request, ServletResponse response) { } + @Override public ServletRequest getRequest() { return this.request; } + @Override public ServletResponse getResponse() { return this.response; } + @Override public boolean hasOriginalRequestAndResponse() { return (this.request instanceof MockHttpServletRequest) && (this.response instanceof MockHttpServletResponse); } + @Override public void dispatch() { dispatch(this.request.getRequestURI()); } + @Override public void dispatch(String path) { dispatch(null, path); } + @Override public void dispatch(ServletContext context, String path) { this.dispatchedPath = path; } @@ -84,6 +90,7 @@ public String getDispatchedPath() { return this.dispatchedPath; } + @Override public void complete() { MockHttpServletRequest mockRequest = WebUtils.getNativeRequest(request, MockHttpServletRequest.class); if (mockRequest != null) { @@ -99,14 +106,17 @@ public void complete() { } } + @Override public void start(Runnable runnable) { runnable.run(); } + @Override public void addListener(AsyncListener listener) { this.listeners.add(listener); } + @Override public void addListener(AsyncListener listener, ServletRequest request, ServletResponse response) { this.listeners.add(listener); } @@ -115,14 +125,17 @@ public List getListeners() { return this.listeners; } + @Override public T createListener(Class clazz) throws ServletException { return BeanUtils.instantiateClass(clazz); } + @Override public void setTimeout(long timeout) { this.timeout = timeout; } + @Override public long getTimeout() { return this.timeout; } diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockBodyContent.java b/spring-test/src/main/java/org/springframework/mock/web/MockBodyContent.java index 0e6449bcb057..3b98e2edb5f1 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockBodyContent.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockBodyContent.java @@ -77,14 +77,17 @@ private static JspWriter adaptJspWriter(Writer targetWriter, HttpServletResponse } + @Override public Reader getReader() { return new StringReader(this.content); } + @Override public String getString() { return this.content; } + @Override public void writeOut(Writer writer) throws IOException { writer.write(this.content); } @@ -94,102 +97,127 @@ public void writeOut(Writer writer) throws IOException { // Delegating implementations of JspWriter's abstract methods //--------------------------------------------------------------------- + @Override public void clear() throws IOException { getEnclosingWriter().clear(); } + @Override public void clearBuffer() throws IOException { getEnclosingWriter().clearBuffer(); } + @Override public void close() throws IOException { getEnclosingWriter().close(); } + @Override public int getRemaining() { return getEnclosingWriter().getRemaining(); } + @Override public void newLine() throws IOException { getEnclosingWriter().println(); } + @Override public void write(char value[], int offset, int length) throws IOException { getEnclosingWriter().write(value, offset, length); } + @Override public void print(boolean value) throws IOException { getEnclosingWriter().print(value); } + @Override public void print(char value) throws IOException { getEnclosingWriter().print(value); } + @Override public void print(char[] value) throws IOException { getEnclosingWriter().print(value); } + @Override public void print(double value) throws IOException { getEnclosingWriter().print(value); } + @Override public void print(float value) throws IOException { getEnclosingWriter().print(value); } + @Override public void print(int value) throws IOException { getEnclosingWriter().print(value); } + @Override public void print(long value) throws IOException { getEnclosingWriter().print(value); } + @Override public void print(Object value) throws IOException { getEnclosingWriter().print(value); } + @Override public void print(String value) throws IOException { getEnclosingWriter().print(value); } + @Override public void println() throws IOException { getEnclosingWriter().println(); } + @Override public void println(boolean value) throws IOException { getEnclosingWriter().println(value); } + @Override public void println(char value) throws IOException { getEnclosingWriter().println(value); } + @Override public void println(char[] value) throws IOException { getEnclosingWriter().println(value); } + @Override public void println(double value) throws IOException { getEnclosingWriter().println(value); } + @Override public void println(float value) throws IOException { getEnclosingWriter().println(value); } + @Override public void println(int value) throws IOException { getEnclosingWriter().println(value); } + @Override public void println(long value) throws IOException { getEnclosingWriter().println(value); } + @Override public void println(Object value) throws IOException { getEnclosingWriter().println(value); } + @Override public void println(String value) throws IOException { getEnclosingWriter().println(value); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockExpressionEvaluator.java b/spring-test/src/main/java/org/springframework/mock/web/MockExpressionEvaluator.java index 6b69fdb7048d..f1c08e277471 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockExpressionEvaluator.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockExpressionEvaluator.java @@ -56,18 +56,21 @@ public MockExpressionEvaluator(PageContext pageContext) { this.pageContext = pageContext; } + @Override @SuppressWarnings("rawtypes") public Expression parseExpression(final String expression, final Class expectedType, final FunctionMapper functionMapper) throws ELException { return new Expression() { + @Override public Object evaluate(VariableResolver variableResolver) throws ELException { return doEvaluate(expression, expectedType, functionMapper); } }; } + @Override @SuppressWarnings("rawtypes") public Object evaluate(String expression, Class expectedType, VariableResolver variableResolver, FunctionMapper functionMapper) throws ELException { diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockFilterChain.java b/spring-test/src/main/java/org/springframework/mock/web/MockFilterChain.java index a80a2fb454af..503c51f9018d 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockFilterChain.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockFilterChain.java @@ -119,6 +119,7 @@ public ServletResponse getResponse() { * Invoke registered {@link Filter}s and/or {@link Servlet} also saving the * request and response. */ + @Override public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { Assert.notNull(request, "Request must not be null"); Assert.notNull(response, "Response must not be null"); @@ -162,15 +163,18 @@ private ServletFilterProxy(Servlet servlet) { this.delegateServlet = servlet; } + @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { this.delegateServlet.service(request, response); } + @Override public void init(FilterConfig filterConfig) throws ServletException { } + @Override public void destroy() { } diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockFilterConfig.java b/spring-test/src/main/java/org/springframework/mock/web/MockFilterConfig.java index 49e5beb45a7b..99e7722f3358 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockFilterConfig.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockFilterConfig.java @@ -79,10 +79,12 @@ public MockFilterConfig(ServletContext servletContext, String filterName) { } + @Override public String getFilterName() { return filterName; } + @Override public ServletContext getServletContext() { return servletContext; } @@ -92,11 +94,13 @@ public void addInitParameter(String name, String value) { this.initParameters.put(name, value); } + @Override public String getInitParameter(String name) { Assert.notNull(name, "Parameter name must not be null"); return this.initParameters.get(name); } + @Override public Enumeration getInitParameterNames() { return Collections.enumeration(this.initParameters.keySet()); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java b/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java index ff62c47fe8d8..533d52064ac2 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java @@ -262,6 +262,7 @@ public MockHttpServletRequest(ServletContext servletContext, String method, Stri * Return the ServletContext that this request is associated with. (Not * available in the standard HttpServletRequest interface for some reason.) */ + @Override public ServletContext getServletContext() { return this.servletContext; } @@ -303,20 +304,24 @@ protected void checkActive() throws IllegalStateException { // ServletRequest interface // --------------------------------------------------------------------- + @Override public Object getAttribute(String name) { checkActive(); return this.attributes.get(name); } + @Override public Enumeration getAttributeNames() { checkActive(); return Collections.enumeration(new LinkedHashSet(this.attributes.keySet())); } + @Override public String getCharacterEncoding() { return this.characterEncoding; } + @Override public void setCharacterEncoding(String characterEncoding) { this.characterEncoding = characterEncoding; updateContentTypeHeader(); @@ -336,6 +341,7 @@ public void setContent(byte[] content) { this.content = content; } + @Override public int getContentLength() { return (this.content != null ? this.content.length : -1); } @@ -352,10 +358,12 @@ public void setContentType(String contentType) { } } + @Override public String getContentType() { return this.contentType; } + @Override public ServletInputStream getInputStream() { if (this.content != null) { return new DelegatingServletInputStream(new ByteArrayInputStream(this.content)); @@ -477,19 +485,23 @@ public void removeAllParameters() { this.parameters.clear(); } + @Override public String getParameter(String name) { String[] arr = (name != null ? this.parameters.get(name) : null); return (arr != null && arr.length > 0 ? arr[0] : null); } + @Override public Enumeration getParameterNames() { return Collections.enumeration(this.parameters.keySet()); } + @Override public String[] getParameterValues(String name) { return (name != null ? this.parameters.get(name) : null); } + @Override public Map getParameterMap() { return Collections.unmodifiableMap(this.parameters); } @@ -498,6 +510,7 @@ public void setProtocol(String protocol) { this.protocol = protocol; } + @Override public String getProtocol() { return this.protocol; } @@ -506,6 +519,7 @@ public void setScheme(String scheme) { this.scheme = scheme; } + @Override public String getScheme() { return this.scheme; } @@ -514,6 +528,7 @@ public void setServerName(String serverName) { this.serverName = serverName; } + @Override public String getServerName() { return this.serverName; } @@ -522,10 +537,12 @@ public void setServerPort(int serverPort) { this.serverPort = serverPort; } + @Override public int getServerPort() { return this.serverPort; } + @Override public BufferedReader getReader() throws UnsupportedEncodingException { if (this.content != null) { InputStream sourceStream = new ByteArrayInputStream(this.content); @@ -542,6 +559,7 @@ public void setRemoteAddr(String remoteAddr) { this.remoteAddr = remoteAddr; } + @Override public String getRemoteAddr() { return this.remoteAddr; } @@ -550,10 +568,12 @@ public void setRemoteHost(String remoteHost) { this.remoteHost = remoteHost; } + @Override public String getRemoteHost() { return this.remoteHost; } + @Override public void setAttribute(String name, Object value) { checkActive(); Assert.notNull(name, "Attribute name must not be null"); @@ -565,6 +585,7 @@ public void setAttribute(String name, Object value) { } } + @Override public void removeAttribute(String name) { checkActive(); Assert.notNull(name, "Attribute name must not be null"); @@ -599,10 +620,12 @@ public void setPreferredLocales(List locales) { this.locales.addAll(locales); } + @Override public Locale getLocale() { return this.locales.get(0); } + @Override public Enumeration getLocales() { return Collections.enumeration(this.locales); } @@ -611,14 +634,17 @@ public void setSecure(boolean secure) { this.secure = secure; } + @Override public boolean isSecure() { return this.secure; } + @Override public RequestDispatcher getRequestDispatcher(String path) { return new MockRequestDispatcher(path); } + @Override public String getRealPath(String path) { return this.servletContext.getRealPath(path); } @@ -627,6 +653,7 @@ public void setRemotePort(int remotePort) { this.remotePort = remotePort; } + @Override public int getRemotePort() { return this.remotePort; } @@ -635,6 +662,7 @@ public void setLocalName(String localName) { this.localName = localName; } + @Override public String getLocalName() { return this.localName; } @@ -643,6 +671,7 @@ public void setLocalAddr(String localAddr) { this.localAddr = localAddr; } + @Override public String getLocalAddr() { return this.localAddr; } @@ -651,14 +680,17 @@ public void setLocalPort(int localPort) { this.localPort = localPort; } + @Override public int getLocalPort() { return this.localPort; } + @Override public AsyncContext startAsync() { return startAsync(this, null); } + @Override public AsyncContext startAsync(ServletRequest request, ServletResponse response) { if (!this.asyncSupported) { throw new IllegalStateException("Async not supported"); @@ -672,6 +704,7 @@ public void setAsyncStarted(boolean asyncStarted) { this.asyncStarted = asyncStarted; } + @Override public boolean isAsyncStarted() { return this.asyncStarted; } @@ -680,6 +713,7 @@ public void setAsyncSupported(boolean asyncSupported) { this.asyncSupported = asyncSupported; } + @Override public boolean isAsyncSupported() { return this.asyncSupported; } @@ -688,6 +722,7 @@ public void setAsyncContext(MockAsyncContext asyncContext) { this.asyncContext = asyncContext; } + @Override public AsyncContext getAsyncContext() { return this.asyncContext; } @@ -696,6 +731,7 @@ public void setDispatcherType(DispatcherType dispatcherType) { this.dispatcherType = dispatcherType; } + @Override public DispatcherType getDispatcherType() { return this.dispatcherType; } @@ -709,6 +745,7 @@ public void setAuthType(String authType) { this.authType = authType; } + @Override public String getAuthType() { return this.authType; } @@ -717,6 +754,7 @@ public void setCookies(Cookie... cookies) { this.cookies = cookies; } + @Override public Cookie[] getCookies() { return this.cookies; } @@ -765,6 +803,7 @@ else if (value.getClass().isArray()) { } } + @Override public long getDateHeader(String name) { HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name); Object value = (header != null ? header.getValue() : null); @@ -783,20 +822,24 @@ else if (value != null) { } } + @Override public String getHeader(String name) { HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name); return (header != null ? header.getStringValue() : null); } + @Override public Enumeration getHeaders(String name) { HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name); return Collections.enumeration(header != null ? header.getStringValues() : new LinkedList()); } + @Override public Enumeration getHeaderNames() { return Collections.enumeration(this.headers.keySet()); } + @Override public int getIntHeader(String name) { HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name); Object value = (header != null ? header.getValue() : null); @@ -818,6 +861,7 @@ public void setMethod(String method) { this.method = method; } + @Override public String getMethod() { return this.method; } @@ -826,10 +870,12 @@ public void setPathInfo(String pathInfo) { this.pathInfo = pathInfo; } + @Override public String getPathInfo() { return this.pathInfo; } + @Override public String getPathTranslated() { return (this.pathInfo != null ? getRealPath(this.pathInfo) : null); } @@ -838,6 +884,7 @@ public void setContextPath(String contextPath) { this.contextPath = contextPath; } + @Override public String getContextPath() { return this.contextPath; } @@ -846,6 +893,7 @@ public void setQueryString(String queryString) { this.queryString = queryString; } + @Override public String getQueryString() { return this.queryString; } @@ -854,6 +902,7 @@ public void setRemoteUser(String remoteUser) { this.remoteUser = remoteUser; } + @Override public String getRemoteUser() { return this.remoteUser; } @@ -862,6 +911,7 @@ public void addUserRole(String role) { this.userRoles.add(role); } + @Override public boolean isUserInRole(String role) { return (this.userRoles.contains(role) || (this.servletContext instanceof MockServletContext && ((MockServletContext) this.servletContext).getDeclaredRoles().contains(role))); @@ -871,6 +921,7 @@ public void setUserPrincipal(Principal userPrincipal) { this.userPrincipal = userPrincipal; } + @Override public Principal getUserPrincipal() { return this.userPrincipal; } @@ -879,6 +930,7 @@ public void setRequestedSessionId(String requestedSessionId) { this.requestedSessionId = requestedSessionId; } + @Override public String getRequestedSessionId() { return this.requestedSessionId; } @@ -887,10 +939,12 @@ public void setRequestURI(String requestURI) { this.requestURI = requestURI; } + @Override public String getRequestURI() { return this.requestURI; } + @Override public StringBuffer getRequestURL() { StringBuffer url = new StringBuffer(this.scheme); url.append("://").append(this.serverName).append(':').append(this.serverPort); @@ -902,6 +956,7 @@ public void setServletPath(String servletPath) { this.servletPath = servletPath; } + @Override public String getServletPath() { return this.servletPath; } @@ -914,6 +969,7 @@ public void setSession(HttpSession session) { } } + @Override public HttpSession getSession(boolean create) { checkActive(); // Reset session if invalidated. @@ -927,6 +983,7 @@ public HttpSession getSession(boolean create) { return this.session; } + @Override public HttpSession getSession() { return getSession(true); } @@ -935,6 +992,7 @@ public void setRequestedSessionIdValid(boolean requestedSessionIdValid) { this.requestedSessionIdValid = requestedSessionIdValid; } + @Override public boolean isRequestedSessionIdValid() { return this.requestedSessionIdValid; } @@ -943,6 +1001,7 @@ public void setRequestedSessionIdFromCookie(boolean requestedSessionIdFromCookie this.requestedSessionIdFromCookie = requestedSessionIdFromCookie; } + @Override public boolean isRequestedSessionIdFromCookie() { return this.requestedSessionIdFromCookie; } @@ -951,22 +1010,27 @@ public void setRequestedSessionIdFromURL(boolean requestedSessionIdFromURL) { this.requestedSessionIdFromURL = requestedSessionIdFromURL; } + @Override public boolean isRequestedSessionIdFromURL() { return this.requestedSessionIdFromURL; } + @Override public boolean isRequestedSessionIdFromUrl() { return isRequestedSessionIdFromURL(); } + @Override public boolean authenticate(HttpServletResponse response) throws IOException, ServletException { throw new UnsupportedOperationException(); } + @Override public void login(String username, String password) throws ServletException { throw new UnsupportedOperationException(); } + @Override public void logout() throws ServletException { this.userPrincipal = null; this.remoteUser = null; @@ -977,10 +1041,12 @@ public void addPart(Part part) { this.parts.put(part.getName(), part); } + @Override public Part getPart(String name) throws IOException, IllegalStateException, ServletException { return this.parts.get(name); } + @Override public Collection getParts() throws IOException, IllegalStateException, ServletException { return this.parts.values(); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletResponse.java b/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletResponse.java index 84c85045d067..adae753c6796 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletResponse.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletResponse.java @@ -138,6 +138,7 @@ public boolean isWriterAccessAllowed() { return this.writerAccessAllowed; } + @Override public void setCharacterEncoding(String characterEncoding) { this.characterEncoding = characterEncoding; this.charset = true; @@ -154,10 +155,12 @@ private void updateContentTypeHeader() { } } + @Override public String getCharacterEncoding() { return this.characterEncoding; } + @Override public ServletOutputStream getOutputStream() { if (!this.outputStreamAccessAllowed) { throw new IllegalStateException("OutputStream access not allowed"); @@ -165,6 +168,7 @@ public ServletOutputStream getOutputStream() { return this.outputStream; } + @Override public PrintWriter getWriter() throws UnsupportedEncodingException { if (!this.writerAccessAllowed) { throw new IllegalStateException("Writer access not allowed"); @@ -188,6 +192,7 @@ public String getContentAsString() throws UnsupportedEncodingException { this.content.toString(this.characterEncoding) : this.content.toString(); } + @Override public void setContentLength(int contentLength) { this.contentLength = contentLength; doAddHeaderValue(CONTENT_LENGTH_HEADER, contentLength, true); @@ -206,6 +211,7 @@ public long getContentLengthLong() { return this.contentLength; } + @Override public void setContentType(String contentType) { this.contentType = contentType; if (contentType != null) { @@ -219,22 +225,27 @@ public void setContentType(String contentType) { } } + @Override public String getContentType() { return this.contentType; } + @Override public void setBufferSize(int bufferSize) { this.bufferSize = bufferSize; } + @Override public int getBufferSize() { return this.bufferSize; } + @Override public void flushBuffer() { setCommitted(true); } + @Override public void resetBuffer() { if (isCommitted()) { throw new IllegalStateException("Cannot reset buffer - response is already committed"); @@ -253,10 +264,12 @@ public void setCommitted(boolean committed) { this.committed = committed; } + @Override public boolean isCommitted() { return this.committed; } + @Override public void reset() { resetBuffer(); this.characterEncoding = null; @@ -269,10 +282,12 @@ public void reset() { this.errorMessage = null; } + @Override public void setLocale(Locale locale) { this.locale = locale; } + @Override public Locale getLocale() { return this.locale; } @@ -282,6 +297,7 @@ public Locale getLocale() { // HttpServletResponse interface //--------------------------------------------------------------------- + @Override public void addCookie(Cookie cookie) { Assert.notNull(cookie, "Cookie must not be null"); this.cookies.add(cookie); @@ -301,6 +317,7 @@ public Cookie getCookie(String name) { return null; } + @Override public boolean containsHeader(String name) { return (HeaderValueHolder.getByName(this.headers, name) != null); } @@ -310,6 +327,7 @@ public boolean containsHeader(String name) { *

As of Servlet 3.0, this method is also defined HttpServletResponse. * @return the {@code Set} of header name {@code Strings}, or an empty {@code Set} if none */ + @Override public Collection getHeaderNames() { return this.headers.keySet(); } @@ -323,6 +341,7 @@ public Collection getHeaderNames() { * @param name the name of the header * @return the associated header value, or {@code null} if none */ + @Override public String getHeader(String name) { HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name); return (header != null ? header.getStringValue() : null); @@ -336,6 +355,7 @@ public String getHeader(String name) { * @param name the name of the header * @return the associated header values, or an empty List if none */ + @Override public List getHeaders(String name) { HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name); if (header != null) { @@ -376,6 +396,7 @@ public List getHeaderValues(String name) { * The default implementation returns the given URL String as-is. *

Can be overridden in subclasses, appending a session id or the like. */ + @Override public String encodeURL(String url) { return url; } @@ -388,18 +409,22 @@ public String encodeURL(String url) { * override the common {@link #encodeURL} method instead, applying * to redirect URLs as well as to general URLs. */ + @Override public String encodeRedirectURL(String url) { return encodeURL(url); } + @Override public String encodeUrl(String url) { return encodeURL(url); } + @Override public String encodeRedirectUrl(String url) { return encodeRedirectURL(url); } + @Override public void sendError(int status, String errorMessage) throws IOException { if (isCommitted()) { throw new IllegalStateException("Cannot set error status - response is already committed"); @@ -409,6 +434,7 @@ public void sendError(int status, String errorMessage) throws IOException { setCommitted(true); } + @Override public void sendError(int status) throws IOException { if (isCommitted()) { throw new IllegalStateException("Cannot set error status - response is already committed"); @@ -417,6 +443,7 @@ public void sendError(int status) throws IOException { setCommitted(true); } + @Override public void sendRedirect(String url) throws IOException { if (isCommitted()) { throw new IllegalStateException("Cannot send redirect - response is already committed"); @@ -431,26 +458,32 @@ public String getRedirectedUrl() { return getHeader(LOCATION_HEADER); } + @Override public void setDateHeader(String name, long value) { setHeaderValue(name, value); } + @Override public void addDateHeader(String name, long value) { addHeaderValue(name, value); } + @Override public void setHeader(String name, String value) { setHeaderValue(name, value); } + @Override public void addHeader(String name, String value) { addHeaderValue(name, value); } + @Override public void setIntHeader(String name, int value) { setHeaderValue(name, value); } + @Override public void addIntHeader(String name, int value) { addHeaderValue(name, value); } @@ -498,15 +531,18 @@ private void doAddHeaderValue(String name, Object value, boolean replace) { } } + @Override public void setStatus(int status) { this.status = status; } + @Override public void setStatus(int status, String errorMessage) { this.status = status; this.errorMessage = errorMessage; } + @Override public int getStatus() { return this.status; } @@ -564,12 +600,14 @@ public ResponseServletOutputStream(OutputStream out) { super(out); } + @Override public void write(int b) throws IOException { super.write(b); super.flush(); setCommittedIfBufferSizeExceeded(); } + @Override public void flush() throws IOException { super.flush(); setCommitted(true); @@ -587,24 +625,28 @@ public ResponsePrintWriter(Writer out) { super(out, true); } + @Override public void write(char buf[], int off, int len) { super.write(buf, off, len); super.flush(); setCommittedIfBufferSizeExceeded(); } + @Override public void write(String s, int off, int len) { super.write(s, off, len); super.flush(); setCommittedIfBufferSizeExceeded(); } + @Override public void write(int c) { super.write(c); super.flush(); setCommittedIfBufferSizeExceeded(); } + @Override public void flush() { super.flush(); setCommitted(true); diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockHttpSession.java b/spring-test/src/main/java/org/springframework/mock/web/MockHttpSession.java index 548c2016d153..5daf16d36e05 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockHttpSession.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockHttpSession.java @@ -100,10 +100,12 @@ public MockHttpSession(ServletContext servletContext, String id) { this.id = (id != null ? id : Integer.toString(nextId++)); } + @Override public long getCreationTime() { return this.creationTime; } + @Override public String getId() { return this.id; } @@ -113,43 +115,53 @@ public void access() { this.isNew = false; } + @Override public long getLastAccessedTime() { return this.lastAccessedTime; } + @Override public ServletContext getServletContext() { return this.servletContext; } + @Override public void setMaxInactiveInterval(int interval) { this.maxInactiveInterval = interval; } + @Override public int getMaxInactiveInterval() { return this.maxInactiveInterval; } + @Override public HttpSessionContext getSessionContext() { throw new UnsupportedOperationException("getSessionContext"); } + @Override public Object getAttribute(String name) { Assert.notNull(name, "Attribute name must not be null"); return this.attributes.get(name); } + @Override public Object getValue(String name) { return getAttribute(name); } + @Override public Enumeration getAttributeNames() { return Collections.enumeration(new LinkedHashSet(this.attributes.keySet())); } + @Override public String[] getValueNames() { return this.attributes.keySet().toArray(new String[this.attributes.size()]); } + @Override public void setAttribute(String name, Object value) { Assert.notNull(name, "Attribute name must not be null"); if (value != null) { @@ -163,10 +175,12 @@ public void setAttribute(String name, Object value) { } } + @Override public void putValue(String name, Object value) { setAttribute(name, value); } + @Override public void removeAttribute(String name) { Assert.notNull(name, "Attribute name must not be null"); Object value = this.attributes.remove(name); @@ -175,6 +189,7 @@ public void removeAttribute(String name) { } } + @Override public void removeValue(String name) { removeAttribute(name); } @@ -199,6 +214,7 @@ public void clearAttributes() { * * @throws IllegalStateException if this method is called on an already invalidated session */ + @Override public void invalidate() { if (this.invalid) { throw new IllegalStateException("The session has already been invalidated"); @@ -217,6 +233,7 @@ public void setNew(boolean value) { this.isNew = value; } + @Override public boolean isNew() { return this.isNew; } diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockJspWriter.java b/spring-test/src/main/java/org/springframework/mock/web/MockJspWriter.java index 0dfb31b007dc..9fc585e59af7 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockJspWriter.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockJspWriter.java @@ -82,6 +82,7 @@ protected PrintWriter getTargetWriter() throws IOException { } + @Override public void clear() throws IOException { if (this.response.isCommitted()) { throw new IOException("Response already committed"); @@ -89,101 +90,126 @@ public void clear() throws IOException { this.response.resetBuffer(); } + @Override public void clearBuffer() throws IOException { } + @Override public void flush() throws IOException { this.response.flushBuffer(); } + @Override public void close() throws IOException { flush(); } + @Override public int getRemaining() { return Integer.MAX_VALUE; } + @Override public void newLine() throws IOException { getTargetWriter().println(); } + @Override public void write(char value[], int offset, int length) throws IOException { getTargetWriter().write(value, offset, length); } + @Override public void print(boolean value) throws IOException { getTargetWriter().print(value); } + @Override public void print(char value) throws IOException { getTargetWriter().print(value); } + @Override public void print(char[] value) throws IOException { getTargetWriter().print(value); } + @Override public void print(double value) throws IOException { getTargetWriter().print(value); } + @Override public void print(float value) throws IOException { getTargetWriter().print(value); } + @Override public void print(int value) throws IOException { getTargetWriter().print(value); } + @Override public void print(long value) throws IOException { getTargetWriter().print(value); } + @Override public void print(Object value) throws IOException { getTargetWriter().print(value); } + @Override public void print(String value) throws IOException { getTargetWriter().print(value); } + @Override public void println() throws IOException { getTargetWriter().println(); } + @Override public void println(boolean value) throws IOException { getTargetWriter().println(value); } + @Override public void println(char value) throws IOException { getTargetWriter().println(value); } + @Override public void println(char[] value) throws IOException { getTargetWriter().println(value); } + @Override public void println(double value) throws IOException { getTargetWriter().println(value); } + @Override public void println(float value) throws IOException { getTargetWriter().println(value); } + @Override public void println(int value) throws IOException { getTargetWriter().println(value); } + @Override public void println(long value) throws IOException { getTargetWriter().println(value); } + @Override public void println(Object value) throws IOException { getTargetWriter().println(value); } + @Override public void println(String value) throws IOException { getTargetWriter().println(value); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockMultipartFile.java b/spring-test/src/main/java/org/springframework/mock/web/MockMultipartFile.java index c68ee18ce718..91eb319f351a 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockMultipartFile.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockMultipartFile.java @@ -96,34 +96,42 @@ public MockMultipartFile(String name, String originalFilename, String contentTyp this(name, originalFilename, contentType, FileCopyUtils.copyToByteArray(contentStream)); } + @Override public String getName() { return this.name; } + @Override public String getOriginalFilename() { return this.originalFilename; } + @Override public String getContentType() { return this.contentType; } + @Override public boolean isEmpty() { return (this.content.length == 0); } + @Override public long getSize() { return this.content.length; } + @Override public byte[] getBytes() throws IOException { return this.content; } + @Override public InputStream getInputStream() throws IOException { return new ByteArrayInputStream(this.content); } + @Override public void transferTo(File dest) throws IOException, IllegalStateException { FileCopyUtils.copy(this.content, dest); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockMultipartHttpServletRequest.java b/spring-test/src/main/java/org/springframework/mock/web/MockMultipartHttpServletRequest.java index 0ffaeb655fe9..01abe7665fde 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockMultipartHttpServletRequest.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockMultipartHttpServletRequest.java @@ -82,14 +82,17 @@ public void addFile(MultipartFile file) { this.multipartFiles.add(file.getName(), file); } + @Override public Iterator getFileNames() { return this.multipartFiles.keySet().iterator(); } + @Override public MultipartFile getFile(String name) { return this.multipartFiles.getFirst(name); } + @Override public List getFiles(String name) { List multipartFiles = this.multipartFiles.get(name); if (multipartFiles != null) { @@ -100,14 +103,17 @@ public List getFiles(String name) { } } + @Override public Map getFileMap() { return this.multipartFiles.toSingleValueMap(); } + @Override public MultiValueMap getMultiFileMap() { return new LinkedMultiValueMap(this.multipartFiles); } + @Override public String getMultipartContentType(String paramOrFileName) { MultipartFile file = getFile(paramOrFileName); if (file != null) { @@ -118,10 +124,12 @@ public String getMultipartContentType(String paramOrFileName) { } } + @Override public HttpMethod getRequestMethod() { return HttpMethod.valueOf(getMethod()); } + @Override public HttpHeaders getRequestHeaders() { HttpHeaders headers = new HttpHeaders(); Enumeration headerNames = getHeaderNames(); @@ -132,6 +140,7 @@ public HttpHeaders getRequestHeaders() { return headers; } + @Override public HttpHeaders getMultipartHeaders(String paramOrFileName) { String contentType = getMultipartContentType(paramOrFileName); if (contentType != null) { diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockPageContext.java b/spring-test/src/main/java/org/springframework/mock/web/MockPageContext.java index eefae9303489..122d38bea59d 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockPageContext.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockPageContext.java @@ -127,6 +127,7 @@ public MockPageContext(ServletContext servletContext, HttpServletRequest request } + @Override public void initialize( Servlet servlet, ServletRequest request, ServletResponse response, String errorPageURL, boolean needsSession, int bufferSize, boolean autoFlush) { @@ -134,9 +135,11 @@ public void initialize( throw new UnsupportedOperationException("Use appropriate constructor"); } + @Override public void release() { } + @Override public void setAttribute(String name, Object value) { Assert.notNull(name, "Attribute name must not be null"); if (value != null) { @@ -147,6 +150,7 @@ public void setAttribute(String name, Object value) { } } + @Override public void setAttribute(String name, Object value, int scope) { Assert.notNull(name, "Attribute name must not be null"); switch (scope) { @@ -167,11 +171,13 @@ public void setAttribute(String name, Object value, int scope) { } } + @Override public Object getAttribute(String name) { Assert.notNull(name, "Attribute name must not be null"); return this.attributes.get(name); } + @Override public Object getAttribute(String name, int scope) { Assert.notNull(name, "Attribute name must not be null"); switch (scope) { @@ -189,6 +195,7 @@ public Object getAttribute(String name, int scope) { } } + @Override public Object findAttribute(String name) { Object value = getAttribute(name); if (value == null) { @@ -203,6 +210,7 @@ public Object findAttribute(String name) { return value; } + @Override public void removeAttribute(String name) { Assert.notNull(name, "Attribute name must not be null"); this.removeAttribute(name, PageContext.PAGE_SCOPE); @@ -211,6 +219,7 @@ public void removeAttribute(String name) { this.removeAttribute(name, PageContext.APPLICATION_SCOPE); } + @Override public void removeAttribute(String name, int scope) { Assert.notNull(name, "Attribute name must not be null"); switch (scope) { @@ -231,6 +240,7 @@ public void removeAttribute(String name, int scope) { } } + @Override public int getAttributesScope(String name) { if (getAttribute(name) != null) { return PAGE_SCOPE; @@ -253,6 +263,7 @@ public Enumeration getAttributeNames() { return Collections.enumeration(new LinkedHashSet(this.attributes.keySet())); } + @Override public Enumeration getAttributeNamesInScope(int scope) { switch (scope) { case PAGE_SCOPE: @@ -269,6 +280,7 @@ public Enumeration getAttributeNamesInScope(int scope) { } } + @Override public JspWriter getOut() { if (this.out == null) { this.out = new MockJspWriter(this.response); @@ -276,54 +288,67 @@ public JspWriter getOut() { return this.out; } + @Override public ExpressionEvaluator getExpressionEvaluator() { return new MockExpressionEvaluator(this); } + @Override public ELContext getELContext() { return null; } + @Override public VariableResolver getVariableResolver() { return null; } + @Override public HttpSession getSession() { return this.request.getSession(); } + @Override public Object getPage() { return this; } + @Override public ServletRequest getRequest() { return this.request; } + @Override public ServletResponse getResponse() { return this.response; } + @Override public Exception getException() { return null; } + @Override public ServletConfig getServletConfig() { return this.servletConfig; } + @Override public ServletContext getServletContext() { return this.servletContext; } + @Override public void forward(String path) throws ServletException, IOException { this.request.getRequestDispatcher(path).forward(this.request, this.response); } + @Override public void include(String path) throws ServletException, IOException { this.request.getRequestDispatcher(path).include(this.request, this.response); } + @Override public void include(String path, boolean flush) throws ServletException, IOException { this.request.getRequestDispatcher(path).include(this.request, this.response); if (flush) { @@ -341,10 +366,12 @@ public String getContentAsString() throws UnsupportedEncodingException { return ((MockHttpServletResponse) this.response).getContentAsString(); } + @Override public void handlePageException(Exception ex) throws ServletException, IOException { throw new ServletException("Page exception", ex); } + @Override public void handlePageException(Throwable ex) throws ServletException, IOException { throw new ServletException("Page exception", ex); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockRequestDispatcher.java b/spring-test/src/main/java/org/springframework/mock/web/MockRequestDispatcher.java index 88660bb3aed9..e43172c19821 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockRequestDispatcher.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockRequestDispatcher.java @@ -55,6 +55,7 @@ public MockRequestDispatcher(String resource) { } + @Override public void forward(ServletRequest request, ServletResponse response) { Assert.notNull(request, "Request must not be null"); Assert.notNull(response, "Response must not be null"); @@ -67,6 +68,7 @@ public void forward(ServletRequest request, ServletResponse response) { } } + @Override public void include(ServletRequest request, ServletResponse response) { Assert.notNull(request, "Request must not be null"); Assert.notNull(response, "Response must not be null"); diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockServletConfig.java b/spring-test/src/main/java/org/springframework/mock/web/MockServletConfig.java index 90e9dea3b6f5..be7ebf808e5f 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockServletConfig.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockServletConfig.java @@ -78,10 +78,12 @@ public MockServletConfig(ServletContext servletContext, String servletName) { } + @Override public String getServletName() { return this.servletName; } + @Override public ServletContext getServletContext() { return this.servletContext; } @@ -91,11 +93,13 @@ public void addInitParameter(String name, String value) { this.initParameters.put(name, value); } + @Override public String getInitParameter(String name) { Assert.notNull(name, "Parameter name must not be null"); return this.initParameters.get(name); } + @Override public Enumeration getInitParameterNames() { return Collections.enumeration(this.initParameters.keySet()); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockServletContext.java b/spring-test/src/main/java/org/springframework/mock/web/MockServletContext.java index 58cb335b3f40..1ab7a63e5cef 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockServletContext.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockServletContext.java @@ -215,6 +215,7 @@ public void setContextPath(String contextPath) { this.contextPath = (contextPath != null ? contextPath : ""); } + @Override public String getContextPath() { return this.contextPath; } @@ -223,6 +224,7 @@ public void registerContext(String contextPath, ServletContext context) { this.contexts.put(contextPath, context); } + @Override public ServletContext getContext(String contextPath) { if (this.contextPath.equals(contextPath)) { return this; @@ -234,6 +236,7 @@ public void setMajorVersion(int majorVersion) { this.majorVersion = majorVersion; } + @Override public int getMajorVersion() { return this.majorVersion; } @@ -242,6 +245,7 @@ public void setMinorVersion(int minorVersion) { this.minorVersion = minorVersion; } + @Override public int getMinorVersion() { return this.minorVersion; } @@ -250,6 +254,7 @@ public void setEffectiveMajorVersion(int effectiveMajorVersion) { this.effectiveMajorVersion = effectiveMajorVersion; } + @Override public int getEffectiveMajorVersion() { return this.effectiveMajorVersion; } @@ -258,6 +263,7 @@ public void setEffectiveMinorVersion(int effectiveMinorVersion) { this.effectiveMinorVersion = effectiveMinorVersion; } + @Override public int getEffectiveMinorVersion() { return this.effectiveMinorVersion; } @@ -268,11 +274,13 @@ public int getEffectiveMinorVersion() { * the {@link ServletContext#getMimeType(String)} contract, this method returns {@code null} * if the mimeType is "application/octet-stream", as of Spring 3.2.2. */ + @Override public String getMimeType(String filePath) { String mimeType = MimeTypeResolver.getMimeType(filePath); return ("application/octet-stream".equals(mimeType) ? null : mimeType); } + @Override public Set getResourcePaths(String path) { String actualPath = (path.endsWith("/") ? path : path + "/"); Resource resource = this.resourceLoader.getResource(getResourceLocation(actualPath)); @@ -298,6 +306,7 @@ public Set getResourcePaths(String path) { } } + @Override public URL getResource(String path) throws MalformedURLException { Resource resource = this.resourceLoader.getResource(getResourceLocation(path)); if (!resource.exists()) { @@ -315,6 +324,7 @@ public URL getResource(String path) throws MalformedURLException { } } + @Override public InputStream getResourceAsStream(String path) { Resource resource = this.resourceLoader.getResource(getResourceLocation(path)); if (!resource.exists()) { @@ -329,6 +339,7 @@ public InputStream getResourceAsStream(String path) { } } + @Override public RequestDispatcher getRequestDispatcher(String path) { if (!path.startsWith("/")) { throw new IllegalArgumentException("RequestDispatcher path at ServletContext level must start with '/'"); @@ -336,6 +347,7 @@ public RequestDispatcher getRequestDispatcher(String path) { return new MockRequestDispatcher(path); } + @Override public RequestDispatcher getNamedDispatcher(String path) { return this.namedRequestDispatchers.get(path); } @@ -393,30 +405,37 @@ public void setDefaultServletName(String defaultServletName) { registerNamedDispatcher(this.defaultServletName, new MockRequestDispatcher(this.defaultServletName)); } + @Override public Servlet getServlet(String name) { return null; } + @Override public Enumeration getServlets() { return Collections.enumeration(new HashSet()); } + @Override public Enumeration getServletNames() { return Collections.enumeration(new HashSet()); } + @Override public void log(String message) { logger.info(message); } + @Override public void log(Exception ex, String message) { logger.info(message, ex); } + @Override public void log(String message, Throwable ex) { logger.info(message, ex); } + @Override public String getRealPath(String path) { Resource resource = this.resourceLoader.getResource(getResourceLocation(path)); try { @@ -428,19 +447,23 @@ public String getRealPath(String path) { } } + @Override public String getServerInfo() { return "MockServletContext"; } + @Override public String getInitParameter(String name) { Assert.notNull(name, "Parameter name must not be null"); return this.initParameters.get(name); } + @Override public Enumeration getInitParameterNames() { return Collections.enumeration(this.initParameters.keySet()); } + @Override public boolean setInitParameter(String name, String value) { Assert.notNull(name, "Parameter name must not be null"); if (this.initParameters.containsKey(name)) { @@ -455,15 +478,18 @@ public void addInitParameter(String name, String value) { this.initParameters.put(name, value); } + @Override public Object getAttribute(String name) { Assert.notNull(name, "Attribute name must not be null"); return this.attributes.get(name); } + @Override public Enumeration getAttributeNames() { return Collections.enumeration(new LinkedHashSet(this.attributes.keySet())); } + @Override public void setAttribute(String name, Object value) { Assert.notNull(name, "Attribute name must not be null"); if (value != null) { @@ -474,6 +500,7 @@ public void setAttribute(String name, Object value) { } } + @Override public void removeAttribute(String name) { Assert.notNull(name, "Attribute name must not be null"); this.attributes.remove(name); @@ -483,14 +510,17 @@ public void setServletContextName(String servletContextName) { this.servletContextName = servletContextName; } + @Override public String getServletContextName() { return this.servletContextName; } + @Override public ClassLoader getClassLoader() { return ClassUtils.getDefaultClassLoader(); } + @Override public void declareRoles(String... roleNames) { Assert.notNull(roleNames, "Role names array must not be null"); for (String roleName : roleNames) { @@ -503,20 +533,24 @@ public Set getDeclaredRoles() { return Collections.unmodifiableSet(this.declaredRoles); } + @Override public void setSessionTrackingModes(Set sessionTrackingModes) throws IllegalStateException, IllegalArgumentException { this.sessionTrackingModes = sessionTrackingModes; } + @Override public Set getDefaultSessionTrackingModes() { return DEFAULT_SESSION_TRACKING_MODES; } + @Override public Set getEffectiveSessionTrackingModes() { return (this.sessionTrackingModes != null ? Collections.unmodifiableSet(this.sessionTrackingModes) : DEFAULT_SESSION_TRACKING_MODES); } + @Override public SessionCookieConfig getSessionCookieConfig() { return this.sessionCookieConfig; } @@ -526,70 +560,87 @@ public SessionCookieConfig getSessionCookieConfig() { // Unsupported Servlet 3.0 registration methods //--------------------------------------------------------------------- + @Override public JspConfigDescriptor getJspConfigDescriptor() { throw new UnsupportedOperationException(); } + @Override public ServletRegistration.Dynamic addServlet(String servletName, String className) { throw new UnsupportedOperationException(); } + @Override public ServletRegistration.Dynamic addServlet(String servletName, Servlet servlet) { throw new UnsupportedOperationException(); } + @Override public ServletRegistration.Dynamic addServlet(String servletName, Class servletClass) { throw new UnsupportedOperationException(); } + @Override public T createServlet(Class c) throws ServletException { throw new UnsupportedOperationException(); } + @Override public ServletRegistration getServletRegistration(String servletName) { throw new UnsupportedOperationException(); } + @Override public Map getServletRegistrations() { throw new UnsupportedOperationException(); } + @Override public FilterRegistration.Dynamic addFilter(String filterName, String className) { throw new UnsupportedOperationException(); } + @Override public FilterRegistration.Dynamic addFilter(String filterName, Filter filter) { throw new UnsupportedOperationException(); } + @Override public FilterRegistration.Dynamic addFilter(String filterName, Class filterClass) { throw new UnsupportedOperationException(); } + @Override public T createFilter(Class c) throws ServletException { throw new UnsupportedOperationException(); } + @Override public FilterRegistration getFilterRegistration(String filterName) { throw new UnsupportedOperationException(); } + @Override public Map getFilterRegistrations() { throw new UnsupportedOperationException(); } + @Override public void addListener(Class listenerClass) { throw new UnsupportedOperationException(); } + @Override public void addListener(String className) { throw new UnsupportedOperationException(); } + @Override public void addListener(T t) { throw new UnsupportedOperationException(); } + @Override public T createListener(Class c) throws ServletException { throw new UnsupportedOperationException(); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockSessionCookieConfig.java b/spring-test/src/main/java/org/springframework/mock/web/MockSessionCookieConfig.java index 4b8458c09b4f..c968e51bfbd6 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockSessionCookieConfig.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockSessionCookieConfig.java @@ -42,58 +42,72 @@ public class MockSessionCookieConfig implements SessionCookieConfig { private int maxAge; + @Override public void setName(String name) { this.name = name; } + @Override public String getName() { return this.name; } + @Override public void setDomain(String domain) { this.domain = domain; } + @Override public String getDomain() { return this.domain; } + @Override public void setPath(String path) { this.path = path; } + @Override public String getPath() { return this.path; } + @Override public void setComment(String comment) { this.comment = comment; } + @Override public String getComment() { return this.comment; } + @Override public void setHttpOnly(boolean httpOnly) { this.httpOnly = httpOnly; } + @Override public boolean isHttpOnly() { return this.httpOnly; } + @Override public void setSecure(boolean secure) { this.secure = secure; } + @Override public boolean isSecure() { return this.secure; } + @Override public void setMaxAge(int maxAge) { this.maxAge = maxAge; } + @Override public int getMaxAge() { return this.maxAge; } diff --git a/spring-test/src/main/java/org/springframework/mock/web/PassThroughFilterChain.java b/spring-test/src/main/java/org/springframework/mock/web/PassThroughFilterChain.java index c2de4d2fccf9..080b8534eafd 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/PassThroughFilterChain.java +++ b/spring-test/src/main/java/org/springframework/mock/web/PassThroughFilterChain.java @@ -73,6 +73,7 @@ public PassThroughFilterChain(Servlet servlet) { /** * Pass the call on to the Filter/Servlet. */ + @Override public void doFilter(ServletRequest request, ServletResponse response) throws ServletException, IOException { if (this.filter != null) { this.filter.doFilter(request, response, this.nextFilterChain); diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockActionResponse.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockActionResponse.java index 2ca21a472b19..423cbb0c34be 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockActionResponse.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockActionResponse.java @@ -59,6 +59,7 @@ public MockActionResponse(PortalContext portalContext) { } + @Override public void setWindowState(WindowState windowState) throws WindowStateException { if (this.redirectedUrl != null) { throw new IllegalStateException("Cannot set WindowState after sendRedirect has been called"); @@ -67,6 +68,7 @@ public void setWindowState(WindowState windowState) throws WindowStateException this.redirectAllowed = false; } + @Override public void setPortletMode(PortletMode portletMode) throws PortletModeException { if (this.redirectedUrl != null) { throw new IllegalStateException("Cannot set PortletMode after sendRedirect has been called"); @@ -75,6 +77,7 @@ public void setPortletMode(PortletMode portletMode) throws PortletModeException this.redirectAllowed = false; } + @Override public void setRenderParameters(Map parameters) { if (this.redirectedUrl != null) { throw new IllegalStateException("Cannot set render parameters after sendRedirect has been called"); @@ -83,6 +86,7 @@ public void setRenderParameters(Map parameters) { this.redirectAllowed = false; } + @Override public void setRenderParameter(String key, String value) { if (this.redirectedUrl != null) { throw new IllegalStateException("Cannot set render parameters after sendRedirect has been called"); @@ -91,6 +95,7 @@ public void setRenderParameter(String key, String value) { this.redirectAllowed = false; } + @Override public void setRenderParameter(String key, String[] values) { if (this.redirectedUrl != null) { throw new IllegalStateException("Cannot set render parameters after sendRedirect has been called"); @@ -99,6 +104,7 @@ public void setRenderParameter(String key, String[] values) { this.redirectAllowed = false; } + @Override public void sendRedirect(String location) throws IOException { if (!this.redirectAllowed) { throw new IllegalStateException( @@ -108,6 +114,7 @@ public void sendRedirect(String location) throws IOException { this.redirectedUrl = location; } + @Override public void sendRedirect(String location, String renderUrlParamName) throws IOException { sendRedirect(location); if (renderUrlParamName != null) { diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockBaseURL.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockBaseURL.java index 5072ede8bb4a..28662358c02e 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockBaseURL.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockBaseURL.java @@ -56,18 +56,21 @@ public abstract class MockBaseURL implements BaseURL { // BaseURL methods //--------------------------------------------------------------------- + @Override public void setParameter(String key, String value) { Assert.notNull(key, "Parameter key must be null"); Assert.notNull(value, "Parameter value must not be null"); this.parameters.put(key, new String[] {value}); } + @Override public void setParameter(String key, String[] values) { Assert.notNull(key, "Parameter key must be null"); Assert.notNull(values, "Parameter values must not be null"); this.parameters.put(key, values); } + @Override public void setParameters(Map parameters) { Assert.notNull(parameters, "Parameters Map must not be null"); this.parameters.clear(); @@ -87,10 +90,12 @@ public String[] getParameterValues(String name) { return this.parameters.get(name); } + @Override public Map getParameterMap() { return Collections.unmodifiableMap(this.parameters); } + @Override public void setSecure(boolean secure) throws PortletSecurityException { this.secure = secure; } @@ -99,14 +104,17 @@ public boolean isSecure() { return this.secure; } + @Override public void write(Writer out) throws IOException { out.write(toString()); } + @Override public void write(Writer out, boolean escapeXML) throws IOException { out.write(toString()); } + @Override public void addProperty(String key, String value) { String[] values = this.properties.get(key); if (values != null) { @@ -117,6 +125,7 @@ public void addProperty(String key, String value) { } } + @Override public void setProperty(String key, String value) { this.properties.put(key, new String[] {value}); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockCacheControl.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockCacheControl.java index 1a914ff57127..109133a2b64f 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockCacheControl.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockCacheControl.java @@ -35,34 +35,42 @@ public class MockCacheControl implements CacheControl { private boolean useCachedContent = false; + @Override public int getExpirationTime() { return this.expirationTime; } + @Override public void setExpirationTime(int time) { this.expirationTime = time; } + @Override public boolean isPublicScope() { return this.publicScope; } + @Override public void setPublicScope(boolean publicScope) { this.publicScope = publicScope; } + @Override public String getETag() { return this.etag; } + @Override public void setETag(String token) { this.etag = token; } + @Override public boolean useCachedContent() { return this.useCachedContent; } + @Override public void setUseCachedContent(boolean useCachedContent) { this.useCachedContent = useCachedContent; } diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockClientDataRequest.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockClientDataRequest.java index f6a850c7aa30..15f6f59c946c 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockClientDataRequest.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockClientDataRequest.java @@ -76,6 +76,7 @@ public void setContent(byte[] content) { this.content = content; } + @Override public InputStream getPortletInputStream() throws IOException { if (this.content != null) { return new ByteArrayInputStream(this.content); @@ -85,10 +86,12 @@ public InputStream getPortletInputStream() throws IOException { } } + @Override public void setCharacterEncoding(String characterEncoding) { this.characterEncoding = characterEncoding; } + @Override public BufferedReader getReader() throws UnsupportedEncodingException { if (this.content != null) { InputStream sourceStream = new ByteArrayInputStream(this.content); @@ -101,6 +104,7 @@ public BufferedReader getReader() throws UnsupportedEncodingException { } } + @Override public String getCharacterEncoding() { return this.characterEncoding; } @@ -109,10 +113,12 @@ public void setContentType(String contentType) { this.contentType = contentType; } + @Override public String getContentType() { return this.contentType; } + @Override public int getContentLength() { return (this.content != null ? content.length : -1); } @@ -121,6 +127,7 @@ public void setMethod(String method) { this.method = method; } + @Override public String getMethod() { return this.method; } diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockEvent.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockEvent.java index 7f5ad3fe9627..d9d139b01054 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockEvent.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockEvent.java @@ -73,14 +73,17 @@ public MockEvent(String name, Serializable value) { } + @Override public QName getQName() { return this.name; } + @Override public String getName() { return this.name.getLocalPart(); } + @Override public Serializable getValue() { return this.value; } diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockEventRequest.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockEventRequest.java index 34a6dea478c5..1690ace0663d 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockEventRequest.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockEventRequest.java @@ -73,6 +73,7 @@ protected String getLifecyclePhase() { return EVENT_PHASE; } + @Override public Event getEvent() { return this.event; } @@ -81,6 +82,7 @@ public void setMethod(String method) { this.method = method; } + @Override public String getMethod() { return this.method; } diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockEventResponse.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockEventResponse.java index 54c0404d7444..1114d0081bdb 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockEventResponse.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockEventResponse.java @@ -27,6 +27,7 @@ */ public class MockEventResponse extends MockStateAwareResponse implements EventResponse { + @Override public void setRenderParameters(EventRequest request) { setRenderParameters(request.getParameterMap()); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockMimeResponse.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockMimeResponse.java index 0d2bab32e370..0a48975f691f 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockMimeResponse.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockMimeResponse.java @@ -101,6 +101,7 @@ public MockMimeResponse(PortalContext portalContext, PortletRequest request) { // RenderResponse methods //--------------------------------------------------------------------- + @Override public void setContentType(String contentType) { if (this.request != null) { Enumeration supportedTypes = this.request.getResponseContentTypes(); @@ -112,6 +113,7 @@ public void setContentType(String contentType) { this.contentType = contentType; } + @Override public String getContentType() { return this.contentType; } @@ -120,10 +122,12 @@ public void setCharacterEncoding(String characterEncoding) { this.characterEncoding = characterEncoding; } + @Override public String getCharacterEncoding() { return this.characterEncoding; } + @Override public PrintWriter getWriter() throws UnsupportedEncodingException { if (this.writer == null) { Writer targetWriter = (this.characterEncoding != null @@ -150,18 +154,22 @@ public void setLocale(Locale locale) { this.locale = locale; } + @Override public Locale getLocale() { return this.locale; } + @Override public void setBufferSize(int bufferSize) { this.bufferSize = bufferSize; } + @Override public int getBufferSize() { return this.bufferSize; } + @Override public void flushBuffer() { if (this.writer != null) { this.writer.flush(); @@ -177,6 +185,7 @@ public void flushBuffer() { this.committed = true; } + @Override public void resetBuffer() { if (this.committed) { throw new IllegalStateException("Cannot reset buffer - response is already committed"); @@ -188,10 +197,12 @@ public void setCommitted(boolean committed) { this.committed = committed; } + @Override public boolean isCommitted() { return this.committed; } + @Override public void reset() { resetBuffer(); this.characterEncoding = null; @@ -199,22 +210,27 @@ public void reset() { this.locale = null; } + @Override public OutputStream getPortletOutputStream() throws IOException { return this.outputStream; } + @Override public PortletURL createRenderURL() { return new MockPortletURL(getPortalContext(), MockPortletURL.URL_TYPE_RENDER); } + @Override public PortletURL createActionURL() { return new MockPortletURL(getPortalContext(), MockPortletURL.URL_TYPE_ACTION); } + @Override public ResourceURL createResourceURL() { return new MockResourceURL(); } + @Override public CacheControl getCacheControl() { return this.cacheControl; } diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockMultipartActionRequest.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockMultipartActionRequest.java index a695cee3ba77..e269a621e1a1 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockMultipartActionRequest.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockMultipartActionRequest.java @@ -56,14 +56,17 @@ public void addFile(MultipartFile file) { this.multipartFiles.add(file.getName(), file); } + @Override public Iterator getFileNames() { return this.multipartFiles.keySet().iterator(); } + @Override public MultipartFile getFile(String name) { return this.multipartFiles.getFirst(name); } + @Override public List getFiles(String name) { List multipartFiles = this.multipartFiles.get(name); if (multipartFiles != null) { @@ -74,14 +77,17 @@ public List getFiles(String name) { } } + @Override public Map getFileMap() { return this.multipartFiles.toSingleValueMap(); } + @Override public MultiValueMap getMultiFileMap() { return new LinkedMultiValueMap(this.multipartFiles); } + @Override public String getMultipartContentType(String paramOrFileName) { MultipartFile file = getFile(paramOrFileName); if (file != null) { diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortalContext.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortalContext.java index 2895914662b0..824df6f70d3b 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortalContext.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortalContext.java @@ -74,6 +74,7 @@ public MockPortalContext(List supportedPortletModes, List getPropertyNames() { return Collections.enumeration(this.properties.keySet()); } + @Override public Enumeration getSupportedPortletModes() { return Collections.enumeration(this.portletModes); } + @Override public Enumeration getSupportedWindowStates() { return Collections.enumeration(this.windowStates); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletConfig.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletConfig.java index 9d3a878026ab..cf7f48bb176d 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletConfig.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletConfig.java @@ -96,10 +96,12 @@ public MockPortletConfig(PortletContext portletContext, String portletName) { } + @Override public String getPortletName() { return this.portletName; } + @Override public PortletContext getPortletContext() { return this.portletContext; } @@ -109,6 +111,7 @@ public void setResourceBundle(Locale locale, ResourceBundle resourceBundle) { this.resourceBundles.put(locale, resourceBundle); } + @Override public ResourceBundle getResourceBundle(Locale locale) { Assert.notNull(locale, "Locale must not be null"); return this.resourceBundles.get(locale); @@ -119,11 +122,13 @@ public void addInitParameter(String name, String value) { this.initParameters.put(name, value); } + @Override public String getInitParameter(String name) { Assert.notNull(name, "Parameter name must not be null"); return this.initParameters.get(name); } + @Override public Enumeration getInitParameterNames() { return Collections.enumeration(this.initParameters.keySet()); } @@ -132,6 +137,7 @@ public void addPublicRenderParameterName(String name) { this.publicRenderParameterNames.add(name); } + @Override public Enumeration getPublicRenderParameterNames() { return Collections.enumeration(this.publicRenderParameterNames); } @@ -140,6 +146,7 @@ public void setDefaultNamespace(String defaultNamespace) { this.defaultNamespace = defaultNamespace; } + @Override public String getDefaultNamespace() { return this.defaultNamespace; } @@ -148,6 +155,7 @@ public void addPublishingEventQName(QName name) { this.publishingEventQNames.add(name); } + @Override public Enumeration getPublishingEventQNames() { return Collections.enumeration(this.publishingEventQNames); } @@ -156,6 +164,7 @@ public void addProcessingEventQName(QName name) { this.processingEventQNames.add(name); } + @Override public Enumeration getProcessingEventQNames() { return Collections.enumeration(this.processingEventQNames); } @@ -164,6 +173,7 @@ public void addSupportedLocale(Locale locale) { this.supportedLocales.add(locale); } + @Override public Enumeration getSupportedLocales() { return Collections.enumeration(this.supportedLocales); } @@ -176,6 +186,7 @@ public void addContainerRuntimeOption(String key, String[] values) { this.containerRuntimeOptions.put(key, values); } + @Override public Map getContainerRuntimeOptions() { return Collections.unmodifiableMap(this.containerRuntimeOptions); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletContext.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletContext.java index 39dc9f5b294b..bf1e6f09750c 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletContext.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletContext.java @@ -125,10 +125,12 @@ protected String getResourceLocation(String path) { } + @Override public String getServerInfo() { return "MockPortal/1.0"; } + @Override public PortletRequestDispatcher getRequestDispatcher(String path) { if (!path.startsWith("/")) { throw new IllegalArgumentException( @@ -137,10 +139,12 @@ public PortletRequestDispatcher getRequestDispatcher(String path) { return new MockPortletRequestDispatcher(path); } + @Override public PortletRequestDispatcher getNamedDispatcher(String path) { return null; } + @Override public InputStream getResourceAsStream(String path) { Resource resource = this.resourceLoader.getResource(getResourceLocation(path)); try { @@ -152,18 +156,22 @@ public InputStream getResourceAsStream(String path) { } } + @Override public int getMajorVersion() { return 2; } + @Override public int getMinorVersion() { return 0; } + @Override public String getMimeType(String filePath) { return MimeTypeResolver.getMimeType(filePath); } + @Override public String getRealPath(String path) { Resource resource = this.resourceLoader.getResource(getResourceLocation(path)); try { @@ -175,6 +183,7 @@ public String getRealPath(String path) { } } + @Override public Set getResourcePaths(String path) { Resource resource = this.resourceLoader.getResource(getResourceLocation(path)); try { @@ -193,6 +202,7 @@ public Set getResourcePaths(String path) { } } + @Override public URL getResource(String path) throws MalformedURLException { Resource resource = this.resourceLoader.getResource(getResourceLocation(path)); try { @@ -204,14 +214,17 @@ public URL getResource(String path) throws MalformedURLException { } } + @Override public Object getAttribute(String name) { return this.attributes.get(name); } + @Override public Enumeration getAttributeNames() { return Collections.enumeration(new LinkedHashSet(this.attributes.keySet())); } + @Override public void setAttribute(String name, Object value) { if (value != null) { this.attributes.put(name, value); @@ -221,6 +234,7 @@ public void setAttribute(String name, Object value) { } } + @Override public void removeAttribute(String name) { this.attributes.remove(name); } @@ -230,19 +244,23 @@ public void addInitParameter(String name, String value) { this.initParameters.put(name, value); } + @Override public String getInitParameter(String name) { Assert.notNull(name, "Parameter name must not be null"); return this.initParameters.get(name); } + @Override public Enumeration getInitParameterNames() { return Collections.enumeration(this.initParameters.keySet()); } + @Override public void log(String message) { logger.info(message); } + @Override public void log(String message, Throwable t) { logger.info(message, t); } @@ -251,6 +269,7 @@ public void setPortletContextName(String portletContextName) { this.portletContextName = portletContextName; } + @Override public String getPortletContextName() { return this.portletContextName; } @@ -259,6 +278,7 @@ public void addContainerRuntimeOption(String key) { this.containerRuntimeOptions.add(key); } + @Override public Enumeration getContainerRuntimeOptions() { return Collections.enumeration(this.containerRuntimeOptions); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletPreferences.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletPreferences.java index 7c5fef116b03..3af2d6e97a27 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletPreferences.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletPreferences.java @@ -56,27 +56,32 @@ public void setReadOnly(String key, boolean readOnly) { } } + @Override public boolean isReadOnly(String key) { Assert.notNull(key, "Key must not be null"); return this.readOnly.contains(key); } + @Override public String getValue(String key, String def) { Assert.notNull(key, "Key must not be null"); String[] values = this.preferences.get(key); return (values != null && values.length > 0 ? values[0] : def); } + @Override public String[] getValues(String key, String[] def) { Assert.notNull(key, "Key must not be null"); String[] values = this.preferences.get(key); return (values != null && values.length > 0 ? values : def); } + @Override public void setValue(String key, String value) throws ReadOnlyException { setValues(key, new String[] {value}); } + @Override public void setValues(String key, String[] values) throws ReadOnlyException { Assert.notNull(key, "Key must not be null"); if (isReadOnly(key)) { @@ -85,14 +90,17 @@ public void setValues(String key, String[] values) throws ReadOnlyException { this.preferences.put(key, values); } + @Override public Enumeration getNames() { return Collections.enumeration(this.preferences.keySet()); } + @Override public Map getMap() { return Collections.unmodifiableMap(this.preferences); } + @Override public void reset(String key) throws ReadOnlyException { Assert.notNull(key, "Key must not be null"); if (isReadOnly(key)) { @@ -105,6 +113,7 @@ public void setPreferencesValidator(PreferencesValidator preferencesValidator) { this.preferencesValidator = preferencesValidator; } + @Override public void store() throws IOException, ValidatorException { if (this.preferencesValidator != null) { this.preferencesValidator.validate(this); diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletRequest.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletRequest.java index 38b517351a78..649bafe6f680 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletRequest.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletRequest.java @@ -173,10 +173,12 @@ protected void checkActive() throws IllegalStateException { // PortletRequest methods // --------------------------------------------------------------------- + @Override public boolean isWindowStateAllowed(WindowState windowState) { return CollectionUtils.contains(this.portalContext.getSupportedWindowStates(), windowState); } + @Override public boolean isPortletModeAllowed(PortletMode portletMode) { return CollectionUtils.contains(this.portalContext.getSupportedPortletModes(), portletMode); } @@ -186,6 +188,7 @@ public void setPortletMode(PortletMode portletMode) { this.portletMode = portletMode; } + @Override public PortletMode getPortletMode() { return this.portletMode; } @@ -195,6 +198,7 @@ public void setWindowState(WindowState windowState) { this.windowState = windowState; } + @Override public WindowState getWindowState() { return this.windowState; } @@ -204,6 +208,7 @@ public void setPreferences(PortletPreferences preferences) { this.portletPreferences = preferences; } + @Override public PortletPreferences getPreferences() { return this.portletPreferences; } @@ -216,10 +221,12 @@ public void setSession(PortletSession session) { } } + @Override public PortletSession getPortletSession() { return getPortletSession(true); } + @Override public PortletSession getPortletSession(boolean create) { checkActive(); // Reset session if invalidated. @@ -265,21 +272,25 @@ public void addProperty(String key, String value) { } } + @Override public String getProperty(String key) { Assert.notNull(key, "Property key must not be null"); List list = this.properties.get(key); return (list != null && list.size() > 0 ? list.get(0) : null); } + @Override public Enumeration getProperties(String key) { Assert.notNull(key, "property key must not be null"); return Collections.enumeration(this.properties.get(key)); } + @Override public Enumeration getPropertyNames() { return Collections.enumeration(this.properties.keySet()); } + @Override public PortalContext getPortalContext() { return this.portalContext; } @@ -288,6 +299,7 @@ public void setAuthType(String authType) { this.authType = authType; } + @Override public String getAuthType() { return this.authType; } @@ -296,6 +308,7 @@ public void setContextPath(String contextPath) { this.contextPath = contextPath; } + @Override public String getContextPath() { return this.contextPath; } @@ -304,6 +317,7 @@ public void setRemoteUser(String remoteUser) { this.remoteUser = remoteUser; } + @Override public String getRemoteUser() { return this.remoteUser; } @@ -312,6 +326,7 @@ public void setUserPrincipal(Principal userPrincipal) { this.userPrincipal = userPrincipal; } + @Override public Principal getUserPrincipal() { return this.userPrincipal; } @@ -320,15 +335,18 @@ public void addUserRole(String role) { this.userRoles.add(role); } + @Override public boolean isUserInRole(String role) { return this.userRoles.contains(role); } + @Override public Object getAttribute(String name) { checkActive(); return this.attributes.get(name); } + @Override public Enumeration getAttributeNames() { checkActive(); return Collections.enumeration(new LinkedHashSet(this.attributes.keySet())); @@ -369,19 +387,23 @@ public void addParameter(String name, String[] values) { } } + @Override public String getParameter(String name) { String[] arr = this.parameters.get(name); return (arr != null && arr.length > 0 ? arr[0] : null); } + @Override public Enumeration getParameterNames() { return Collections.enumeration(this.parameters.keySet()); } + @Override public String[] getParameterValues(String name) { return this.parameters.get(name); } + @Override public Map getParameterMap() { return Collections.unmodifiableMap(this.parameters); } @@ -390,10 +412,12 @@ public void setSecure(boolean secure) { this.secure = secure; } + @Override public boolean isSecure() { return this.secure; } + @Override public void setAttribute(String name, Object value) { checkActive(); if (value != null) { @@ -404,11 +428,13 @@ public void setAttribute(String name, Object value) { } } + @Override public void removeAttribute(String name) { checkActive(); this.attributes.remove(name); } + @Override public String getRequestedSessionId() { PortletSession session = this.getPortletSession(); return (session != null ? session.getId() : null); @@ -418,6 +444,7 @@ public void setRequestedSessionIdValid(boolean requestedSessionIdValid) { this.requestedSessionIdValid = requestedSessionIdValid; } + @Override public boolean isRequestedSessionIdValid() { return this.requestedSessionIdValid; } @@ -430,10 +457,12 @@ public void addPreferredResponseContentType(String responseContentType) { this.responseContentTypes.add(0, responseContentType); } + @Override public String getResponseContentType() { return this.responseContentTypes.get(0); } + @Override public Enumeration getResponseContentTypes() { return Collections.enumeration(this.responseContentTypes); } @@ -446,10 +475,12 @@ public void addPreferredLocale(Locale locale) { this.locales.add(0, locale); } + @Override public Locale getLocale() { return this.locales.get(0); } + @Override public Enumeration getLocales() { return Collections.enumeration(this.locales); } @@ -458,6 +489,7 @@ public void setScheme(String scheme) { this.scheme = scheme; } + @Override public String getScheme() { return this.scheme; } @@ -466,6 +498,7 @@ public void setServerName(String serverName) { this.serverName = serverName; } + @Override public String getServerName() { return this.serverName; } @@ -474,6 +507,7 @@ public void setServerPort(int serverPort) { this.serverPort = serverPort; } + @Override public int getServerPort() { return this.serverPort; } @@ -482,6 +516,7 @@ public void setWindowID(String windowID) { this.windowID = windowID; } + @Override public String getWindowID() { return this.windowID; } @@ -490,10 +525,12 @@ public void setCookies(Cookie... cookies) { this.cookies = cookies; } + @Override public Cookie[] getCookies() { return this.cookies; } + @Override public Map getPrivateParameterMap() { if (!this.publicParameterNames.isEmpty()) { Map filtered = new LinkedHashMap(); @@ -509,6 +546,7 @@ public Map getPrivateParameterMap() { } } + @Override public Map getPublicParameterMap() { if (!this.publicParameterNames.isEmpty()) { Map filtered = new LinkedHashMap(); diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletRequestDispatcher.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletRequestDispatcher.java index 70fd67c1b139..f4e0dc98fde6 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletRequestDispatcher.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletRequestDispatcher.java @@ -53,10 +53,12 @@ public MockPortletRequestDispatcher(String url) { } + @Override public void include(RenderRequest request, RenderResponse response) throws PortletException, IOException { include((PortletRequest) request, (PortletResponse) response); } + @Override public void include(PortletRequest request, PortletResponse response) throws PortletException, IOException { Assert.notNull(request, "Request must not be null"); Assert.notNull(response, "Response must not be null"); @@ -69,6 +71,7 @@ public void include(PortletRequest request, PortletResponse response) throws Por } } + @Override public void forward(PortletRequest request, PortletResponse response) throws PortletException, IOException { Assert.notNull(request, "Request must not be null"); Assert.notNull(response, "Response must not be null"); diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletResponse.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletResponse.java index 8adc809fcfcc..513a6c8c9c87 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletResponse.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletResponse.java @@ -85,6 +85,7 @@ public PortalContext getPortalContext() { // PortletResponse methods //--------------------------------------------------------------------- + @Override public void addProperty(String key, String value) { Assert.notNull(key, "Property key must not be null"); String[] oldArr = this.properties.get(key); @@ -99,6 +100,7 @@ public void addProperty(String key, String value) { } } + @Override public void setProperty(String key, String value) { Assert.notNull(key, "Property key must not be null"); this.properties.put(key, new String[] {value}); @@ -119,6 +121,7 @@ public String[] getProperties(String key) { return this.properties.get(key); } + @Override public String encodeURL(String path) { return path; } @@ -127,10 +130,12 @@ public void setNamespace(String namespace) { this.namespace = namespace; } + @Override public String getNamespace() { return this.namespace; } + @Override public void addProperty(Cookie cookie) { Assert.notNull(cookie, "Cookie must not be null"); this.cookies.add(cookie); @@ -150,6 +155,7 @@ public Cookie getCookie(String name) { return null; } + @Override public void addProperty(String key, Element value) { Assert.notNull(key, "Property key must not be null"); Element[] oldArr = this.xmlProperties.get(key); @@ -180,6 +186,7 @@ public Element[] getXmlProperties(String key) { return this.xmlProperties.get(key); } + @Override public Element createElement(String tagName) throws DOMException { if (this.xmlDocument == null) { try { diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletSession.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletSession.java index 5eaec799063e..fac33bacc471 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletSession.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletSession.java @@ -77,10 +77,12 @@ public MockPortletSession(PortletContext portletContext) { } + @Override public Object getAttribute(String name) { return this.portletAttributes.get(name); } + @Override public Object getAttribute(String name, int scope) { if (scope == PortletSession.PORTLET_SCOPE) { return this.portletAttributes.get(name); @@ -91,10 +93,12 @@ else if (scope == PortletSession.APPLICATION_SCOPE) { return null; } + @Override public Enumeration getAttributeNames() { return Collections.enumeration(new LinkedHashSet(this.portletAttributes.keySet())); } + @Override public Enumeration getAttributeNames(int scope) { if (scope == PortletSession.PORTLET_SCOPE) { return Collections.enumeration(new LinkedHashSet(this.portletAttributes.keySet())); @@ -105,10 +109,12 @@ else if (scope == PortletSession.APPLICATION_SCOPE) { return null; } + @Override public long getCreationTime() { return this.creationTime; } + @Override public String getId() { return this.id; } @@ -118,10 +124,12 @@ public void access() { setNew(false); } + @Override public long getLastAccessedTime() { return this.lastAccessedTime; } + @Override public int getMaxInactiveInterval() { return this.maxInactiveInterval; } @@ -147,6 +155,7 @@ protected void doClearAttributes(Map attributes) { } } + @Override public void invalidate() { this.invalid = true; clearAttributes(); @@ -160,14 +169,17 @@ public void setNew(boolean value) { this.isNew = value; } + @Override public boolean isNew() { return this.isNew; } + @Override public void removeAttribute(String name) { this.portletAttributes.remove(name); } + @Override public void removeAttribute(String name, int scope) { if (scope == PortletSession.PORTLET_SCOPE) { this.portletAttributes.remove(name); @@ -177,6 +189,7 @@ else if (scope == PortletSession.APPLICATION_SCOPE) { } } + @Override public void setAttribute(String name, Object value) { if (value != null) { this.portletAttributes.put(name, value); @@ -186,6 +199,7 @@ public void setAttribute(String name, Object value) { } } + @Override public void setAttribute(String name, Object value, int scope) { if (scope == PortletSession.PORTLET_SCOPE) { if (value != null) { @@ -205,18 +219,22 @@ else if (scope == PortletSession.APPLICATION_SCOPE) { } } + @Override public void setMaxInactiveInterval(int interval) { this.maxInactiveInterval = interval; } + @Override public PortletContext getPortletContext() { return this.portletContext; } + @Override public Map getAttributeMap() { return Collections.unmodifiableMap(this.portletAttributes); } + @Override public Map getAttributeMap(int scope) { if (scope == PortletSession.PORTLET_SCOPE) { return Collections.unmodifiableMap(this.portletAttributes); diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletURL.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletURL.java index d8c5dd3ec9b3..c7eff5a52880 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletURL.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletURL.java @@ -69,6 +69,7 @@ public MockPortletURL(PortalContext portalContext, String urlType) { // PortletURL methods //--------------------------------------------------------------------- + @Override public void setWindowState(WindowState windowState) throws WindowStateException { if (!CollectionUtils.contains(this.portalContext.getSupportedWindowStates(), windowState)) { throw new WindowStateException("WindowState not supported", windowState); @@ -76,10 +77,12 @@ public void setWindowState(WindowState windowState) throws WindowStateException this.windowState = windowState; } + @Override public WindowState getWindowState() { return this.windowState; } + @Override public void setPortletMode(PortletMode portletMode) throws PortletModeException { if (!CollectionUtils.contains(this.portalContext.getSupportedPortletModes(), portletMode)) { throw new PortletModeException("PortletMode not supported", portletMode); @@ -87,15 +90,18 @@ public void setPortletMode(PortletMode portletMode) throws PortletModeException this.portletMode = portletMode; } + @Override public PortletMode getPortletMode() { return this.portletMode; } + @Override public void removePublicRenderParameter(String name) { this.parameters.remove(name); } + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(encodeParameter("urlType", this.urlType)); diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockRenderRequest.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockRenderRequest.java index 03c9f0ca4d51..8b9ed2e41ad3 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockRenderRequest.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockRenderRequest.java @@ -86,6 +86,7 @@ protected String getLifecyclePhase() { return RENDER_PHASE; } + @Override public String getETag() { return getProperty(RenderRequest.ETAG); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockRenderResponse.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockRenderResponse.java index 464b889467e9..e359b0b52cc7 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockRenderResponse.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockRenderResponse.java @@ -69,6 +69,7 @@ public MockRenderResponse(PortalContext portalContext, RenderRequest request) { // RenderResponse methods //--------------------------------------------------------------------- + @Override public void setTitle(String title) { this.title = title; } @@ -77,6 +78,7 @@ public String getTitle() { return this.title; } + @Override public void setNextPossiblePortletModes(Collection portletModes) { this.nextPossiblePortletModes = portletModes; } diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockResourceRequest.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockResourceRequest.java index 2148bd3e91d3..5878e7b96efc 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockResourceRequest.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockResourceRequest.java @@ -97,6 +97,7 @@ public void setResourceID(String resourceID) { this.resourceID = resourceID; } + @Override public String getResourceID() { return this.resourceID; } @@ -105,10 +106,12 @@ public void setCacheability(String cacheLevel) { this.cacheability = cacheLevel; } + @Override public String getCacheability() { return this.cacheability; } + @Override public String getETag() { return getProperty(RenderRequest.ETAG); } @@ -121,6 +124,7 @@ public void addPrivateRenderParameter(String key, String[] values) { this.privateRenderParameterMap.put(key, values); } + @Override public Map getPrivateRenderParameterMap() { return Collections.unmodifiableMap(this.privateRenderParameterMap); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockResourceResponse.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockResourceResponse.java index 228202dbdd70..4c7f45279b9c 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockResourceResponse.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockResourceResponse.java @@ -29,6 +29,7 @@ public class MockResourceResponse extends MockMimeResponse implements ResourceRe private int contentLength = 0; + @Override public void setContentLength(int len) { this.contentLength = len; } diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockResourceURL.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockResourceURL.java index d9a42c8dce84..b7aab871dfae 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockResourceURL.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockResourceURL.java @@ -36,6 +36,7 @@ public class MockResourceURL extends MockBaseURL implements ResourceURL { // ResourceURL methods //--------------------------------------------------------------------- + @Override public void setResourceID(String resourceID) { this.resourceID = resourceID; } @@ -44,15 +45,18 @@ public String getResourceID() { return this.resourceID; } + @Override public void setCacheability(String cacheLevel) { this.cacheability = cacheLevel; } + @Override public String getCacheability() { return this.cacheability; } + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(encodeParameter("resourceID", this.resourceID)); diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockStateAwareResponse.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockStateAwareResponse.java index 8fe1e42cdcca..007204ce98bf 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockStateAwareResponse.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockStateAwareResponse.java @@ -68,6 +68,7 @@ public MockStateAwareResponse(PortalContext portalContext) { } + @Override public void setWindowState(WindowState windowState) throws WindowStateException { if (!CollectionUtils.contains(getPortalContext().getSupportedWindowStates(), windowState)) { throw new WindowStateException("WindowState not supported", windowState); @@ -75,10 +76,12 @@ public void setWindowState(WindowState windowState) throws WindowStateException this.windowState = windowState; } + @Override public WindowState getWindowState() { return this.windowState; } + @Override public void setPortletMode(PortletMode portletMode) throws PortletModeException { if (!CollectionUtils.contains(getPortalContext().getSupportedPortletModes(), portletMode)) { throw new PortletModeException("PortletMode not supported", portletMode); @@ -86,22 +89,26 @@ public void setPortletMode(PortletMode portletMode) throws PortletModeException this.portletMode = portletMode; } + @Override public PortletMode getPortletMode() { return this.portletMode; } + @Override public void setRenderParameters(Map parameters) { Assert.notNull(parameters, "Parameters Map must not be null"); this.renderParameters.clear(); this.renderParameters.putAll(parameters); } + @Override public void setRenderParameter(String key, String value) { Assert.notNull(key, "Parameter key must not be null"); Assert.notNull(value, "Parameter value must not be null"); this.renderParameters.put(key, new String[] {value}); } + @Override public void setRenderParameter(String key, String[] values) { Assert.notNull(key, "Parameter key must not be null"); Assert.notNull(values, "Parameter values must not be null"); @@ -123,18 +130,22 @@ public Iterator getRenderParameterNames() { return this.renderParameters.keySet().iterator(); } + @Override public Map getRenderParameterMap() { return Collections.unmodifiableMap(this.renderParameters); } + @Override public void removePublicRenderParameter(String name) { this.renderParameters.remove(name); } + @Override public void setEvent(QName name, Serializable value) { this.events.put(name, value); } + @Override public void setEvent(String name, Serializable value) { this.events.put(new QName(name), value); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/ServletWrappingPortletContext.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/ServletWrappingPortletContext.java index 93415e79bacd..66a663e08006 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/ServletWrappingPortletContext.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/ServletWrappingPortletContext.java @@ -59,82 +59,102 @@ public final ServletContext getServletContext() { } + @Override public String getServerInfo() { return this.servletContext.getServerInfo(); } + @Override public PortletRequestDispatcher getRequestDispatcher(String path) { return null; } + @Override public PortletRequestDispatcher getNamedDispatcher(String name) { return null; } + @Override public InputStream getResourceAsStream(String path) { return this.servletContext.getResourceAsStream(path); } + @Override public int getMajorVersion() { return 2; } + @Override public int getMinorVersion() { return 0; } + @Override public String getMimeType(String file) { return this.servletContext.getMimeType(file); } + @Override public String getRealPath(String path) { return this.servletContext.getRealPath(path); } + @Override public Set getResourcePaths(String path) { return this.servletContext.getResourcePaths(path); } + @Override public URL getResource(String path) throws MalformedURLException { return this.servletContext.getResource(path); } + @Override public Object getAttribute(String name) { return this.servletContext.getAttribute(name); } + @Override public Enumeration getAttributeNames() { return this.servletContext.getAttributeNames(); } + @Override public String getInitParameter(String name) { return this.servletContext.getInitParameter(name); } + @Override public Enumeration getInitParameterNames() { return this.servletContext.getInitParameterNames(); } + @Override public void log(String msg) { this.servletContext.log(msg); } + @Override public void log(String message, Throwable throwable) { this.servletContext.log(message, throwable); } + @Override public void removeAttribute(String name) { this.servletContext.removeAttribute(name); } + @Override public void setAttribute(String name, Object object) { this.servletContext.setAttribute(name, object); } + @Override public String getPortletContextName() { return this.servletContext.getServletContextName(); } + @Override public Enumeration getContainerRuntimeOptions() { return Collections.enumeration(new HashSet()); } diff --git a/spring-test/src/main/java/org/springframework/test/annotation/SystemProfileValueSource.java b/spring-test/src/main/java/org/springframework/test/annotation/SystemProfileValueSource.java index d88da93f4402..5a39918a770e 100644 --- a/spring-test/src/main/java/org/springframework/test/annotation/SystemProfileValueSource.java +++ b/spring-test/src/main/java/org/springframework/test/annotation/SystemProfileValueSource.java @@ -50,6 +50,7 @@ private SystemProfileValueSource() { * system properties. * @see System#getProperty(String) */ + @Override public String get(String key) { Assert.hasText(key, "'key' must not be empty"); return System.getProperty(key); diff --git a/spring-test/src/main/java/org/springframework/test/context/junit4/AbstractJUnit4SpringContextTests.java b/spring-test/src/main/java/org/springframework/test/context/junit4/AbstractJUnit4SpringContextTests.java index 555892901ee7..6b99c6a10848 100644 --- a/spring-test/src/main/java/org/springframework/test/context/junit4/AbstractJUnit4SpringContextTests.java +++ b/spring-test/src/main/java/org/springframework/test/context/junit4/AbstractJUnit4SpringContextTests.java @@ -80,6 +80,7 @@ public abstract class AbstractJUnit4SpringContextTests implements ApplicationCon * Set the {@link ApplicationContext} to be used by this test instance, * provided via {@link ApplicationContextAware} semantics. */ + @Override public final void setApplicationContext(final ApplicationContext applicationContext) { this.applicationContext = applicationContext; } diff --git a/spring-test/src/main/java/org/springframework/test/context/support/AbstractContextLoader.java b/spring-test/src/main/java/org/springframework/test/context/support/AbstractContextLoader.java index 0fc6c6012c7e..c637752032b2 100644 --- a/spring-test/src/main/java/org/springframework/test/context/support/AbstractContextLoader.java +++ b/spring-test/src/main/java/org/springframework/test/context/support/AbstractContextLoader.java @@ -86,6 +86,7 @@ public abstract class AbstractContextLoader implements SmartContextLoader { * @since 3.1 * @see #processLocations(Class, String...) */ + @Override public void processContextConfiguration(ContextConfigurationAttributes configAttributes) { String[] processedLocations = processLocations(configAttributes.getDeclaringClass(), configAttributes.getLocations()); @@ -174,6 +175,7 @@ protected void prepareContext(ConfigurableApplicationContext context, MergedCont * @see org.springframework.test.context.ContextLoader#processLocations(Class, String...) * @see #processContextConfiguration(ContextConfigurationAttributes) */ + @Override public final String[] processLocations(Class clazz, String... locations) { return (ObjectUtils.isEmpty(locations) && isGenerateDefaultLocations()) ? generateDefaultLocations(clazz) : modifyLocations(clazz, locations); diff --git a/spring-test/src/main/java/org/springframework/test/context/support/AbstractDelegatingSmartContextLoader.java b/spring-test/src/main/java/org/springframework/test/context/support/AbstractDelegatingSmartContextLoader.java index 284e80acf0d2..f0dc37fe678a 100644 --- a/spring-test/src/main/java/org/springframework/test/context/support/AbstractDelegatingSmartContextLoader.java +++ b/spring-test/src/main/java/org/springframework/test/context/support/AbstractDelegatingSmartContextLoader.java @@ -142,6 +142,7 @@ private boolean supports(SmartContextLoader loader, MergedContextConfiguration m * context configuration; or if both candidate loaders detect defaults for the * supplied context configuration */ + @Override public void processContextConfiguration(final ContextConfigurationAttributes configAttributes) { Assert.notNull(configAttributes, "configAttributes must not be null"); @@ -236,6 +237,7 @@ public void processContextConfiguration(final ContextConfigurationAttributes con * @throws IllegalStateException if neither candidate loader is capable of loading an * {@code ApplicationContext} from the supplied merged context configuration */ + @Override public ApplicationContext loadContext(MergedContextConfiguration mergedConfig) throws Exception { Assert.notNull(mergedConfig, "mergedConfig must not be null"); @@ -268,6 +270,7 @@ public ApplicationContext loadContext(MergedContextConfiguration mergedConfig) t * {@link #processContextConfiguration(ContextConfigurationAttributes)} instead. * @throws UnsupportedOperationException */ + @Override public final String[] processLocations(Class clazz, String... locations) { throw new UnsupportedOperationException("DelegatingSmartContextLoaders do not support the ContextLoader SPI. " + "Call processContextConfiguration(ContextConfigurationAttributes) instead."); @@ -279,6 +282,7 @@ public final String[] processLocations(Class clazz, String... locations) { * {@link #loadContext(MergedContextConfiguration)} instead. * @throws UnsupportedOperationException */ + @Override public final ApplicationContext loadContext(String... locations) throws Exception { throw new UnsupportedOperationException("DelegatingSmartContextLoaders do not support the ContextLoader SPI. " + "Call loadContext(MergedContextConfiguration) instead."); diff --git a/spring-test/src/main/java/org/springframework/test/context/support/AbstractGenericContextLoader.java b/spring-test/src/main/java/org/springframework/test/context/support/AbstractGenericContextLoader.java index bd84068ac78b..dc8bb8d68a4e 100644 --- a/spring-test/src/main/java/org/springframework/test/context/support/AbstractGenericContextLoader.java +++ b/spring-test/src/main/java/org/springframework/test/context/support/AbstractGenericContextLoader.java @@ -99,6 +99,7 @@ public abstract class AbstractGenericContextLoader extends AbstractContextLoader * @see GenericApplicationContext * @since 3.1 */ + @Override public final ConfigurableApplicationContext loadContext(MergedContextConfiguration mergedConfig) throws Exception { if (logger.isDebugEnabled()) { logger.debug(String.format("Loading ApplicationContext for merged context configuration [%s].", @@ -156,6 +157,7 @@ public final ConfigurableApplicationContext loadContext(MergedContextConfigurati * @see #loadContext(MergedContextConfiguration) * @since 2.5 */ + @Override public final ConfigurableApplicationContext loadContext(String... locations) throws Exception { if (logger.isDebugEnabled()) { logger.debug(String.format("Loading ApplicationContext for locations [%s].", diff --git a/spring-test/src/main/java/org/springframework/test/context/support/AbstractTestExecutionListener.java b/spring-test/src/main/java/org/springframework/test/context/support/AbstractTestExecutionListener.java index 34dfe47ec7fd..2f349cbc967c 100644 --- a/spring-test/src/main/java/org/springframework/test/context/support/AbstractTestExecutionListener.java +++ b/spring-test/src/main/java/org/springframework/test/context/support/AbstractTestExecutionListener.java @@ -34,6 +34,7 @@ public abstract class AbstractTestExecutionListener implements TestExecutionList * The default implementation is empty. Can be overridden by * subclasses as necessary. */ + @Override public void beforeTestClass(TestContext testContext) throws Exception { /* no-op */ } @@ -42,6 +43,7 @@ public void beforeTestClass(TestContext testContext) throws Exception { * The default implementation is empty. Can be overridden by * subclasses as necessary. */ + @Override public void prepareTestInstance(TestContext testContext) throws Exception { /* no-op */ } @@ -50,6 +52,7 @@ public void prepareTestInstance(TestContext testContext) throws Exception { * The default implementation is empty. Can be overridden by * subclasses as necessary. */ + @Override public void beforeTestMethod(TestContext testContext) throws Exception { /* no-op */ } @@ -58,6 +61,7 @@ public void beforeTestMethod(TestContext testContext) throws Exception { * The default implementation is empty. Can be overridden by * subclasses as necessary. */ + @Override public void afterTestMethod(TestContext testContext) throws Exception { /* no-op */ } @@ -66,6 +70,7 @@ public void afterTestMethod(TestContext testContext) throws Exception { * The default implementation is empty. Can be overridden by * subclasses as necessary. */ + @Override public void afterTestClass(TestContext testContext) throws Exception { /* no-op */ } diff --git a/spring-test/src/main/java/org/springframework/test/context/support/AnnotationConfigContextLoader.java b/spring-test/src/main/java/org/springframework/test/context/support/AnnotationConfigContextLoader.java index 39e76f6e1a9f..29a26c5e2501 100644 --- a/spring-test/src/main/java/org/springframework/test/context/support/AnnotationConfigContextLoader.java +++ b/spring-test/src/main/java/org/springframework/test/context/support/AnnotationConfigContextLoader.java @@ -74,6 +74,7 @@ public class AnnotationConfigContextLoader extends AbstractGenericContextLoader * @see #isGenerateDefaultLocations() * @see #detectDefaultConfigurationClasses(Class) */ + @Override public void processContextConfiguration(ContextConfigurationAttributes configAttributes) { if (ObjectUtils.isEmpty(configAttributes.getClasses()) && isGenerateDefaultLocations()) { Class[] defaultConfigClasses = detectDefaultConfigurationClasses(configAttributes.getDeclaringClass()); diff --git a/spring-test/src/main/java/org/springframework/test/context/support/DelegatingSmartContextLoader.java b/spring-test/src/main/java/org/springframework/test/context/support/DelegatingSmartContextLoader.java index 32442fe3ec1d..108c66f0141c 100644 --- a/spring-test/src/main/java/org/springframework/test/context/support/DelegatingSmartContextLoader.java +++ b/spring-test/src/main/java/org/springframework/test/context/support/DelegatingSmartContextLoader.java @@ -36,10 +36,12 @@ public class DelegatingSmartContextLoader extends AbstractDelegatingSmartContext private final SmartContextLoader annotationConfigLoader = new AnnotationConfigContextLoader(); + @Override protected SmartContextLoader getXmlLoader() { return this.xmlLoader; } + @Override protected SmartContextLoader getAnnotationConfigLoader() { return this.annotationConfigLoader; } diff --git a/spring-test/src/main/java/org/springframework/test/context/testng/AbstractTestNGSpringContextTests.java b/spring-test/src/main/java/org/springframework/test/context/testng/AbstractTestNGSpringContextTests.java index e7964d1eaa67..e8cbecc271ff 100644 --- a/spring-test/src/main/java/org/springframework/test/context/testng/AbstractTestNGSpringContextTests.java +++ b/spring-test/src/main/java/org/springframework/test/context/testng/AbstractTestNGSpringContextTests.java @@ -99,6 +99,7 @@ public AbstractTestNGSpringContextTests() { * * @param applicationContext the applicationContext to set */ + @Override public final void setApplicationContext(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } @@ -151,6 +152,7 @@ protected void springTestContextBeforeTestMethod(Method testMethod) throws Excep * @see org.testng.IHookable#run(org.testng.IHookCallBack, * org.testng.ITestResult) */ + @Override public void run(IHookCallBack callBack, ITestResult testResult) { callBack.runTestMethod(testResult); diff --git a/spring-test/src/main/java/org/springframework/test/context/transaction/TransactionalTestExecutionListener.java b/spring-test/src/main/java/org/springframework/test/context/transaction/TransactionalTestExecutionListener.java index ab96a3ee5cc2..4846f0955e94 100644 --- a/spring-test/src/main/java/org/springframework/test/context/transaction/TransactionalTestExecutionListener.java +++ b/spring-test/src/main/java/org/springframework/test/context/transaction/TransactionalTestExecutionListener.java @@ -142,6 +142,7 @@ public void beforeTestMethod(TestContext testContext) throws Exception { if (transactionAttribute != null) { transactionAttribute = new DelegatingTransactionAttribute(transactionAttribute) { + @Override public String getName() { return testMethod.getName(); } diff --git a/spring-test/src/main/java/org/springframework/test/context/web/AbstractGenericWebContextLoader.java b/spring-test/src/main/java/org/springframework/test/context/web/AbstractGenericWebContextLoader.java index 75c363dd188c..91ee9e79aa34 100644 --- a/spring-test/src/main/java/org/springframework/test/context/web/AbstractGenericWebContextLoader.java +++ b/spring-test/src/main/java/org/springframework/test/context/web/AbstractGenericWebContextLoader.java @@ -99,6 +99,7 @@ public abstract class AbstractGenericWebContextLoader extends AbstractContextLoa * @see org.springframework.test.context.SmartContextLoader#loadContext(MergedContextConfiguration) * @see GenericWebApplicationContext */ + @Override public final ConfigurableApplicationContext loadContext(MergedContextConfiguration mergedConfig) throws Exception { if (!(mergedConfig instanceof WebMergedContextConfiguration)) { @@ -259,6 +260,7 @@ protected void customizeContext(GenericWebApplicationContext context, WebMergedC * @see org.springframework.test.context.ContextLoader#loadContext(java.lang.String[]) * @throws UnsupportedOperationException */ + @Override public final ApplicationContext loadContext(String... locations) throws Exception { throw new UnsupportedOperationException( "AbstractGenericWebContextLoader does not support the loadContext(String... locations) method"); diff --git a/spring-test/src/main/java/org/springframework/test/context/web/AnnotationConfigWebContextLoader.java b/spring-test/src/main/java/org/springframework/test/context/web/AnnotationConfigWebContextLoader.java index 05acb463665c..e82a63807dee 100644 --- a/spring-test/src/main/java/org/springframework/test/context/web/AnnotationConfigWebContextLoader.java +++ b/spring-test/src/main/java/org/springframework/test/context/web/AnnotationConfigWebContextLoader.java @@ -75,6 +75,7 @@ public class AnnotationConfigWebContextLoader extends AbstractGenericWebContextL * @see #isGenerateDefaultLocations() * @see #detectDefaultConfigurationClasses(Class) */ + @Override public void processContextConfiguration(ContextConfigurationAttributes configAttributes) { if (ObjectUtils.isEmpty(configAttributes.getClasses()) && isGenerateDefaultLocations()) { Class[] defaultConfigClasses = detectDefaultConfigurationClasses(configAttributes.getDeclaringClass()); diff --git a/spring-test/src/main/java/org/springframework/test/context/web/GenericXmlWebContextLoader.java b/spring-test/src/main/java/org/springframework/test/context/web/GenericXmlWebContextLoader.java index 0bf295e0549d..d172fed88354 100644 --- a/spring-test/src/main/java/org/springframework/test/context/web/GenericXmlWebContextLoader.java +++ b/spring-test/src/main/java/org/springframework/test/context/web/GenericXmlWebContextLoader.java @@ -41,6 +41,7 @@ protected void loadBeanDefinitions(GenericWebApplicationContext context, /** * Returns "{@code -context.xml}". */ + @Override protected String getResourceSuffix() { return "-context.xml"; } diff --git a/spring-test/src/main/java/org/springframework/test/context/web/ServletTestExecutionListener.java b/spring-test/src/main/java/org/springframework/test/context/web/ServletTestExecutionListener.java index 7858d9201f78..1f65000a26dd 100644 --- a/spring-test/src/main/java/org/springframework/test/context/web/ServletTestExecutionListener.java +++ b/spring-test/src/main/java/org/springframework/test/context/web/ServletTestExecutionListener.java @@ -69,6 +69,7 @@ public class ServletTestExecutionListener extends AbstractTestExecutionListener * @see TestExecutionListener#prepareTestInstance(TestContext) * @see #setUpRequestContextIfNecessary(TestContext) */ + @Override @SuppressWarnings("javadoc") public void prepareTestInstance(TestContext testContext) throws Exception { setUpRequestContextIfNecessary(testContext); @@ -81,6 +82,7 @@ public void prepareTestInstance(TestContext testContext) throws Exception { * @see TestExecutionListener#beforeTestMethod(TestContext) * @see #setUpRequestContextIfNecessary(TestContext) */ + @Override @SuppressWarnings("javadoc") public void beforeTestMethod(TestContext testContext) throws Exception { setUpRequestContextIfNecessary(testContext); @@ -93,6 +95,7 @@ public void beforeTestMethod(TestContext testContext) throws Exception { * * @see TestExecutionListener#afterTestMethod(TestContext) */ + @Override public void afterTestMethod(TestContext testContext) throws Exception { if (logger.isDebugEnabled()) { logger.debug(String.format("Resetting RequestContextHolder for test context %s.", testContext)); diff --git a/spring-test/src/main/java/org/springframework/test/context/web/WebDelegatingSmartContextLoader.java b/spring-test/src/main/java/org/springframework/test/context/web/WebDelegatingSmartContextLoader.java index fa561c00a7f1..9dc43968aa30 100644 --- a/spring-test/src/main/java/org/springframework/test/context/web/WebDelegatingSmartContextLoader.java +++ b/spring-test/src/main/java/org/springframework/test/context/web/WebDelegatingSmartContextLoader.java @@ -37,10 +37,12 @@ public class WebDelegatingSmartContextLoader extends AbstractDelegatingSmartCont private final SmartContextLoader annotationConfigLoader = new AnnotationConfigWebContextLoader(); + @Override protected SmartContextLoader getXmlLoader() { return this.xmlLoader; } + @Override protected SmartContextLoader getAnnotationConfigLoader() { return this.annotationConfigLoader; } diff --git a/spring-test/src/test/java/org/springframework/test/context/ContextHierarchyDirtiesContextTests.java b/spring-test/src/test/java/org/springframework/test/context/ContextHierarchyDirtiesContextTests.java index 48f348900774..fdc173df6862 100644 --- a/spring-test/src/test/java/org/springframework/test/context/ContextHierarchyDirtiesContextTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/ContextHierarchyDirtiesContextTests.java @@ -124,6 +124,7 @@ public String bean() { } } + @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { ContextHierarchyDirtiesContextTests.context = applicationContext; ContextHierarchyDirtiesContextTests.baz = applicationContext.getBean("bean", String.class); diff --git a/spring-test/src/test/java/org/springframework/test/util/subpackage/LegacyEntity.java b/spring-test/src/test/java/org/springframework/test/util/subpackage/LegacyEntity.java index 19507c9380ff..8c8ddfd4af12 100644 --- a/spring-test/src/test/java/org/springframework/test/util/subpackage/LegacyEntity.java +++ b/spring-test/src/test/java/org/springframework/test/util/subpackage/LegacyEntity.java @@ -29,6 +29,7 @@ public class LegacyEntity { private Object collaborator = new Object() { + @Override public String toString() { throw new RuntimeException( "Invoking toString() on the default collaborator causes an undesirable side effect"); @@ -36,6 +37,7 @@ public String toString() { }; + @Override public String toString() { return new ToStringCreator(this)// .append("collaborator", this.collaborator)// diff --git a/spring-test/src/test/java/org/springframework/test/util/subpackage/Person.java b/spring-test/src/test/java/org/springframework/test/util/subpackage/Person.java index 663047795752..b89f56167fdf 100644 --- a/spring-test/src/test/java/org/springframework/test/util/subpackage/Person.java +++ b/spring-test/src/test/java/org/springframework/test/util/subpackage/Person.java @@ -79,6 +79,7 @@ protected final void setFavoriteNumber(Number favoriteNumber) { this.favoriteNumber = favoriteNumber; } + @Override public String toString() { return new ToStringCreator(this) diff --git a/spring-tx/src/main/java/org/springframework/dao/annotation/PersistenceExceptionTranslationAdvisor.java b/spring-tx/src/main/java/org/springframework/dao/annotation/PersistenceExceptionTranslationAdvisor.java index 2b8358d678c3..4aaab8b13710 100644 --- a/spring-tx/src/main/java/org/springframework/dao/annotation/PersistenceExceptionTranslationAdvisor.java +++ b/spring-tx/src/main/java/org/springframework/dao/annotation/PersistenceExceptionTranslationAdvisor.java @@ -73,10 +73,12 @@ public PersistenceExceptionTranslationAdvisor( } + @Override public Advice getAdvice() { return this.advice; } + @Override public Pointcut getPointcut() { return this.pointcut; } diff --git a/spring-tx/src/main/java/org/springframework/dao/annotation/PersistenceExceptionTranslationPostProcessor.java b/spring-tx/src/main/java/org/springframework/dao/annotation/PersistenceExceptionTranslationPostProcessor.java index e60638b20feb..b8588a878baf 100644 --- a/spring-tx/src/main/java/org/springframework/dao/annotation/PersistenceExceptionTranslationPostProcessor.java +++ b/spring-tx/src/main/java/org/springframework/dao/annotation/PersistenceExceptionTranslationPostProcessor.java @@ -77,6 +77,7 @@ public void setRepositoryAnnotationType(Class repositoryAn this.repositoryAnnotationType = repositoryAnnotationType; } + @Override public void setBeanFactory(BeanFactory beanFactory) { if (!(beanFactory instanceof ListableBeanFactory)) { throw new IllegalArgumentException( diff --git a/spring-tx/src/main/java/org/springframework/dao/support/ChainedPersistenceExceptionTranslator.java b/spring-tx/src/main/java/org/springframework/dao/support/ChainedPersistenceExceptionTranslator.java index bdaddb8c55ae..d86c5aeb1187 100644 --- a/spring-tx/src/main/java/org/springframework/dao/support/ChainedPersistenceExceptionTranslator.java +++ b/spring-tx/src/main/java/org/springframework/dao/support/ChainedPersistenceExceptionTranslator.java @@ -53,6 +53,7 @@ public final PersistenceExceptionTranslator[] getDelegates() { } + @Override public DataAccessException translateExceptionIfPossible(RuntimeException ex) { for (PersistenceExceptionTranslator pet : this.delegates) { DataAccessException translatedDex = pet.translateExceptionIfPossible(ex); diff --git a/spring-tx/src/main/java/org/springframework/dao/support/DaoSupport.java b/spring-tx/src/main/java/org/springframework/dao/support/DaoSupport.java index 4b5f6865c7d3..91e29d111342 100644 --- a/spring-tx/src/main/java/org/springframework/dao/support/DaoSupport.java +++ b/spring-tx/src/main/java/org/springframework/dao/support/DaoSupport.java @@ -39,6 +39,7 @@ public abstract class DaoSupport implements InitializingBean { protected final Log logger = LogFactory.getLog(getClass()); + @Override public final void afterPropertiesSet() throws IllegalArgumentException, BeanInitializationException { // Let abstract subclasses check their configuration. checkDaoConfig(); diff --git a/spring-tx/src/main/java/org/springframework/dao/support/PersistenceExceptionTranslationInterceptor.java b/spring-tx/src/main/java/org/springframework/dao/support/PersistenceExceptionTranslationInterceptor.java index 9cf7432c435a..b486dccdfaa6 100644 --- a/spring-tx/src/main/java/org/springframework/dao/support/PersistenceExceptionTranslationInterceptor.java +++ b/spring-tx/src/main/java/org/springframework/dao/support/PersistenceExceptionTranslationInterceptor.java @@ -107,6 +107,7 @@ public void setAlwaysTranslate(boolean alwaysTranslate) { this.alwaysTranslate = alwaysTranslate; } + @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { if (this.persistenceExceptionTranslator == null) { // No explicit exception translator specified - perform autodetection. @@ -119,6 +120,7 @@ public void setBeanFactory(BeanFactory beanFactory) throws BeansException { } } + @Override public void afterPropertiesSet() { if (this.persistenceExceptionTranslator == null) { throw new IllegalArgumentException("Property 'persistenceExceptionTranslator' is required"); @@ -150,6 +152,7 @@ protected PersistenceExceptionTranslator detectPersistenceExceptionTranslators(L } + @Override public Object invoke(MethodInvocation mi) throws Throwable { try { return mi.proceed(); diff --git a/spring-tx/src/main/java/org/springframework/jca/cci/connection/CciLocalTransactionManager.java b/spring-tx/src/main/java/org/springframework/jca/cci/connection/CciLocalTransactionManager.java index aa7d38943d9e..93404bd98e45 100644 --- a/spring-tx/src/main/java/org/springframework/jca/cci/connection/CciLocalTransactionManager.java +++ b/spring-tx/src/main/java/org/springframework/jca/cci/connection/CciLocalTransactionManager.java @@ -109,6 +109,7 @@ public ConnectionFactory getConnectionFactory() { return this.connectionFactory; } + @Override public void afterPropertiesSet() { if (getConnectionFactory() == null) { throw new IllegalArgumentException("Property 'connectionFactory' is required"); @@ -116,6 +117,7 @@ public void afterPropertiesSet() { } + @Override public Object getResourceFactory() { return getConnectionFactory(); } diff --git a/spring-tx/src/main/java/org/springframework/jca/cci/connection/DelegatingConnectionFactory.java b/spring-tx/src/main/java/org/springframework/jca/cci/connection/DelegatingConnectionFactory.java index f01ac831008e..5bc218d4614e 100644 --- a/spring-tx/src/main/java/org/springframework/jca/cci/connection/DelegatingConnectionFactory.java +++ b/spring-tx/src/main/java/org/springframework/jca/cci/connection/DelegatingConnectionFactory.java @@ -60,6 +60,7 @@ public ConnectionFactory getTargetConnectionFactory() { } + @Override public void afterPropertiesSet() { if (getTargetConnectionFactory() == null) { throw new IllegalArgumentException("Property 'targetConnectionFactory' is required"); @@ -67,26 +68,32 @@ public void afterPropertiesSet() { } + @Override public Connection getConnection() throws ResourceException { return getTargetConnectionFactory().getConnection(); } + @Override public Connection getConnection(ConnectionSpec connectionSpec) throws ResourceException { return getTargetConnectionFactory().getConnection(connectionSpec); } + @Override public RecordFactory getRecordFactory() throws ResourceException { return getTargetConnectionFactory().getRecordFactory(); } + @Override public ResourceAdapterMetaData getMetaData() throws ResourceException { return getTargetConnectionFactory().getMetaData(); } + @Override public Reference getReference() throws NamingException { return getTargetConnectionFactory().getReference(); } + @Override public void setReference(Reference reference) { getTargetConnectionFactory().setReference(reference); } diff --git a/spring-tx/src/main/java/org/springframework/jca/cci/connection/NotSupportedRecordFactory.java b/spring-tx/src/main/java/org/springframework/jca/cci/connection/NotSupportedRecordFactory.java index bf1808db8125..ed843edeed0c 100644 --- a/spring-tx/src/main/java/org/springframework/jca/cci/connection/NotSupportedRecordFactory.java +++ b/spring-tx/src/main/java/org/springframework/jca/cci/connection/NotSupportedRecordFactory.java @@ -41,10 +41,12 @@ */ public class NotSupportedRecordFactory implements RecordFactory { + @Override public MappedRecord createMappedRecord(String name) throws ResourceException { throw new NotSupportedException("The RecordFactory facility is not supported by the connector"); } + @Override public IndexedRecord createIndexedRecord(String name) throws ResourceException { throw new NotSupportedException("The RecordFactory facility is not supported by the connector"); } diff --git a/spring-tx/src/main/java/org/springframework/jca/cci/connection/SingleConnectionFactory.java b/spring-tx/src/main/java/org/springframework/jca/cci/connection/SingleConnectionFactory.java index fe391c88056a..40a50b80dd97 100644 --- a/spring-tx/src/main/java/org/springframework/jca/cci/connection/SingleConnectionFactory.java +++ b/spring-tx/src/main/java/org/springframework/jca/cci/connection/SingleConnectionFactory.java @@ -129,6 +129,7 @@ public Connection getConnection(ConnectionSpec connectionSpec) throws ResourceEx *

As this bean implements DisposableBean, a bean factory will * automatically invoke this on destruction of its cached singletons. */ + @Override public void destroy() { resetConnection(); } @@ -228,6 +229,7 @@ private CloseSuppressingInvocationHandler(Connection target) { this.target = target; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (method.getName().equals("equals")) { // Only consider equal when proxies are identical. diff --git a/spring-tx/src/main/java/org/springframework/jca/cci/connection/TransactionAwareConnectionFactoryProxy.java b/spring-tx/src/main/java/org/springframework/jca/cci/connection/TransactionAwareConnectionFactoryProxy.java index f5b2b5d0ec4f..7fd30b3a9b0a 100644 --- a/spring-tx/src/main/java/org/springframework/jca/cci/connection/TransactionAwareConnectionFactoryProxy.java +++ b/spring-tx/src/main/java/org/springframework/jca/cci/connection/TransactionAwareConnectionFactoryProxy.java @@ -128,6 +128,7 @@ public TransactionAwareInvocationHandler(Connection target, ConnectionFactory cf this.connectionFactory = cf; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on Connection interface coming in... diff --git a/spring-tx/src/main/java/org/springframework/jca/cci/core/CciTemplate.java b/spring-tx/src/main/java/org/springframework/jca/cci/core/CciTemplate.java index d55909ebe071..4bd46036ca65 100644 --- a/spring-tx/src/main/java/org/springframework/jca/cci/core/CciTemplate.java +++ b/spring-tx/src/main/java/org/springframework/jca/cci/core/CciTemplate.java @@ -187,6 +187,7 @@ public CciTemplate getDerivedTemplate(ConnectionSpec connectionSpec) { } + @Override public T execute(ConnectionCallback action) throws DataAccessException { Assert.notNull(action, "Callback object must not be null"); Connection con = ConnectionFactoryUtils.getConnection(getConnectionFactory(), getConnectionSpec()); @@ -207,9 +208,11 @@ public T execute(ConnectionCallback action) throws DataAccessException { } } + @Override public T execute(final InteractionCallback action) throws DataAccessException { Assert.notNull(action, "Callback object must not be null"); return execute(new ConnectionCallback() { + @Override public T doInConnection(Connection connection, ConnectionFactory connectionFactory) throws ResourceException, SQLException, DataAccessException { Interaction interaction = connection.createInteraction(); @@ -223,24 +226,29 @@ public T doInConnection(Connection connection, ConnectionFactory connectionFacto }); } + @Override public Record execute(InteractionSpec spec, Record inputRecord) throws DataAccessException { return doExecute(spec, inputRecord, null, new SimpleRecordExtractor()); } + @Override public void execute(InteractionSpec spec, Record inputRecord, Record outputRecord) throws DataAccessException { doExecute(spec, inputRecord, outputRecord, null); } + @Override public Record execute(InteractionSpec spec, RecordCreator inputCreator) throws DataAccessException { return doExecute(spec, createRecord(inputCreator), null, new SimpleRecordExtractor()); } + @Override public T execute(InteractionSpec spec, Record inputRecord, RecordExtractor outputExtractor) throws DataAccessException { return doExecute(spec, inputRecord, null, outputExtractor); } + @Override public T execute(InteractionSpec spec, RecordCreator inputCreator, RecordExtractor outputExtractor) throws DataAccessException { @@ -263,6 +271,7 @@ protected T doExecute( final RecordExtractor outputExtractor) throws DataAccessException { return execute(new InteractionCallback() { + @Override public T doInInteraction(Interaction interaction, ConnectionFactory connectionFactory) throws ResourceException, SQLException, DataAccessException { Record outputRecordToUse = outputRecord; @@ -421,6 +430,7 @@ private void closeResultSet(ResultSet resultSet) { private static class SimpleRecordExtractor implements RecordExtractor { + @Override public Record extractData(Record record) { return record; } diff --git a/spring-tx/src/main/java/org/springframework/jca/cci/core/support/CommAreaRecord.java b/spring-tx/src/main/java/org/springframework/jca/cci/core/support/CommAreaRecord.java index 982b43064b96..b9989c945a76 100644 --- a/spring-tx/src/main/java/org/springframework/jca/cci/core/support/CommAreaRecord.java +++ b/spring-tx/src/main/java/org/springframework/jca/cci/core/support/CommAreaRecord.java @@ -59,27 +59,33 @@ public CommAreaRecord(byte[] bytes) { } + @Override public void setRecordName(String recordName) { this.recordName=recordName; } + @Override public String getRecordName() { return recordName; } + @Override public void setRecordShortDescription(String recordShortDescription) { this.recordShortDescription=recordShortDescription; } + @Override public String getRecordShortDescription() { return recordShortDescription; } + @Override public void read(InputStream in) throws IOException { this.bytes = FileCopyUtils.copyToByteArray(in); } + @Override public void write(OutputStream out) throws IOException { out.write(this.bytes); out.flush(); diff --git a/spring-tx/src/main/java/org/springframework/jca/cci/object/EisOperation.java b/spring-tx/src/main/java/org/springframework/jca/cci/object/EisOperation.java index aa341f8e15d9..19bd6dda704b 100644 --- a/spring-tx/src/main/java/org/springframework/jca/cci/object/EisOperation.java +++ b/spring-tx/src/main/java/org/springframework/jca/cci/object/EisOperation.java @@ -82,6 +82,7 @@ public InteractionSpec getInteractionSpec() { } + @Override public void afterPropertiesSet() { this.cciTemplate.afterPropertiesSet(); diff --git a/spring-tx/src/main/java/org/springframework/jca/cci/object/MappingRecordOperation.java b/spring-tx/src/main/java/org/springframework/jca/cci/object/MappingRecordOperation.java index 413a034ae728..c792c2af1f8e 100644 --- a/spring-tx/src/main/java/org/springframework/jca/cci/object/MappingRecordOperation.java +++ b/spring-tx/src/main/java/org/springframework/jca/cci/object/MappingRecordOperation.java @@ -129,6 +129,7 @@ public RecordCreatorImpl(Object inObject) { this.inputObject = inObject; } + @Override public Record createRecord(RecordFactory recordFactory) throws ResourceException, DataAccessException { return createInputRecord(recordFactory, this.inputObject); } @@ -141,6 +142,7 @@ public Record createRecord(RecordFactory recordFactory) throws ResourceException */ protected class RecordExtractorImpl implements RecordExtractor { + @Override public Object extractData(Record record) throws ResourceException, SQLException, DataAccessException { return extractOutputData(record); } diff --git a/spring-tx/src/main/java/org/springframework/jca/context/BootstrapContextAwareProcessor.java b/spring-tx/src/main/java/org/springframework/jca/context/BootstrapContextAwareProcessor.java index 7e2bedff0f88..fbac4159dde4 100644 --- a/spring-tx/src/main/java/org/springframework/jca/context/BootstrapContextAwareProcessor.java +++ b/spring-tx/src/main/java/org/springframework/jca/context/BootstrapContextAwareProcessor.java @@ -46,6 +46,7 @@ public BootstrapContextAwareProcessor(BootstrapContext bootstrapContext) { } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (this.bootstrapContext != null && bean instanceof BootstrapContextAware) { ((BootstrapContextAware) bean).setBootstrapContext(this.bootstrapContext); @@ -53,6 +54,7 @@ public Object postProcessBeforeInitialization(Object bean, String beanName) thro return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { return bean; } diff --git a/spring-tx/src/main/java/org/springframework/jca/context/ResourceAdapterApplicationContext.java b/spring-tx/src/main/java/org/springframework/jca/context/ResourceAdapterApplicationContext.java index 44f38674b817..b822fc5fb691 100644 --- a/spring-tx/src/main/java/org/springframework/jca/context/ResourceAdapterApplicationContext.java +++ b/spring-tx/src/main/java/org/springframework/jca/context/ResourceAdapterApplicationContext.java @@ -60,6 +60,7 @@ protected void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactor // JCA WorkManager resolved lazily - may not be available. beanFactory.registerResolvableDependency(WorkManager.class, new ObjectFactory() { + @Override public WorkManager getObject() { return bootstrapContext.getWorkManager(); } diff --git a/spring-tx/src/main/java/org/springframework/jca/context/SpringContextResourceAdapter.java b/spring-tx/src/main/java/org/springframework/jca/context/SpringContextResourceAdapter.java index 41bf54472787..259f9f6ca2ab 100644 --- a/spring-tx/src/main/java/org/springframework/jca/context/SpringContextResourceAdapter.java +++ b/spring-tx/src/main/java/org/springframework/jca/context/SpringContextResourceAdapter.java @@ -157,6 +157,7 @@ protected ConfigurableEnvironment createEnvironment() { * This implementation loads a Spring ApplicationContext through the * {@link #createApplicationContext} template method. */ + @Override public void start(BootstrapContext bootstrapContext) throws ResourceAdapterInternalException { if (logger.isInfoEnabled()) { logger.info("Starting SpringContextResourceAdapter with BootstrapContext: " + bootstrapContext); @@ -201,6 +202,7 @@ protected void loadBeanDefinitions(BeanDefinitionRegistry registry, String[] con /** * This implementation closes the Spring ApplicationContext. */ + @Override public void stop() { logger.info("Stopping SpringContextResourceAdapter"); this.applicationContext.close(); @@ -210,6 +212,7 @@ public void stop() { /** * This implementation always throws a NotSupportedException. */ + @Override public void endpointActivation(MessageEndpointFactory messageEndpointFactory, ActivationSpec activationSpec) throws ResourceException { @@ -219,12 +222,14 @@ public void endpointActivation(MessageEndpointFactory messageEndpointFactory, Ac /** * This implementation does nothing. */ + @Override public void endpointDeactivation(MessageEndpointFactory messageEndpointFactory, ActivationSpec activationSpec) { } /** * This implementation always returns {@code null}. */ + @Override public XAResource[] getXAResources(ActivationSpec[] activationSpecs) throws ResourceException { return null; } diff --git a/spring-tx/src/main/java/org/springframework/jca/endpoint/AbstractMessageEndpointFactory.java b/spring-tx/src/main/java/org/springframework/jca/endpoint/AbstractMessageEndpointFactory.java index 01f27f23ffe2..208a1f85bf96 100644 --- a/spring-tx/src/main/java/org/springframework/jca/endpoint/AbstractMessageEndpointFactory.java +++ b/spring-tx/src/main/java/org/springframework/jca/endpoint/AbstractMessageEndpointFactory.java @@ -123,6 +123,7 @@ public void setTransactionTimeout(int transactionTimeout) { * @see #setTransactionManager * @see #setTransactionFactory */ + @Override public boolean isDeliveryTransacted(Method method) throws NoSuchMethodException { return (this.transactionFactory != null); } @@ -132,6 +133,7 @@ public boolean isDeliveryTransacted(Method method) throws NoSuchMethodException *

This implementation delegates to {@link #createEndpointInternal()}, * initializing the endpoint's XAResource before the endpoint gets invoked. */ + @Override public MessageEndpoint createEndpoint(XAResource xaResource) throws UnavailableException { AbstractMessageEndpoint endpoint = createEndpointInternal(); endpoint.initXAResource(xaResource); @@ -189,6 +191,7 @@ void initXAResource(XAResource xaResource) { * concrete endpoint method should call {@code beforeDelivery} and its * sibling {@link #afterDelivery()} explicitly, as part of its own processing. */ + @Override public void beforeDelivery(Method method) throws ResourceException { this.beforeDeliveryCalled = true; try { @@ -236,6 +239,7 @@ protected final void onEndpointException(Throwable ex) { * to call this method after invoking the concrete endpoint. See the * explanation in {@link #beforeDelivery}'s javadoc. */ + @Override public void afterDelivery() throws ResourceException { this.beforeDeliveryCalled = false; Thread.currentThread().setContextClassLoader(this.previousContextClassLoader); @@ -248,6 +252,7 @@ public void afterDelivery() throws ResourceException { } } + @Override public void release() { try { this.transactionDelegate.setRollbackOnly(); diff --git a/spring-tx/src/main/java/org/springframework/jca/endpoint/GenericMessageEndpointFactory.java b/spring-tx/src/main/java/org/springframework/jca/endpoint/GenericMessageEndpointFactory.java index 61f8db5b4e4a..908dbd7f1c3c 100644 --- a/spring-tx/src/main/java/org/springframework/jca/endpoint/GenericMessageEndpointFactory.java +++ b/spring-tx/src/main/java/org/springframework/jca/endpoint/GenericMessageEndpointFactory.java @@ -94,6 +94,7 @@ protected AbstractMessageEndpoint createEndpointInternal() throws UnavailableExc */ private class GenericMessageEndpoint extends AbstractMessageEndpoint implements MethodInterceptor { + @Override public Object invoke(MethodInvocation methodInvocation) throws Throwable { boolean applyDeliveryCalls = !hasBeforeDeliveryBeenCalled(); if (applyDeliveryCalls) { diff --git a/spring-tx/src/main/java/org/springframework/jca/endpoint/GenericMessageEndpointManager.java b/spring-tx/src/main/java/org/springframework/jca/endpoint/GenericMessageEndpointManager.java index 2f256adafed7..c05c613253d6 100644 --- a/spring-tx/src/main/java/org/springframework/jca/endpoint/GenericMessageEndpointManager.java +++ b/spring-tx/src/main/java/org/springframework/jca/endpoint/GenericMessageEndpointManager.java @@ -224,6 +224,7 @@ public void setAutoStartup(boolean autoStartup) { * Return the value for the 'autoStartup' property. If "true", this * endpoint manager will start upon a ContextRefreshedEvent. */ + @Override public boolean isAutoStartup() { return this.autoStartup; } @@ -242,6 +243,7 @@ public void setPhase(int phase) { /** * Return the phase in which this endpoint manager will be started and stopped. */ + @Override public int getPhase() { return this.phase; } @@ -250,6 +252,7 @@ public int getPhase() { * Prepares the message endpoint, and automatically activates it * if the "autoStartup" flag is set to "true". */ + @Override public void afterPropertiesSet() throws ResourceException { if (getResourceAdapter() == null) { throw new IllegalArgumentException("Property 'resourceAdapter' is required"); @@ -274,6 +277,7 @@ else if (activationSpec.getResourceAdapter() != getResourceAdapter()) { /** * Activates the configured message endpoint. */ + @Override public void start() { synchronized (this.lifecycleMonitor) { if (!this.running) { @@ -291,6 +295,7 @@ public void start() { /** * Deactivates the configured message endpoint. */ + @Override public void stop() { synchronized (this.lifecycleMonitor) { if (this.running) { @@ -300,6 +305,7 @@ public void stop() { } } + @Override public void stop(Runnable callback) { synchronized (this.lifecycleMonitor) { this.stop(); @@ -310,6 +316,7 @@ public void stop(Runnable callback) { /** * Return whether the configured message endpoint is currently active. */ + @Override public boolean isRunning() { synchronized (this.lifecycleMonitor) { return this.running; @@ -319,6 +326,7 @@ public boolean isRunning() { /** * Deactivates the message endpoint, preparing it for shutdown. */ + @Override public void destroy() { stop(); } diff --git a/spring-tx/src/main/java/org/springframework/jca/support/LocalConnectionFactoryBean.java b/spring-tx/src/main/java/org/springframework/jca/support/LocalConnectionFactoryBean.java index e02deb14a628..605bbebb8df7 100644 --- a/spring-tx/src/main/java/org/springframework/jca/support/LocalConnectionFactoryBean.java +++ b/spring-tx/src/main/java/org/springframework/jca/support/LocalConnectionFactoryBean.java @@ -109,6 +109,7 @@ public void setConnectionManager(ConnectionManager connectionManager) { this.connectionManager = connectionManager; } + @Override public void afterPropertiesSet() throws ResourceException { if (this.managedConnectionFactory == null) { throw new IllegalArgumentException("Property 'managedConnectionFactory' is required"); @@ -122,14 +123,17 @@ public void afterPropertiesSet() throws ResourceException { } + @Override public Object getObject() { return this.connectionFactory; } + @Override public Class getObjectType() { return (this.connectionFactory != null ? this.connectionFactory.getClass() : null); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-tx/src/main/java/org/springframework/jca/support/ResourceAdapterFactoryBean.java b/spring-tx/src/main/java/org/springframework/jca/support/ResourceAdapterFactoryBean.java index 0bde9b263bdb..8d3fd3d23682 100644 --- a/spring-tx/src/main/java/org/springframework/jca/support/ResourceAdapterFactoryBean.java +++ b/spring-tx/src/main/java/org/springframework/jca/support/ResourceAdapterFactoryBean.java @@ -113,6 +113,7 @@ public void setXaTerminator(XATerminator xaTerminator) { * Builds the BootstrapContext and starts the ResourceAdapter with it. * @see javax.resource.spi.ResourceAdapter#start(javax.resource.spi.BootstrapContext) */ + @Override public void afterPropertiesSet() throws ResourceException { if (this.resourceAdapter == null) { throw new IllegalArgumentException("'resourceAdapter' or 'resourceAdapterClass' is required"); @@ -124,14 +125,17 @@ public void afterPropertiesSet() throws ResourceException { } + @Override public ResourceAdapter getObject() { return this.resourceAdapter; } + @Override public Class getObjectType() { return (this.resourceAdapter != null ? this.resourceAdapter.getClass() : ResourceAdapter.class); } + @Override public boolean isSingleton() { return true; } @@ -141,6 +145,7 @@ public boolean isSingleton() { * Stops the ResourceAdapter. * @see javax.resource.spi.ResourceAdapter#stop() */ + @Override public void destroy() { this.resourceAdapter.stop(); } diff --git a/spring-tx/src/main/java/org/springframework/jca/support/SimpleBootstrapContext.java b/spring-tx/src/main/java/org/springframework/jca/support/SimpleBootstrapContext.java index d26fea733200..be54bddd5cea 100644 --- a/spring-tx/src/main/java/org/springframework/jca/support/SimpleBootstrapContext.java +++ b/spring-tx/src/main/java/org/springframework/jca/support/SimpleBootstrapContext.java @@ -62,6 +62,7 @@ public SimpleBootstrapContext(WorkManager workManager, XATerminator xaTerminator } + @Override public WorkManager getWorkManager() { if (this.workManager == null) { throw new IllegalStateException("No WorkManager available"); @@ -69,10 +70,12 @@ public WorkManager getWorkManager() { return this.workManager; } + @Override public XATerminator getXATerminator() { return this.xaTerminator; } + @Override public Timer createTimer() throws UnavailableException { return new Timer(); } diff --git a/spring-tx/src/main/java/org/springframework/jca/work/DelegatingWork.java b/spring-tx/src/main/java/org/springframework/jca/work/DelegatingWork.java index 3ce2716886a3..f0320d9ffeb2 100644 --- a/spring-tx/src/main/java/org/springframework/jca/work/DelegatingWork.java +++ b/spring-tx/src/main/java/org/springframework/jca/work/DelegatingWork.java @@ -53,6 +53,7 @@ public final Runnable getDelegate() { /** * Delegates execution to the underlying Runnable. */ + @Override public void run() { this.delegate.run(); } @@ -61,6 +62,7 @@ public void run() { * This implementation is empty, since we expect the Runnable * to terminate based on some specific shutdown signal. */ + @Override public void release() { } diff --git a/spring-tx/src/main/java/org/springframework/jca/work/SimpleTaskWorkManager.java b/spring-tx/src/main/java/org/springframework/jca/work/SimpleTaskWorkManager.java index 4a2daf4d0241..96645a6e244e 100644 --- a/spring-tx/src/main/java/org/springframework/jca/work/SimpleTaskWorkManager.java +++ b/spring-tx/src/main/java/org/springframework/jca/work/SimpleTaskWorkManager.java @@ -88,10 +88,12 @@ public void setAsyncTaskExecutor(AsyncTaskExecutor asyncTaskExecutor) { } + @Override public void doWork(Work work) throws WorkException { doWork(work, WorkManager.INDEFINITE, null, null); } + @Override public void doWork(Work work, long startTimeout, ExecutionContext executionContext, WorkListener workListener) throws WorkException { @@ -99,10 +101,12 @@ public void doWork(Work work, long startTimeout, ExecutionContext executionConte executeWork(this.syncTaskExecutor, work, startTimeout, false, executionContext, workListener); } + @Override public long startWork(Work work) throws WorkException { return startWork(work, WorkManager.INDEFINITE, null, null); } + @Override public long startWork(Work work, long startTimeout, ExecutionContext executionContext, WorkListener workListener) throws WorkException { @@ -110,10 +114,12 @@ public long startWork(Work work, long startTimeout, ExecutionContext executionCo return executeWork(this.asyncTaskExecutor, work, startTimeout, true, executionContext, workListener); } + @Override public void scheduleWork(Work work) throws WorkException { scheduleWork(work, WorkManager.INDEFINITE, null, null); } + @Override public void scheduleWork(Work work, long startTimeout, ExecutionContext executionContext, WorkListener workListener) throws WorkException { @@ -219,6 +225,7 @@ public DelegatingWorkAdapter(Work work, WorkListener workListener, boolean accep this.acceptOnExecution = acceptOnExecution; } + @Override public void run() { if (this.acceptOnExecution) { this.workListener.workAccepted(new WorkEvent(this, WorkEvent.WORK_ACCEPTED, work, null)); @@ -244,6 +251,7 @@ public void run() { this.workListener.workCompleted(new WorkEvent(this, WorkEvent.WORK_COMPLETED, this.work, null)); } + @Override public void release() { this.work.release(); } diff --git a/spring-tx/src/main/java/org/springframework/jca/work/WorkManagerTaskExecutor.java b/spring-tx/src/main/java/org/springframework/jca/work/WorkManagerTaskExecutor.java index c6f4cb4c4e33..de8f4da2cfc1 100644 --- a/spring-tx/src/main/java/org/springframework/jca/work/WorkManagerTaskExecutor.java +++ b/spring-tx/src/main/java/org/springframework/jca/work/WorkManagerTaskExecutor.java @@ -122,6 +122,7 @@ public void setWorkManagerName(String workManagerName) { * Specify the JCA BootstrapContext that contains the * WorkManager to delegate to. */ + @Override public void setBootstrapContext(BootstrapContext bootstrapContext) { Assert.notNull(bootstrapContext, "BootstrapContext must not be null"); this.workManager = bootstrapContext.getWorkManager(); @@ -160,6 +161,7 @@ public void setWorkListener(WorkListener workListener) { this.workListener = workListener; } + @Override public void afterPropertiesSet() throws NamingException { if (this.workManager == null) { if (this.workManagerName != null) { @@ -186,10 +188,12 @@ protected WorkManager getDefaultWorkManager() { // Implementation of the Spring SchedulingTaskExecutor interface //------------------------------------------------------------------------- + @Override public void execute(Runnable task) { execute(task, TIMEOUT_INDEFINITE); } + @Override public void execute(Runnable task, long startTimeout) { Assert.state(this.workManager != null, "No WorkManager specified"); Work work = new DelegatingWork(task); @@ -232,12 +236,14 @@ else if (this.blockUntilStarted) { } } + @Override public Future submit(Runnable task) { FutureTask future = new FutureTask(task, null); execute(future, TIMEOUT_INDEFINITE); return future; } + @Override public Future submit(Callable task) { FutureTask future = new FutureTask(task); execute(future, TIMEOUT_INDEFINITE); @@ -247,6 +253,7 @@ public Future submit(Callable task) { /** * This task executor prefers short-lived work units. */ + @Override public boolean prefersShortLivedTasks() { return true; } @@ -256,30 +263,36 @@ public boolean prefersShortLivedTasks() { // Implementation of the JCA WorkManager interface //------------------------------------------------------------------------- + @Override public void doWork(Work work) throws WorkException { this.workManager.doWork(work); } + @Override public void doWork(Work work, long delay, ExecutionContext executionContext, WorkListener workListener) throws WorkException { this.workManager.doWork(work, delay, executionContext, workListener); } + @Override public long startWork(Work work) throws WorkException { return this.workManager.startWork(work); } + @Override public long startWork(Work work, long delay, ExecutionContext executionContext, WorkListener workListener) throws WorkException { return this.workManager.startWork(work, delay, executionContext, workListener); } + @Override public void scheduleWork(Work work) throws WorkException { this.workManager.scheduleWork(work); } + @Override public void scheduleWork(Work work, long delay, ExecutionContext executionContext, WorkListener workListener) throws WorkException { diff --git a/spring-tx/src/main/java/org/springframework/transaction/annotation/AbstractTransactionManagementConfiguration.java b/spring-tx/src/main/java/org/springframework/transaction/annotation/AbstractTransactionManagementConfiguration.java index d5ea077155f6..4aba8ee705ff 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/annotation/AbstractTransactionManagementConfiguration.java +++ b/spring-tx/src/main/java/org/springframework/transaction/annotation/AbstractTransactionManagementConfiguration.java @@ -40,6 +40,7 @@ public abstract class AbstractTransactionManagementConfiguration implements Impo protected AnnotationAttributes enableTx; protected PlatformTransactionManager txManager; + @Override public void setImportMetadata(AnnotationMetadata importMetadata) { this.enableTx = AnnotationAttributes.fromMap( importMetadata.getAnnotationAttributes(EnableTransactionManagement.class.getName(), false)); diff --git a/spring-tx/src/main/java/org/springframework/transaction/annotation/Ejb3TransactionAnnotationParser.java b/spring-tx/src/main/java/org/springframework/transaction/annotation/Ejb3TransactionAnnotationParser.java index f7122b3742b1..c7e20cf1dc4e 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/annotation/Ejb3TransactionAnnotationParser.java +++ b/spring-tx/src/main/java/org/springframework/transaction/annotation/Ejb3TransactionAnnotationParser.java @@ -34,6 +34,7 @@ @SuppressWarnings("serial") public class Ejb3TransactionAnnotationParser implements TransactionAnnotationParser, Serializable { + @Override public TransactionAttribute parseTransactionAnnotation(AnnotatedElement ae) { javax.ejb.TransactionAttribute ann = ae.getAnnotation(javax.ejb.TransactionAttribute.class); if (ann != null) { diff --git a/spring-tx/src/main/java/org/springframework/transaction/annotation/JtaTransactionAnnotationParser.java b/spring-tx/src/main/java/org/springframework/transaction/annotation/JtaTransactionAnnotationParser.java index 862a6f4df57b..f81ef2fac669 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/annotation/JtaTransactionAnnotationParser.java +++ b/spring-tx/src/main/java/org/springframework/transaction/annotation/JtaTransactionAnnotationParser.java @@ -35,6 +35,7 @@ @SuppressWarnings("serial") public class JtaTransactionAnnotationParser implements TransactionAnnotationParser, Serializable { + @Override public TransactionAttribute parseTransactionAnnotation(AnnotatedElement ae) { javax.transaction.Transactional ann = AnnotationUtils.getAnnotation(ae, javax.transaction.Transactional.class); if (ann != null) { diff --git a/spring-tx/src/main/java/org/springframework/transaction/annotation/SpringTransactionAnnotationParser.java b/spring-tx/src/main/java/org/springframework/transaction/annotation/SpringTransactionAnnotationParser.java index d9024f1a1f18..514548d9ce99 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/annotation/SpringTransactionAnnotationParser.java +++ b/spring-tx/src/main/java/org/springframework/transaction/annotation/SpringTransactionAnnotationParser.java @@ -35,6 +35,7 @@ @SuppressWarnings("serial") public class SpringTransactionAnnotationParser implements TransactionAnnotationParser, Serializable { + @Override public TransactionAttribute parseTransactionAnnotation(AnnotatedElement ae) { Transactional ann = AnnotationUtils.getAnnotation(ae, Transactional.class); if (ann != null) { diff --git a/spring-tx/src/main/java/org/springframework/transaction/config/AnnotationDrivenBeanDefinitionParser.java b/spring-tx/src/main/java/org/springframework/transaction/config/AnnotationDrivenBeanDefinitionParser.java index 07bea12ee540..6821c78e6bba 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/config/AnnotationDrivenBeanDefinitionParser.java +++ b/spring-tx/src/main/java/org/springframework/transaction/config/AnnotationDrivenBeanDefinitionParser.java @@ -73,6 +73,7 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser { * {@link AopNamespaceUtils#registerAutoProxyCreatorIfNecessary register an AutoProxyCreator} * with the container as necessary. */ + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { String mode = element.getAttribute("mode"); if ("aspectj".equals(mode)) { diff --git a/spring-tx/src/main/java/org/springframework/transaction/config/TxNamespaceHandler.java b/spring-tx/src/main/java/org/springframework/transaction/config/TxNamespaceHandler.java index 28736d0177e9..228ffdbc90ef 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/config/TxNamespaceHandler.java +++ b/spring-tx/src/main/java/org/springframework/transaction/config/TxNamespaceHandler.java @@ -50,6 +50,7 @@ static String getTransactionManagerName(Element element) { } + @Override public void init() { registerBeanDefinitionParser("advice", new TxAdviceBeanDefinitionParser()); registerBeanDefinitionParser("annotation-driven", new AnnotationDrivenBeanDefinitionParser()); diff --git a/spring-tx/src/main/java/org/springframework/transaction/interceptor/AbstractFallbackTransactionAttributeSource.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/AbstractFallbackTransactionAttributeSource.java index a8762beeb59c..a1dcc33b39f9 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/AbstractFallbackTransactionAttributeSource.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/AbstractFallbackTransactionAttributeSource.java @@ -80,6 +80,7 @@ public abstract class AbstractFallbackTransactionAttributeSource implements Tran * @return TransactionAttribute for this method, or {@code null} if the method * is not transactional */ + @Override public TransactionAttribute getTransactionAttribute(Method method, Class targetClass) { // First, see if we have a cached value. Object cacheKey = getCacheKey(method, targetClass); diff --git a/spring-tx/src/main/java/org/springframework/transaction/interceptor/BeanFactoryTransactionAttributeSourceAdvisor.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/BeanFactoryTransactionAttributeSourceAdvisor.java index 551eb287daa3..49da42fb8738 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/BeanFactoryTransactionAttributeSourceAdvisor.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/BeanFactoryTransactionAttributeSourceAdvisor.java @@ -61,6 +61,7 @@ public void setClassFilter(ClassFilter classFilter) { this.pointcut.setClassFilter(classFilter); } + @Override public Pointcut getPointcut() { return this.pointcut; } diff --git a/spring-tx/src/main/java/org/springframework/transaction/interceptor/CompositeTransactionAttributeSource.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/CompositeTransactionAttributeSource.java index 1deed0c72053..a0f1a193b598 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/CompositeTransactionAttributeSource.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/CompositeTransactionAttributeSource.java @@ -52,6 +52,7 @@ public final TransactionAttributeSource[] getTransactionAttributeSources() { } + @Override public TransactionAttribute getTransactionAttribute(Method method, Class targetClass) { for (TransactionAttributeSource tas : this.transactionAttributeSources) { TransactionAttribute ta = tas.getTransactionAttribute(method, targetClass); diff --git a/spring-tx/src/main/java/org/springframework/transaction/interceptor/DefaultTransactionAttribute.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/DefaultTransactionAttribute.java index f505b8bf5cdc..8e016f253312 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/DefaultTransactionAttribute.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/DefaultTransactionAttribute.java @@ -82,6 +82,7 @@ public void setQualifier(String qualifier) { /** * Return a qualifier value associated with this transaction attribute. */ + @Override public String getQualifier() { return this.qualifier; } @@ -91,6 +92,7 @@ public String getQualifier() { * Additionally attempt to rollback on Error. *

This is consistent with TransactionTemplate's default behavior. */ + @Override public boolean rollbackOn(Throwable ex) { return (ex instanceof RuntimeException || ex instanceof Error); } diff --git a/spring-tx/src/main/java/org/springframework/transaction/interceptor/DelegatingTransactionAttribute.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/DelegatingTransactionAttribute.java index 32c66e68ddf8..84db321374cf 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/DelegatingTransactionAttribute.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/DelegatingTransactionAttribute.java @@ -46,10 +46,12 @@ public DelegatingTransactionAttribute(TransactionAttribute targetAttribute) { } + @Override public String getQualifier() { return this.targetAttribute.getQualifier(); } + @Override public boolean rollbackOn(Throwable ex) { return this.targetAttribute.rollbackOn(ex); } diff --git a/spring-tx/src/main/java/org/springframework/transaction/interceptor/MatchAlwaysTransactionAttributeSource.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/MatchAlwaysTransactionAttributeSource.java index b67ed6982b00..e27ee94bf5e1 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/MatchAlwaysTransactionAttributeSource.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/MatchAlwaysTransactionAttributeSource.java @@ -50,6 +50,7 @@ public void setTransactionAttribute(TransactionAttribute transactionAttribute) { } + @Override public TransactionAttribute getTransactionAttribute(Method method, Class targetClass) { return this.transactionAttribute; } diff --git a/spring-tx/src/main/java/org/springframework/transaction/interceptor/MethodMapTransactionAttributeSource.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/MethodMapTransactionAttributeSource.java index c71f01d68155..77b26a5f25b5 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/MethodMapTransactionAttributeSource.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/MethodMapTransactionAttributeSource.java @@ -81,6 +81,7 @@ public void setMethodMap(Map methodMap) { this.methodMap = methodMap; } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } @@ -91,6 +92,7 @@ public void setBeanClassLoader(ClassLoader beanClassLoader) { * {@link #setMethodMap(java.util.Map) "methodMap"}, if any. * @see #initMethodMap(java.util.Map) */ + @Override public void afterPropertiesSet() { initMethodMap(this.methodMap); this.eagerlyInitialized = true; @@ -204,6 +206,7 @@ protected boolean isMatch(String methodName, String mappedName) { } + @Override public TransactionAttribute getTransactionAttribute(Method method, Class targetClass) { if (this.eagerlyInitialized) { return this.transactionAttributeMap.get(method); diff --git a/spring-tx/src/main/java/org/springframework/transaction/interceptor/NameMatchTransactionAttributeSource.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/NameMatchTransactionAttributeSource.java index 8fa8be22a3de..9d2b5debc8fb 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/NameMatchTransactionAttributeSource.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/NameMatchTransactionAttributeSource.java @@ -98,6 +98,7 @@ public void addTransactionalMethod(String methodName, TransactionAttribute attr) } + @Override public TransactionAttribute getTransactionAttribute(Method method, Class targetClass) { // look for direct name match String methodName = method.getName(); diff --git a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAspectSupport.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAspectSupport.java index bcd2c7788054..2e259559132e 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAspectSupport.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAspectSupport.java @@ -205,6 +205,7 @@ public TransactionAttributeSource getTransactionAttributeSource() { /** * Set the BeanFactory to use for retrieving PlatformTransactionManager beans. */ + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } @@ -219,6 +220,7 @@ protected final BeanFactory getBeanFactory() { /** * Check that required properties were set. */ + @Override public void afterPropertiesSet() { if (this.transactionManager == null && this.beanFactory == null) { throw new IllegalStateException( @@ -276,6 +278,7 @@ protected Object invokeWithinTransaction(Method method, Class targetClass, final try { Object result = ((CallbackPreferringPlatformTransactionManager) tm).execute(txAttr, new TransactionCallback() { + @Override public Object doInTransaction(TransactionStatus status) { TransactionInfo txInfo = prepareTransactionInfo(tm, txAttr, joinpointIdentification, status); try { diff --git a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAttributeSourceAdvisor.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAttributeSourceAdvisor.java index a5a632411dab..3795ec8234be 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAttributeSourceAdvisor.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAttributeSourceAdvisor.java @@ -79,10 +79,12 @@ public void setClassFilter(ClassFilter classFilter) { } + @Override public Advice getAdvice() { return this.transactionInterceptor; } + @Override public Pointcut getPointcut() { return this.pointcut; } diff --git a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAttributeSourcePointcut.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAttributeSourcePointcut.java index 4b9314edf701..13b23dfcfd9a 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAttributeSourcePointcut.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAttributeSourcePointcut.java @@ -32,6 +32,7 @@ @SuppressWarnings("serial") abstract class TransactionAttributeSourcePointcut extends StaticMethodMatcherPointcut implements Serializable { + @Override public boolean matches(Method method, Class targetClass) { TransactionAttributeSource tas = getTransactionAttributeSource(); return (tas == null || tas.getTransactionAttribute(method, targetClass) != null); diff --git a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionInterceptor.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionInterceptor.java index db46387077c3..577f84735e0d 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionInterceptor.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionInterceptor.java @@ -84,6 +84,7 @@ public TransactionInterceptor(PlatformTransactionManager ptm, TransactionAttribu } + @Override public Object invoke(final MethodInvocation invocation) throws Throwable { // Work out the target class: may be {@code null}. // The TransactionAttributeSource should be passed the target class @@ -92,6 +93,7 @@ public Object invoke(final MethodInvocation invocation) throws Throwable { // Adapt to TransactionAspectSupport's invokeWithinTransaction... return invokeWithinTransaction(invocation.getMethod(), targetClass, new InvocationCallback() { + @Override public Object proceedWithInvocation() throws Throwable { return invocation.proceed(); } diff --git a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionProxyFactoryBean.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionProxyFactoryBean.java index 62b408e155c3..b6a26078da37 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionProxyFactoryBean.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionProxyFactoryBean.java @@ -180,6 +180,7 @@ public void setPointcut(Pointcut pointcut) { * @see org.springframework.beans.factory.BeanFactory#getBean(Class) * @see org.springframework.transaction.PlatformTransactionManager */ + @Override public void setBeanFactory(BeanFactory beanFactory) { this.transactionInterceptor.setBeanFactory(beanFactory); } diff --git a/spring-tx/src/main/java/org/springframework/transaction/jta/JtaAfterCompletionSynchronization.java b/spring-tx/src/main/java/org/springframework/transaction/jta/JtaAfterCompletionSynchronization.java index fded50e16751..4a4e70cb8ed2 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/jta/JtaAfterCompletionSynchronization.java +++ b/spring-tx/src/main/java/org/springframework/transaction/jta/JtaAfterCompletionSynchronization.java @@ -49,9 +49,11 @@ public JtaAfterCompletionSynchronization(List synchr } + @Override public void beforeCompletion() { } + @Override public void afterCompletion(int status) { switch (status) { case Status.STATUS_COMMITTED: diff --git a/spring-tx/src/main/java/org/springframework/transaction/jta/JtaTransactionManager.java b/spring-tx/src/main/java/org/springframework/transaction/jta/JtaTransactionManager.java index 14d89787d709..5e808b70c4e9 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/jta/JtaTransactionManager.java +++ b/spring-tx/src/main/java/org/springframework/transaction/jta/JtaTransactionManager.java @@ -392,6 +392,7 @@ public void setAllowCustomIsolationLevels(boolean allowCustomIsolationLevels) { * Initialize the UserTransaction as well as the TransactionManager handle. * @see #initUserTransactionAndTransactionManager() */ + @Override public void afterPropertiesSet() throws TransactionSystemException { initUserTransactionAndTransactionManager(); checkUserTransactionAndTransactionManager(); @@ -1132,6 +1133,7 @@ else if (getTransactionManager() != null) { // Implementation of TransactionFactory interface //--------------------------------------------------------------------- + @Override public Transaction createTransaction(String name, int timeout) throws NotSupportedException, SystemException { TransactionManager tm = getTransactionManager(); Assert.state(tm != null, "No JTA TransactionManager available"); @@ -1142,6 +1144,7 @@ public Transaction createTransaction(String name, int timeout) throws NotSupport return new ManagedTransactionAdapter(tm); } + @Override public boolean supportsResourceAdapterManagedTransactions() { return false; } diff --git a/spring-tx/src/main/java/org/springframework/transaction/jta/JtaTransactionObject.java b/spring-tx/src/main/java/org/springframework/transaction/jta/JtaTransactionObject.java index 89bab2e7e229..5031822294bb 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/jta/JtaTransactionObject.java +++ b/spring-tx/src/main/java/org/springframework/transaction/jta/JtaTransactionObject.java @@ -60,6 +60,7 @@ public final UserTransaction getUserTransaction() { /** * This implementation checks the UserTransaction's rollback-only flag. */ + @Override public boolean isRollbackOnly() { if (this.userTransaction == null) { return false; @@ -78,6 +79,7 @@ public boolean isRollbackOnly() { * assuming that they will flush all affected ORM sessions. * @see org.springframework.transaction.support.TransactionSynchronization#flush() */ + @Override public void flush() { TransactionSynchronizationUtils.triggerFlush(); } diff --git a/spring-tx/src/main/java/org/springframework/transaction/jta/ManagedTransactionAdapter.java b/spring-tx/src/main/java/org/springframework/transaction/jta/ManagedTransactionAdapter.java index 483f63ae63f9..f73436a2c549 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/jta/ManagedTransactionAdapter.java +++ b/spring-tx/src/main/java/org/springframework/transaction/jta/ManagedTransactionAdapter.java @@ -57,31 +57,38 @@ public final TransactionManager getTransactionManager() { } + @Override public void commit() throws RollbackException, HeuristicMixedException, HeuristicRollbackException, SecurityException, SystemException { this.transactionManager.commit(); } + @Override public void rollback() throws SystemException { this.transactionManager.rollback(); } + @Override public void setRollbackOnly() throws SystemException { this.transactionManager.setRollbackOnly(); } + @Override public int getStatus() throws SystemException { return this.transactionManager.getStatus(); } + @Override public boolean enlistResource(XAResource xaRes) throws RollbackException, SystemException { return this.transactionManager.getTransaction().enlistResource(xaRes); } + @Override public boolean delistResource(XAResource xaRes, int flag) throws SystemException { return this.transactionManager.getTransaction().delistResource(xaRes, flag); } + @Override public void registerSynchronization(Synchronization sync) throws RollbackException, SystemException { this.transactionManager.getTransaction().registerSynchronization(sync); } diff --git a/spring-tx/src/main/java/org/springframework/transaction/jta/SimpleTransactionFactory.java b/spring-tx/src/main/java/org/springframework/transaction/jta/SimpleTransactionFactory.java index 91615081a6b3..b68abdce0bb7 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/jta/SimpleTransactionFactory.java +++ b/spring-tx/src/main/java/org/springframework/transaction/jta/SimpleTransactionFactory.java @@ -50,6 +50,7 @@ public SimpleTransactionFactory(TransactionManager transactionManager) { } + @Override public Transaction createTransaction(String name, int timeout) throws NotSupportedException, SystemException { if (timeout >= 0) { this.transactionManager.setTransactionTimeout(timeout); @@ -58,6 +59,7 @@ public Transaction createTransaction(String name, int timeout) throws NotSupport return new ManagedTransactionAdapter(this.transactionManager); } + @Override public boolean supportsResourceAdapterManagedTransactions() { return false; } diff --git a/spring-tx/src/main/java/org/springframework/transaction/jta/SpringJtaSynchronizationAdapter.java b/spring-tx/src/main/java/org/springframework/transaction/jta/SpringJtaSynchronizationAdapter.java index e4ecffce7444..421f8c86ad72 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/jta/SpringJtaSynchronizationAdapter.java +++ b/spring-tx/src/main/java/org/springframework/transaction/jta/SpringJtaSynchronizationAdapter.java @@ -113,6 +113,7 @@ public SpringJtaSynchronizationAdapter( *

In case of an exception, the JTA transaction will be marked as rollback-only. * @see org.springframework.transaction.support.TransactionSynchronization#beforeCommit */ + @Override public void beforeCompletion() { try { boolean readOnly = TransactionSynchronizationManager.isCurrentTransactionReadOnly(); @@ -168,6 +169,7 @@ private void setRollbackOnlyIfPossible() { * @see org.springframework.transaction.support.TransactionSynchronization#beforeCompletion * @see org.springframework.transaction.support.TransactionSynchronization#afterCompletion */ + @Override public void afterCompletion(int status) { if (!this.beforeCompletionCalled) { // beforeCompletion not called before (probably because of JTA rollback). diff --git a/spring-tx/src/main/java/org/springframework/transaction/jta/UserTransactionAdapter.java b/spring-tx/src/main/java/org/springframework/transaction/jta/UserTransactionAdapter.java index 3a9e57e7484b..efcf0616c95c 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/jta/UserTransactionAdapter.java +++ b/spring-tx/src/main/java/org/springframework/transaction/jta/UserTransactionAdapter.java @@ -65,28 +65,34 @@ public final TransactionManager getTransactionManager() { } + @Override public void setTransactionTimeout(int timeout) throws SystemException { this.transactionManager.setTransactionTimeout(timeout); } + @Override public void begin() throws NotSupportedException, SystemException { this.transactionManager.begin(); } + @Override public void commit() throws RollbackException, HeuristicMixedException, HeuristicRollbackException, SecurityException, SystemException { this.transactionManager.commit(); } + @Override public void rollback() throws SecurityException, SystemException { this.transactionManager.rollback(); } + @Override public void setRollbackOnly() throws SystemException { this.transactionManager.setRollbackOnly(); } + @Override public int getStatus() throws SystemException { return this.transactionManager.getStatus(); } diff --git a/spring-tx/src/main/java/org/springframework/transaction/jta/WebSphereUowTransactionManager.java b/spring-tx/src/main/java/org/springframework/transaction/jta/WebSphereUowTransactionManager.java index de51a5425c5d..3480a11741f0 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/jta/WebSphereUowTransactionManager.java +++ b/spring-tx/src/main/java/org/springframework/transaction/jta/WebSphereUowTransactionManager.java @@ -211,6 +211,7 @@ public boolean supportsResourceAdapterManagedTransactions() { } + @Override public T execute(TransactionDefinition definition, TransactionCallback callback) throws TransactionException { if (definition == null) { // Use defaults if no transaction definition given. @@ -330,6 +331,7 @@ public UOWActionAdapter(TransactionDefinition definition, TransactionCallback this.debug = debug; } + @Override public void run() { DefaultTransactionStatus status = prepareTransactionStatus( this.definition, (this.actualTransaction ? this : null), diff --git a/spring-tx/src/main/java/org/springframework/transaction/support/AbstractPlatformTransactionManager.java b/spring-tx/src/main/java/org/springframework/transaction/support/AbstractPlatformTransactionManager.java index ef30ce0af4ac..ad6fe26042c1 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/support/AbstractPlatformTransactionManager.java +++ b/spring-tx/src/main/java/org/springframework/transaction/support/AbstractPlatformTransactionManager.java @@ -332,6 +332,7 @@ public final boolean isRollbackOnCommitFailure() { * @see #isExistingTransaction * @see #doBegin */ + @Override public final TransactionStatus getTransaction(TransactionDefinition definition) throws TransactionException { Object transaction = doGetTransaction(); @@ -693,6 +694,7 @@ private void doResumeSynchronization(List suspendedS * @see #doCommit * @see #rollback */ + @Override public final void commit(TransactionStatus status) throws TransactionException { if (status.isCompleted()) { throw new IllegalTransactionStateException( @@ -813,6 +815,7 @@ else if (status.isNewTransaction()) { * @see #doRollback * @see #doSetRollbackOnly */ + @Override public final void rollback(TransactionStatus status) throws TransactionException { if (status.isCompleted()) { throw new IllegalTransactionStateException( diff --git a/spring-tx/src/main/java/org/springframework/transaction/support/AbstractTransactionStatus.java b/spring-tx/src/main/java/org/springframework/transaction/support/AbstractTransactionStatus.java index 1e2f4455c9cc..840d7dbc493b 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/support/AbstractTransactionStatus.java +++ b/spring-tx/src/main/java/org/springframework/transaction/support/AbstractTransactionStatus.java @@ -56,6 +56,7 @@ public abstract class AbstractTransactionStatus implements TransactionStatus { // Handling of current transaction state //--------------------------------------------------------------------- + @Override public void setRollbackOnly() { this.rollbackOnly = true; } @@ -67,6 +68,7 @@ public void setRollbackOnly() { * @see #isLocalRollbackOnly() * @see #isGlobalRollbackOnly() */ + @Override public boolean isRollbackOnly() { return (isLocalRollbackOnly() || isGlobalRollbackOnly()); } @@ -92,6 +94,7 @@ public boolean isGlobalRollbackOnly() { /** * This implementations is empty, considering flush as a no-op. */ + @Override public void flush() { } @@ -102,6 +105,7 @@ public void setCompleted() { this.completed = true; } + @Override public boolean isCompleted() { return this.completed; } @@ -126,6 +130,7 @@ protected Object getSavepoint() { return this.savepoint; } + @Override public boolean hasSavepoint() { return (this.savepoint != null); } @@ -172,6 +177,7 @@ public void releaseHeldSavepoint() throws TransactionException { * @see #getSavepointManager() * @see org.springframework.transaction.SavepointManager */ + @Override public Object createSavepoint() throws TransactionException { return getSavepointManager().createSavepoint(); } @@ -183,6 +189,7 @@ public Object createSavepoint() throws TransactionException { * @see #getSavepointManager() * @see org.springframework.transaction.SavepointManager */ + @Override public void rollbackToSavepoint(Object savepoint) throws TransactionException { getSavepointManager().rollbackToSavepoint(savepoint); } @@ -193,6 +200,7 @@ public void rollbackToSavepoint(Object savepoint) throws TransactionException { * @see #getSavepointManager() * @see org.springframework.transaction.SavepointManager */ + @Override public void releaseSavepoint(Object savepoint) throws TransactionException { getSavepointManager().releaseSavepoint(savepoint); } diff --git a/spring-tx/src/main/java/org/springframework/transaction/support/DefaultTransactionDefinition.java b/spring-tx/src/main/java/org/springframework/transaction/support/DefaultTransactionDefinition.java index f1a63abc1190..b83b01698b53 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/support/DefaultTransactionDefinition.java +++ b/spring-tx/src/main/java/org/springframework/transaction/support/DefaultTransactionDefinition.java @@ -134,6 +134,7 @@ public final void setPropagationBehavior(int propagationBehavior) { this.propagationBehavior = propagationBehavior; } + @Override public final int getPropagationBehavior() { return this.propagationBehavior; } @@ -168,6 +169,7 @@ public final void setIsolationLevel(int isolationLevel) { this.isolationLevel = isolationLevel; } + @Override public final int getIsolationLevel() { return this.isolationLevel; } @@ -184,6 +186,7 @@ public final void setTimeout(int timeout) { this.timeout = timeout; } + @Override public final int getTimeout() { return this.timeout; } @@ -196,6 +199,7 @@ public final void setReadOnly(boolean readOnly) { this.readOnly = readOnly; } + @Override public final boolean isReadOnly() { return this.readOnly; } @@ -209,6 +213,7 @@ public final void setName(String name) { this.name = name; } + @Override public final String getName() { return this.name; } diff --git a/spring-tx/src/main/java/org/springframework/transaction/support/DefaultTransactionStatus.java b/spring-tx/src/main/java/org/springframework/transaction/support/DefaultTransactionStatus.java index 9569dc1098df..22f6f46acc1c 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/support/DefaultTransactionStatus.java +++ b/spring-tx/src/main/java/org/springframework/transaction/support/DefaultTransactionStatus.java @@ -103,6 +103,7 @@ public boolean hasTransaction() { return (this.transaction != null); } + @Override public boolean isNewTransaction() { return (hasTransaction() && this.newTransaction); } diff --git a/spring-tx/src/main/java/org/springframework/transaction/support/DelegatingTransactionDefinition.java b/spring-tx/src/main/java/org/springframework/transaction/support/DelegatingTransactionDefinition.java index 4bc84fb39273..e05c4e27844b 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/support/DelegatingTransactionDefinition.java +++ b/spring-tx/src/main/java/org/springframework/transaction/support/DelegatingTransactionDefinition.java @@ -46,22 +46,27 @@ public DelegatingTransactionDefinition(TransactionDefinition targetDefinition) { } + @Override public int getPropagationBehavior() { return this.targetDefinition.getPropagationBehavior(); } + @Override public int getIsolationLevel() { return this.targetDefinition.getIsolationLevel(); } + @Override public int getTimeout() { return this.targetDefinition.getTimeout(); } + @Override public boolean isReadOnly() { return this.targetDefinition.isReadOnly(); } + @Override public String getName() { return this.targetDefinition.getName(); } diff --git a/spring-tx/src/main/java/org/springframework/transaction/support/ResourceHolderSupport.java b/spring-tx/src/main/java/org/springframework/transaction/support/ResourceHolderSupport.java index 6a690e9713ab..bea1e3e864a9 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/support/ResourceHolderSupport.java +++ b/spring-tx/src/main/java/org/springframework/transaction/support/ResourceHolderSupport.java @@ -177,15 +177,18 @@ public void clear() { /** * Reset this resource holder - transactional state as well as reference count. */ + @Override public void reset() { clear(); this.referenceCount = 0; } + @Override public void unbound() { this.isVoid = true; } + @Override public boolean isVoid() { return this.isVoid; } diff --git a/spring-tx/src/main/java/org/springframework/transaction/support/ResourceHolderSynchronization.java b/spring-tx/src/main/java/org/springframework/transaction/support/ResourceHolderSynchronization.java index b9e668fc5724..3c94f20efa73 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/support/ResourceHolderSynchronization.java +++ b/spring-tx/src/main/java/org/springframework/transaction/support/ResourceHolderSynchronization.java @@ -45,25 +45,30 @@ public ResourceHolderSynchronization(H resourceHolder, K resourceKey) { } + @Override public void suspend() { if (this.holderActive) { TransactionSynchronizationManager.unbindResource(this.resourceKey); } } + @Override public void resume() { if (this.holderActive) { TransactionSynchronizationManager.bindResource(this.resourceKey, this.resourceHolder); } } + @Override public void flush() { flushResource(this.resourceHolder); } + @Override public void beforeCommit(boolean readOnly) { } + @Override public void beforeCompletion() { if (shouldUnbindAtCompletion()) { TransactionSynchronizationManager.unbindResource(this.resourceKey); @@ -74,12 +79,14 @@ public void beforeCompletion() { } } + @Override public void afterCommit() { if (!shouldReleaseBeforeCompletion()) { processResourceAfterCommit(this.resourceHolder); } } + @Override public void afterCompletion(int status) { if (shouldUnbindAtCompletion()) { boolean releaseNecessary = false; diff --git a/spring-tx/src/main/java/org/springframework/transaction/support/SimpleTransactionStatus.java b/spring-tx/src/main/java/org/springframework/transaction/support/SimpleTransactionStatus.java index fd6f184304ed..2788b8f72894 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/support/SimpleTransactionStatus.java +++ b/spring-tx/src/main/java/org/springframework/transaction/support/SimpleTransactionStatus.java @@ -57,6 +57,7 @@ public SimpleTransactionStatus(boolean newTransaction) { } + @Override public boolean isNewTransaction() { return this.newTransaction; } diff --git a/spring-tx/src/main/java/org/springframework/transaction/support/TransactionCallbackWithoutResult.java b/spring-tx/src/main/java/org/springframework/transaction/support/TransactionCallbackWithoutResult.java index e3168e1b7bcb..a4b57b3b0bba 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/support/TransactionCallbackWithoutResult.java +++ b/spring-tx/src/main/java/org/springframework/transaction/support/TransactionCallbackWithoutResult.java @@ -29,6 +29,7 @@ */ public abstract class TransactionCallbackWithoutResult implements TransactionCallback { + @Override public final Object doInTransaction(TransactionStatus status) { doInTransactionWithoutResult(status); return null; diff --git a/spring-tx/src/main/java/org/springframework/transaction/support/TransactionSynchronizationAdapter.java b/spring-tx/src/main/java/org/springframework/transaction/support/TransactionSynchronizationAdapter.java index 181bbf04cbcd..4342e872e06b 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/support/TransactionSynchronizationAdapter.java +++ b/spring-tx/src/main/java/org/springframework/transaction/support/TransactionSynchronizationAdapter.java @@ -32,28 +32,36 @@ */ public abstract class TransactionSynchronizationAdapter implements TransactionSynchronization, Ordered { + @Override public int getOrder() { return Ordered.LOWEST_PRECEDENCE; } + @Override public void suspend() { } + @Override public void resume() { } + @Override public void flush() { } + @Override public void beforeCommit(boolean readOnly) { } + @Override public void beforeCompletion() { } + @Override public void afterCommit() { } + @Override public void afterCompletion(int status) { } diff --git a/spring-tx/src/main/java/org/springframework/transaction/support/TransactionTemplate.java b/spring-tx/src/main/java/org/springframework/transaction/support/TransactionTemplate.java index 47d8319af68b..7515148694d7 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/support/TransactionTemplate.java +++ b/spring-tx/src/main/java/org/springframework/transaction/support/TransactionTemplate.java @@ -113,6 +113,7 @@ public PlatformTransactionManager getTransactionManager() { return this.transactionManager; } + @Override public void afterPropertiesSet() { if (this.transactionManager == null) { throw new IllegalArgumentException("Property 'transactionManager' is required"); @@ -120,6 +121,7 @@ public void afterPropertiesSet() { } + @Override public T execute(TransactionCallback action) throws TransactionException { if (this.transactionManager instanceof CallbackPreferringPlatformTransactionManager) { return ((CallbackPreferringPlatformTransactionManager) this.transactionManager).execute(this, action); diff --git a/spring-web/src/main/java/org/springframework/http/DefaultCookie.java b/spring-web/src/main/java/org/springframework/http/DefaultCookie.java index 82a09ba26e32..b971d33fc579 100644 --- a/spring-web/src/main/java/org/springframework/http/DefaultCookie.java +++ b/spring-web/src/main/java/org/springframework/http/DefaultCookie.java @@ -29,10 +29,12 @@ public class DefaultCookie implements Cookie { this.value = value; } + @Override public String getName() { return name; } + @Override public String getValue() { return value; } diff --git a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java index e972709572a0..c41d04d69e37 100644 --- a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java +++ b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java @@ -692,6 +692,7 @@ private void setDate(String headerName, long date) { * @param headerName the header name * @return the first header value; or {@code null} */ + @Override public String getFirst(String headerName) { List headerValues = headers.get(headerName); return headerValues != null ? headerValues.get(0) : null; @@ -705,6 +706,7 @@ public String getFirst(String headerName) { * @see #put(String, List) * @see #set(String, String) */ + @Override public void add(String headerName, String headerValue) { List headerValues = headers.get(headerName); if (headerValues == null) { @@ -722,18 +724,21 @@ public void add(String headerName, String headerValue) { * @see #put(String, List) * @see #add(String, String) */ + @Override public void set(String headerName, String headerValue) { List headerValues = new LinkedList(); headerValues.add(headerValue); headers.put(headerName, headerValues); } + @Override public void setAll(Map values) { for (Entry entry : values.entrySet()) { set(entry.getKey(), entry.getValue()); } } + @Override public Map toSingleValueMap() { LinkedHashMap singleValueMap = new LinkedHashMap(this.headers.size()); for (Entry> entry : headers.entrySet()) { @@ -744,50 +749,62 @@ public Map toSingleValueMap() { // Map implementation + @Override public int size() { return this.headers.size(); } + @Override public boolean isEmpty() { return this.headers.isEmpty(); } + @Override public boolean containsKey(Object key) { return this.headers.containsKey(key); } + @Override public boolean containsValue(Object value) { return this.headers.containsValue(value); } + @Override public List get(Object key) { return this.headers.get(key); } + @Override public List put(String key, List value) { return this.headers.put(key, value); } + @Override public List remove(Object key) { return this.headers.remove(key); } + @Override public void putAll(Map> m) { this.headers.putAll(m); } + @Override public void clear() { this.headers.clear(); } + @Override public Set keySet() { return this.headers.keySet(); } + @Override public Collection> values() { return this.headers.values(); } + @Override public Set>> entrySet() { return this.headers.entrySet(); } diff --git a/spring-web/src/main/java/org/springframework/http/MediaType.java b/spring-web/src/main/java/org/springframework/http/MediaType.java index 9f527c7c8ced..fd9036d5877a 100644 --- a/spring-web/src/main/java/org/springframework/http/MediaType.java +++ b/spring-web/src/main/java/org/springframework/http/MediaType.java @@ -584,6 +584,7 @@ public MediaType removeQualityValue() { * @param other media type to compare to * @see #sortBySpecificity(List) */ + @Override public int compareTo(MediaType other) { int comp = this.type.compareToIgnoreCase(other.type); if (comp != 0) { @@ -850,6 +851,7 @@ public static void sortBySpecificityAndQuality(List mediaTypes) { */ public static final Comparator SPECIFICITY_COMPARATOR = new Comparator() { + @Override public int compare(MediaType mediaType1, MediaType mediaType2) { if (mediaType1.isWildcardType() && !mediaType2.isWildcardType()) { // */* < audio/* return 1; @@ -893,6 +895,7 @@ else if (!mediaType1.getSubtype().equals(mediaType2.getSubtype())) { // audio/ba */ public static final Comparator QUALITY_VALUE_COMPARATOR = new Comparator() { + @Override public int compare(MediaType mediaType1, MediaType mediaType2) { double quality1 = mediaType1.getQualityValue(); double quality2 = mediaType2.getQualityValue(); diff --git a/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpRequest.java index 908496707866..1e6652e1d0f7 100644 --- a/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpRequest.java @@ -36,20 +36,24 @@ public abstract class AbstractClientHttpRequest implements ClientHttpRequest { private boolean executed = false; + @Override public final HttpHeaders getHeaders() { return (this.executed ? HttpHeaders.readOnlyHttpHeaders(this.headers) : this.headers); } + @Override public final OutputStream getBody() throws IOException { checkExecuted(); return getBodyInternal(this.headers); } + @Override public Cookies getCookies() { // TODO throw new UnsupportedOperationException(); } + @Override public final ClientHttpResponse execute() throws IOException { checkExecuted(); ClientHttpResponse result = executeInternal(this.headers); diff --git a/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpRequestFactoryWrapper.java b/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpRequestFactoryWrapper.java index 3b0e2dc08deb..4022c4dc731d 100644 --- a/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpRequestFactoryWrapper.java +++ b/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpRequestFactoryWrapper.java @@ -48,6 +48,7 @@ protected AbstractClientHttpRequestFactoryWrapper(ClientHttpRequestFactory reque * with the wrapped request factory provided to the * {@linkplain #AbstractClientHttpRequestFactoryWrapper(ClientHttpRequestFactory) constructor}. */ + @Override public final ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException { return createRequest(uri, httpMethod, requestFactory); } diff --git a/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpResponse.java b/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpResponse.java index 33c123cff959..f7ccdd987434 100644 --- a/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpResponse.java +++ b/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpResponse.java @@ -29,10 +29,12 @@ */ public abstract class AbstractClientHttpResponse implements ClientHttpResponse { + @Override public HttpStatus getStatusCode() throws IOException { return HttpStatus.valueOf(getRawStatusCode()); } + @Override public Cookies getCookies() { // TODO throw new UnsupportedOperationException(); diff --git a/spring-web/src/main/java/org/springframework/http/client/BufferingClientHttpRequestWrapper.java b/spring-web/src/main/java/org/springframework/http/client/BufferingClientHttpRequestWrapper.java index 794ca6ac2adb..95a628bb6ce7 100644 --- a/spring-web/src/main/java/org/springframework/http/client/BufferingClientHttpRequestWrapper.java +++ b/spring-web/src/main/java/org/springframework/http/client/BufferingClientHttpRequestWrapper.java @@ -42,10 +42,12 @@ final class BufferingClientHttpRequestWrapper extends AbstractBufferingClientHtt } + @Override public HttpMethod getMethod() { return this.request.getMethod(); } + @Override public URI getURI() { return this.request.getURI(); } diff --git a/spring-web/src/main/java/org/springframework/http/client/BufferingClientHttpResponseWrapper.java b/spring-web/src/main/java/org/springframework/http/client/BufferingClientHttpResponseWrapper.java index 382b3fa20abc..958abfad29f2 100644 --- a/spring-web/src/main/java/org/springframework/http/client/BufferingClientHttpResponseWrapper.java +++ b/spring-web/src/main/java/org/springframework/http/client/BufferingClientHttpResponseWrapper.java @@ -44,22 +44,27 @@ final class BufferingClientHttpResponseWrapper implements ClientHttpResponse { } + @Override public HttpStatus getStatusCode() throws IOException { return this.response.getStatusCode(); } + @Override public int getRawStatusCode() throws IOException { return this.response.getRawStatusCode(); } + @Override public String getStatusText() throws IOException { return this.response.getStatusText(); } + @Override public HttpHeaders getHeaders() { return this.response.getHeaders(); } + @Override public InputStream getBody() throws IOException { if (this.body == null) { this.body = StreamUtils.copyToByteArray(this.response.getBody()); @@ -67,10 +72,12 @@ public InputStream getBody() throws IOException { return new ByteArrayInputStream(this.body); } + @Override public Cookies getCookies() { return this.response.getCookies(); } + @Override public void close() { this.response.close(); } diff --git a/spring-web/src/main/java/org/springframework/http/client/ClientHttpResponse.java b/spring-web/src/main/java/org/springframework/http/client/ClientHttpResponse.java index 438f8035bdf8..26fa24a44cb5 100644 --- a/spring-web/src/main/java/org/springframework/http/client/ClientHttpResponse.java +++ b/spring-web/src/main/java/org/springframework/http/client/ClientHttpResponse.java @@ -57,6 +57,7 @@ public interface ClientHttpResponse extends HttpInputMessage, Closeable { /** * Closes this response, freeing any resources created. */ + @Override void close(); } diff --git a/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequest.java index 3e833d44590e..f829f25ff008 100644 --- a/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequest.java @@ -60,10 +60,12 @@ public HttpComponentsClientHttpRequest(HttpClient httpClient, HttpUriRequest htt } + @Override public HttpMethod getMethod() { return HttpMethod.valueOf(this.httpRequest.getMethod()); } + @Override public URI getURI() { return this.httpRequest.getURI(); } diff --git a/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java b/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java index 0131cfa50fc5..f16d1fd54d07 100644 --- a/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java +++ b/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java @@ -128,6 +128,7 @@ public void setReadTimeout(int timeout) { getHttpClient().getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, timeout); } + @Override public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException { HttpUriRequest httpRequest = createHttpUriRequest(httpMethod, uri); postProcessHttpRequest(httpRequest); @@ -188,6 +189,7 @@ protected HttpContext createHttpContext(HttpMethod httpMethod, URI uri) { * {@link org.apache.http.conn.ClientConnectionManager ClientConnectionManager}'s * connection pool, if any. */ + @Override public void destroy() { getHttpClient().getConnectionManager().shutdown(); } diff --git a/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpResponse.java b/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpResponse.java index d4033e4216a4..121f413df45c 100644 --- a/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpResponse.java +++ b/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpResponse.java @@ -49,14 +49,17 @@ final class HttpComponentsClientHttpResponse extends AbstractClientHttpResponse } + @Override public int getRawStatusCode() throws IOException { return this.httpResponse.getStatusLine().getStatusCode(); } + @Override public String getStatusText() throws IOException { return this.httpResponse.getStatusLine().getReasonPhrase(); } + @Override public HttpHeaders getHeaders() { if (this.headers == null) { this.headers = new HttpHeaders(); @@ -67,11 +70,13 @@ public HttpHeaders getHeaders() { return this.headers; } + @Override public InputStream getBody() throws IOException { HttpEntity entity = this.httpResponse.getEntity(); return entity != null ? entity.getContent() : null; } + @Override public void close() { HttpEntity entity = this.httpResponse.getEntity(); if (entity != null) { diff --git a/spring-web/src/main/java/org/springframework/http/client/InterceptingClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/InterceptingClientHttpRequest.java index a422614fe9f3..b02658a62fd2 100644 --- a/spring-web/src/main/java/org/springframework/http/client/InterceptingClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/InterceptingClientHttpRequest.java @@ -52,10 +52,12 @@ protected InterceptingClientHttpRequest(ClientHttpRequestFactory requestFactory, this.uri = uri; } + @Override public HttpMethod getMethod() { return method; } + @Override public URI getURI() { return uri; } @@ -75,6 +77,7 @@ private RequestExecution() { this.iterator = interceptors.iterator(); } + @Override public ClientHttpResponse execute(HttpRequest request, byte[] body) throws IOException { if (iterator.hasNext()) { ClientHttpRequestInterceptor nextInterceptor = iterator.next(); diff --git a/spring-web/src/main/java/org/springframework/http/client/SimpleBufferingClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/SimpleBufferingClientHttpRequest.java index c2a786429644..9c2d19b3cb19 100644 --- a/spring-web/src/main/java/org/springframework/http/client/SimpleBufferingClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/SimpleBufferingClientHttpRequest.java @@ -48,10 +48,12 @@ final class SimpleBufferingClientHttpRequest extends AbstractBufferingClientHttp } + @Override public HttpMethod getMethod() { return HttpMethod.valueOf(this.connection.getRequestMethod()); } + @Override public URI getURI() { try { return this.connection.getURL().toURI(); diff --git a/spring-web/src/main/java/org/springframework/http/client/SimpleClientHttpRequestFactory.java b/spring-web/src/main/java/org/springframework/http/client/SimpleClientHttpRequestFactory.java index 3aa31d9b839d..f6c69ec2158d 100644 --- a/spring-web/src/main/java/org/springframework/http/client/SimpleClientHttpRequestFactory.java +++ b/spring-web/src/main/java/org/springframework/http/client/SimpleClientHttpRequestFactory.java @@ -122,6 +122,7 @@ public void setOutputStreaming(boolean outputStreaming) { } + @Override public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException { HttpURLConnection connection = openConnection(uri.toURL(), this.proxy); prepareConnection(connection, httpMethod.name()); diff --git a/spring-web/src/main/java/org/springframework/http/client/SimpleClientHttpResponse.java b/spring-web/src/main/java/org/springframework/http/client/SimpleClientHttpResponse.java index 1fc33f0b6961..986a9202f61b 100644 --- a/spring-web/src/main/java/org/springframework/http/client/SimpleClientHttpResponse.java +++ b/spring-web/src/main/java/org/springframework/http/client/SimpleClientHttpResponse.java @@ -43,14 +43,17 @@ final class SimpleClientHttpResponse extends AbstractClientHttpResponse { } + @Override public int getRawStatusCode() throws IOException { return this.connection.getResponseCode(); } + @Override public String getStatusText() throws IOException { return this.connection.getResponseMessage(); } + @Override public HttpHeaders getHeaders() { if (this.headers == null) { this.headers = new HttpHeaders(); @@ -72,11 +75,13 @@ public HttpHeaders getHeaders() { return this.headers; } + @Override public InputStream getBody() throws IOException { InputStream errorStream = this.connection.getErrorStream(); return (errorStream != null ? errorStream : this.connection.getInputStream()); } + @Override public void close() { this.connection.disconnect(); } diff --git a/spring-web/src/main/java/org/springframework/http/client/SimpleStreamingClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/SimpleStreamingClientHttpRequest.java index f14f7e9025d0..d15037ccd021 100644 --- a/spring-web/src/main/java/org/springframework/http/client/SimpleStreamingClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/SimpleStreamingClientHttpRequest.java @@ -54,10 +54,12 @@ final class SimpleStreamingClientHttpRequest extends AbstractClientHttpRequest { this.outputStreaming = outputStreaming; } + @Override public HttpMethod getMethod() { return HttpMethod.valueOf(this.connection.getRequestMethod()); } + @Override public URI getURI() { try { return this.connection.getURL().toURI(); diff --git a/spring-web/src/main/java/org/springframework/http/client/support/HttpRequestWrapper.java b/spring-web/src/main/java/org/springframework/http/client/support/HttpRequestWrapper.java index c9c8ef995564..46e893c54b01 100644 --- a/spring-web/src/main/java/org/springframework/http/client/support/HttpRequestWrapper.java +++ b/spring-web/src/main/java/org/springframework/http/client/support/HttpRequestWrapper.java @@ -56,6 +56,7 @@ public HttpRequest getRequest() { /** * Returns the method of the wrapped request. */ + @Override public HttpMethod getMethod() { return this.request.getMethod(); } @@ -63,6 +64,7 @@ public HttpMethod getMethod() { /** * Returns the URI of the wrapped request. */ + @Override public URI getURI() { return this.request.getURI(); } @@ -70,6 +72,7 @@ public URI getURI() { /** * Returns the headers of the wrapped request. */ + @Override public HttpHeaders getHeaders() { return this.request.getHeaders(); } @@ -77,6 +80,7 @@ public HttpHeaders getHeaders() { /** * Returns the cookies of the wrapped request. */ + @Override public Cookies getCookies() { return this.request.getCookies(); } diff --git a/spring-web/src/main/java/org/springframework/http/client/support/ProxyFactoryBean.java b/spring-web/src/main/java/org/springframework/http/client/support/ProxyFactoryBean.java index b769c3845375..6ff8d581f3ba 100644 --- a/spring-web/src/main/java/org/springframework/http/client/support/ProxyFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/http/client/support/ProxyFactoryBean.java @@ -63,6 +63,7 @@ public void setPort(int port) { this.port = port; } + @Override public void afterPropertiesSet() throws IllegalArgumentException { Assert.notNull(type, "'type' must not be null"); Assert.hasLength(hostname, "'hostname' must not be empty"); @@ -73,14 +74,17 @@ public void afterPropertiesSet() throws IllegalArgumentException { } + @Override public Proxy getObject() { return proxy; } + @Override public Class getObjectType() { return Proxy.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-web/src/main/java/org/springframework/http/converter/AbstractHttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/AbstractHttpMessageConverter.java index 680225e928a2..b5caa76c3f89 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/AbstractHttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/AbstractHttpMessageConverter.java @@ -82,6 +82,7 @@ public void setSupportedMediaTypes(List supportedMediaTypes) { this.supportedMediaTypes = new ArrayList(supportedMediaTypes); } + @Override public List getSupportedMediaTypes() { return Collections.unmodifiableList(this.supportedMediaTypes); } @@ -92,6 +93,7 @@ public List getSupportedMediaTypes() { * and if the {@linkplain #getSupportedMediaTypes() supported media types} * {@linkplain MediaType#includes(MediaType) include} the given media type. */ + @Override public boolean canRead(Class clazz, MediaType mediaType) { return supports(clazz) && canRead(mediaType); } @@ -121,6 +123,7 @@ protected boolean canRead(MediaType mediaType) { * and if the {@linkplain #getSupportedMediaTypes() supported media types} * {@linkplain MediaType#includes(MediaType) include} the given media type. */ + @Override public boolean canWrite(Class clazz, MediaType mediaType) { return supports(clazz) && canWrite(mediaType); } @@ -149,6 +152,7 @@ protected boolean canWrite(MediaType mediaType) { * This implementation simple delegates to {@link #readInternal(Class, HttpInputMessage)}. * Future implementations might add some default behavior, however. */ + @Override public final T read(Class clazz, HttpInputMessage inputMessage) throws IOException { return readInternal(clazz, inputMessage); } @@ -158,6 +162,7 @@ public final T read(Class clazz, HttpInputMessage inputMessage) thr * type was not provided, calls {@link #getContentLength}, and sets the corresponding headers * on the output message. It then calls {@link #writeInternal}. */ + @Override public final void write(T t, MediaType contentType, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException { diff --git a/spring-web/src/main/java/org/springframework/http/converter/BufferedImageHttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/BufferedImageHttpMessageConverter.java index 74c1772558ba..bce999a0ffab 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/BufferedImageHttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/BufferedImageHttpMessageConverter.java @@ -115,6 +115,7 @@ public void setCacheDir(File cacheDir) { } + @Override public boolean canRead(Class clazz, MediaType mediaType) { return (BufferedImage.class.equals(clazz) && isReadable(mediaType)); } @@ -127,6 +128,7 @@ private boolean isReadable(MediaType mediaType) { return imageReaders.hasNext(); } + @Override public boolean canWrite(Class clazz, MediaType mediaType) { return (BufferedImage.class.equals(clazz) && isWritable(mediaType)); } @@ -139,10 +141,12 @@ private boolean isWritable(MediaType mediaType) { return imageWriters.hasNext(); } + @Override public List getSupportedMediaTypes() { return Collections.unmodifiableList(this.readableMediaTypes); } + @Override public BufferedImage read(Class clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException { @@ -188,6 +192,7 @@ private ImageInputStream createImageInputStream(InputStream is) throws IOExcepti } } + @Override public void write(BufferedImage image, MediaType contentType, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException { diff --git a/spring-web/src/main/java/org/springframework/http/converter/FormHttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/FormHttpMessageConverter.java index 5ddcfead7b1c..28d2d055512d 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/FormHttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/FormHttpMessageConverter.java @@ -122,6 +122,7 @@ public void setCharset(Charset charset) { this.charset = charset; } + @Override public boolean canRead(Class clazz, MediaType mediaType) { if (!MultiValueMap.class.isAssignableFrom(clazz)) { return false; @@ -139,6 +140,7 @@ public boolean canRead(Class clazz, MediaType mediaType) { return false; } + @Override public boolean canWrite(Class clazz, MediaType mediaType) { if (!MultiValueMap.class.isAssignableFrom(clazz)) { return false; @@ -161,10 +163,12 @@ public void setSupportedMediaTypes(List supportedMediaTypes) { this.supportedMediaTypes = supportedMediaTypes; } + @Override public List getSupportedMediaTypes() { return Collections.unmodifiableList(this.supportedMediaTypes); } + @Override public MultiValueMap read(Class> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException { @@ -190,6 +194,7 @@ public MultiValueMap read(Class map, MediaType contentType, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException { @@ -375,15 +380,18 @@ public MultipartHttpOutputMessage(OutputStream os) { this.os = os; } + @Override public HttpHeaders getHeaders() { return headersWritten ? HttpHeaders.readOnlyHttpHeaders(headers) : this.headers; } + @Override public OutputStream getBody() throws IOException { writeHeaders(); return this.os; } + @Override public Cookies getCookies() { // TODO throw new UnsupportedOperationException(); diff --git a/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperFactoryBean.java b/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperFactoryBean.java index 50be04923e27..6bfebfe1924c 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperFactoryBean.java @@ -248,6 +248,7 @@ public void setFeaturesToDisable(Object... featuresToDisable) { } + @Override public void afterPropertiesSet() { if (this.objectMapper == null) { this.objectMapper = new ObjectMapper(); @@ -312,14 +313,17 @@ else if (feature instanceof MapperFeature) { /** * Return the singleton ObjectMapper. */ + @Override public ObjectMapper getObject() { return this.objectMapper; } + @Override public Class getObjectType() { return ObjectMapper.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-web/src/main/java/org/springframework/http/converter/json/JacksonObjectMapperFactoryBean.java b/spring-web/src/main/java/org/springframework/http/converter/json/JacksonObjectMapperFactoryBean.java index 451d11d2601f..b799c44b91b2 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/JacksonObjectMapperFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/JacksonObjectMapperFactoryBean.java @@ -196,6 +196,7 @@ public void setFeaturesToDisable(Object[] featuresToDisable) { } + @Override public void afterPropertiesSet() { if (this.objectMapper == null) { this.objectMapper = new ObjectMapper(); @@ -236,14 +237,17 @@ else if (feature instanceof DeserializationConfig.Feature) { /** * Return the singleton ObjectMapper. */ + @Override public ObjectMapper getObject() { return this.objectMapper; } + @Override public Class getObjectType() { return ObjectMapper.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java index 0cd9462e84b7..4997b1609f25 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java @@ -134,6 +134,7 @@ public boolean canRead(Class clazz, MediaType mediaType) { return canRead(clazz, null, mediaType); } + @Override public boolean canRead(Type type, Class contextClass, MediaType mediaType) { JavaType javaType = getJavaType(type, contextClass); return (this.objectMapper.canDeserialize(javaType) && canRead(mediaType)); @@ -158,6 +159,7 @@ protected Object readInternal(Class clazz, HttpInputMessage inputMessage) return readJavaType(javaType, inputMessage); } + @Override public Object read(Type type, Class contextClass, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException { diff --git a/spring-web/src/main/java/org/springframework/http/converter/json/MappingJacksonHttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/json/MappingJacksonHttpMessageConverter.java index e0a50b80818a..adf03b9b0b6a 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/MappingJacksonHttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/MappingJacksonHttpMessageConverter.java @@ -133,6 +133,7 @@ public boolean canRead(Class clazz, MediaType mediaType) { return canRead(clazz, null, mediaType); } + @Override public boolean canRead(Type type, Class contextClass, MediaType mediaType) { JavaType javaType = getJavaType(type, contextClass); return (this.objectMapper.canDeserialize(javaType) && canRead(mediaType)); @@ -157,6 +158,7 @@ protected Object readInternal(Class clazz, HttpInputMessage inputMessage) return readJavaType(javaType, inputMessage); } + @Override public Object read(Type type, Class contextClass, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException { diff --git a/spring-web/src/main/java/org/springframework/http/converter/xml/Jaxb2CollectionHttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/xml/Jaxb2CollectionHttpMessageConverter.java index af65ee275c68..d2e0e9b53dd2 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/xml/Jaxb2CollectionHttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/xml/Jaxb2CollectionHttpMessageConverter.java @@ -74,6 +74,7 @@ public boolean canRead(Class clazz, MediaType mediaType) { * {@link Collection} where the generic type is a JAXB type annotated with * {@link XmlRootElement} or {@link XmlType}. */ + @Override public boolean canRead(Type type, Class contextClass, MediaType mediaType) { if (!(type instanceof ParameterizedType)) { return false; @@ -119,6 +120,7 @@ protected T readFromSource(Class clazz, HttpHeaders headers, Source throw new UnsupportedOperationException(); } + @Override public T read(Type type, Class contextClass, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException { diff --git a/spring-web/src/main/java/org/springframework/http/server/AsyncServletServerHttpRequest.java b/spring-web/src/main/java/org/springframework/http/server/AsyncServletServerHttpRequest.java index 996a7d3fdccd..ded710585ad6 100644 --- a/spring-web/src/main/java/org/springframework/http/server/AsyncServletServerHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/server/AsyncServletServerHttpRequest.java @@ -57,6 +57,7 @@ public AsyncServletServerHttpRequest(HttpServletRequest request, HttpServletResp /** * Timeout period begins after the container thread has exited. */ + @Override public void setTimeout(long timeout) { Assert.state(!isAsyncStarted(), "Cannot change the timeout with concurrent handling in progress"); this.timeout = timeout; @@ -70,6 +71,7 @@ public void addCompletionHandler(Runnable runnable) { this.completionHandlers.add(runnable); } + @Override public boolean isAsyncStarted() { return ((this.asyncContext != null) && getServletRequest().isAsyncStarted()); } @@ -79,10 +81,12 @@ public boolean isAsyncStarted() { *

It is important to avoid use of request and response objects after async * processing has completed. Servlet containers often re-use them. */ + @Override public boolean isAsyncCompleted() { return this.asyncCompleted.get(); } + @Override public void startAsync() { Assert.state(getServletRequest().isAsyncSupported(), "Async support must be enabled on a servlet and for all filters involved " + @@ -100,6 +104,7 @@ public void startAsync() { } } + @Override public void completeAsync() { Assert.notNull(this.asyncContext, "Cannot dispatch without an AsyncContext"); if (isAsyncStarted() && !isAsyncCompleted()) { diff --git a/spring-web/src/main/java/org/springframework/http/server/ServerHttpResponse.java b/spring-web/src/main/java/org/springframework/http/server/ServerHttpResponse.java index 02541fab9276..ea8cae6a4d34 100644 --- a/spring-web/src/main/java/org/springframework/http/server/ServerHttpResponse.java +++ b/spring-web/src/main/java/org/springframework/http/server/ServerHttpResponse.java @@ -44,6 +44,7 @@ public interface ServerHttpResponse extends HttpOutputMessage, Closeable { /** * Close this response, freeing any resources created. */ + @Override void close(); } diff --git a/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpRequest.java b/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpRequest.java index 2236df64cd17..cd10f179e089 100644 --- a/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpRequest.java @@ -85,10 +85,12 @@ public HttpServletRequest getServletRequest() { return this.servletRequest; } + @Override public HttpMethod getMethod() { return HttpMethod.valueOf(this.servletRequest.getMethod()); } + @Override public URI getURI() { try { return new URI(this.servletRequest.getScheme(), null, this.servletRequest.getServerName(), @@ -100,6 +102,7 @@ public URI getURI() { } } + @Override public HttpHeaders getHeaders() { if (this.headers == null) { this.headers = new HttpHeaders(); @@ -147,6 +150,7 @@ public String getRemoteAddress() { return this.servletRequest.getRemoteAddr(); } + @Override public Cookies getCookies() { if (this.cookies == null) { this.cookies = new Cookies(); @@ -159,6 +163,7 @@ public Cookies getCookies() { return this.cookies; } + @Override public MultiValueMap getQueryParams() { if (this.queryParams == null) { this.queryParams = new LinkedMultiValueMap(this.servletRequest.getParameterMap().size()); @@ -171,6 +176,7 @@ public MultiValueMap getQueryParams() { return this.queryParams; } + @Override public InputStream getBody() throws IOException { if (isFormPost(this.servletRequest)) { return getBodyFromServletRequestParameters(this.servletRequest); diff --git a/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpResponse.java b/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpResponse.java index 3a2ba0445d80..ccdf58f475ab 100644 --- a/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpResponse.java +++ b/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpResponse.java @@ -62,18 +62,22 @@ public HttpServletResponse getServletResponse() { return this.servletResponse; } + @Override public void setStatusCode(HttpStatus status) { this.servletResponse.setStatus(status.value()); } + @Override public HttpHeaders getHeaders() { return (this.headersWritten ? HttpHeaders.readOnlyHttpHeaders(this.headers) : this.headers); } + @Override public Cookies getCookies() { return (this.headersWritten ? Cookies.readOnlyCookies(this.cookies) : this.cookies); } + @Override public OutputStream getBody() throws IOException { writeCookies(); writeHeaders(); @@ -87,6 +91,7 @@ public void flush() throws IOException { this.servletResponse.flushBuffer(); } + @Override public void close() { writeCookies(); writeHeaders(); diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapClientInterceptor.java b/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapClientInterceptor.java index fca4c6c97579..9346286a7fdb 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapClientInterceptor.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapClientInterceptor.java @@ -140,6 +140,7 @@ protected Object createBurlapProxy(BurlapProxyFactory proxyFactory) throws Malfo } + @Override public Object invoke(MethodInvocation invocation) throws Throwable { if (this.burlapProxy == null) { throw new IllegalStateException("BurlapClientInterceptor is not properly initialized - " + diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapExporter.java b/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapExporter.java index 4eab6397dcfd..c8e47845f0f3 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapExporter.java @@ -50,6 +50,7 @@ public class BurlapExporter extends RemoteExporter implements InitializingBean { private BurlapSkeleton skeleton; + @Override public void afterPropertiesSet() { prepare(); } diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapProxyFactoryBean.java b/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapProxyFactoryBean.java index 6872893cbcd7..b8fca876bd42 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapProxyFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapProxyFactoryBean.java @@ -55,14 +55,17 @@ public void afterPropertiesSet() { } + @Override public Object getObject() { return this.serviceProxy; } + @Override public Class getObjectType() { return getServiceInterface(); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapServiceExporter.java b/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapServiceExporter.java index 151ca5f24f27..13af45818f04 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapServiceExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapServiceExporter.java @@ -57,6 +57,7 @@ public class BurlapServiceExporter extends BurlapExporter implements HttpRequest /** * Processes the incoming Burlap request and creates a Burlap response. */ + @Override public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianClientInterceptor.java b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianClientInterceptor.java index ed7f5b3816ba..3bb07f04cb56 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianClientInterceptor.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianClientInterceptor.java @@ -236,6 +236,7 @@ protected Object createHessianProxy(HessianProxyFactory proxyFactory) throws Mal } + @Override public Object invoke(MethodInvocation invocation) throws Throwable { if (this.hessianProxy == null) { throw new IllegalStateException("HessianClientInterceptor is not properly initialized - " + diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianExporter.java b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianExporter.java index a714b77f7830..9249588d02cf 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianExporter.java @@ -112,6 +112,7 @@ public void setDebug(boolean debug) { } + @Override public void afterPropertiesSet() { prepare(); } diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianProxyFactoryBean.java b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianProxyFactoryBean.java index 96325ddbe307..f446a4ba7fd3 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianProxyFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianProxyFactoryBean.java @@ -52,14 +52,17 @@ public void afterPropertiesSet() { } + @Override public Object getObject() { return this.serviceProxy; } + @Override public Class getObjectType() { return getServiceInterface(); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianServiceExporter.java b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianServiceExporter.java index a572d080d004..314aadaaa978 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianServiceExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianServiceExporter.java @@ -52,6 +52,7 @@ public class HessianServiceExporter extends HessianExporter implements HttpReque /** * Processes the incoming Hessian request and creates a Hessian response. */ + @Override public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleBurlapServiceExporter.java b/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleBurlapServiceExporter.java index d921ab470321..430b41c5a07a 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleBurlapServiceExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleBurlapServiceExporter.java @@ -53,6 +53,7 @@ public class SimpleBurlapServiceExporter extends BurlapExporter implements HttpH /** * Processes the incoming Burlap request and creates a Burlap response. */ + @Override public void handle(HttpExchange exchange) throws IOException { if (!"POST".equals(exchange.getRequestMethod())) { exchange.getResponseHeaders().set("Allow", "POST"); diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleHessianServiceExporter.java b/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleHessianServiceExporter.java index d56b1e0e3fcb..e773ed161bc3 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleHessianServiceExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleHessianServiceExporter.java @@ -49,6 +49,7 @@ public class SimpleHessianServiceExporter extends HessianExporter implements Htt /** * Processes the incoming Hessian request and creates a Hessian response. */ + @Override public void handle(HttpExchange exchange) throws IOException { if (!"POST".equals(exchange.getRequestMethod())) { exchange.getResponseHeaders().set("Allow", "POST"); diff --git a/spring-web/src/main/java/org/springframework/remoting/httpinvoker/AbstractHttpInvokerRequestExecutor.java b/spring-web/src/main/java/org/springframework/remoting/httpinvoker/AbstractHttpInvokerRequestExecutor.java index 5a024973eaed..8b6c47b339b4 100644 --- a/spring-web/src/main/java/org/springframework/remoting/httpinvoker/AbstractHttpInvokerRequestExecutor.java +++ b/spring-web/src/main/java/org/springframework/remoting/httpinvoker/AbstractHttpInvokerRequestExecutor.java @@ -113,6 +113,7 @@ public boolean isAcceptGzipEncoding() { return this.acceptGzipEncoding; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -125,6 +126,7 @@ protected ClassLoader getBeanClassLoader() { } + @Override public final RemoteInvocationResult executeRequest( HttpInvokerClientConfiguration config, RemoteInvocation invocation) throws Exception { diff --git a/spring-web/src/main/java/org/springframework/remoting/httpinvoker/HttpInvokerClientInterceptor.java b/spring-web/src/main/java/org/springframework/remoting/httpinvoker/HttpInvokerClientInterceptor.java index 18668f530047..ccc1f704f6ac 100644 --- a/spring-web/src/main/java/org/springframework/remoting/httpinvoker/HttpInvokerClientInterceptor.java +++ b/spring-web/src/main/java/org/springframework/remoting/httpinvoker/HttpInvokerClientInterceptor.java @@ -91,6 +91,7 @@ public void setCodebaseUrl(String codebaseUrl) { /** * Return the codebase URL to download classes from if not found locally. */ + @Override public String getCodebaseUrl() { return this.codebaseUrl; } @@ -131,6 +132,7 @@ public void afterPropertiesSet() { } + @Override public Object invoke(MethodInvocation methodInvocation) throws Throwable { if (AopUtils.isToStringMethod(methodInvocation.getMethod())) { return "HTTP invoker proxy for service URL [" + getServiceUrl() + "]"; diff --git a/spring-web/src/main/java/org/springframework/remoting/httpinvoker/HttpInvokerProxyFactoryBean.java b/spring-web/src/main/java/org/springframework/remoting/httpinvoker/HttpInvokerProxyFactoryBean.java index eee01cd025d9..3514f5e2e51d 100644 --- a/spring-web/src/main/java/org/springframework/remoting/httpinvoker/HttpInvokerProxyFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/remoting/httpinvoker/HttpInvokerProxyFactoryBean.java @@ -63,14 +63,17 @@ public void afterPropertiesSet() { } + @Override public Object getObject() { return this.serviceProxy; } + @Override public Class getObjectType() { return getServiceInterface(); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-web/src/main/java/org/springframework/remoting/httpinvoker/HttpInvokerServiceExporter.java b/spring-web/src/main/java/org/springframework/remoting/httpinvoker/HttpInvokerServiceExporter.java index d95b47122cf2..0e85a7bcc4e4 100644 --- a/spring-web/src/main/java/org/springframework/remoting/httpinvoker/HttpInvokerServiceExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/httpinvoker/HttpInvokerServiceExporter.java @@ -65,6 +65,7 @@ public class HttpInvokerServiceExporter extends RemoteInvocationSerializingExpor * @see #invokeAndCreateResult(org.springframework.remoting.support.RemoteInvocation, Object) * @see #writeRemoteInvocationResult(HttpServletRequest, HttpServletResponse, RemoteInvocationResult) */ + @Override public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { diff --git a/spring-web/src/main/java/org/springframework/remoting/httpinvoker/SimpleHttpInvokerServiceExporter.java b/spring-web/src/main/java/org/springframework/remoting/httpinvoker/SimpleHttpInvokerServiceExporter.java index ed94d9d8e953..88283205a99a 100644 --- a/spring-web/src/main/java/org/springframework/remoting/httpinvoker/SimpleHttpInvokerServiceExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/httpinvoker/SimpleHttpInvokerServiceExporter.java @@ -61,6 +61,7 @@ public class SimpleHttpInvokerServiceExporter extends RemoteInvocationSerializin * @see #invokeAndCreateResult(org.springframework.remoting.support.RemoteInvocation, Object) * @see #writeRemoteInvocationResult(com.sun.net.httpserver.HttpExchange, org.springframework.remoting.support.RemoteInvocationResult) */ + @Override public void handle(HttpExchange exchange) throws IOException { try { RemoteInvocation invocation = readRemoteInvocation(exchange); diff --git a/spring-web/src/main/java/org/springframework/remoting/jaxws/AbstractJaxWsServiceExporter.java b/spring-web/src/main/java/org/springframework/remoting/jaxws/AbstractJaxWsServiceExporter.java index d4078cae2e7e..52ad40354c5c 100644 --- a/spring-web/src/main/java/org/springframework/remoting/jaxws/AbstractJaxWsServiceExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/jaxws/AbstractJaxWsServiceExporter.java @@ -109,6 +109,7 @@ public void setWebServiceFeatures(Object[] webServiceFeatures) { /** * Obtains all web service beans and publishes them as JAX-WS endpoints. */ + @Override public void setBeanFactory(BeanFactory beanFactory) { if (!(beanFactory instanceof ListableBeanFactory)) { throw new IllegalStateException(getClass().getSimpleName() + " requires a ListableBeanFactory"); @@ -121,6 +122,7 @@ public void setBeanFactory(BeanFactory beanFactory) { * Immediately publish all endpoints when fully configured. * @see #publishEndpoints() */ + @Override public void afterPropertiesSet() throws Exception { publishEndpoints(); } @@ -201,6 +203,7 @@ protected Endpoint createEndpoint(Object bean) { /** * Stops all published endpoints, taking the web services offline. */ + @Override public void destroy() { for (Endpoint endpoint : this.publishedEndpoints) { endpoint.stop(); diff --git a/spring-web/src/main/java/org/springframework/remoting/jaxws/JaxWsPortClientInterceptor.java b/spring-web/src/main/java/org/springframework/remoting/jaxws/JaxWsPortClientInterceptor.java index 815f15e9326b..8adf8663da2b 100644 --- a/spring-web/src/main/java/org/springframework/remoting/jaxws/JaxWsPortClientInterceptor.java +++ b/spring-web/src/main/java/org/springframework/remoting/jaxws/JaxWsPortClientInterceptor.java @@ -319,6 +319,7 @@ public void setLookupServiceOnStartup(boolean lookupServiceOnStartup) { * {@link #setWebServiceFeatures}, and also for building a client * proxy in the {@link JaxWsPortProxyFactoryBean} subclass. */ + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -331,6 +332,7 @@ protected ClassLoader getBeanClassLoader() { } + @Override public void afterPropertiesSet() { if (this.lookupServiceOnStartup) { prepare(); @@ -524,6 +526,7 @@ protected Object getPortStub() { } + @Override public Object invoke(MethodInvocation invocation) throws Throwable { if (AopUtils.isToStringMethod(invocation.getMethod())) { return "JAX-WS proxy for port [" + getPortName() + "] of service [" + getServiceName() + "]"; diff --git a/spring-web/src/main/java/org/springframework/remoting/jaxws/JaxWsPortProxyFactoryBean.java b/spring-web/src/main/java/org/springframework/remoting/jaxws/JaxWsPortProxyFactoryBean.java index 29630cefc643..ee7ccdfe31da 100644 --- a/spring-web/src/main/java/org/springframework/remoting/jaxws/JaxWsPortProxyFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/remoting/jaxws/JaxWsPortProxyFactoryBean.java @@ -50,14 +50,17 @@ public void afterPropertiesSet() { } + @Override public Object getObject() { return this.serviceProxy; } + @Override public Class getObjectType() { return getServiceInterface(); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-web/src/main/java/org/springframework/remoting/jaxws/LocalJaxWsServiceFactoryBean.java b/spring-web/src/main/java/org/springframework/remoting/jaxws/LocalJaxWsServiceFactoryBean.java index 672ff4739050..da97f8437ad8 100644 --- a/spring-web/src/main/java/org/springframework/remoting/jaxws/LocalJaxWsServiceFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/remoting/jaxws/LocalJaxWsServiceFactoryBean.java @@ -41,18 +41,22 @@ public class LocalJaxWsServiceFactoryBean extends LocalJaxWsServiceFactory private Service service; + @Override public void afterPropertiesSet() { this.service = createJaxWsService(); } + @Override public Service getObject() { return this.service; } + @Override public Class getObjectType() { return (this.service != null ? this.service.getClass() : Service.class); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-web/src/main/java/org/springframework/web/SpringServletContainerInitializer.java b/spring-web/src/main/java/org/springframework/web/SpringServletContainerInitializer.java index 2c579172c1c5..717f4ec3f95b 100644 --- a/spring-web/src/main/java/org/springframework/web/SpringServletContainerInitializer.java +++ b/spring-web/src/main/java/org/springframework/web/SpringServletContainerInitializer.java @@ -147,6 +147,7 @@ public class SpringServletContainerInitializer implements ServletContainerInitia * @see WebApplicationInitializer#onStartup(ServletContext) * @see AnnotationAwareOrderComparator */ + @Override public void onStartup(Set> webAppInitializerClasses, ServletContext servletContext) throws ServletException { diff --git a/spring-web/src/main/java/org/springframework/web/accept/AbstractMappingContentNegotiationStrategy.java b/spring-web/src/main/java/org/springframework/web/accept/AbstractMappingContentNegotiationStrategy.java index edd0b8e22bad..a85e4b19b677 100644 --- a/spring-web/src/main/java/org/springframework/web/accept/AbstractMappingContentNegotiationStrategy.java +++ b/spring-web/src/main/java/org/springframework/web/accept/AbstractMappingContentNegotiationStrategy.java @@ -42,6 +42,7 @@ public AbstractMappingContentNegotiationStrategy(Map mediaTyp super(mediaTypes); } + @Override public List resolveMediaTypes(NativeWebRequest webRequest) { String key = getMediaTypeKey(webRequest); if (StringUtils.hasText(key)) { diff --git a/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManager.java b/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManager.java index 2886fe487fd3..9120a52faeb5 100644 --- a/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManager.java +++ b/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManager.java @@ -118,6 +118,7 @@ public void addFileExtensionResolvers(MediaTypeFileExtensionResolver... resolver * @return the requested media types or an empty list, never {@code null} * @throws HttpMediaTypeNotAcceptableException if the requested media types cannot be parsed */ + @Override public List resolveMediaTypes(NativeWebRequest webRequest) throws HttpMediaTypeNotAcceptableException { for (ContentNegotiationStrategy strategy : this.contentNegotiationStrategies) { List mediaTypes = strategy.resolveMediaTypes(webRequest); @@ -133,6 +134,7 @@ public List resolveMediaTypes(NativeWebRequest webRequest) throws Htt * Delegate to all configured MediaTypeFileExtensionResolver instances and aggregate * the list of all file extensions found. */ + @Override public List resolveFileExtensions(MediaType mediaType) { Set result = new LinkedHashSet(); for (MediaTypeFileExtensionResolver resolver : this.fileExtensionResolvers) { @@ -145,6 +147,7 @@ public List resolveFileExtensions(MediaType mediaType) { * Delegate to all configured MediaTypeFileExtensionResolver instances and aggregate * the list of all known file extensions. */ + @Override public List getAllFileExtensions() { Set result = new LinkedHashSet(); for (MediaTypeFileExtensionResolver resolver : this.fileExtensionResolvers) { diff --git a/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManagerFactoryBean.java b/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManagerFactoryBean.java index a5d0357d91e7..23fc2c401786 100644 --- a/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManagerFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManagerFactoryBean.java @@ -174,11 +174,13 @@ public void setDefaultContentType(MediaType defaultContentType) { this.defaultContentType = defaultContentType; } + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } + @Override public void afterPropertiesSet() { List strategies = new ArrayList(); @@ -213,14 +215,17 @@ public void afterPropertiesSet() { } + @Override public ContentNegotiationManager getObject() { return this.contentNegotiationManager; } + @Override public Class getObjectType() { return ContentNegotiationManager.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-web/src/main/java/org/springframework/web/accept/FixedContentNegotiationStrategy.java b/spring-web/src/main/java/org/springframework/web/accept/FixedContentNegotiationStrategy.java index 84ac58cfee38..5180154dd2c2 100644 --- a/spring-web/src/main/java/org/springframework/web/accept/FixedContentNegotiationStrategy.java +++ b/spring-web/src/main/java/org/springframework/web/accept/FixedContentNegotiationStrategy.java @@ -43,6 +43,7 @@ public FixedContentNegotiationStrategy(MediaType defaultContentType) { this.defaultContentType = defaultContentType; } + @Override public List resolveMediaTypes(NativeWebRequest webRequest) { if (logger.isDebugEnabled()) { logger.debug("Requested media types is " + this.defaultContentType + " (based on default MediaType)"); diff --git a/spring-web/src/main/java/org/springframework/web/accept/HeaderContentNegotiationStrategy.java b/spring-web/src/main/java/org/springframework/web/accept/HeaderContentNegotiationStrategy.java index ef84fb179da0..1cfcd67e5db3 100644 --- a/spring-web/src/main/java/org/springframework/web/accept/HeaderContentNegotiationStrategy.java +++ b/spring-web/src/main/java/org/springframework/web/accept/HeaderContentNegotiationStrategy.java @@ -38,6 +38,7 @@ public class HeaderContentNegotiationStrategy implements ContentNegotiationStrat * {@inheritDoc} * @throws HttpMediaTypeNotAcceptableException if the 'Accept' header cannot be parsed. */ + @Override public List resolveMediaTypes(NativeWebRequest webRequest) throws HttpMediaTypeNotAcceptableException { String acceptHeader = webRequest.getHeader(ACCEPT_HEADER); try { diff --git a/spring-web/src/main/java/org/springframework/web/accept/MappingMediaTypeFileExtensionResolver.java b/spring-web/src/main/java/org/springframework/web/accept/MappingMediaTypeFileExtensionResolver.java index 293f26ce7ad7..71e670d0fd61 100644 --- a/spring-web/src/main/java/org/springframework/web/accept/MappingMediaTypeFileExtensionResolver.java +++ b/spring-web/src/main/java/org/springframework/web/accept/MappingMediaTypeFileExtensionResolver.java @@ -63,11 +63,13 @@ public MappingMediaTypeFileExtensionResolver(Map mediaTypes) * Find the file extensions mapped to the given MediaType. * @return 0 or more extensions, never {@code null} */ + @Override public List resolveFileExtensions(MediaType mediaType) { List fileExtensions = this.fileExtensions.get(mediaType); return (fileExtensions != null) ? fileExtensions : Collections.emptyList(); } + @Override public List getAllFileExtensions() { return Collections.unmodifiableList(this.allFileExtensions); } diff --git a/spring-web/src/main/java/org/springframework/web/bind/EscapedErrors.java b/spring-web/src/main/java/org/springframework/web/bind/EscapedErrors.java index 67144395e296..3cb0b96b8951 100644 --- a/spring-web/src/main/java/org/springframework/web/bind/EscapedErrors.java +++ b/spring-web/src/main/java/org/springframework/web/bind/EscapedErrors.java @@ -58,121 +58,150 @@ public Errors getSource() { } + @Override public String getObjectName() { return this.source.getObjectName(); } + @Override public void setNestedPath(String nestedPath) { this.source.setNestedPath(nestedPath); } + @Override public String getNestedPath() { return this.source.getNestedPath(); } + @Override public void pushNestedPath(String subPath) { this.source.pushNestedPath(subPath); } + @Override public void popNestedPath() throws IllegalStateException { this.source.popNestedPath(); } + @Override public void reject(String errorCode) { this.source.reject(errorCode); } + @Override public void reject(String errorCode, String defaultMessage) { this.source.reject(errorCode, defaultMessage); } + @Override public void reject(String errorCode, Object[] errorArgs, String defaultMessage) { this.source.reject(errorCode, errorArgs, defaultMessage); } + @Override public void rejectValue(String field, String errorCode) { this.source.rejectValue(field, errorCode); } + @Override public void rejectValue(String field, String errorCode, String defaultMessage) { this.source.rejectValue(field, errorCode, defaultMessage); } + @Override public void rejectValue(String field, String errorCode, Object[] errorArgs, String defaultMessage) { this.source.rejectValue(field, errorCode, errorArgs, defaultMessage); } + @Override public void addAllErrors(Errors errors) { this.source.addAllErrors(errors); } + @Override public boolean hasErrors() { return this.source.hasErrors(); } + @Override public int getErrorCount() { return this.source.getErrorCount(); } + @Override public List getAllErrors() { return escapeObjectErrors(this.source.getAllErrors()); } + @Override public boolean hasGlobalErrors() { return this.source.hasGlobalErrors(); } + @Override public int getGlobalErrorCount() { return this.source.getGlobalErrorCount(); } + @Override public List getGlobalErrors() { return escapeObjectErrors(this.source.getGlobalErrors()); } + @Override public ObjectError getGlobalError() { return escapeObjectError(this.source.getGlobalError()); } + @Override public boolean hasFieldErrors() { return this.source.hasFieldErrors(); } + @Override public int getFieldErrorCount() { return this.source.getFieldErrorCount(); } + @Override public List getFieldErrors() { return this.source.getFieldErrors(); } + @Override public FieldError getFieldError() { return this.source.getFieldError(); } + @Override public boolean hasFieldErrors(String field) { return this.source.hasFieldErrors(field); } + @Override public int getFieldErrorCount(String field) { return this.source.getFieldErrorCount(field); } + @Override public List getFieldErrors(String field) { return escapeObjectErrors(this.source.getFieldErrors(field)); } + @Override public FieldError getFieldError(String field) { return escapeObjectError(this.source.getFieldError(field)); } + @Override public Object getFieldValue(String field) { Object value = this.source.getFieldValue(field); return (value instanceof String ? HtmlUtils.htmlEscape((String) value) : value); } + @Override public Class getFieldType(String field) { return this.source.getFieldType(field); } diff --git a/spring-web/src/main/java/org/springframework/web/bind/annotation/support/HandlerMethodResolver.java b/spring-web/src/main/java/org/springframework/web/bind/annotation/support/HandlerMethodResolver.java index 89e7ad9c2b28..ba3840f74ea2 100644 --- a/spring-web/src/main/java/org/springframework/web/bind/annotation/support/HandlerMethodResolver.java +++ b/spring-web/src/main/java/org/springframework/web/bind/annotation/support/HandlerMethodResolver.java @@ -84,6 +84,7 @@ public void init(final Class handlerType) { for (Class currentHandlerType : handlerTypes) { final Class targetClass = (specificHandlerType != null ? specificHandlerType : currentHandlerType); ReflectionUtils.doWithMethods(currentHandlerType, new ReflectionUtils.MethodCallback() { + @Override public void doWith(Method method) { Method specificMethod = ClassUtils.getMostSpecificMethod(method, targetClass); Method bridgedMethod = BridgeMethodResolver.findBridgedMethod(specificMethod); diff --git a/spring-web/src/main/java/org/springframework/web/bind/support/ConfigurableWebBindingInitializer.java b/spring-web/src/main/java/org/springframework/web/bind/support/ConfigurableWebBindingInitializer.java index 8b0d4ffb279e..3056ad03119a 100644 --- a/spring-web/src/main/java/org/springframework/web/bind/support/ConfigurableWebBindingInitializer.java +++ b/spring-web/src/main/java/org/springframework/web/bind/support/ConfigurableWebBindingInitializer.java @@ -181,6 +181,7 @@ public final PropertyEditorRegistrar[] getPropertyEditorRegistrars() { } + @Override public void initBinder(WebDataBinder binder, WebRequest request) { binder.setAutoGrowNestedPaths(this.autoGrowNestedPaths); if (this.directFieldAccess) { diff --git a/spring-web/src/main/java/org/springframework/web/bind/support/DefaultDataBinderFactory.java b/spring-web/src/main/java/org/springframework/web/bind/support/DefaultDataBinderFactory.java index bab588d5a483..d673f17b2cc6 100644 --- a/spring-web/src/main/java/org/springframework/web/bind/support/DefaultDataBinderFactory.java +++ b/spring-web/src/main/java/org/springframework/web/bind/support/DefaultDataBinderFactory.java @@ -43,6 +43,7 @@ public DefaultDataBinderFactory(WebBindingInitializer initializer) { * initialize it through a {@link WebBindingInitializer}. * @throws Exception in case of invalid state or arguments */ + @Override public final WebDataBinder createBinder(NativeWebRequest webRequest, Object target, String objectName) throws Exception { WebDataBinder dataBinder = createBinderInstance(target, objectName, webRequest); diff --git a/spring-web/src/main/java/org/springframework/web/bind/support/DefaultSessionAttributeStore.java b/spring-web/src/main/java/org/springframework/web/bind/support/DefaultSessionAttributeStore.java index 1eeceb0e2ac7..498849d608e9 100644 --- a/spring-web/src/main/java/org/springframework/web/bind/support/DefaultSessionAttributeStore.java +++ b/spring-web/src/main/java/org/springframework/web/bind/support/DefaultSessionAttributeStore.java @@ -46,6 +46,7 @@ public void setAttributeNamePrefix(String attributeNamePrefix) { } + @Override public void storeAttribute(WebRequest request, String attributeName, Object attributeValue) { Assert.notNull(request, "WebRequest must not be null"); Assert.notNull(attributeName, "Attribute name must not be null"); @@ -54,6 +55,7 @@ public void storeAttribute(WebRequest request, String attributeName, Object attr request.setAttribute(storeAttributeName, attributeValue, WebRequest.SCOPE_SESSION); } + @Override public Object retrieveAttribute(WebRequest request, String attributeName) { Assert.notNull(request, "WebRequest must not be null"); Assert.notNull(attributeName, "Attribute name must not be null"); @@ -61,6 +63,7 @@ public Object retrieveAttribute(WebRequest request, String attributeName) { return request.getAttribute(storeAttributeName, WebRequest.SCOPE_SESSION); } + @Override public void cleanupAttribute(WebRequest request, String attributeName) { Assert.notNull(request, "WebRequest must not be null"); Assert.notNull(attributeName, "Attribute name must not be null"); diff --git a/spring-web/src/main/java/org/springframework/web/bind/support/SimpleSessionStatus.java b/spring-web/src/main/java/org/springframework/web/bind/support/SimpleSessionStatus.java index f9d1d7c10263..7f20bf4e8f47 100644 --- a/spring-web/src/main/java/org/springframework/web/bind/support/SimpleSessionStatus.java +++ b/spring-web/src/main/java/org/springframework/web/bind/support/SimpleSessionStatus.java @@ -28,10 +28,12 @@ public class SimpleSessionStatus implements SessionStatus { private boolean complete = false; + @Override public void setComplete() { this.complete = true; } + @Override public boolean isComplete() { return this.complete; } diff --git a/spring-web/src/main/java/org/springframework/web/client/DefaultResponseErrorHandler.java b/spring-web/src/main/java/org/springframework/web/client/DefaultResponseErrorHandler.java index bdb8e616d6ef..45eb677ea916 100644 --- a/spring-web/src/main/java/org/springframework/web/client/DefaultResponseErrorHandler.java +++ b/spring-web/src/main/java/org/springframework/web/client/DefaultResponseErrorHandler.java @@ -45,6 +45,7 @@ public class DefaultResponseErrorHandler implements ResponseErrorHandler { /** * Delegates to {@link #hasError(HttpStatus)} with the response status code. */ + @Override public boolean hasError(ClientHttpResponse response) throws IOException { return hasError(getHttpStatusCode(response)); } @@ -81,6 +82,7 @@ protected boolean hasError(HttpStatus statusCode) { * if it is {@link org.springframework.http.HttpStatus.Series#SERVER_ERROR}, * and a {@link RestClientException} in other cases. */ + @Override public void handleError(ClientHttpResponse response) throws IOException { HttpStatus statusCode = getHttpStatusCode(response); switch (statusCode.series()) { diff --git a/spring-web/src/main/java/org/springframework/web/client/HttpMessageConverterExtractor.java b/spring-web/src/main/java/org/springframework/web/client/HttpMessageConverterExtractor.java index b4232ff47c49..4fc24562a2cc 100644 --- a/spring-web/src/main/java/org/springframework/web/client/HttpMessageConverterExtractor.java +++ b/spring-web/src/main/java/org/springframework/web/client/HttpMessageConverterExtractor.java @@ -76,6 +76,7 @@ public HttpMessageConverterExtractor(Type responseType, List T getForObject(String url, Class responseType, Object... urlVariables) throws RestClientException { AcceptHeaderRequestCallback requestCallback = new AcceptHeaderRequestCallback(responseType); HttpMessageConverterExtractor responseExtractor = @@ -222,6 +223,7 @@ public T getForObject(String url, Class responseType, Object... urlVariab return execute(url, HttpMethod.GET, requestCallback, responseExtractor, urlVariables); } + @Override public T getForObject(String url, Class responseType, Map urlVariables) throws RestClientException { AcceptHeaderRequestCallback requestCallback = new AcceptHeaderRequestCallback(responseType); HttpMessageConverterExtractor responseExtractor = @@ -229,6 +231,7 @@ public T getForObject(String url, Class responseType, Map urlV return execute(url, HttpMethod.GET, requestCallback, responseExtractor, urlVariables); } + @Override public T getForObject(URI url, Class responseType) throws RestClientException { AcceptHeaderRequestCallback requestCallback = new AcceptHeaderRequestCallback(responseType); HttpMessageConverterExtractor responseExtractor = @@ -236,6 +239,7 @@ public T getForObject(URI url, Class responseType) throws RestClientExcep return execute(url, HttpMethod.GET, requestCallback, responseExtractor); } + @Override public ResponseEntity getForEntity(String url, Class responseType, Object... urlVariables) throws RestClientException { AcceptHeaderRequestCallback requestCallback = new AcceptHeaderRequestCallback(responseType); @@ -244,6 +248,7 @@ public ResponseEntity getForEntity(String url, Class responseType, Obj return execute(url, HttpMethod.GET, requestCallback, responseExtractor, urlVariables); } + @Override public ResponseEntity getForEntity(String url, Class responseType, Map urlVariables) throws RestClientException { AcceptHeaderRequestCallback requestCallback = new AcceptHeaderRequestCallback(responseType); @@ -252,6 +257,7 @@ public ResponseEntity getForEntity(String url, Class responseType, Map return execute(url, HttpMethod.GET, requestCallback, responseExtractor, urlVariables); } + @Override public ResponseEntity getForEntity(URI url, Class responseType) throws RestClientException { AcceptHeaderRequestCallback requestCallback = new AcceptHeaderRequestCallback(responseType); ResponseEntityResponseExtractor responseExtractor = @@ -261,26 +267,31 @@ public ResponseEntity getForEntity(URI url, Class responseType) throws // HEAD + @Override public HttpHeaders headForHeaders(String url, Object... urlVariables) throws RestClientException { return execute(url, HttpMethod.HEAD, null, this.headersExtractor, urlVariables); } + @Override public HttpHeaders headForHeaders(String url, Map urlVariables) throws RestClientException { return execute(url, HttpMethod.HEAD, null, this.headersExtractor, urlVariables); } + @Override public HttpHeaders headForHeaders(URI url) throws RestClientException { return execute(url, HttpMethod.HEAD, null, this.headersExtractor); } // POST + @Override public URI postForLocation(String url, Object request, Object... urlVariables) throws RestClientException { HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request); HttpHeaders headers = execute(url, HttpMethod.POST, requestCallback, this.headersExtractor, urlVariables); return headers.getLocation(); } + @Override public URI postForLocation(String url, Object request, Map urlVariables) throws RestClientException { HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request); @@ -288,12 +299,14 @@ public URI postForLocation(String url, Object request, Map urlVariabl return headers.getLocation(); } + @Override public URI postForLocation(URI url, Object request) throws RestClientException { HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request); HttpHeaders headers = execute(url, HttpMethod.POST, requestCallback, this.headersExtractor); return headers.getLocation(); } + @Override public T postForObject(String url, Object request, Class responseType, Object... uriVariables) throws RestClientException { HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request, responseType); @@ -302,6 +315,7 @@ public T postForObject(String url, Object request, Class responseType, Ob return execute(url, HttpMethod.POST, requestCallback, responseExtractor, uriVariables); } + @Override public T postForObject(String url, Object request, Class responseType, Map uriVariables) throws RestClientException { HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request, responseType); @@ -310,6 +324,7 @@ public T postForObject(String url, Object request, Class responseType, Ma return execute(url, HttpMethod.POST, requestCallback, responseExtractor, uriVariables); } + @Override public T postForObject(URI url, Object request, Class responseType) throws RestClientException { HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request, responseType); HttpMessageConverterExtractor responseExtractor = @@ -317,6 +332,7 @@ public T postForObject(URI url, Object request, Class responseType) throw return execute(url, HttpMethod.POST, requestCallback, responseExtractor); } + @Override public ResponseEntity postForEntity(String url, Object request, Class responseType, Object... uriVariables) throws RestClientException { @@ -326,6 +342,7 @@ public ResponseEntity postForEntity(String url, Object request, Class return execute(url, HttpMethod.POST, requestCallback, responseExtractor, uriVariables); } + @Override public ResponseEntity postForEntity(String url, Object request, Class responseType, Map uriVariables) throws RestClientException { @@ -335,6 +352,7 @@ public ResponseEntity postForEntity(String url, Object request, Class return execute(url, HttpMethod.POST, requestCallback, responseExtractor, uriVariables); } + @Override public ResponseEntity postForEntity(URI url, Object request, Class responseType) throws RestClientException { HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request, responseType); ResponseEntityResponseExtractor responseExtractor = @@ -344,16 +362,19 @@ public ResponseEntity postForEntity(URI url, Object request, Class res // PUT + @Override public void put(String url, Object request, Object... urlVariables) throws RestClientException { HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request); execute(url, HttpMethod.PUT, requestCallback, null, urlVariables); } + @Override public void put(String url, Object request, Map urlVariables) throws RestClientException { HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request); execute(url, HttpMethod.PUT, requestCallback, null, urlVariables); } + @Override public void put(URI url, Object request) throws RestClientException { HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request); execute(url, HttpMethod.PUT, requestCallback, null); @@ -361,30 +382,36 @@ public void put(URI url, Object request) throws RestClientException { // DELETE + @Override public void delete(String url, Object... urlVariables) throws RestClientException { execute(url, HttpMethod.DELETE, null, null, urlVariables); } + @Override public void delete(String url, Map urlVariables) throws RestClientException { execute(url, HttpMethod.DELETE, null, null, urlVariables); } + @Override public void delete(URI url) throws RestClientException { execute(url, HttpMethod.DELETE, null, null); } // OPTIONS + @Override public Set optionsForAllow(String url, Object... urlVariables) throws RestClientException { HttpHeaders headers = execute(url, HttpMethod.OPTIONS, null, this.headersExtractor, urlVariables); return headers.getAllow(); } + @Override public Set optionsForAllow(String url, Map urlVariables) throws RestClientException { HttpHeaders headers = execute(url, HttpMethod.OPTIONS, null, this.headersExtractor, urlVariables); return headers.getAllow(); } + @Override public Set optionsForAllow(URI url) throws RestClientException { HttpHeaders headers = execute(url, HttpMethod.OPTIONS, null, this.headersExtractor); return headers.getAllow(); @@ -392,6 +419,7 @@ public Set optionsForAllow(URI url) throws RestClientException { // exchange + @Override public ResponseEntity exchange(String url, HttpMethod method, HttpEntity requestEntity, Class responseType, Object... uriVariables) throws RestClientException { @@ -400,6 +428,7 @@ public ResponseEntity exchange(String url, HttpMethod method, return execute(url, method, requestCallback, responseExtractor, uriVariables); } + @Override public ResponseEntity exchange(String url, HttpMethod method, HttpEntity requestEntity, Class responseType, Map uriVariables) throws RestClientException { @@ -408,6 +437,7 @@ public ResponseEntity exchange(String url, HttpMethod method, return execute(url, method, requestCallback, responseExtractor, uriVariables); } + @Override public ResponseEntity exchange(URI url, HttpMethod method, HttpEntity requestEntity, Class responseType) throws RestClientException { @@ -416,6 +446,7 @@ public ResponseEntity exchange(URI url, HttpMethod method, HttpEntity return execute(url, method, requestCallback, responseExtractor); } + @Override public ResponseEntity exchange(String url, HttpMethod method, HttpEntity requestEntity, ParameterizedTypeReference responseType, Object... uriVariables) throws RestClientException { @@ -425,6 +456,7 @@ public ResponseEntity exchange(String url, HttpMethod method, HttpEntity< return execute(url, method, requestCallback, responseExtractor, uriVariables); } + @Override public ResponseEntity exchange(String url, HttpMethod method, HttpEntity requestEntity, ParameterizedTypeReference responseType, Map uriVariables) throws RestClientException { @@ -434,6 +466,7 @@ public ResponseEntity exchange(String url, HttpMethod method, HttpEntity< return execute(url, method, requestCallback, responseExtractor, uriVariables); } + @Override public ResponseEntity exchange(URI url, HttpMethod method, HttpEntity requestEntity, ParameterizedTypeReference responseType) throws RestClientException { @@ -445,6 +478,7 @@ public ResponseEntity exchange(URI url, HttpMethod method, HttpEntity // general execution + @Override public T execute(String url, HttpMethod method, RequestCallback requestCallback, ResponseExtractor responseExtractor, Object... urlVariables) throws RestClientException { @@ -452,6 +486,7 @@ public T execute(String url, HttpMethod method, RequestCallback requestCallb return doExecute(expanded, method, requestCallback, responseExtractor); } + @Override public T execute(String url, HttpMethod method, RequestCallback requestCallback, ResponseExtractor responseExtractor, Map urlVariables) throws RestClientException { @@ -459,6 +494,7 @@ public T execute(String url, HttpMethod method, RequestCallback requestCallb return doExecute(expanded, method, requestCallback, responseExtractor); } + @Override public T execute(URI url, HttpMethod method, RequestCallback requestCallback, ResponseExtractor responseExtractor) throws RestClientException { @@ -549,6 +585,7 @@ private AcceptHeaderRequestCallback(Type responseType) { this.responseType = responseType; } + @Override @SuppressWarnings("unchecked") public void doWithRequest(ClientHttpRequest request) throws IOException { if (responseType != null) { @@ -688,6 +725,7 @@ public ResponseEntityResponseExtractor(Type responseType) { } } + @Override public ResponseEntity extractData(ClientHttpResponse response) throws IOException { if (this.delegate != null) { T body = this.delegate.extractData(response); @@ -705,6 +743,7 @@ public ResponseEntity extractData(ClientHttpResponse response) throws IOExcep */ private static class HeadersExtractor implements ResponseExtractor { + @Override public HttpHeaders extractData(ClientHttpResponse response) throws IOException { return response.getHeaders(); } diff --git a/spring-web/src/main/java/org/springframework/web/context/AbstractContextLoaderInitializer.java b/spring-web/src/main/java/org/springframework/web/context/AbstractContextLoaderInitializer.java index 54defc908f7e..486da7952ac2 100644 --- a/spring-web/src/main/java/org/springframework/web/context/AbstractContextLoaderInitializer.java +++ b/spring-web/src/main/java/org/springframework/web/context/AbstractContextLoaderInitializer.java @@ -41,6 +41,7 @@ public abstract class AbstractContextLoaderInitializer implements WebApplication /** Logger available to subclasses. */ protected final Log logger = LogFactory.getLog(getClass()); + @Override public void onStartup(ServletContext servletContext) throws ServletException { this.registerContextLoaderListener(servletContext); } diff --git a/spring-web/src/main/java/org/springframework/web/context/ContextCleanupListener.java b/spring-web/src/main/java/org/springframework/web/context/ContextCleanupListener.java index 2e1956cb2bf6..677ea452b1d1 100644 --- a/spring-web/src/main/java/org/springframework/web/context/ContextCleanupListener.java +++ b/spring-web/src/main/java/org/springframework/web/context/ContextCleanupListener.java @@ -43,9 +43,11 @@ public class ContextCleanupListener implements ServletContextListener { private static final Log logger = LogFactory.getLog(ContextCleanupListener.class); + @Override public void contextInitialized(ServletContextEvent event) { } + @Override public void contextDestroyed(ServletContextEvent event) { cleanupAttributes(event.getServletContext()); } diff --git a/spring-web/src/main/java/org/springframework/web/context/ContextLoaderListener.java b/spring-web/src/main/java/org/springframework/web/context/ContextLoaderListener.java index 75d7044ac7ba..83aff2d3ded2 100644 --- a/spring-web/src/main/java/org/springframework/web/context/ContextLoaderListener.java +++ b/spring-web/src/main/java/org/springframework/web/context/ContextLoaderListener.java @@ -101,6 +101,7 @@ public ContextLoaderListener(WebApplicationContext context) { /** * Initialize the root web application context. */ + @Override public void contextInitialized(ServletContextEvent event) { initWebApplicationContext(event.getServletContext()); } @@ -109,6 +110,7 @@ public void contextInitialized(ServletContextEvent event) { /** * Close the root web application context. */ + @Override public void contextDestroyed(ServletContextEvent event) { closeWebApplicationContext(event.getServletContext()); ContextCleanupListener.cleanupAttributes(event.getServletContext()); diff --git a/spring-web/src/main/java/org/springframework/web/context/request/AbstractRequestAttributesScope.java b/spring-web/src/main/java/org/springframework/web/context/request/AbstractRequestAttributesScope.java index 155eadeb7eac..01325837263b 100644 --- a/spring-web/src/main/java/org/springframework/web/context/request/AbstractRequestAttributesScope.java +++ b/spring-web/src/main/java/org/springframework/web/context/request/AbstractRequestAttributesScope.java @@ -36,6 +36,7 @@ */ public abstract class AbstractRequestAttributesScope implements Scope { + @Override public Object get(String name, ObjectFactory objectFactory) { RequestAttributes attributes = RequestContextHolder.currentRequestAttributes(); Object scopedObject = attributes.getAttribute(name, getScope()); @@ -46,6 +47,7 @@ public Object get(String name, ObjectFactory objectFactory) { return scopedObject; } + @Override public Object remove(String name) { RequestAttributes attributes = RequestContextHolder.currentRequestAttributes(); Object scopedObject = attributes.getAttribute(name, getScope()); @@ -58,11 +60,13 @@ public Object remove(String name) { } } + @Override public void registerDestructionCallback(String name, Runnable callback) { RequestAttributes attributes = RequestContextHolder.currentRequestAttributes(); attributes.registerDestructionCallback(name, callback, getScope()); } + @Override public Object resolveContextualObject(String key) { RequestAttributes attributes = RequestContextHolder.currentRequestAttributes(); return attributes.resolveReference(key); diff --git a/spring-web/src/main/java/org/springframework/web/context/request/DestructionCallbackBindingListener.java b/spring-web/src/main/java/org/springframework/web/context/request/DestructionCallbackBindingListener.java index 27202c36becc..f1467553b88f 100644 --- a/spring-web/src/main/java/org/springframework/web/context/request/DestructionCallbackBindingListener.java +++ b/spring-web/src/main/java/org/springframework/web/context/request/DestructionCallbackBindingListener.java @@ -45,9 +45,11 @@ public DestructionCallbackBindingListener(Runnable destructionCallback) { } + @Override public void valueBound(HttpSessionBindingEvent event) { } + @Override public void valueUnbound(HttpSessionBindingEvent event) { this.destructionCallback.run(); } diff --git a/spring-web/src/main/java/org/springframework/web/context/request/FacesRequestAttributes.java b/spring-web/src/main/java/org/springframework/web/context/request/FacesRequestAttributes.java index 8570211fa31a..32f45852344a 100644 --- a/spring-web/src/main/java/org/springframework/web/context/request/FacesRequestAttributes.java +++ b/spring-web/src/main/java/org/springframework/web/context/request/FacesRequestAttributes.java @@ -106,6 +106,7 @@ protected Map getAttributeMap(int scope) { } + @Override public Object getAttribute(String name, int scope) { if (scope == SCOPE_GLOBAL_SESSION && portletApiPresent) { return PortletSessionAccessor.getAttribute(name, getExternalContext()); @@ -115,6 +116,7 @@ public Object getAttribute(String name, int scope) { } } + @Override public void setAttribute(String name, Object value, int scope) { if (scope == SCOPE_GLOBAL_SESSION && portletApiPresent) { PortletSessionAccessor.setAttribute(name, value, getExternalContext()); @@ -124,6 +126,7 @@ public void setAttribute(String name, Object value, int scope) { } } + @Override public void removeAttribute(String name, int scope) { if (scope == SCOPE_GLOBAL_SESSION && portletApiPresent) { PortletSessionAccessor.removeAttribute(name, getExternalContext()); @@ -133,6 +136,7 @@ public void removeAttribute(String name, int scope) { } } + @Override public String[] getAttributeNames(int scope) { if (scope == SCOPE_GLOBAL_SESSION && portletApiPresent) { return PortletSessionAccessor.getAttributeNames(getExternalContext()); @@ -142,6 +146,7 @@ public String[] getAttributeNames(int scope) { } } + @Override public void registerDestructionCallback(String name, Runnable callback, int scope) { if (logger.isWarnEnabled()) { logger.warn("Could not register destruction callback [" + callback + "] for attribute '" + name + @@ -149,6 +154,7 @@ public void registerDestructionCallback(String name, Runnable callback, int scop } } + @Override public Object resolveReference(String key) { if (REFERENCE_REQUEST.equals(key)) { return getExternalContext().getRequest(); @@ -221,6 +227,7 @@ else if ("resource".equals(key)) { } } + @Override public String getSessionId() { Object session = getExternalContext().getSession(true); try { @@ -233,6 +240,7 @@ public String getSessionId() { } } + @Override public Object getSessionMutex() { // Enforce presence of a session first to allow listeners // to create the mutex attribute, if any. diff --git a/spring-web/src/main/java/org/springframework/web/context/request/FacesWebRequest.java b/spring-web/src/main/java/org/springframework/web/context/request/FacesWebRequest.java index f921d2a54171..940e0c9d0a28 100644 --- a/spring-web/src/main/java/org/springframework/web/context/request/FacesWebRequest.java +++ b/spring-web/src/main/java/org/springframework/web/context/request/FacesWebRequest.java @@ -43,14 +43,17 @@ public FacesWebRequest(FacesContext facesContext) { } + @Override public Object getNativeRequest() { return getExternalContext().getRequest(); } + @Override public Object getNativeResponse() { return getExternalContext().getResponse(); } + @Override @SuppressWarnings("unchecked") public T getNativeRequest(Class requiredType) { if (requiredType != null) { @@ -62,6 +65,7 @@ public T getNativeRequest(Class requiredType) { return null; } + @Override @SuppressWarnings("unchecked") public T getNativeResponse(Class requiredType) { if (requiredType != null) { @@ -74,66 +78,82 @@ public T getNativeResponse(Class requiredType) { } + @Override public String getHeader(String headerName) { return getExternalContext().getRequestHeaderMap().get(headerName); } + @Override public String[] getHeaderValues(String headerName) { return getExternalContext().getRequestHeaderValuesMap().get(headerName); } + @Override public Iterator getHeaderNames() { return getExternalContext().getRequestHeaderMap().keySet().iterator(); } + @Override public String getParameter(String paramName) { return getExternalContext().getRequestParameterMap().get(paramName); } + @Override public Iterator getParameterNames() { return getExternalContext().getRequestParameterNames(); } + @Override public String[] getParameterValues(String paramName) { return getExternalContext().getRequestParameterValuesMap().get(paramName); } + @Override public Map getParameterMap() { return getExternalContext().getRequestParameterValuesMap(); } + @Override public Locale getLocale() { return getFacesContext().getExternalContext().getRequestLocale(); } + @Override public String getContextPath() { return getFacesContext().getExternalContext().getRequestContextPath(); } + @Override public String getRemoteUser() { return getFacesContext().getExternalContext().getRemoteUser(); } + @Override public Principal getUserPrincipal() { return getFacesContext().getExternalContext().getUserPrincipal(); } + @Override public boolean isUserInRole(String role) { return getFacesContext().getExternalContext().isUserInRole(role); } + @Override public boolean isSecure() { return false; } + @Override public boolean checkNotModified(long lastModifiedTimestamp) { return false; } + @Override public boolean checkNotModified(String eTag) { return false; } + @Override public String getDescription(boolean includeClientInfo) { ExternalContext externalContext = getExternalContext(); StringBuilder sb = new StringBuilder(); diff --git a/spring-web/src/main/java/org/springframework/web/context/request/Log4jNestedDiagnosticContextInterceptor.java b/spring-web/src/main/java/org/springframework/web/context/request/Log4jNestedDiagnosticContextInterceptor.java index c369abbcaa96..cfc25e82f7d5 100644 --- a/spring-web/src/main/java/org/springframework/web/context/request/Log4jNestedDiagnosticContextInterceptor.java +++ b/spring-web/src/main/java/org/springframework/web/context/request/Log4jNestedDiagnosticContextInterceptor.java @@ -58,6 +58,7 @@ protected boolean isIncludeClientInfo() { /** * Adds a message the Log4J NDC before the request is processed. */ + @Override public void preHandle(WebRequest request) throws Exception { NDC.push(getNestedDiagnosticContextMessage(request)); } @@ -74,12 +75,14 @@ protected String getNestedDiagnosticContextMessage(WebRequest request) { return request.getDescription(isIncludeClientInfo()); } + @Override public void postHandle(WebRequest request, ModelMap model) throws Exception { } /** * Removes the log message from the Log4J NDC after the request is processed. */ + @Override public void afterCompletion(WebRequest request, Exception ex) throws Exception { NDC.pop(); if (NDC.getDepth() == 0) { @@ -91,6 +94,7 @@ public void afterCompletion(WebRequest request, Exception ex) throws Exception { * Removes the log message from the Log4J NDC when the processing thread is * exited after the start of asynchronous request handling. */ + @Override public void afterConcurrentHandlingStarted(WebRequest request) { NDC.pop(); if (NDC.getDepth() == 0) { diff --git a/spring-web/src/main/java/org/springframework/web/context/request/RequestContextListener.java b/spring-web/src/main/java/org/springframework/web/context/request/RequestContextListener.java index 6c8ff6de8896..1316d2969490 100644 --- a/spring-web/src/main/java/org/springframework/web/context/request/RequestContextListener.java +++ b/spring-web/src/main/java/org/springframework/web/context/request/RequestContextListener.java @@ -49,6 +49,7 @@ public class RequestContextListener implements ServletRequestListener { RequestContextListener.class.getName() + ".REQUEST_ATTRIBUTES"; + @Override public void requestInitialized(ServletRequestEvent requestEvent) { if (!(requestEvent.getServletRequest() instanceof HttpServletRequest)) { throw new IllegalArgumentException( @@ -61,6 +62,7 @@ public void requestInitialized(ServletRequestEvent requestEvent) { RequestContextHolder.setRequestAttributes(attributes); } + @Override public void requestDestroyed(ServletRequestEvent requestEvent) { ServletRequestAttributes attributes = (ServletRequestAttributes) requestEvent.getServletRequest().getAttribute(REQUEST_ATTRIBUTES_ATTRIBUTE); diff --git a/spring-web/src/main/java/org/springframework/web/context/request/RequestScope.java b/spring-web/src/main/java/org/springframework/web/context/request/RequestScope.java index b95814a00e50..370a3ee841b2 100644 --- a/spring-web/src/main/java/org/springframework/web/context/request/RequestScope.java +++ b/spring-web/src/main/java/org/springframework/web/context/request/RequestScope.java @@ -52,6 +52,7 @@ protected int getScope() { * There is no conversation id concept for a request, so this method * returns {@code null}. */ + @Override public String getConversationId() { return null; } diff --git a/spring-web/src/main/java/org/springframework/web/context/request/ServletRequestAttributes.java b/spring-web/src/main/java/org/springframework/web/context/request/ServletRequestAttributes.java index 6f8331f05f47..35c06593f155 100644 --- a/spring-web/src/main/java/org/springframework/web/context/request/ServletRequestAttributes.java +++ b/spring-web/src/main/java/org/springframework/web/context/request/ServletRequestAttributes.java @@ -89,6 +89,7 @@ protected final HttpSession getSession(boolean allowCreate) { } + @Override public Object getAttribute(String name, int scope) { if (scope == SCOPE_REQUEST) { if (!isRequestActive()) { @@ -117,6 +118,7 @@ public Object getAttribute(String name, int scope) { } } + @Override public void setAttribute(String name, Object value, int scope) { if (scope == SCOPE_REQUEST) { if (!isRequestActive()) { @@ -134,6 +136,7 @@ public void setAttribute(String name, Object value, int scope) { } } + @Override public void removeAttribute(String name, int scope) { if (scope == SCOPE_REQUEST) { if (isRequestActive()) { @@ -159,6 +162,7 @@ public void removeAttribute(String name, int scope) { } } + @Override public String[] getAttributeNames(int scope) { if (scope == SCOPE_REQUEST) { if (!isRequestActive()) { @@ -181,6 +185,7 @@ public String[] getAttributeNames(int scope) { } } + @Override public void registerDestructionCallback(String name, Runnable callback, int scope) { if (scope == SCOPE_REQUEST) { registerRequestDestructionCallback(name, callback); @@ -190,6 +195,7 @@ public void registerDestructionCallback(String name, Runnable callback, int scop } } + @Override public Object resolveReference(String key) { if (REFERENCE_REQUEST.equals(key)) { return this.request; @@ -202,10 +208,12 @@ else if (REFERENCE_SESSION.equals(key)) { } } + @Override public String getSessionId() { return getSession(true).getId(); } + @Override public Object getSessionMutex() { return WebUtils.getSessionMutex(getSession(true)); } diff --git a/spring-web/src/main/java/org/springframework/web/context/request/ServletWebRequest.java b/spring-web/src/main/java/org/springframework/web/context/request/ServletWebRequest.java index ca6318f344a8..12ef42633913 100644 --- a/spring-web/src/main/java/org/springframework/web/context/request/ServletWebRequest.java +++ b/spring-web/src/main/java/org/springframework/web/context/request/ServletWebRequest.java @@ -79,76 +79,94 @@ public final HttpServletResponse getResponse() { return this.response; } + @Override public Object getNativeRequest() { return getRequest(); } + @Override public Object getNativeResponse() { return getResponse(); } + @Override public T getNativeRequest(Class requiredType) { return WebUtils.getNativeRequest(getRequest(), requiredType); } + @Override public T getNativeResponse(Class requiredType) { return WebUtils.getNativeResponse(getResponse(), requiredType); } + @Override public String getHeader(String headerName) { return getRequest().getHeader(headerName); } + @Override public String[] getHeaderValues(String headerName) { String[] headerValues = StringUtils.toStringArray(getRequest().getHeaders(headerName)); return (!ObjectUtils.isEmpty(headerValues) ? headerValues : null); } + @Override public Iterator getHeaderNames() { return CollectionUtils.toIterator(getRequest().getHeaderNames()); } + @Override public String getParameter(String paramName) { return getRequest().getParameter(paramName); } + @Override public String[] getParameterValues(String paramName) { return getRequest().getParameterValues(paramName); } + @Override public Iterator getParameterNames() { return CollectionUtils.toIterator(getRequest().getParameterNames()); } + @Override public Map getParameterMap() { return getRequest().getParameterMap(); } + @Override public Locale getLocale() { return getRequest().getLocale(); } + @Override public String getContextPath() { return getRequest().getContextPath(); } + @Override public String getRemoteUser() { return getRequest().getRemoteUser(); } + @Override public Principal getUserPrincipal() { return getRequest().getUserPrincipal(); } + @Override public boolean isUserInRole(String role) { return getRequest().isUserInRole(role); } + @Override public boolean isSecure() { return getRequest().isSecure(); } + @Override public boolean checkNotModified(long lastModifiedTimestamp) { if (lastModifiedTimestamp >= 0 && !this.notModified && (this.response == null || !this.response.containsHeader(HEADER_LAST_MODIFIED))) { @@ -166,6 +184,7 @@ public boolean checkNotModified(long lastModifiedTimestamp) { return this.notModified; } + @Override public boolean checkNotModified(String eTag) { if (StringUtils.hasLength(eTag) && !this.notModified && (this.response == null || !this.response.containsHeader(HEADER_ETAG))) { @@ -188,6 +207,7 @@ public boolean isNotModified() { return this.notModified; } + @Override public String getDescription(boolean includeClientInfo) { HttpServletRequest request = getRequest(); StringBuilder sb = new StringBuilder(); diff --git a/spring-web/src/main/java/org/springframework/web/context/request/SessionScope.java b/spring-web/src/main/java/org/springframework/web/context/request/SessionScope.java index 19bcb0d77259..1696c1fcf4cd 100644 --- a/spring-web/src/main/java/org/springframework/web/context/request/SessionScope.java +++ b/spring-web/src/main/java/org/springframework/web/context/request/SessionScope.java @@ -81,6 +81,7 @@ protected int getScope() { return this.scope; } + @Override public String getConversationId() { return RequestContextHolder.currentRequestAttributes().getSessionId(); } diff --git a/spring-web/src/main/java/org/springframework/web/context/request/async/CallableProcessingInterceptorAdapter.java b/spring-web/src/main/java/org/springframework/web/context/request/async/CallableProcessingInterceptorAdapter.java index 264e44237ffd..36689b1e4245 100644 --- a/spring-web/src/main/java/org/springframework/web/context/request/async/CallableProcessingInterceptorAdapter.java +++ b/spring-web/src/main/java/org/springframework/web/context/request/async/CallableProcessingInterceptorAdapter.java @@ -32,18 +32,21 @@ public abstract class CallableProcessingInterceptorAdapter implements CallablePr /** * This implementation is empty. */ + @Override public void beforeConcurrentHandling(NativeWebRequest request, Callable task) throws Exception { } /** * This implementation is empty. */ + @Override public void preProcess(NativeWebRequest request, Callable task) throws Exception { } /** * This implementation is empty. */ + @Override public void postProcess(NativeWebRequest request, Callable task, Object concurrentResult) throws Exception { } @@ -51,6 +54,7 @@ public void postProcess(NativeWebRequest request, Callable task, Object c * This implementation always returns * {@link CallableProcessingInterceptor#RESULT_NONE RESULT_NONE}. */ + @Override public Object handleTimeout(NativeWebRequest request, Callable task) throws Exception { return RESULT_NONE; } @@ -58,6 +62,7 @@ public Object handleTimeout(NativeWebRequest request, Callable task) thro /** * This implementation is empty. */ + @Override public void afterCompletion(NativeWebRequest request, Callable task) throws Exception { } diff --git a/spring-web/src/main/java/org/springframework/web/context/request/async/DeferredResultProcessingInterceptorAdapter.java b/spring-web/src/main/java/org/springframework/web/context/request/async/DeferredResultProcessingInterceptorAdapter.java index 774761bdb656..42409c6fe2fa 100644 --- a/spring-web/src/main/java/org/springframework/web/context/request/async/DeferredResultProcessingInterceptorAdapter.java +++ b/spring-web/src/main/java/org/springframework/web/context/request/async/DeferredResultProcessingInterceptorAdapter.java @@ -30,18 +30,21 @@ public abstract class DeferredResultProcessingInterceptorAdapter implements Defe /** * This implementation is empty. */ + @Override public void beforeConcurrentHandling(NativeWebRequest request, DeferredResult deferredResult) throws Exception { } /** * This implementation is empty. */ + @Override public void preProcess(NativeWebRequest request, DeferredResult deferredResult) throws Exception { } /** * This implementation is empty. */ + @Override public void postProcess(NativeWebRequest request, DeferredResult deferredResult, Object concurrentResult) throws Exception { } @@ -49,6 +52,7 @@ public void postProcess(NativeWebRequest request, DeferredResult deferred /** * This implementation returns {@code true} by default. */ + @Override public boolean handleTimeout(NativeWebRequest request, DeferredResult deferredResult) throws Exception { return true; } @@ -56,6 +60,7 @@ public boolean handleTimeout(NativeWebRequest request, DeferredResult def /** * This implementation is empty. */ + @Override public void afterCompletion(NativeWebRequest request, DeferredResult deferredResult) throws Exception { } diff --git a/spring-web/src/main/java/org/springframework/web/context/request/async/NoSupportAsyncWebRequest.java b/spring-web/src/main/java/org/springframework/web/context/request/async/NoSupportAsyncWebRequest.java index 6158a8293175..5fa0f94a799b 100644 --- a/spring-web/src/main/java/org/springframework/web/context/request/async/NoSupportAsyncWebRequest.java +++ b/spring-web/src/main/java/org/springframework/web/context/request/async/NoSupportAsyncWebRequest.java @@ -33,32 +33,39 @@ public NoSupportAsyncWebRequest(HttpServletRequest request, HttpServletResponse super(request, response); } + @Override public void addCompletionHandler(Runnable runnable) { // ignored } + @Override public void setTimeout(Long timeout) { // ignored } + @Override public void addTimeoutHandler(Runnable runnable) { // ignored } + @Override public boolean isAsyncStarted() { return false; } // Not supported + @Override public void startAsync() { throw new UnsupportedOperationException("No async support in a pre-Servlet 3.0 runtime"); } + @Override public boolean isAsyncComplete() { throw new UnsupportedOperationException("No async support in a pre-Servlet 3.0 runtime"); } + @Override public void dispatch() { throw new UnsupportedOperationException("No async support in a pre-Servlet 3.0 runtime"); } diff --git a/spring-web/src/main/java/org/springframework/web/context/request/async/StandardServletAsyncWebRequest.java b/spring-web/src/main/java/org/springframework/web/context/request/async/StandardServletAsyncWebRequest.java index 8e5e6d4d6b0d..abb8329dce2f 100644 --- a/spring-web/src/main/java/org/springframework/web/context/request/async/StandardServletAsyncWebRequest.java +++ b/spring-web/src/main/java/org/springframework/web/context/request/async/StandardServletAsyncWebRequest.java @@ -68,19 +68,23 @@ public StandardServletAsyncWebRequest(HttpServletRequest request, HttpServletRes *

In Servlet 3 async processing, the timeout period begins after the * container processing thread has exited. */ + @Override public void setTimeout(Long timeout) { Assert.state(!isAsyncStarted(), "Cannot change the timeout with concurrent handling in progress"); this.timeout = timeout; } + @Override public void addTimeoutHandler(Runnable timeoutHandler) { this.timeoutHandlers.add(timeoutHandler); } + @Override public void addCompletionHandler(Runnable runnable) { this.completionHandlers.add(runnable); } + @Override public boolean isAsyncStarted() { return ((this.asyncContext != null) && getRequest().isAsyncStarted()); } @@ -90,10 +94,12 @@ public boolean isAsyncStarted() { *

It is important to avoid use of request and response objects after async * processing has completed. Servlet containers often re-use them. */ + @Override public boolean isAsyncComplete() { return this.asyncCompleted.get(); } + @Override public void startAsync() { Assert.state(getRequest().isAsyncSupported(), "Async support must be enabled on a servlet and for all filters involved " + @@ -111,6 +117,7 @@ public void startAsync() { } } + @Override public void dispatch() { Assert.notNull(this.asyncContext, "Cannot dispatch without an AsyncContext"); this.asyncContext.dispatch(); @@ -120,18 +127,22 @@ public void dispatch() { // Implementation of AsyncListener methods // --------------------------------------------------------------------- + @Override public void onStartAsync(AsyncEvent event) throws IOException { } + @Override public void onError(AsyncEvent event) throws IOException { } + @Override public void onTimeout(AsyncEvent event) throws IOException { for (Runnable handler : this.timeoutHandlers) { handler.run(); } } + @Override public void onComplete(AsyncEvent event) throws IOException { for (Runnable handler : this.completionHandlers) { handler.run(); diff --git a/spring-web/src/main/java/org/springframework/web/context/request/async/WebAsyncManager.java b/spring-web/src/main/java/org/springframework/web/context/request/async/WebAsyncManager.java index 8c79b4230f27..68908ea241eb 100644 --- a/spring-web/src/main/java/org/springframework/web/context/request/async/WebAsyncManager.java +++ b/spring-web/src/main/java/org/springframework/web/context/request/async/WebAsyncManager.java @@ -107,6 +107,7 @@ public void setAsyncWebRequest(final AsyncWebRequest asyncWebRequest) { Assert.state(!isConcurrentHandlingStarted(), "Can't set AsyncWebRequest with concurrent handling in progress"); this.asyncWebRequest = asyncWebRequest; this.asyncWebRequest.addCompletionHandler(new Runnable() { + @Override public void run() { asyncWebRequest.removeAttribute(WebAsyncUtils.WEB_ASYNC_MANAGER_ATTRIBUTE, RequestAttributes.SCOPE_REQUEST); } @@ -291,6 +292,7 @@ public void startCallableProcessing(final WebAsyncTask webAsyncTask, Object.. final CallableInterceptorChain interceptorChain = new CallableInterceptorChain(interceptors); this.asyncWebRequest.addTimeoutHandler(new Runnable() { + @Override public void run() { logger.debug("Processing timeout"); Object result = interceptorChain.triggerAfterTimeout(asyncWebRequest, callable); @@ -301,6 +303,7 @@ public void run() { }); this.asyncWebRequest.addCompletionHandler(new Runnable() { + @Override public void run() { interceptorChain.triggerAfterCompletion(asyncWebRequest, callable); } @@ -311,6 +314,7 @@ public void run() { startAsyncProcessing(processingContext); this.taskExecutor.submit(new Runnable() { + @Override public void run() { Object result = null; try { @@ -382,6 +386,7 @@ public void startDeferredResultProcessing( final DeferredResultInterceptorChain interceptorChain = new DeferredResultInterceptorChain(interceptors); this.asyncWebRequest.addTimeoutHandler(new Runnable() { + @Override public void run() { try { interceptorChain.triggerAfterTimeout(asyncWebRequest, deferredResult); @@ -393,6 +398,7 @@ public void run() { }); this.asyncWebRequest.addCompletionHandler(new Runnable() { + @Override public void run() { interceptorChain.triggerAfterCompletion(asyncWebRequest, deferredResult); } @@ -405,6 +411,7 @@ public void run() { try { interceptorChain.applyPreProcess(this.asyncWebRequest, deferredResult); deferredResult.setResultHandler(new DeferredResultHandler() { + @Override public void handleResult(Object result) { result = interceptorChain.applyPostProcess(asyncWebRequest, deferredResult, result); setConcurrentResultAndDispatch(result); diff --git a/spring-web/src/main/java/org/springframework/web/context/support/AbstractRefreshableWebApplicationContext.java b/spring-web/src/main/java/org/springframework/web/context/support/AbstractRefreshableWebApplicationContext.java index 92b1f7907a70..c25e2ef83465 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/AbstractRefreshableWebApplicationContext.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/AbstractRefreshableWebApplicationContext.java @@ -97,14 +97,17 @@ public AbstractRefreshableWebApplicationContext() { } + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } + @Override public ServletContext getServletContext() { return this.servletContext; } + @Override public void setServletConfig(ServletConfig servletConfig) { this.servletConfig = servletConfig; if (servletConfig != null && this.servletContext == null) { @@ -112,10 +115,12 @@ public void setServletConfig(ServletConfig servletConfig) { } } + @Override public ServletConfig getServletConfig() { return this.servletConfig; } + @Override public void setNamespace(String namespace) { this.namespace = namespace; if (namespace != null) { @@ -123,6 +128,7 @@ public void setNamespace(String namespace) { } } + @Override public String getNamespace() { return this.namespace; } @@ -209,6 +215,7 @@ protected void initPropertySources() { } } + @Override public Theme getTheme(String themeName) { return this.themeSource.getTheme(themeName); } diff --git a/spring-web/src/main/java/org/springframework/web/context/support/GenericWebApplicationContext.java b/spring-web/src/main/java/org/springframework/web/context/support/GenericWebApplicationContext.java index d30d3aef841f..40dbd0d3f2bd 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/GenericWebApplicationContext.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/GenericWebApplicationContext.java @@ -116,10 +116,12 @@ public GenericWebApplicationContext(DefaultListableBeanFactory beanFactory, Serv /** * Set the ServletContext that this WebApplicationContext runs in. */ + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } + @Override public ServletContext getServletContext() { return this.servletContext; } @@ -200,6 +202,7 @@ protected void initPropertySources() { } } + @Override public Theme getTheme(String themeName) { return this.themeSource.getTheme(themeName); } @@ -209,24 +212,29 @@ public Theme getTheme(String themeName) { // Pseudo-implementation of ConfigurableWebApplicationContext // --------------------------------------------------------------------- + @Override public void setServletConfig(ServletConfig servletConfig) { // no-op } + @Override public ServletConfig getServletConfig() { throw new UnsupportedOperationException( "GenericWebApplicationContext does not support getServletConfig()"); } + @Override public void setNamespace(String namespace) { // no-op } + @Override public String getNamespace() { throw new UnsupportedOperationException( "GenericWebApplicationContext does not support getNamespace()"); } + @Override public void setConfigLocation(String configLocation) { if (StringUtils.hasText(configLocation)) { throw new UnsupportedOperationException( @@ -235,6 +243,7 @@ public void setConfigLocation(String configLocation) { } } + @Override public void setConfigLocations(String[] configLocations) { if (!ObjectUtils.isEmpty(configLocations)) { throw new UnsupportedOperationException( @@ -243,6 +252,7 @@ public void setConfigLocations(String[] configLocations) { } } + @Override public String[] getConfigLocations() { throw new UnsupportedOperationException( "GenericWebApplicationContext does not support getConfigLocations()"); diff --git a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAttributeExporter.java b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAttributeExporter.java index 6cde766017b3..6c5427058f3d 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAttributeExporter.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAttributeExporter.java @@ -63,6 +63,7 @@ public void setAttributes(Map attributes) { this.attributes = attributes; } + @Override public void setServletContext(ServletContext servletContext) { for (Map.Entry entry : attributes.entrySet()) { String attributeName = entry.getKey(); diff --git a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAttributeFactoryBean.java b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAttributeFactoryBean.java index 3d15803bfa99..5e2d1d002900 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAttributeFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAttributeFactoryBean.java @@ -55,6 +55,7 @@ public void setAttributeName(String attributeName) { this.attributeName = attributeName; } + @Override public void setServletContext(ServletContext servletContext) { if (this.attributeName == null) { throw new IllegalArgumentException("Property 'attributeName' is required"); @@ -66,14 +67,17 @@ public void setServletContext(ServletContext servletContext) { } + @Override public Object getObject() throws Exception { return this.attribute; } + @Override public Class getObjectType() { return (this.attribute != null ? this.attribute.getClass() : null); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAwareProcessor.java b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAwareProcessor.java index 8c3c688a3cd6..8edc5af34170 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAwareProcessor.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAwareProcessor.java @@ -97,6 +97,7 @@ protected ServletConfig getServletConfig() { return this.servletConfig; } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (getServletContext() != null && bean instanceof ServletContextAware) { ((ServletContextAware) bean).setServletContext(getServletContext()); @@ -107,6 +108,7 @@ public Object postProcessBeforeInitialization(Object bean, String beanName) thro return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) { return bean; } diff --git a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextParameterFactoryBean.java b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextParameterFactoryBean.java index 6af3d8086342..27f30651ea71 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextParameterFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextParameterFactoryBean.java @@ -50,6 +50,7 @@ public void setInitParamName(String initParamName) { this.initParamName = initParamName; } + @Override public void setServletContext(ServletContext servletContext) { if (this.initParamName == null) { throw new IllegalArgumentException("initParamName is required"); @@ -61,14 +62,17 @@ public void setServletContext(ServletContext servletContext) { } + @Override public String getObject() { return this.paramValue; } + @Override public Class getObjectType() { return String.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextPropertyPlaceholderConfigurer.java b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextPropertyPlaceholderConfigurer.java index ea6cda9767c2..e2a8f1f2f29e 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextPropertyPlaceholderConfigurer.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextPropertyPlaceholderConfigurer.java @@ -109,6 +109,7 @@ public void setSearchContextAttributes(boolean searchContextAttributes) { * against the ServletContext: It will effectively behave like a plain * PropertyPlaceholderConfigurer in such a scenario. */ + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } diff --git a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextResource.java b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextResource.java index 673c39c9a11a..a05b782f8ccd 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextResource.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextResource.java @@ -134,6 +134,7 @@ public boolean isReadable() { * but throws a FileNotFoundException if no resource found. * @see javax.servlet.ServletContext#getResourceAsStream(String) */ + @Override public InputStream getInputStream() throws IOException { InputStream is = this.servletContext.getResourceAsStream(this.path); if (is == null) { @@ -202,10 +203,12 @@ public String getFilename() { * This implementation returns a description that includes the ServletContext * resource location. */ + @Override public String getDescription() { return "ServletContext resource [" + this.path + "]"; } + @Override public String getPathWithinContext() { return this.path; } diff --git a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextScope.java b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextScope.java index 180645580f9d..d16a99d3f34b 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextScope.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextScope.java @@ -62,6 +62,7 @@ public ServletContextScope(ServletContext servletContext) { } + @Override public Object get(String name, ObjectFactory objectFactory) { Object scopedObject = this.servletContext.getAttribute(name); if (scopedObject == null) { @@ -71,6 +72,7 @@ public Object get(String name, ObjectFactory objectFactory) { return scopedObject; } + @Override public Object remove(String name) { Object scopedObject = this.servletContext.getAttribute(name); if (scopedObject != null) { @@ -83,14 +85,17 @@ public Object remove(String name) { } } + @Override public void registerDestructionCallback(String name, Runnable callback) { this.destructionCallbacks.put(name, callback); } + @Override public Object resolveContextualObject(String key) { return null; } + @Override public String getConversationId() { return null; } @@ -101,6 +106,7 @@ public String getConversationId() { * To be called on ServletContext shutdown. * @see org.springframework.web.context.ContextCleanupListener */ + @Override public void destroy() { for (Runnable runnable : this.destructionCallbacks.values()) { runnable.run(); diff --git a/spring-web/src/main/java/org/springframework/web/context/support/StandardServletEnvironment.java b/spring-web/src/main/java/org/springframework/web/context/support/StandardServletEnvironment.java index b929c4bbe30f..6704b261aa5e 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/StandardServletEnvironment.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/StandardServletEnvironment.java @@ -90,6 +90,7 @@ protected void customizePropertySources(MutablePropertySources propertySources) super.customizePropertySources(propertySources); } + @Override public void initPropertySources(ServletContext servletContext, ServletConfig servletConfig) { WebApplicationContextUtils.initServletPropertySources( this.getPropertySources(), servletContext, servletConfig); diff --git a/spring-web/src/main/java/org/springframework/web/context/support/StaticWebApplicationContext.java b/spring-web/src/main/java/org/springframework/web/context/support/StaticWebApplicationContext.java index 5d26a434e3c5..772e9f23f495 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/StaticWebApplicationContext.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/StaticWebApplicationContext.java @@ -73,14 +73,17 @@ public StaticWebApplicationContext() { /** * Set the ServletContext that this WebApplicationContext runs in. */ + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } + @Override public ServletContext getServletContext() { return this.servletContext; } + @Override public void setServletConfig(ServletConfig servletConfig) { this.servletConfig = servletConfig; if (servletConfig != null && this.servletContext == null) { @@ -88,10 +91,12 @@ public void setServletConfig(ServletConfig servletConfig) { } } + @Override public ServletConfig getServletConfig() { return this.servletConfig; } + @Override public void setNamespace(String namespace) { this.namespace = namespace; if (namespace != null) { @@ -99,6 +104,7 @@ public void setNamespace(String namespace) { } } + @Override public String getNamespace() { return this.namespace; } @@ -107,6 +113,7 @@ public String getNamespace() { * The {@link StaticWebApplicationContext} class does not support this method. * @throws UnsupportedOperationException always */ + @Override public void setConfigLocation(String configLocation) { if (configLocation != null) { throw new UnsupportedOperationException("StaticWebApplicationContext does not support config locations"); @@ -117,12 +124,14 @@ public void setConfigLocation(String configLocation) { * The {@link StaticWebApplicationContext} class does not support this method. * @throws UnsupportedOperationException always */ + @Override public void setConfigLocations(String[] configLocations) { if (configLocations != null) { throw new UnsupportedOperationException("StaticWebApplicationContext does not support config locations"); } } + @Override public String[] getConfigLocations() { return null; } @@ -182,6 +191,7 @@ protected void initPropertySources() { this.getEnvironment().getPropertySources(), this.servletContext, this.servletConfig); } + @Override public Theme getTheme(String themeName) { return this.themeSource.getTheme(themeName); } diff --git a/spring-web/src/main/java/org/springframework/web/context/support/WebApplicationContextUtils.java b/spring-web/src/main/java/org/springframework/web/context/support/WebApplicationContextUtils.java index 9091e337a475..f7a5f81daa1e 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/WebApplicationContextUtils.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/WebApplicationContextUtils.java @@ -292,6 +292,7 @@ private static ServletRequestAttributes currentRequestAttributes() { @SuppressWarnings("serial") private static class RequestObjectFactory implements ObjectFactory, Serializable { + @Override public ServletRequest getObject() { return currentRequestAttributes().getRequest(); } @@ -309,6 +310,7 @@ public String toString() { @SuppressWarnings("serial") private static class SessionObjectFactory implements ObjectFactory, Serializable { + @Override public HttpSession getObject() { return currentRequestAttributes().getRequest().getSession(); } @@ -326,6 +328,7 @@ public String toString() { @SuppressWarnings("serial") private static class WebRequestObjectFactory implements ObjectFactory, Serializable { + @Override public WebRequest getObject() { return new ServletWebRequest(currentRequestAttributes().getRequest()); } @@ -344,6 +347,7 @@ private static class FacesDependencyRegistrar { public static void registerFacesDependencies(ConfigurableListableBeanFactory beanFactory) { beanFactory.registerResolvableDependency(FacesContext.class, new ObjectFactory() { + @Override public FacesContext getObject() { return FacesContext.getCurrentInstance(); } @@ -353,6 +357,7 @@ public String toString() { } }); beanFactory.registerResolvableDependency(ExternalContext.class, new ObjectFactory() { + @Override public ExternalContext getObject() { return FacesContext.getCurrentInstance().getExternalContext(); } diff --git a/spring-web/src/main/java/org/springframework/web/context/support/WebApplicationObjectSupport.java b/spring-web/src/main/java/org/springframework/web/context/support/WebApplicationObjectSupport.java index 9aa2547d62f2..b333d5927993 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/WebApplicationObjectSupport.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/WebApplicationObjectSupport.java @@ -40,6 +40,7 @@ public abstract class WebApplicationObjectSupport extends ApplicationObjectSuppo private ServletContext servletContext; + @Override public final void setServletContext(ServletContext servletContext) { if (servletContext != this.servletContext) { this.servletContext = servletContext; diff --git a/spring-web/src/main/java/org/springframework/web/filter/CompositeFilter.java b/spring-web/src/main/java/org/springframework/web/filter/CompositeFilter.java index a3551ff7671a..37e9c015ff18 100644 --- a/spring-web/src/main/java/org/springframework/web/filter/CompositeFilter.java +++ b/spring-web/src/main/java/org/springframework/web/filter/CompositeFilter.java @@ -52,6 +52,7 @@ public void setFilters(List filters) { * * @see Filter#init(FilterConfig) */ + @Override public void destroy() { for (int i = filters.size(); i-- > 0;) { Filter filter = filters.get(i); @@ -64,6 +65,7 @@ public void destroy() { * * @see Filter#init(FilterConfig) */ + @Override public void init(FilterConfig config) throws ServletException { for (Filter filter : filters) { filter.init(config); @@ -77,6 +79,7 @@ public void init(FilterConfig config) throws ServletException { * * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) */ + @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { new VirtualFilterChain(chain, filters).doFilter(request, response); @@ -92,6 +95,7 @@ private VirtualFilterChain(FilterChain chain, List additionalF this.additionalFilters = additionalFilters; } + @Override public void doFilter(final ServletRequest request, final ServletResponse response) throws IOException, ServletException { if (currentPosition == additionalFilters.size()) { diff --git a/spring-web/src/main/java/org/springframework/web/filter/DelegatingFilterProxy.java b/spring-web/src/main/java/org/springframework/web/filter/DelegatingFilterProxy.java index ea1a2155bc6e..4fb7f4fed45a 100644 --- a/spring-web/src/main/java/org/springframework/web/filter/DelegatingFilterProxy.java +++ b/spring-web/src/main/java/org/springframework/web/filter/DelegatingFilterProxy.java @@ -239,6 +239,7 @@ protected void initFilterBean() throws ServletException { } } + @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws ServletException, IOException { diff --git a/spring-web/src/main/java/org/springframework/web/filter/GenericFilterBean.java b/spring-web/src/main/java/org/springframework/web/filter/GenericFilterBean.java index 816a52c3c16c..1491a2b861a9 100644 --- a/spring-web/src/main/java/org/springframework/web/filter/GenericFilterBean.java +++ b/spring-web/src/main/java/org/springframework/web/filter/GenericFilterBean.java @@ -103,6 +103,7 @@ public abstract class GenericFilterBean implements * @see org.springframework.beans.factory.BeanNameAware * @see #getFilterName() */ + @Override public final void setBeanName(String beanName) { this.beanName = beanName; } @@ -116,6 +117,7 @@ public final void setBeanName(String beanName) { * used, this {@code Environment} can be essentially ignored. * @see #init(FilterConfig) */ + @Override public void setEnvironment(Environment environment) { this.environment = environment; } @@ -127,6 +129,7 @@ public void setEnvironment(Environment environment) { * @see org.springframework.web.context.ServletContextAware * @see #getServletContext() */ + @Override public final void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } @@ -139,6 +142,7 @@ public final void setServletContext(ServletContext servletContext) { * @see #initFilterBean() * @see #init(javax.servlet.FilterConfig) */ + @Override public void afterPropertiesSet() throws ServletException { initFilterBean(); } @@ -166,6 +170,7 @@ protected final void addRequiredProperty(String property) { * properties are missing), or if subclass initialization fails. * @see #initFilterBean */ + @Override public final void init(FilterConfig filterConfig) throws ServletException { Assert.notNull(filterConfig, "FilterConfig must not be null"); if (logger.isDebugEnabled()) { @@ -274,6 +279,7 @@ protected void initFilterBean() throws ServletException { * as well as filter bean destruction in a Spring application context. *

This default implementation is empty. */ + @Override public void destroy() { } diff --git a/spring-web/src/main/java/org/springframework/web/filter/OncePerRequestFilter.java b/spring-web/src/main/java/org/springframework/web/filter/OncePerRequestFilter.java index d422184207a4..cdb1c05182f4 100644 --- a/spring-web/src/main/java/org/springframework/web/filter/OncePerRequestFilter.java +++ b/spring-web/src/main/java/org/springframework/web/filter/OncePerRequestFilter.java @@ -83,6 +83,7 @@ public abstract class OncePerRequestFilter extends GenericFilterBean { * @see #shouldNotFilter * @see #doFilterInternal */ + @Override public final void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws ServletException, IOException { diff --git a/spring-web/src/main/java/org/springframework/web/jsf/DelegatingPhaseListenerMulticaster.java b/spring-web/src/main/java/org/springframework/web/jsf/DelegatingPhaseListenerMulticaster.java index d554e05cf592..eeea3a8cc9b4 100644 --- a/spring-web/src/main/java/org/springframework/web/jsf/DelegatingPhaseListenerMulticaster.java +++ b/spring-web/src/main/java/org/springframework/web/jsf/DelegatingPhaseListenerMulticaster.java @@ -62,16 +62,19 @@ @SuppressWarnings("serial") public class DelegatingPhaseListenerMulticaster implements PhaseListener { + @Override public PhaseId getPhaseId() { return PhaseId.ANY_PHASE; } + @Override public void beforePhase(PhaseEvent event) { for (PhaseListener listener : getDelegates(event.getFacesContext())) { listener.beforePhase(event); } } + @Override public void afterPhase(PhaseEvent event) { for (PhaseListener listener : getDelegates(event.getFacesContext())) { listener.afterPhase(event); diff --git a/spring-web/src/main/java/org/springframework/web/method/ControllerAdviceBean.java b/spring-web/src/main/java/org/springframework/web/method/ControllerAdviceBean.java index d1aa1a36d0e5..eeefa75044fa 100644 --- a/spring-web/src/main/java/org/springframework/web/method/ControllerAdviceBean.java +++ b/spring-web/src/main/java/org/springframework/web/method/ControllerAdviceBean.java @@ -101,6 +101,7 @@ public static List findAnnotatedBeans(ApplicationContext a * Returns the order value extracted from the {@link ControllerAdvice} * annotation or {@link Ordered#LOWEST_PRECEDENCE} otherwise. */ + @Override public int getOrder() { return this.order; } diff --git a/spring-web/src/main/java/org/springframework/web/method/HandlerMethodSelector.java b/spring-web/src/main/java/org/springframework/web/method/HandlerMethodSelector.java index fc43fc5f8b5c..148064d00d4a 100644 --- a/spring-web/src/main/java/org/springframework/web/method/HandlerMethodSelector.java +++ b/spring-web/src/main/java/org/springframework/web/method/HandlerMethodSelector.java @@ -56,6 +56,7 @@ public static Set selectMethods(final Class handlerType, final Method for (Class currentHandlerType : handlerTypes) { final Class targetClass = (specificHandlerType != null ? specificHandlerType : currentHandlerType); ReflectionUtils.doWithMethods(currentHandlerType, new ReflectionUtils.MethodCallback() { + @Override public void doWith(Method method) { Method specificMethod = ClassUtils.getMostSpecificMethod(method, targetClass); Method bridgedMethod = BridgeMethodResolver.findBridgedMethod(specificMethod); diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/AbstractCookieValueMethodArgumentResolver.java b/spring-web/src/main/java/org/springframework/web/method/annotation/AbstractCookieValueMethodArgumentResolver.java index cd14b2e3aecd..f49909345ae8 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/AbstractCookieValueMethodArgumentResolver.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/AbstractCookieValueMethodArgumentResolver.java @@ -48,6 +48,7 @@ public AbstractCookieValueMethodArgumentResolver(ConfigurableBeanFactory beanFac super(beanFactory); } + @Override public boolean supportsParameter(MethodParameter parameter) { return parameter.hasParameterAnnotation(CookieValue.class); } diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/AbstractWebArgumentResolverAdapter.java b/spring-web/src/main/java/org/springframework/web/method/annotation/AbstractWebArgumentResolverAdapter.java index 76e16303183a..3a8740026d26 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/AbstractWebArgumentResolverAdapter.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/AbstractWebArgumentResolverAdapter.java @@ -63,6 +63,7 @@ public AbstractWebArgumentResolverAdapter(WebArgumentResolver adaptee) { * Actually resolve the value and check the resolved value is not * {@link WebArgumentResolver#UNRESOLVED} absorbing _any_ exceptions. */ + @Override public boolean supportsParameter(MethodParameter parameter) { try { NativeWebRequest webRequest = getWebRequest(); @@ -91,6 +92,7 @@ public boolean supportsParameter(MethodParameter parameter) { * @exception IllegalStateException if the resolved value is not assignable * to the method parameter. */ + @Override public Object resolveArgument( MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/ErrorsMethodArgumentResolver.java b/spring-web/src/main/java/org/springframework/web/method/annotation/ErrorsMethodArgumentResolver.java index 63e713685bfe..bb2b31f6b160 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/ErrorsMethodArgumentResolver.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/ErrorsMethodArgumentResolver.java @@ -40,11 +40,13 @@ */ public class ErrorsMethodArgumentResolver implements HandlerMethodArgumentResolver { + @Override public boolean supportsParameter(MethodParameter parameter) { Class paramType = parameter.getParameterType(); return Errors.class.isAssignableFrom(paramType); } + @Override public Object resolveArgument( MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/ExceptionHandlerMethodResolver.java b/spring-web/src/main/java/org/springframework/web/method/annotation/ExceptionHandlerMethodResolver.java index 626b0fe21899..7db05ab78c10 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/ExceptionHandlerMethodResolver.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/ExceptionHandlerMethodResolver.java @@ -143,6 +143,7 @@ private Method getMappedMethod(Class exceptionType) { */ public final static MethodFilter EXCEPTION_HANDLER_METHODS = new MethodFilter() { + @Override public boolean matches(Method method) { return AnnotationUtils.findAnnotation(method, ExceptionHandler.class) != null; } diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/ExpressionValueMethodArgumentResolver.java b/spring-web/src/main/java/org/springframework/web/method/annotation/ExpressionValueMethodArgumentResolver.java index d93a6d43a3b6..5d20848c0bfb 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/ExpressionValueMethodArgumentResolver.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/ExpressionValueMethodArgumentResolver.java @@ -48,6 +48,7 @@ public ExpressionValueMethodArgumentResolver(ConfigurableBeanFactory beanFactory super(beanFactory); } + @Override public boolean supportsParameter(MethodParameter parameter) { return parameter.hasParameterAnnotation(Value.class); } diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/MapMethodProcessor.java b/spring-web/src/main/java/org/springframework/web/method/annotation/MapMethodProcessor.java index df430b5f0d11..ed8a0c025e5a 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/MapMethodProcessor.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/MapMethodProcessor.java @@ -38,10 +38,12 @@ */ public class MapMethodProcessor implements HandlerMethodArgumentResolver, HandlerMethodReturnValueHandler { + @Override public boolean supportsParameter(MethodParameter parameter) { return Map.class.isAssignableFrom(parameter.getParameterType()); } + @Override public Object resolveArgument( MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) @@ -50,10 +52,12 @@ public Object resolveArgument( return mavContainer.getModel(); } + @Override public boolean supportsReturnType(MethodParameter returnType) { return Map.class.isAssignableFrom(returnType.getParameterType()); } + @Override @SuppressWarnings({ "unchecked", "rawtypes" }) public void handleReturnValue( Object returnValue, MethodParameter returnType, diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/ModelAttributeMethodProcessor.java b/spring-web/src/main/java/org/springframework/web/method/annotation/ModelAttributeMethodProcessor.java index d2e25293603a..aee03bef146b 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/ModelAttributeMethodProcessor.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/ModelAttributeMethodProcessor.java @@ -71,6 +71,7 @@ public ModelAttributeMethodProcessor(boolean annotationNotRequired) { * @return true if the parameter is annotated with {@link ModelAttribute} * or in default resolution mode also if it is not a simple type. */ + @Override public boolean supportsParameter(MethodParameter parameter) { if (parameter.hasParameterAnnotation(ModelAttribute.class)) { return true; @@ -92,6 +93,7 @@ else if (this.annotationNotRequired) { * and the next method parameter is not of type {@link Errors}. * @throws Exception if WebDataBinder initialization fails. */ + @Override public final Object resolveArgument( MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest request, WebDataBinderFactory binderFactory) @@ -180,6 +182,7 @@ protected boolean isBindExceptionRequired(WebDataBinder binder, MethodParameter * Return {@code true} if there is a method-level {@code @ModelAttribute} * or if it is a non-simple type when {@code annotationNotRequired=true}. */ + @Override public boolean supportsReturnType(MethodParameter returnType) { if (returnType.getMethodAnnotation(ModelAttribute.class) != null) { return true; @@ -195,6 +198,7 @@ else if (this.annotationNotRequired) { /** * Add non-null return values to the {@link ModelAndViewContainer}. */ + @Override public void handleReturnValue( Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/ModelMethodProcessor.java b/spring-web/src/main/java/org/springframework/web/method/annotation/ModelMethodProcessor.java index c529efd8a3da..c1bc41385160 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/ModelMethodProcessor.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/ModelMethodProcessor.java @@ -37,10 +37,12 @@ */ public class ModelMethodProcessor implements HandlerMethodArgumentResolver, HandlerMethodReturnValueHandler { + @Override public boolean supportsParameter(MethodParameter parameter) { return Model.class.isAssignableFrom(parameter.getParameterType()); } + @Override public Object resolveArgument( MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) @@ -49,10 +51,12 @@ public Object resolveArgument( return mavContainer.getModel(); } + @Override public boolean supportsReturnType(MethodParameter returnType) { return Model.class.isAssignableFrom(returnType.getParameterType()); } + @Override public void handleReturnValue( Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/RequestHeaderMapMethodArgumentResolver.java b/spring-web/src/main/java/org/springframework/web/method/annotation/RequestHeaderMapMethodArgumentResolver.java index 4843782efb96..e335b9dbf519 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/RequestHeaderMapMethodArgumentResolver.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/RequestHeaderMapMethodArgumentResolver.java @@ -45,11 +45,13 @@ */ public class RequestHeaderMapMethodArgumentResolver implements HandlerMethodArgumentResolver { + @Override public boolean supportsParameter(MethodParameter parameter) { return parameter.hasParameterAnnotation(RequestHeader.class) && Map.class.isAssignableFrom(parameter.getParameterType()); } + @Override public Object resolveArgument( MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/RequestHeaderMethodArgumentResolver.java b/spring-web/src/main/java/org/springframework/web/method/annotation/RequestHeaderMethodArgumentResolver.java index 7e4fdb403675..70067715ac8f 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/RequestHeaderMethodArgumentResolver.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/RequestHeaderMethodArgumentResolver.java @@ -52,6 +52,7 @@ public RequestHeaderMethodArgumentResolver(ConfigurableBeanFactory beanFactory) super(beanFactory); } + @Override public boolean supportsParameter(MethodParameter parameter) { return parameter.hasParameterAnnotation(RequestHeader.class) && !Map.class.isAssignableFrom(parameter.getParameterType()); diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/RequestParamMapMethodArgumentResolver.java b/spring-web/src/main/java/org/springframework/web/method/annotation/RequestParamMapMethodArgumentResolver.java index befe7178d9d0..8708e5a5a031 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/RequestParamMapMethodArgumentResolver.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/RequestParamMapMethodArgumentResolver.java @@ -45,6 +45,7 @@ */ public class RequestParamMapMethodArgumentResolver implements HandlerMethodArgumentResolver { + @Override public boolean supportsParameter(MethodParameter parameter) { RequestParam requestParamAnnot = parameter.getParameterAnnotation(RequestParam.class); if (requestParamAnnot != null) { @@ -55,6 +56,7 @@ public boolean supportsParameter(MethodParameter parameter) { return false; } + @Override public Object resolveArgument( MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/RequestParamMethodArgumentResolver.java b/spring-web/src/main/java/org/springframework/web/method/annotation/RequestParamMethodArgumentResolver.java index 2a532f4bed8c..b254bab033a2 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/RequestParamMethodArgumentResolver.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/RequestParamMethodArgumentResolver.java @@ -102,6 +102,7 @@ public RequestParamMethodArgumentResolver(ConfigurableBeanFactory beanFactory, * even if not with @{@link RequestParam}. * */ + @Override public boolean supportsParameter(MethodParameter parameter) { Class paramType = parameter.getParameterType(); if (parameter.hasParameterAnnotation(RequestParam.class)) { diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/SessionStatusMethodArgumentResolver.java b/spring-web/src/main/java/org/springframework/web/method/annotation/SessionStatusMethodArgumentResolver.java index f19ae7372756..c9ae58b64789 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/SessionStatusMethodArgumentResolver.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/SessionStatusMethodArgumentResolver.java @@ -32,10 +32,12 @@ */ public class SessionStatusMethodArgumentResolver implements HandlerMethodArgumentResolver { + @Override public boolean supportsParameter(MethodParameter parameter) { return SessionStatus.class.equals(parameter.getParameterType()); } + @Override public Object resolveArgument( MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) diff --git a/spring-web/src/main/java/org/springframework/web/method/support/HandlerMethodArgumentResolverComposite.java b/spring-web/src/main/java/org/springframework/web/method/support/HandlerMethodArgumentResolverComposite.java index 21c88153fbde..6fa290d05d95 100644 --- a/spring-web/src/main/java/org/springframework/web/method/support/HandlerMethodArgumentResolverComposite.java +++ b/spring-web/src/main/java/org/springframework/web/method/support/HandlerMethodArgumentResolverComposite.java @@ -59,6 +59,7 @@ public List getResolvers() { * Whether the given {@linkplain MethodParameter method parameter} is supported by any registered * {@link HandlerMethodArgumentResolver}. */ + @Override public boolean supportsParameter(MethodParameter parameter) { return getArgumentResolver(parameter) != null; } @@ -67,6 +68,7 @@ public boolean supportsParameter(MethodParameter parameter) { * Iterate over registered {@link HandlerMethodArgumentResolver}s and invoke the one that supports it. * @exception IllegalStateException if no suitable {@link HandlerMethodArgumentResolver} is found. */ + @Override public Object resolveArgument( MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) diff --git a/spring-web/src/main/java/org/springframework/web/method/support/HandlerMethodReturnValueHandlerComposite.java b/spring-web/src/main/java/org/springframework/web/method/support/HandlerMethodReturnValueHandlerComposite.java index fb364be2b39b..991c5ef73ead 100644 --- a/spring-web/src/main/java/org/springframework/web/method/support/HandlerMethodReturnValueHandlerComposite.java +++ b/spring-web/src/main/java/org/springframework/web/method/support/HandlerMethodReturnValueHandlerComposite.java @@ -51,6 +51,7 @@ public List getHandlers() { * Whether the given {@linkplain MethodParameter method return type} is supported by any registered * {@link HandlerMethodReturnValueHandler}. */ + @Override public boolean supportsReturnType(MethodParameter returnType) { return getReturnValueHandler(returnType) != null; } @@ -59,6 +60,7 @@ public boolean supportsReturnType(MethodParameter returnType) { * Iterate over registered {@link HandlerMethodReturnValueHandler}s and invoke the one that supports it. * @exception IllegalStateException if no suitable {@link HandlerMethodReturnValueHandler} is found. */ + @Override public void handleReturnValue( Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) diff --git a/spring-web/src/main/java/org/springframework/web/multipart/commons/CommonsMultipartFile.java b/spring-web/src/main/java/org/springframework/web/multipart/commons/CommonsMultipartFile.java index ae9ae6ecf102..b649e587e066 100644 --- a/spring-web/src/main/java/org/springframework/web/multipart/commons/CommonsMultipartFile.java +++ b/spring-web/src/main/java/org/springframework/web/multipart/commons/CommonsMultipartFile.java @@ -65,10 +65,12 @@ public final FileItem getFileItem() { } + @Override public String getName() { return this.fileItem.getFieldName(); } + @Override public String getOriginalFilename() { String filename = this.fileItem.getName(); if (filename == null) { @@ -91,18 +93,22 @@ public String getOriginalFilename() { } } + @Override public String getContentType() { return this.fileItem.getContentType(); } + @Override public boolean isEmpty() { return (this.size == 0); } + @Override public long getSize() { return this.size; } + @Override public byte[] getBytes() { if (!isAvailable()) { throw new IllegalStateException("File has been moved - cannot be read again"); @@ -111,6 +117,7 @@ public byte[] getBytes() { return (bytes != null ? bytes : new byte[0]); } + @Override public InputStream getInputStream() throws IOException { if (!isAvailable()) { throw new IllegalStateException("File has been moved - cannot be read again"); @@ -119,6 +126,7 @@ public InputStream getInputStream() throws IOException { return (inputStream != null ? inputStream : new ByteArrayInputStream(new byte[0])); } + @Override public void transferTo(File dest) throws IOException, IllegalStateException { if (!isAvailable()) { throw new IllegalStateException("File has already been moved - cannot be transferred again"); diff --git a/spring-web/src/main/java/org/springframework/web/multipart/commons/CommonsMultipartResolver.java b/spring-web/src/main/java/org/springframework/web/multipart/commons/CommonsMultipartResolver.java index 25f743befc94..977042863df4 100644 --- a/spring-web/src/main/java/org/springframework/web/multipart/commons/CommonsMultipartResolver.java +++ b/spring-web/src/main/java/org/springframework/web/multipart/commons/CommonsMultipartResolver.java @@ -111,6 +111,7 @@ protected FileUpload newFileUpload(FileItemFactory fileItemFactory) { return new ServletFileUpload(fileItemFactory); } + @Override public void setServletContext(ServletContext servletContext) { if (!isUploadTempDirSpecified()) { getFileItemFactory().setRepository(WebUtils.getTempDir(servletContext)); @@ -118,10 +119,12 @@ public void setServletContext(ServletContext servletContext) { } + @Override public boolean isMultipart(HttpServletRequest request) { return (request != null && ServletFileUpload.isMultipartContent(request)); } + @Override public MultipartHttpServletRequest resolveMultipart(final HttpServletRequest request) throws MultipartException { Assert.notNull(request, "Request must not be null"); if (this.resolveLazily) { @@ -182,6 +185,7 @@ protected String determineEncoding(HttpServletRequest request) { return encoding; } + @Override public void cleanupMultipart(MultipartHttpServletRequest request) { if (request != null) { try { diff --git a/spring-web/src/main/java/org/springframework/web/multipart/support/AbstractMultipartHttpServletRequest.java b/spring-web/src/main/java/org/springframework/web/multipart/support/AbstractMultipartHttpServletRequest.java index 9f8b4e52bd21..decbe3859f2c 100644 --- a/spring-web/src/main/java/org/springframework/web/multipart/support/AbstractMultipartHttpServletRequest.java +++ b/spring-web/src/main/java/org/springframework/web/multipart/support/AbstractMultipartHttpServletRequest.java @@ -59,10 +59,12 @@ public HttpServletRequest getRequest() { return (HttpServletRequest) super.getRequest(); } + @Override public HttpMethod getRequestMethod() { return HttpMethod.valueOf(getRequest().getMethod()); } + @Override public HttpHeaders getRequestHeaders() { HttpHeaders headers = new HttpHeaders(); Enumeration headerNames = getHeaderNames(); @@ -73,14 +75,17 @@ public HttpHeaders getRequestHeaders() { return headers; } + @Override public Iterator getFileNames() { return getMultipartFiles().keySet().iterator(); } + @Override public MultipartFile getFile(String name) { return getMultipartFiles().getFirst(name); } + @Override public List getFiles(String name) { List multipartFiles = getMultipartFiles().get(name); if (multipartFiles != null) { @@ -91,10 +96,12 @@ public List getFiles(String name) { } } + @Override public Map getFileMap() { return getMultipartFiles().toSingleValueMap(); } + @Override public MultiValueMap getMultiFileMap() { return getMultipartFiles(); } diff --git a/spring-web/src/main/java/org/springframework/web/multipart/support/DefaultMultipartHttpServletRequest.java b/spring-web/src/main/java/org/springframework/web/multipart/support/DefaultMultipartHttpServletRequest.java index ee0a9b7f65aa..33c9925ea782 100644 --- a/spring-web/src/main/java/org/springframework/web/multipart/support/DefaultMultipartHttpServletRequest.java +++ b/spring-web/src/main/java/org/springframework/web/multipart/support/DefaultMultipartHttpServletRequest.java @@ -110,6 +110,7 @@ public Map getParameterMap() { return paramMap; } + @Override public String getMultipartContentType(String paramOrFileName) { MultipartFile file = getFile(paramOrFileName); if (file != null) { @@ -120,6 +121,7 @@ public String getMultipartContentType(String paramOrFileName) { } } + @Override public HttpHeaders getMultipartHeaders(String paramOrFileName) { String contentType = getMultipartContentType(paramOrFileName); if (contentType != null) { diff --git a/spring-web/src/main/java/org/springframework/web/multipart/support/StandardMultipartHttpServletRequest.java b/spring-web/src/main/java/org/springframework/web/multipart/support/StandardMultipartHttpServletRequest.java index 38287b4f95b3..46a9886fe26e 100644 --- a/spring-web/src/main/java/org/springframework/web/multipart/support/StandardMultipartHttpServletRequest.java +++ b/spring-web/src/main/java/org/springframework/web/multipart/support/StandardMultipartHttpServletRequest.java @@ -95,6 +95,7 @@ private String extractFilename(String contentDisposition) { } + @Override public String getMultipartContentType(String paramOrFileName) { try { Part part = getPart(paramOrFileName); @@ -105,6 +106,7 @@ public String getMultipartContentType(String paramOrFileName) { } } + @Override public HttpHeaders getMultipartHeaders(String paramOrFileName) { try { Part part = getPart(paramOrFileName); @@ -139,34 +141,42 @@ public StandardMultipartFile(Part part, String filename) { this.filename = filename; } + @Override public String getName() { return this.part.getName(); } + @Override public String getOriginalFilename() { return this.filename; } + @Override public String getContentType() { return this.part.getContentType(); } + @Override public boolean isEmpty() { return (this.part.getSize() == 0); } + @Override public long getSize() { return this.part.getSize(); } + @Override public byte[] getBytes() throws IOException { return FileCopyUtils.copyToByteArray(this.part.getInputStream()); } + @Override public InputStream getInputStream() throws IOException { return this.part.getInputStream(); } + @Override public void transferTo(File dest) throws IOException, IllegalStateException { this.part.write(dest.getPath()); } diff --git a/spring-web/src/main/java/org/springframework/web/multipart/support/StandardServletMultipartResolver.java b/spring-web/src/main/java/org/springframework/web/multipart/support/StandardServletMultipartResolver.java index f2b564e1c615..25cc39510a96 100644 --- a/spring-web/src/main/java/org/springframework/web/multipart/support/StandardServletMultipartResolver.java +++ b/spring-web/src/main/java/org/springframework/web/multipart/support/StandardServletMultipartResolver.java @@ -45,6 +45,7 @@ */ public class StandardServletMultipartResolver implements MultipartResolver { + @Override public boolean isMultipart(HttpServletRequest request) { // Same check as in Commons FileUpload... if (!"post".equals(request.getMethod().toLowerCase())) { @@ -54,10 +55,12 @@ public boolean isMultipart(HttpServletRequest request) { return (contentType != null && contentType.toLowerCase().startsWith("multipart/")); } + @Override public MultipartHttpServletRequest resolveMultipart(HttpServletRequest request) throws MultipartException { return new StandardMultipartHttpServletRequest(request); } + @Override public void cleanupMultipart(MultipartHttpServletRequest request) { // To be on the safe side: explicitly delete the parts, // but only actual file parts (for Resin compatibility) diff --git a/spring-web/src/main/java/org/springframework/web/util/HierarchicalUriComponents.java b/spring-web/src/main/java/org/springframework/web/util/HierarchicalUriComponents.java index e744dc2c632d..60ac59324753 100644 --- a/spring-web/src/main/java/org/springframework/web/util/HierarchicalUriComponents.java +++ b/spring-web/src/main/java/org/springframework/web/util/HierarchicalUriComponents.java @@ -603,25 +603,30 @@ public FullPathComponent(String path) { this.path = path; } + @Override public String getPath() { return path; } + @Override public List getPathSegments() { String delimiter = new String(new char[]{PATH_DELIMITER}); String[] pathSegments = StringUtils.tokenizeToStringArray(path, delimiter); return Collections.unmodifiableList(Arrays.asList(pathSegments)); } + @Override public PathComponent encode(String encoding) throws UnsupportedEncodingException { String encodedPath = encodeUriComponent(getPath(),encoding, Type.PATH); return new FullPathComponent(encodedPath); } + @Override public void verify() { verifyUriComponent(this.path, Type.PATH); } + @Override public PathComponent expand(UriTemplateVariables uriVariables) { String expandedPath = expandUriComponent(getPath(), uriVariables); return new FullPathComponent(expandedPath); @@ -651,6 +656,7 @@ public PathSegmentComponent(List pathSegments) { this.pathSegments = Collections.unmodifiableList(pathSegments); } + @Override public String getPath() { StringBuilder pathBuilder = new StringBuilder(); pathBuilder.append(PATH_DELIMITER); @@ -664,10 +670,12 @@ public String getPath() { return pathBuilder.toString(); } + @Override public List getPathSegments() { return this.pathSegments; } + @Override public PathComponent encode(String encoding) throws UnsupportedEncodingException { List pathSegments = getPathSegments(); List encodedPathSegments = new ArrayList(pathSegments.size()); @@ -678,12 +686,14 @@ public PathComponent encode(String encoding) throws UnsupportedEncodingException return new PathSegmentComponent(encodedPathSegments); } + @Override public void verify() { for (String pathSegment : getPathSegments()) { verifyUriComponent(pathSegment, Type.PATH_SEGMENT); } } + @Override public PathComponent expand(UriTemplateVariables uriVariables) { List pathSegments = getPathSegments(); List expandedPathSegments = new ArrayList(pathSegments.size()); @@ -718,6 +728,7 @@ public PathComponentComposite(List pathComponents) { this.pathComponents = pathComponents; } + @Override public String getPath() { StringBuilder pathBuilder = new StringBuilder(); for (PathComponent pathComponent : this.pathComponents) { @@ -726,6 +737,7 @@ public String getPath() { return pathBuilder.toString(); } + @Override public List getPathSegments() { List result = new ArrayList(); for (PathComponent pathComponent : this.pathComponents) { @@ -734,6 +746,7 @@ public List getPathSegments() { return result; } + @Override public PathComponent encode(String encoding) throws UnsupportedEncodingException { List encodedComponents = new ArrayList(this.pathComponents.size()); for (PathComponent pathComponent : this.pathComponents) { @@ -742,12 +755,14 @@ public PathComponent encode(String encoding) throws UnsupportedEncodingException return new PathComponentComposite(encodedComponents); } + @Override public void verify() { for (PathComponent pathComponent : this.pathComponents) { pathComponent.verify(); } } + @Override public PathComponent expand(UriTemplateVariables uriVariables) { List expandedComponents = new ArrayList(this.pathComponents.size()); for (PathComponent pathComponent : this.pathComponents) { @@ -762,17 +777,22 @@ public PathComponent expand(UriTemplateVariables uriVariables) { * Represents an empty path. */ static final PathComponent NULL_PATH_COMPONENT = new PathComponent() { + @Override public String getPath() { return null; } + @Override public List getPathSegments() { return Collections.emptyList(); } + @Override public PathComponent encode(String encoding) throws UnsupportedEncodingException { return this; } + @Override public void verify() { } + @Override public PathComponent expand(UriTemplateVariables uriVariables) { return this; } diff --git a/spring-web/src/main/java/org/springframework/web/util/HttpSessionMutexListener.java b/spring-web/src/main/java/org/springframework/web/util/HttpSessionMutexListener.java index ab7a7101478c..c0a7f344e66a 100644 --- a/spring-web/src/main/java/org/springframework/web/util/HttpSessionMutexListener.java +++ b/spring-web/src/main/java/org/springframework/web/util/HttpSessionMutexListener.java @@ -44,10 +44,12 @@ */ public class HttpSessionMutexListener implements HttpSessionListener { + @Override public void sessionCreated(HttpSessionEvent event) { event.getSession().setAttribute(WebUtils.SESSION_MUTEX_ATTRIBUTE, new Mutex()); } + @Override public void sessionDestroyed(HttpSessionEvent event) { event.getSession().removeAttribute(WebUtils.SESSION_MUTEX_ATTRIBUTE); } diff --git a/spring-web/src/main/java/org/springframework/web/util/IntrospectorCleanupListener.java b/spring-web/src/main/java/org/springframework/web/util/IntrospectorCleanupListener.java index bf0ed911b4ac..8a96df095a1c 100644 --- a/spring-web/src/main/java/org/springframework/web/util/IntrospectorCleanupListener.java +++ b/spring-web/src/main/java/org/springframework/web/util/IntrospectorCleanupListener.java @@ -71,10 +71,12 @@ */ public class IntrospectorCleanupListener implements ServletContextListener { + @Override public void contextInitialized(ServletContextEvent event) { CachedIntrospectionResults.acceptClassLoader(Thread.currentThread().getContextClassLoader()); } + @Override public void contextDestroyed(ServletContextEvent event) { CachedIntrospectionResults.clearClassLoader(Thread.currentThread().getContextClassLoader()); Introspector.flushCaches(); diff --git a/spring-web/src/main/java/org/springframework/web/util/Log4jConfigListener.java b/spring-web/src/main/java/org/springframework/web/util/Log4jConfigListener.java index 0ca9e35d32bb..ad38baa0dfbb 100644 --- a/spring-web/src/main/java/org/springframework/web/util/Log4jConfigListener.java +++ b/spring-web/src/main/java/org/springframework/web/util/Log4jConfigListener.java @@ -41,10 +41,12 @@ */ public class Log4jConfigListener implements ServletContextListener { + @Override public void contextInitialized(ServletContextEvent event) { Log4jWebConfigurer.initLogging(event.getServletContext()); } + @Override public void contextDestroyed(ServletContextEvent event) { Log4jWebConfigurer.shutdownLogging(event.getServletContext()); } diff --git a/spring-web/src/main/java/org/springframework/web/util/ServletContextPropertyUtils.java b/spring-web/src/main/java/org/springframework/web/util/ServletContextPropertyUtils.java index 46105f8aa03a..c018aa3a0b43 100644 --- a/spring-web/src/main/java/org/springframework/web/util/ServletContextPropertyUtils.java +++ b/spring-web/src/main/java/org/springframework/web/util/ServletContextPropertyUtils.java @@ -89,7 +89,8 @@ public ServletContextPlaceholderResolver(String text, ServletContext servletCont this.servletContext = servletContext; } - public String resolvePlaceholder(String placeholderName) { + @Override + public String resolvePlaceholder(String placeholderName) { try { String propVal = this.servletContext.getInitParameter(placeholderName); if (propVal == null) { diff --git a/spring-web/src/main/java/org/springframework/web/util/UriComponents.java b/spring-web/src/main/java/org/springframework/web/util/UriComponents.java index cbdf13ef6b02..704ce965b92b 100644 --- a/spring-web/src/main/java/org/springframework/web/util/UriComponents.java +++ b/spring-web/src/main/java/org/springframework/web/util/UriComponents.java @@ -245,6 +245,7 @@ public MapTemplateVariables(Map uriVariables) { this.uriVariables = uriVariables; } + @Override public Object getValue(String name) { if (!this.uriVariables.containsKey(name)) { throw new IllegalArgumentException("Map has no value for '" + name + "'"); @@ -265,6 +266,7 @@ public VarArgsTemplateVariables(Object... uriVariableValues) { this.valueIterator = Arrays.asList(uriVariableValues).iterator(); } + @Override public Object getValue(String name) { if (!this.valueIterator.hasNext()) { throw new IllegalArgumentException( diff --git a/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java b/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java index 13968ae813e8..af8aed5f1155 100644 --- a/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java +++ b/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java @@ -604,6 +604,7 @@ private T getLastBuilder(Class builderClass) { return null; } + @Override public PathComponent build() { int size = this.componentBuilders.size(); List components = new ArrayList(size); @@ -632,6 +633,7 @@ public void append(String path) { this.path.append(path); } + @Override public PathComponent build() { if (this.path.length() == 0) { return null; @@ -661,6 +663,7 @@ public void append(String... pathSegments) { } } + @Override public PathComponent build() { return (this.pathSegments.isEmpty() ? null : new HierarchicalUriComponents.PathSegmentComponent(this.pathSegments)); diff --git a/spring-web/src/main/java/org/springframework/web/util/WebAppRootListener.java b/spring-web/src/main/java/org/springframework/web/util/WebAppRootListener.java index 832ea24d31a3..36078f7b638b 100644 --- a/spring-web/src/main/java/org/springframework/web/util/WebAppRootListener.java +++ b/spring-web/src/main/java/org/springframework/web/util/WebAppRootListener.java @@ -52,10 +52,12 @@ */ public class WebAppRootListener implements ServletContextListener { + @Override public void contextInitialized(ServletContextEvent event) { WebUtils.setWebAppRootSystemProperty(event.getServletContext()); } + @Override public void contextDestroyed(ServletContextEvent event) { WebUtils.removeWebAppRootSystemProperty(event.getServletContext()); } diff --git a/spring-web/src/test/java/org/springframework/mock/web/test/MockAsyncContext.java b/spring-web/src/test/java/org/springframework/mock/web/test/MockAsyncContext.java index 14f4b7a03648..69a4958582cb 100644 --- a/spring-web/src/test/java/org/springframework/mock/web/test/MockAsyncContext.java +++ b/spring-web/src/test/java/org/springframework/mock/web/test/MockAsyncContext.java @@ -71,6 +71,7 @@ public boolean hasOriginalRequestAndResponse() { return (this.request instanceof MockHttpServletRequest) && (this.response instanceof MockHttpServletResponse); } + @Override public void dispatch() { dispatch(this.request.getRequestURI()); } @@ -89,6 +90,7 @@ public String getDispatchedPath() { return this.dispatchedPath; } + @Override public void complete() { MockHttpServletRequest mockRequest = WebUtils.getNativeRequest(request, MockHttpServletRequest.class); if (mockRequest != null) { @@ -109,6 +111,7 @@ public void start(Runnable runnable) { runnable.run(); } + @Override public void addListener(AsyncListener listener) { this.listeners.add(listener); } @@ -122,14 +125,17 @@ public List getListeners() { return this.listeners; } + @Override public T createListener(Class clazz) throws ServletException { return BeanUtils.instantiateClass(clazz); } + @Override public void setTimeout(long timeout) { this.timeout = timeout; } + @Override public long getTimeout() { return this.timeout; } diff --git a/spring-web/src/test/java/org/springframework/mock/web/test/MockSessionCookieConfig.java b/spring-web/src/test/java/org/springframework/mock/web/test/MockSessionCookieConfig.java index 095741a81cd2..5300d8374e9e 100644 --- a/spring-web/src/test/java/org/springframework/mock/web/test/MockSessionCookieConfig.java +++ b/spring-web/src/test/java/org/springframework/mock/web/test/MockSessionCookieConfig.java @@ -42,58 +42,72 @@ public class MockSessionCookieConfig implements SessionCookieConfig { private int maxAge; + @Override public void setName(String name) { this.name = name; } + @Override public String getName() { return this.name; } + @Override public void setDomain(String domain) { this.domain = domain; } + @Override public String getDomain() { return this.domain; } + @Override public void setPath(String path) { this.path = path; } + @Override public String getPath() { return this.path; } + @Override public void setComment(String comment) { this.comment = comment; } + @Override public String getComment() { return this.comment; } + @Override public void setHttpOnly(boolean httpOnly) { this.httpOnly = httpOnly; } + @Override public boolean isHttpOnly() { return this.httpOnly; } + @Override public void setSecure(boolean secure) { this.secure = secure; } + @Override public boolean isSecure() { return this.secure; } + @Override public void setMaxAge(int maxAge) { this.maxAge = maxAge; } + @Override public int getMaxAge() { return this.maxAge; } diff --git a/spring-web/src/test/java/org/springframework/web/multipart/support/ByteArrayMultipartFileEditorTests.java b/spring-web/src/test/java/org/springframework/web/multipart/support/ByteArrayMultipartFileEditorTests.java index df10bd0d09ef..a3de4860cea0 100644 --- a/spring-web/src/test/java/org/springframework/web/multipart/support/ByteArrayMultipartFileEditorTests.java +++ b/spring-web/src/test/java/org/springframework/web/multipart/support/ByteArrayMultipartFileEditorTests.java @@ -47,6 +47,7 @@ public void testSetValueAsCustomObjectInvokesToString() throws Exception { ByteArrayMultipartFileEditor editor = new ByteArrayMultipartFileEditor(); final String expectedValue = "'Green Wing' - classic British comedy"; Object object = new Object() { + @Override public String toString() { return expectedValue; } diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/FrameworkPortlet.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/FrameworkPortlet.java index b876da36b754..d67899df6ac0 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/FrameworkPortlet.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/FrameworkPortlet.java @@ -421,6 +421,7 @@ public void refresh() { * triggering a refresh of this servlet's context-dependent state. * @param event the incoming ApplicationContext event */ + @Override public void onApplicationEvent(ContextRefreshedEvent event) { this.refreshEventReceived = true; onRefresh(event.getApplicationContext()); diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/GenericPortletBean.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/GenericPortletBean.java index 13b981b94157..4febdfc9e816 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/GenericPortletBean.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/GenericPortletBean.java @@ -174,6 +174,7 @@ protected void initPortletBean() throws PortletException { * @throws IllegalArgumentException if environment is not assignable to * {@code ConfigurableEnvironment}. */ + @Override public void setEnvironment(Environment environment) { Assert.isInstanceOf(ConfigurableEnvironment.class, environment); this.environment = (ConfigurableEnvironment)environment; @@ -184,6 +185,7 @@ public void setEnvironment(Environment environment) { *

If {@code null}, a new environment will be initialized via * {@link #createEnvironment()}. */ + @Override public ConfigurableEnvironment getEnvironment() { if (this.environment == null) { this.environment = this.createEnvironment(); diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/AbstractRefreshablePortletApplicationContext.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/AbstractRefreshablePortletApplicationContext.java index c61dd503edaa..1df9110d19c6 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/AbstractRefreshablePortletApplicationContext.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/AbstractRefreshablePortletApplicationContext.java @@ -104,18 +104,22 @@ public void setParent(ApplicationContext parent) { } } + @Override public ServletContext getServletContext() { return this.servletContext; } + @Override public void setPortletContext(PortletContext portletContext) { this.portletContext = portletContext; } + @Override public PortletContext getPortletContext() { return this.portletContext; } + @Override public void setPortletConfig(PortletConfig portletConfig) { this.portletConfig = portletConfig; if (portletConfig != null && this.portletContext == null) { @@ -123,10 +127,12 @@ public void setPortletConfig(PortletConfig portletConfig) { } } + @Override public PortletConfig getPortletConfig() { return this.portletConfig; } + @Override public void setNamespace(String namespace) { this.namespace = namespace; if (namespace != null) { @@ -134,6 +140,7 @@ public void setNamespace(String namespace) { } } + @Override public String getNamespace() { return this.namespace; } diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletApplicationContextUtils.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletApplicationContextUtils.java index 40d39905e1d5..e218e2938e33 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletApplicationContextUtils.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletApplicationContextUtils.java @@ -244,6 +244,7 @@ private static PortletRequestAttributes currentRequestAttributes() { @SuppressWarnings("serial") private static class RequestObjectFactory implements ObjectFactory, Serializable { + @Override public PortletRequest getObject() { return currentRequestAttributes().getRequest(); } @@ -261,6 +262,7 @@ public String toString() { @SuppressWarnings("serial") private static class SessionObjectFactory implements ObjectFactory, Serializable { + @Override public PortletSession getObject() { return currentRequestAttributes().getRequest().getPortletSession(); } @@ -278,6 +280,7 @@ public String toString() { @SuppressWarnings("serial") private static class WebRequestObjectFactory implements ObjectFactory, Serializable { + @Override public WebRequest getObject() { return new PortletWebRequest(currentRequestAttributes().getRequest()); } diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletApplicationObjectSupport.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletApplicationObjectSupport.java index 0007c187e411..d780573c1598 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletApplicationObjectSupport.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletApplicationObjectSupport.java @@ -36,6 +36,7 @@ public abstract class PortletApplicationObjectSupport extends ApplicationObjectS private PortletContext portletContext; + @Override public void setPortletContext(PortletContext portletContext) { this.portletContext = portletContext; } diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletContextAwareProcessor.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletContextAwareProcessor.java index b9df018158fe..c941c6a187ff 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletContextAwareProcessor.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletContextAwareProcessor.java @@ -69,6 +69,7 @@ public PortletContextAwareProcessor(PortletContext portletContext, PortletConfig } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (this.portletContext != null && bean instanceof PortletContextAware) { ((PortletContextAware) bean).setPortletContext(this.portletContext); @@ -79,6 +80,7 @@ public Object postProcessBeforeInitialization(Object bean, String beanName) thro return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) { return bean; } diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletContextResource.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletContextResource.java index 22fe3c7dd831..492d1432e88d 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletContextResource.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletContextResource.java @@ -134,6 +134,7 @@ public boolean isReadable() { * but throws a FileNotFoundException if not found. * @see javax.portlet.PortletContext#getResourceAsStream(String) */ + @Override public InputStream getInputStream() throws IOException { InputStream is = this.portletContext.getResourceAsStream(this.path); if (is == null) { @@ -188,10 +189,12 @@ public String getFilename() { return StringUtils.getFilename(this.path); } + @Override public String getDescription() { return "PortletContext resource [" + this.path + "]"; } + @Override public String getPathWithinContext() { return this.path; } diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletContextScope.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletContextScope.java index 5dd52cfd49f4..e2c42a09bb4f 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletContextScope.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletContextScope.java @@ -62,6 +62,7 @@ public PortletContextScope(PortletContext portletContext) { } + @Override public Object get(String name, ObjectFactory objectFactory) { Object scopedObject = this.portletContext.getAttribute(name); if (scopedObject == null) { @@ -71,6 +72,7 @@ public Object get(String name, ObjectFactory objectFactory) { return scopedObject; } + @Override public Object remove(String name) { Object scopedObject = this.portletContext.getAttribute(name); if (scopedObject != null) { @@ -83,14 +85,17 @@ public Object remove(String name) { } } + @Override public void registerDestructionCallback(String name, Runnable callback) { this.destructionCallbacks.put(name, callback); } + @Override public Object resolveContextualObject(String key) { return null; } + @Override public String getConversationId() { return null; } @@ -101,6 +106,7 @@ public String getConversationId() { * To be called on ServletContext shutdown. * @see org.springframework.web.context.ContextCleanupListener */ + @Override public void destroy() { for (Runnable runnable : this.destructionCallbacks.values()) { runnable.run(); diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletRequestAttributes.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletRequestAttributes.java index 6a7e1c83db5a..9c21f505fde0 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletRequestAttributes.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletRequestAttributes.java @@ -100,6 +100,7 @@ protected final PortletSession getSession(boolean allowCreate) { } + @Override public Object getAttribute(String name, int scope) { if (scope == SCOPE_REQUEST) { if (!isRequestActive()) { @@ -136,6 +137,7 @@ public Object getAttribute(String name, int scope) { } } + @Override public void setAttribute(String name, Object value, int scope) { if (scope == SCOPE_REQUEST) { if (!isRequestActive()) { @@ -161,6 +163,7 @@ public void setAttribute(String name, Object value, int scope) { } } + @Override public void removeAttribute(String name, int scope) { if (scope == SCOPE_REQUEST) { if (isRequestActive()) { @@ -187,6 +190,7 @@ public void removeAttribute(String name, int scope) { } } + @Override public String[] getAttributeNames(int scope) { if (scope == SCOPE_REQUEST) { if (!isRequestActive()) { @@ -211,6 +215,7 @@ public String[] getAttributeNames(int scope) { } } + @Override public void registerDestructionCallback(String name, Runnable callback, int scope) { if (scope == SCOPE_REQUEST) { registerRequestDestructionCallback(name, callback); @@ -220,6 +225,7 @@ public void registerDestructionCallback(String name, Runnable callback, int scop } } + @Override public Object resolveReference(String key) { if (REFERENCE_REQUEST.equals(key)) { return this.request; @@ -232,10 +238,12 @@ else if (REFERENCE_SESSION.equals(key)) { } } + @Override public String getSessionId() { return getSession(true).getId(); } + @Override public Object getSessionMutex() { return PortletUtils.getSessionMutex(getSession(true)); } diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletWebRequest.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletWebRequest.java index fe6348dd6d0a..76c41e96d189 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletWebRequest.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/PortletWebRequest.java @@ -68,74 +68,91 @@ public final PortletResponse getResponse() { return this.response; } + @Override public Object getNativeRequest() { return getRequest(); } + @Override public Object getNativeResponse() { return getResponse(); } + @Override @SuppressWarnings("unchecked") public T getNativeRequest(Class requiredType) { return PortletUtils.getNativeRequest(getRequest(), requiredType); } + @Override @SuppressWarnings("unchecked") public T getNativeResponse(Class requiredType) { return PortletUtils.getNativeResponse(getResponse(), requiredType); } + @Override public String getHeader(String headerName) { return getRequest().getProperty(headerName); } + @Override public String[] getHeaderValues(String headerName) { String[] headerValues = StringUtils.toStringArray(getRequest().getProperties(headerName)); return (!ObjectUtils.isEmpty(headerValues) ? headerValues : null); } + @Override public Iterator getHeaderNames() { return CollectionUtils.toIterator(getRequest().getPropertyNames()); } + @Override public String getParameter(String paramName) { return getRequest().getParameter(paramName); } + @Override public String[] getParameterValues(String paramName) { return getRequest().getParameterValues(paramName); } + @Override public Iterator getParameterNames() { return CollectionUtils.toIterator(getRequest().getParameterNames()); } + @Override public Map getParameterMap() { return getRequest().getParameterMap(); } + @Override public Locale getLocale() { return getRequest().getLocale(); } + @Override public String getContextPath() { return getRequest().getContextPath(); } + @Override public String getRemoteUser() { return getRequest().getRemoteUser(); } + @Override public Principal getUserPrincipal() { return getRequest().getUserPrincipal(); } + @Override public boolean isUserInRole(String role) { return getRequest().isUserInRole(role); } + @Override public boolean isSecure() { return getRequest().isSecure(); } @@ -144,6 +161,7 @@ public boolean isSecure() { * Last-modified handling not supported for portlet requests: * As a consequence, this method always returns {@code false}. */ + @Override public boolean checkNotModified(long lastModifiedTimestamp) { return false; } @@ -152,10 +170,12 @@ public boolean checkNotModified(long lastModifiedTimestamp) { * Last-modified handling not supported for portlet requests: * As a consequence, this method always returns {@code false}. */ + @Override public boolean checkNotModified(String eTag) { return false; } + @Override public String getDescription(boolean includeClientInfo) { PortletRequest request = getRequest(); StringBuilder result = new StringBuilder(); diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/StaticPortletApplicationContext.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/StaticPortletApplicationContext.java index d1c1b2ad2a39..fdd23d92c5e4 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/StaticPortletApplicationContext.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/context/StaticPortletApplicationContext.java @@ -101,18 +101,22 @@ public void setParent(ApplicationContext parent) { } } + @Override public ServletContext getServletContext() { return this.servletContext; } + @Override public void setPortletContext(PortletContext portletContext) { this.portletContext = portletContext; } + @Override public PortletContext getPortletContext() { return this.portletContext; } + @Override public void setPortletConfig(PortletConfig portletConfig) { this.portletConfig = portletConfig; if (portletConfig != null && this.portletContext == null) { @@ -120,10 +124,12 @@ public void setPortletConfig(PortletConfig portletConfig) { } } + @Override public PortletConfig getPortletConfig() { return this.portletConfig; } + @Override public void setNamespace(String namespace) { this.namespace = namespace; if (namespace != null) { @@ -131,6 +137,7 @@ public void setNamespace(String namespace) { } } + @Override public String getNamespace() { return this.namespace; } @@ -139,6 +146,7 @@ public String getNamespace() { * The {@link StaticPortletApplicationContext} class does not support this method. * @throws UnsupportedOperationException always */ + @Override public void setConfigLocation(String configLocation) { if (configLocation != null) { throw new UnsupportedOperationException("StaticPortletApplicationContext does not support config locations"); @@ -149,12 +157,14 @@ public void setConfigLocation(String configLocation) { * The {@link StaticPortletApplicationContext} class does not support this method. * @throws UnsupportedOperationException always */ + @Override public void setConfigLocations(String[] configLocations) { if (configLocations != null) { throw new UnsupportedOperationException("StaticPortletApplicationContext does not support config locations"); } } + @Override public String[] getConfigLocations() { return null; } diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/AbstractHandlerExceptionResolver.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/AbstractHandlerExceptionResolver.java index 74534798f47b..f4e5b18ca5ed 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/AbstractHandlerExceptionResolver.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/AbstractHandlerExceptionResolver.java @@ -61,6 +61,7 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } @@ -124,6 +125,7 @@ public void setRenderWhenMinimized(boolean renderWhenMinimized) { * matches in case of "mappedHandlers" having been specified), then * delegates to the {@link #doResolveException} template method. */ + @Override public ModelAndView resolveException(RenderRequest request, RenderResponse response, Object handler, Exception ex) { if (shouldApplyTo(request, handler)) { return doResolveException(request, response, handler, ex); @@ -133,6 +135,7 @@ public ModelAndView resolveException(RenderRequest request, RenderResponse respo } } + @Override public ModelAndView resolveException(ResourceRequest request, ResourceResponse response, Object handler, Exception ex) { if (shouldApplyTo(request, handler)) { return doResolveException(request, response, handler, ex); diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/AbstractHandlerMapping.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/AbstractHandlerMapping.java index 8e3cb90f3f6e..c648433cc161 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/AbstractHandlerMapping.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/AbstractHandlerMapping.java @@ -63,6 +63,7 @@ public final void setOrder(int order) { this.order = order; } + @Override public final int getOrder() { return this.order; } @@ -201,6 +202,7 @@ protected final HandlerInterceptor[] getAdaptedInterceptors() { * @return the corresponding handler instance, or the default handler * @see #getHandlerInternal */ + @Override public final HandlerExecutionChain getHandler(PortletRequest request) throws Exception { Object handler = getHandlerInternal(request); if (handler == null) { diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/HandlerInterceptorAdapter.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/HandlerInterceptorAdapter.java index 9c3bff5f2a14..7b052cca120e 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/HandlerInterceptorAdapter.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/HandlerInterceptorAdapter.java @@ -43,6 +43,7 @@ public abstract class HandlerInterceptorAdapter implements HandlerInterceptor { /** * This implementation delegates to {@link #preHandle}. */ + @Override public boolean preHandleAction(ActionRequest request, ActionResponse response, Object handler) throws Exception { @@ -52,6 +53,7 @@ public boolean preHandleAction(ActionRequest request, ActionResponse response, O /** * This implementation delegates to {@link #afterCompletion}. */ + @Override public void afterActionCompletion( ActionRequest request, ActionResponse response, Object handler, Exception ex) throws Exception { @@ -63,6 +65,7 @@ public void afterActionCompletion( /** * This implementation delegates to {@link #preHandle}. */ + @Override public boolean preHandleRender(RenderRequest request, RenderResponse response, Object handler) throws Exception { @@ -72,6 +75,7 @@ public boolean preHandleRender(RenderRequest request, RenderResponse response, O /** * This implementation is empty. */ + @Override public void postHandleRender( RenderRequest request, RenderResponse response, Object handler, ModelAndView modelAndView) throws Exception { @@ -80,6 +84,7 @@ public void postHandleRender( /** * This implementation delegates to {@link #afterCompletion}. */ + @Override public void afterRenderCompletion( RenderRequest request, RenderResponse response, Object handler, Exception ex) throws Exception { @@ -91,6 +96,7 @@ public void afterRenderCompletion( /** * This implementation delegates to {@link #preHandle}. */ + @Override public boolean preHandleResource(ResourceRequest request, ResourceResponse response, Object handler) throws Exception { @@ -100,6 +106,7 @@ public boolean preHandleResource(ResourceRequest request, ResourceResponse respo /** * This implementation is empty. */ + @Override public void postHandleResource( ResourceRequest request, ResourceResponse response, Object handler, ModelAndView modelAndView) throws Exception { @@ -108,6 +115,7 @@ public void postHandleResource( /** * This implementation delegates to {@link #afterCompletion}. */ + @Override public void afterResourceCompletion( ResourceRequest request, ResourceResponse response, Object handler, Exception ex) throws Exception { @@ -119,6 +127,7 @@ public void afterResourceCompletion( /** * This implementation delegates to {@link #preHandle}. */ + @Override public boolean preHandleEvent(EventRequest request, EventResponse response, Object handler) throws Exception { @@ -128,6 +137,7 @@ public boolean preHandleEvent(EventRequest request, EventResponse response, Obje /** * This implementation delegates to {@link #afterCompletion}. */ + @Override public void afterEventCompletion( EventRequest request, EventResponse response, Object handler, Exception ex) throws Exception { diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/SimplePortletHandlerAdapter.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/SimplePortletHandlerAdapter.java index 5ef81bb0aeac..f7a884dad983 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/SimplePortletHandlerAdapter.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/SimplePortletHandlerAdapter.java @@ -63,21 +63,25 @@ public class SimplePortletHandlerAdapter implements HandlerAdapter, PortletConte private PortletContext portletContext; + @Override public void setPortletContext(PortletContext portletContext) { this.portletContext = portletContext; } + @Override public boolean supports(Object handler) { return (handler instanceof Portlet); } + @Override public void handleAction(ActionRequest request, ActionResponse response, Object handler) throws Exception { ((Portlet) handler).processAction(request, response); } + @Override public ModelAndView handleRender(RenderRequest request, RenderResponse response, Object handler) throws Exception { @@ -85,6 +89,7 @@ public ModelAndView handleRender(RenderRequest request, RenderResponse response, return null; } + @Override public ModelAndView handleResource(ResourceRequest request, ResourceResponse response, Object handler) throws Exception { @@ -98,6 +103,7 @@ public ModelAndView handleResource(ResourceRequest request, ResourceResponse res return null; } + @Override public void handleEvent(EventRequest request, EventResponse response, Object handler) throws Exception { if (handler instanceof EventPortlet) { ((EventPortlet) handler).processEvent(request, response); diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/SimplePortletPostProcessor.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/SimplePortletPostProcessor.java index c9cde4b1b010..62a79e4b710b 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/SimplePortletPostProcessor.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/SimplePortletPostProcessor.java @@ -92,19 +92,23 @@ public void setUseSharedPortletConfig(boolean useSharedPortletConfig) { this.useSharedPortletConfig = useSharedPortletConfig; } + @Override public void setPortletContext(PortletContext portletContext) { this.portletContext = portletContext; } + @Override public void setPortletConfig(PortletConfig portletConfig) { this.portletConfig = portletConfig; } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof Portlet) { PortletConfig config = this.portletConfig; @@ -121,6 +125,7 @@ public Object postProcessAfterInitialization(Object bean, String beanName) throw return bean; } + @Override public void postProcessBeforeDestruction(Object bean, String beanName) throws BeansException { if (bean instanceof Portlet) { ((Portlet) bean).destroy(); @@ -146,46 +151,57 @@ public DelegatingPortletConfig(String portletName, PortletContext portletContext this.portletConfig = portletConfig; } + @Override public String getPortletName() { return this.portletName; } + @Override public PortletContext getPortletContext() { return this.portletContext; } + @Override public String getInitParameter(String paramName) { return null; } + @Override public Enumeration getInitParameterNames() { return Collections.enumeration(new HashSet()); } + @Override public ResourceBundle getResourceBundle(Locale locale) { return (this.portletConfig != null ? this.portletConfig.getResourceBundle(locale) : null); } + @Override public Enumeration getPublicRenderParameterNames() { return Collections.enumeration(new HashSet()); } + @Override public String getDefaultNamespace() { return XMLConstants.NULL_NS_URI; } + @Override public Enumeration getPublishingEventQNames() { return Collections.enumeration(new HashSet()); } + @Override public Enumeration getProcessingEventQNames() { return Collections.enumeration(new HashSet()); } + @Override public Enumeration getSupportedLocales() { return Collections.enumeration(new HashSet()); } + @Override public Map getContainerRuntimeOptions() { return (this.portletConfig != null ? this.portletConfig.getContainerRuntimeOptions() : null); } diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/WebRequestHandlerInterceptorAdapter.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/WebRequestHandlerInterceptorAdapter.java index 6026dd17b477..b871ed705980 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/WebRequestHandlerInterceptorAdapter.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/handler/WebRequestHandlerInterceptorAdapter.java @@ -76,6 +76,7 @@ public WebRequestHandlerInterceptorAdapter(WebRequestInterceptor requestIntercep } + @Override public boolean preHandleAction(ActionRequest request, ActionResponse response, Object handler) throws Exception { if (!this.renderPhaseOnly) { this.requestInterceptor.preHandle(new PortletWebRequest(request)); @@ -83,6 +84,7 @@ public boolean preHandleAction(ActionRequest request, ActionResponse response, O return true; } + @Override public void afterActionCompletion( ActionRequest request, ActionResponse response, Object handler, Exception ex) throws Exception { @@ -91,11 +93,13 @@ public void afterActionCompletion( } } + @Override public boolean preHandleRender(RenderRequest request, RenderResponse response, Object handler) throws Exception { this.requestInterceptor.preHandle(new PortletWebRequest(request)); return true; } + @Override public void postHandleRender( RenderRequest request, RenderResponse response, Object handler, ModelAndView modelAndView) throws Exception { @@ -103,12 +107,14 @@ public void postHandleRender( (modelAndView != null && !modelAndView.wasCleared() ? modelAndView.getModelMap() : null)); } + @Override public void afterRenderCompletion( RenderRequest request, RenderResponse response, Object handler, Exception ex) throws Exception { this.requestInterceptor.afterCompletion(new PortletWebRequest(request), ex); } + @Override public boolean preHandleResource(ResourceRequest request, ResourceResponse response, Object handler) throws Exception { @@ -116,6 +122,7 @@ public boolean preHandleResource(ResourceRequest request, ResourceResponse respo return true; } + @Override public void postHandleResource(ResourceRequest request, ResourceResponse response, Object handler, ModelAndView modelAndView) throws Exception { @@ -123,17 +130,20 @@ public void postHandleResource(ResourceRequest request, ResourceResponse respons (modelAndView != null ? modelAndView.getModelMap() : null)); } + @Override public void afterResourceCompletion(ResourceRequest request, ResourceResponse response, Object handler, Exception ex) throws Exception { this.requestInterceptor.afterCompletion(new PortletWebRequest(request), ex); } + @Override public boolean preHandleEvent(EventRequest request, EventResponse response, Object handler) throws Exception { this.requestInterceptor.preHandle(new PortletWebRequest(request)); return true; } + @Override public void afterEventCompletion(EventRequest request, EventResponse response, Object handler, Exception ex) throws Exception { diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/multipart/CommonsPortletMultipartResolver.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/multipart/CommonsPortletMultipartResolver.java index 048972150972..4e4cf8499eda 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/multipart/CommonsPortletMultipartResolver.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/multipart/CommonsPortletMultipartResolver.java @@ -106,6 +106,7 @@ protected FileUpload newFileUpload(FileItemFactory fileItemFactory) { return new PortletFileUpload(fileItemFactory); } + @Override public void setPortletContext(PortletContext portletContext) { if (!isUploadTempDirSpecified()) { getFileItemFactory().setRepository(PortletUtils.getTempDir(portletContext)); @@ -113,10 +114,12 @@ public void setPortletContext(PortletContext portletContext) { } + @Override public boolean isMultipart(ActionRequest request) { return (request != null && PortletFileUpload.isMultipartContent(request)); } + @Override public MultipartActionRequest resolveMultipart(final ActionRequest request) throws MultipartException { Assert.notNull(request, "Request must not be null"); if (this.resolveLazily) { @@ -177,6 +180,7 @@ protected String determineEncoding(ActionRequest request) { return encoding; } + @Override public void cleanupMultipart(MultipartActionRequest request) { if (request != null) { try { diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/multipart/DefaultMultipartActionRequest.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/multipart/DefaultMultipartActionRequest.java index a46f14b9b143..8ee6e4078513 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/multipart/DefaultMultipartActionRequest.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/multipart/DefaultMultipartActionRequest.java @@ -74,14 +74,17 @@ protected DefaultMultipartActionRequest(ActionRequest request) { } + @Override public Iterator getFileNames() { return getMultipartFiles().keySet().iterator(); } + @Override public MultipartFile getFile(String name) { return getMultipartFiles().getFirst(name); } + @Override public List getFiles(String name) { List multipartFiles = getMultipartFiles().get(name); if (multipartFiles != null) { @@ -93,10 +96,12 @@ public List getFiles(String name) { } + @Override public Map getFileMap() { return getMultipartFiles().toSingleValueMap(); } + @Override public MultiValueMap getMultiFileMap() { return getMultipartFiles(); } @@ -138,6 +143,7 @@ public Map getParameterMap() { return paramMap; } + @Override public String getMultipartContentType(String paramOrFileName) { MultipartFile file = getFile(paramOrFileName); if (file != null) { diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/AbstractController.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/AbstractController.java index 271906d4a217..de00d6f077da 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/AbstractController.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/AbstractController.java @@ -180,6 +180,7 @@ public final boolean isRenderWhenMinimized() { } + @Override public void handleActionRequest(ActionRequest request, ActionResponse response) throws Exception { // Delegate to PortletContentGenerator for checking and preparing. check(request, response); @@ -199,6 +200,7 @@ public void handleActionRequest(ActionRequest request, ActionResponse response) handleActionRequestInternal(request, response); } + @Override public ModelAndView handleRenderRequest(RenderRequest request, RenderResponse response) throws Exception { // If the portlet is minimized and we don't want to render then return null. if (WindowState.MINIMIZED.equals(request.getWindowState()) && !this.renderWhenMinimized) { diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/PortletModeNameViewController.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/PortletModeNameViewController.java index 8e7bcf05915c..59e90c27af6a 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/PortletModeNameViewController.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/PortletModeNameViewController.java @@ -40,10 +40,12 @@ */ public class PortletModeNameViewController implements Controller { + @Override public void handleActionRequest(ActionRequest request, ActionResponse response) throws Exception { throw new PortletException("PortletModeNameViewController does not handle action requests"); } + @Override public ModelAndView handleRenderRequest(RenderRequest request, RenderResponse response) { return new ModelAndView(request.getPortletMode().toString()); } diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/PortletWrappingController.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/PortletWrappingController.java index a76eb221cfd2..936a0b9fe446 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/PortletWrappingController.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/PortletWrappingController.java @@ -117,6 +117,7 @@ public void setPortletContext(PortletContext portletContext) { this.portletContext = portletContext; } + @Override public void setPortletConfig(PortletConfig portletConfig) { this.portletConfig = portletConfig; } @@ -146,11 +147,13 @@ public void setInitParameters(Map initParameters) { this.initParameters = initParameters; } + @Override public void setBeanName(String name) { this.beanName = name; } + @Override public void afterPropertiesSet() throws Exception { if (this.portletClass == null) { throw new IllegalArgumentException("portletClass is required"); @@ -186,6 +189,7 @@ protected ModelAndView handleRenderRequestInternal( return null; } + @Override public ModelAndView handleResourceRequest( ResourceRequest request, ResourceResponse response) throws Exception { @@ -214,6 +218,7 @@ public ModelAndView handleResourceRequest( return null; } + @Override public void handleEventRequest( EventRequest request, EventResponse response) throws Exception { @@ -242,6 +247,7 @@ public void handleEventRequest( } + @Override public void destroy() { this.portletInstance.destroy(); } @@ -255,46 +261,57 @@ public void destroy() { */ private class DelegatingPortletConfig implements PortletConfig { + @Override public String getPortletName() { return portletName; } + @Override public PortletContext getPortletContext() { return portletContext; } + @Override public String getInitParameter(String paramName) { return initParameters.get(paramName); } + @Override public Enumeration getInitParameterNames() { return Collections.enumeration(initParameters.keySet()); } + @Override public ResourceBundle getResourceBundle(Locale locale) { return (portletConfig != null ? portletConfig.getResourceBundle(locale) : null); } + @Override public Enumeration getPublicRenderParameterNames() { return Collections.enumeration(new HashSet()); } + @Override public String getDefaultNamespace() { return XMLConstants.NULL_NS_URI; } + @Override public Enumeration getPublishingEventQNames() { return Collections.enumeration(new HashSet()); } + @Override public Enumeration getProcessingEventQNames() { return Collections.enumeration(new HashSet()); } + @Override public Enumeration getSupportedLocales() { return Collections.enumeration(new HashSet()); } + @Override public Map getContainerRuntimeOptions() { return (portletConfig != null ? portletConfig.getContainerRuntimeOptions() : null); } diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/SimpleControllerHandlerAdapter.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/SimpleControllerHandlerAdapter.java index 8f45af6598e8..bae04e4d303c 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/SimpleControllerHandlerAdapter.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/SimpleControllerHandlerAdapter.java @@ -49,27 +49,32 @@ public class SimpleControllerHandlerAdapter implements HandlerAdapter, PortletCo private PortletContext portletContext; + @Override public void setPortletContext(PortletContext portletContext) { this.portletContext = portletContext; } + @Override public boolean supports(Object handler) { return (handler instanceof Controller); } + @Override public void handleAction(ActionRequest request, ActionResponse response, Object handler) throws Exception { ((Controller) handler).handleActionRequest(request, response); } + @Override public ModelAndView handleRender(RenderRequest request, RenderResponse response, Object handler) throws Exception { return ((Controller) handler).handleRenderRequest(request, response); } + @Override public ModelAndView handleResource(ResourceRequest request, ResourceResponse response, Object handler) throws Exception { @@ -83,6 +88,7 @@ public ModelAndView handleResource(ResourceRequest request, ResourceResponse res } } + @Override public void handleEvent(EventRequest request, EventResponse response, Object handler) throws Exception { if (handler instanceof EventAwareController) { ((EventAwareController) handler).handleEventRequest(request, response); diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/annotation/AnnotationMethodHandlerAdapter.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/annotation/AnnotationMethodHandlerAdapter.java index 3fa889d8b402..34cf77e22bcb 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/annotation/AnnotationMethodHandlerAdapter.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/annotation/AnnotationMethodHandlerAdapter.java @@ -263,10 +263,12 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } + @Override public void setBeanFactory(BeanFactory beanFactory) { if (beanFactory instanceof ConfigurableBeanFactory) { this.beanFactory = (ConfigurableBeanFactory) beanFactory; @@ -275,10 +277,12 @@ public void setBeanFactory(BeanFactory beanFactory) { } + @Override public boolean supports(Object handler) { return getMethodResolver(handler).hasHandlerMethods(); } + @Override public void handleAction(ActionRequest request, ActionResponse response, Object handler) throws Exception { Object returnValue = doHandle(request, response, handler); if (returnValue != null) { @@ -286,16 +290,19 @@ public void handleAction(ActionRequest request, ActionResponse response, Object } } + @Override public ModelAndView handleRender(RenderRequest request, RenderResponse response, Object handler) throws Exception { checkAndPrepare(request, response); return doHandle(request, response, handler); } + @Override public ModelAndView handleResource(ResourceRequest request, ResourceResponse response, Object handler) throws Exception { checkAndPrepare(request, response); return doHandle(request, response, handler); } + @Override public void handleEvent(EventRequest request, EventResponse response, Object handler) throws Exception { Object returnValue = doHandle(request, response, handler); if (returnValue != null) { diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/annotation/AnnotationMethodHandlerExceptionResolver.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/annotation/AnnotationMethodHandlerExceptionResolver.java index 37125cde89f9..579ef82388a6 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/annotation/AnnotationMethodHandlerExceptionResolver.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/annotation/AnnotationMethodHandlerExceptionResolver.java @@ -153,6 +153,7 @@ private Method findBestExceptionHandlerMethod(Object handler, final Exception th final Map, Method> matchedHandlers = new HashMap, Method>(); ReflectionUtils.doWithMethods(handlerType, new ReflectionUtils.MethodCallback() { + @Override public void doWith(Method method) { method = ClassUtils.getMostSpecificMethod(method, handlerType); List> handledExceptions = getHandledExceptions(method); diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/annotation/DefaultAnnotationHandlerMapping.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/annotation/DefaultAnnotationHandlerMapping.java index 7558a92bec75..9b77f6d0bf5b 100644 --- a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/annotation/DefaultAnnotationHandlerMapping.java +++ b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/mvc/annotation/DefaultAnnotationHandlerMapping.java @@ -148,6 +148,7 @@ protected boolean detectHandlerMethods(Class handlerType, final String beanNa handlerTypes.addAll(Arrays.asList(handlerType.getInterfaces())); for (Class currentHandlerType : handlerTypes) { ReflectionUtils.doWithMethods(currentHandlerType, new ReflectionUtils.MethodCallback() { + @Override public void doWith(Method method) { PortletRequestMappingPredicate predicate = null; String[] modeKeys = new String[0]; @@ -229,6 +230,7 @@ public AbstractParameterMappingPredicate(String[] params) { this.params = params; } + @Override public boolean match(PortletRequest request) { return PortletAnnotationMappingUtils.checkParameters(this.params, request); } @@ -262,6 +264,7 @@ public TypeLevelMappingPredicate(String[] params, String[] headers, RequestMetho } } + @Override public void validate(PortletRequest request) throws PortletException { if (!PortletAnnotationMappingUtils.checkHeaders(this.headers, request)) { throw new PortletRequestBindingException("Header conditions \"" + @@ -279,6 +282,7 @@ public void validate(PortletRequest request) throws PortletException { } } + @Override public int compareTo(Object other) { return (other instanceof SpecialRequestTypePredicate ? -1 : compareParams(other)); } @@ -291,9 +295,11 @@ public MethodLevelMappingPredicate(String[] params) { super(params); } + @Override public void validate(PortletRequest request) throws PortletException { } + @Override public int compareTo(Object other) { return (other instanceof SpecialRequestTypePredicate ? 1 : compareParams(other)); } @@ -316,9 +322,11 @@ public boolean match(PortletRequest request) { super.match(request)); } + @Override public void validate(PortletRequest request) { } + @Override public int compareTo(Object other) { if (other instanceof TypeLevelMappingPredicate) { return 1; @@ -358,9 +366,11 @@ public boolean match(PortletRequest request) { super.match(request)); } + @Override public void validate(PortletRequest request) { } + @Override public int compareTo(Object other) { if (other instanceof TypeLevelMappingPredicate) { return 1; @@ -392,14 +402,17 @@ public ResourceMappingPredicate(String resourceId) { this.resourceId = resourceId; } + @Override public boolean match(PortletRequest request) { return (PortletRequest.RESOURCE_PHASE.equals(request.getAttribute(PortletRequest.LIFECYCLE_PHASE)) && ("".equals(this.resourceId) || this.resourceId.equals(((ResourceRequest) request).getResourceID()))); } + @Override public void validate(PortletRequest request) { } + @Override public int compareTo(Object other) { if (other instanceof ResourceMappingPredicate) { boolean hasResourceId = !"".equals(this.resourceId); @@ -424,6 +437,7 @@ public EventMappingPredicate(String eventName) { this.eventName = eventName; } + @Override public boolean match(PortletRequest request) { if (!PortletRequest.EVENT_PHASE.equals(request.getAttribute(PortletRequest.LIFECYCLE_PHASE))) { return false; @@ -435,9 +449,11 @@ public boolean match(PortletRequest request) { return (this.eventName.equals(event.getName()) || this.eventName.equals(event.getQName().toString())); } + @Override public void validate(PortletRequest request) { } + @Override public int compareTo(Object other) { if (other instanceof EventMappingPredicate) { boolean hasEventName = !"".equals(this.eventName); diff --git a/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockPortletPreferences.java b/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockPortletPreferences.java index 92ee6c0a4650..fc281fc16bb7 100644 --- a/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockPortletPreferences.java +++ b/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockPortletPreferences.java @@ -56,27 +56,32 @@ public void setReadOnly(String key, boolean readOnly) { } } + @Override public boolean isReadOnly(String key) { Assert.notNull(key, "Key must not be null"); return this.readOnly.contains(key); } + @Override public String getValue(String key, String def) { Assert.notNull(key, "Key must not be null"); String[] values = this.preferences.get(key); return (values != null && values.length > 0 ? values[0] : def); } + @Override public String[] getValues(String key, String[] def) { Assert.notNull(key, "Key must not be null"); String[] values = this.preferences.get(key); return (values != null && values.length > 0 ? values : def); } + @Override public void setValue(String key, String value) throws ReadOnlyException { setValues(key, new String[] {value}); } + @Override public void setValues(String key, String[] values) throws ReadOnlyException { Assert.notNull(key, "Key must not be null"); if (isReadOnly(key)) { @@ -85,14 +90,17 @@ public void setValues(String key, String[] values) throws ReadOnlyException { this.preferences.put(key, values); } + @Override public Enumeration getNames() { return Collections.enumeration(this.preferences.keySet()); } + @Override public Map getMap() { return Collections.unmodifiableMap(this.preferences); } + @Override public void reset(String key) throws ReadOnlyException { Assert.notNull(key, "Key must not be null"); if (isReadOnly(key)) { @@ -105,6 +113,7 @@ public void setPreferencesValidator(PreferencesValidator preferencesValidator) { this.preferencesValidator = preferencesValidator; } + @Override public void store() throws IOException, ValidatorException { if (this.preferencesValidator != null) { this.preferencesValidator.validate(this); diff --git a/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockPortletURL.java b/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockPortletURL.java index 89fe6a5b1705..c7eff5a52880 100644 --- a/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockPortletURL.java +++ b/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockPortletURL.java @@ -101,6 +101,7 @@ public void removePublicRenderParameter(String name) { } + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(encodeParameter("urlType", this.urlType)); diff --git a/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockResourceURL.java b/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockResourceURL.java index a0cf72f022c8..b7aab871dfae 100644 --- a/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockResourceURL.java +++ b/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockResourceURL.java @@ -56,6 +56,7 @@ public String getCacheability() { } + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(encodeParameter("resourceID", this.resourceID)); diff --git a/spring-webmvc-tiles3/src/main/java/org/springframework/web/servlet/view/tiles3/AbstractSpringPreparerFactory.java b/spring-webmvc-tiles3/src/main/java/org/springframework/web/servlet/view/tiles3/AbstractSpringPreparerFactory.java index eaa6d58bc2d3..e86e9cf5acfe 100644 --- a/spring-webmvc-tiles3/src/main/java/org/springframework/web/servlet/view/tiles3/AbstractSpringPreparerFactory.java +++ b/spring-webmvc-tiles3/src/main/java/org/springframework/web/servlet/view/tiles3/AbstractSpringPreparerFactory.java @@ -37,6 +37,7 @@ */ public abstract class AbstractSpringPreparerFactory implements PreparerFactory { + @Override public ViewPreparer getPreparer(String name, Request context) { WebApplicationContext webApplicationContext = (WebApplicationContext) context.getContext("request").get( DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE); diff --git a/spring-webmvc-tiles3/src/main/java/org/springframework/web/servlet/view/tiles3/TilesConfigurer.java b/spring-webmvc-tiles3/src/main/java/org/springframework/web/servlet/view/tiles3/TilesConfigurer.java index 8788236168bb..71ab80a22a14 100644 --- a/spring-webmvc-tiles3/src/main/java/org/springframework/web/servlet/view/tiles3/TilesConfigurer.java +++ b/spring-webmvc-tiles3/src/main/java/org/springframework/web/servlet/view/tiles3/TilesConfigurer.java @@ -235,6 +235,7 @@ public void setUseMutableTilesContainer(boolean useMutableTilesContainer) { this.useMutableTilesContainer = useMutableTilesContainer; } + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } @@ -244,6 +245,7 @@ public void setServletContext(ServletContext servletContext) { * delegating to the TilesInitializer. * @throws TilesException in case of setup failure */ + @Override public void afterPropertiesSet() throws TilesException { ApplicationContext preliminaryContext = new SpringWildcardServletTilesApplicationContext(this.servletContext); if (this.tilesInitializer == null) { @@ -256,6 +258,7 @@ public void afterPropertiesSet() throws TilesException { * Removes the TilesContainer from this web application. * @throws TilesException in case of cleanup failure */ + @Override public void destroy() throws TilesException { this.tilesInitializer.destroy(); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/DispatcherServlet.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/DispatcherServlet.java index 026e9f4d1b00..5b9f7b64b2d8 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/DispatcherServlet.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/DispatcherServlet.java @@ -1021,9 +1021,11 @@ private void processDispatchResult(HttpServletRequest request, HttpServletRespon @Override protected LocaleContext buildLocaleContext(final HttpServletRequest request) { return new LocaleContext() { + @Override public Locale getLocale() { return localeResolver.resolveLocale(request); } + @Override public String toString() { return getLocale().toString(); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/FlashMap.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/FlashMap.java index 983930714c37..1e5d4ec88b1e 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/FlashMap.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/FlashMap.java @@ -135,6 +135,7 @@ public boolean isExpired() { * path or has more target URL parameters. Before comparing FlashMap * instances ensure that they match a given request. */ + @Override public int compareTo(FlashMap other) { int thisUrlPath = (this.targetRequestPath != null) ? 1 : 0; int otherUrlPath = (other.targetRequestPath != null) ? 1 : 0; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/FrameworkServlet.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/FrameworkServlet.java index 172ed201c54f..d7036bd8a796 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/FrameworkServlet.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/FrameworkServlet.java @@ -1077,6 +1077,7 @@ protected String getUsernameForRequest(HttpServletRequest request) { * * @since 4.0 */ + @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { if (this.webApplicationContext == null @@ -1113,6 +1114,7 @@ protected abstract void doService(HttpServletRequest request, HttpServletRespons */ private class ContextRefreshListener implements ApplicationListener { + @Override public void onApplicationEvent(ContextRefreshedEvent event) { FrameworkServlet.this.onApplicationEvent(event); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/HttpServletBean.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/HttpServletBean.java index bcd3a4d16068..f9e7f9634d70 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/HttpServletBean.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/HttpServletBean.java @@ -188,6 +188,7 @@ protected void initServletBean() throws ServletException { * @throws IllegalArgumentException if environment is not assignable to * {@code ConfigurableEnvironment}. */ + @Override public void setEnvironment(Environment environment) { Assert.isInstanceOf(ConfigurableEnvironment.class, environment); this.environment = (ConfigurableEnvironment) environment; @@ -198,6 +199,7 @@ public void setEnvironment(Environment environment) { *

If {@code null}, a new environment will be initialized via * {@link #createEnvironment()}. */ + @Override public ConfigurableEnvironment getEnvironment() { if (this.environment == null) { this.environment = this.createEnvironment(); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/AnnotationDrivenBeanDefinitionParser.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/AnnotationDrivenBeanDefinitionParser.java index 7fef39364c37..49ba49a4e427 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/AnnotationDrivenBeanDefinitionParser.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/AnnotationDrivenBeanDefinitionParser.java @@ -142,6 +142,7 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser { private static boolean romePresent = ClassUtils.isPresent("com.sun.syndication.feed.WireFeed", AnnotationDrivenBeanDefinitionParser.class.getClassLoader()); + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { Object source = parserContext.extractSource(element); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/DefaultServletHandlerBeanDefinitionParser.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/DefaultServletHandlerBeanDefinitionParser.java index d842b4d689c0..42f1dca52d56 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/DefaultServletHandlerBeanDefinitionParser.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/DefaultServletHandlerBeanDefinitionParser.java @@ -43,6 +43,7 @@ */ class DefaultServletHandlerBeanDefinitionParser implements BeanDefinitionParser { + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { Object source = parserContext.extractSource(element); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/InterceptorsBeanDefinitionParser.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/InterceptorsBeanDefinitionParser.java index 167963844d34..05e4c8bf32a1 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/InterceptorsBeanDefinitionParser.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/InterceptorsBeanDefinitionParser.java @@ -38,6 +38,7 @@ */ class InterceptorsBeanDefinitionParser implements BeanDefinitionParser { + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { CompositeComponentDefinition compDefinition = new CompositeComponentDefinition(element.getTagName(), parserContext.extractSource(element)); parserContext.pushContainingComponent(compDefinition); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/MvcNamespaceHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/MvcNamespaceHandler.java index d1d887700bca..9c099ede5316 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/MvcNamespaceHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/MvcNamespaceHandler.java @@ -28,6 +28,7 @@ */ public class MvcNamespaceHandler extends NamespaceHandlerSupport { + @Override public void init() { registerBeanDefinitionParser("annotation-driven", new AnnotationDrivenBeanDefinitionParser()); registerBeanDefinitionParser("default-servlet-handler", new DefaultServletHandlerBeanDefinitionParser()); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/ResourcesBeanDefinitionParser.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/ResourcesBeanDefinitionParser.java index 6bfdb9c56f45..f08d75e2b8fe 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/ResourcesBeanDefinitionParser.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/ResourcesBeanDefinitionParser.java @@ -46,6 +46,7 @@ */ class ResourcesBeanDefinitionParser implements BeanDefinitionParser { + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { Object source = parserContext.extractSource(element); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/ViewControllerBeanDefinitionParser.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/ViewControllerBeanDefinitionParser.java index e580aea38b77..82e455c7a4e6 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/ViewControllerBeanDefinitionParser.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/ViewControllerBeanDefinitionParser.java @@ -43,6 +43,7 @@ class ViewControllerBeanDefinitionParser implements BeanDefinitionParser { "org.springframework.web.servlet.config.viewControllerHandlerMapping"; + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { Object source = parserContext.extractSource(element); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupport.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupport.java index c3d1fc08833e..5ac4c22ff71e 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupport.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupport.java @@ -173,6 +173,7 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv * Set the {@link javax.servlet.ServletContext}, e.g. for resource handling, * looking up file extensions, etc. */ + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } @@ -180,6 +181,7 @@ public void setServletContext(ServletContext servletContext) { /** * Set the Spring {@link ApplicationContext}, e.g. for resource loading. */ + @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } @@ -431,9 +433,11 @@ public Validator mvcValidator() { } else { validator = new Validator() { + @Override public boolean supports(Class clazz) { return false; } + @Override public void validate(Object target, Errors errors) { } }; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurerAdapter.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurerAdapter.java index 6f6c82733c03..067478575507 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurerAdapter.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurerAdapter.java @@ -39,6 +39,7 @@ public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer { * {@inheritDoc} *

This implementation is empty. */ + @Override public void addFormatters(FormatterRegistry registry) { } @@ -46,6 +47,7 @@ public void addFormatters(FormatterRegistry registry) { * {@inheritDoc} *

This implementation is empty. */ + @Override public void configureMessageConverters(List> converters) { } @@ -53,6 +55,7 @@ public void configureMessageConverters(List> converters) * {@inheritDoc} *

This implementation returns {@code null} */ + @Override public Validator getValidator() { return null; } @@ -61,6 +64,7 @@ public Validator getValidator() { * {@inheritDoc} *

This implementation is empty. */ + @Override public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { } @@ -68,6 +72,7 @@ public void configureContentNegotiation(ContentNegotiationConfigurer configurer) * {@inheritDoc} *

This implementation is empty. */ + @Override public void configureAsyncSupport(AsyncSupportConfigurer configurer) { } @@ -75,6 +80,7 @@ public void configureAsyncSupport(AsyncSupportConfigurer configurer) { * {@inheritDoc} *

This implementation is empty. */ + @Override public void addArgumentResolvers(List argumentResolvers) { } @@ -82,6 +88,7 @@ public void addArgumentResolvers(List argumentRes * {@inheritDoc} *

This implementation is empty. */ + @Override public void addReturnValueHandlers(List returnValueHandlers) { } @@ -89,6 +96,7 @@ public void addReturnValueHandlers(List returnV * {@inheritDoc} *

This implementation is empty. */ + @Override public void configureHandlerExceptionResolvers(List exceptionResolvers) { } @@ -96,6 +104,7 @@ public void configureHandlerExceptionResolvers(List ex * {@inheritDoc} *

This implementation is empty. */ + @Override public MessageCodesResolver getMessageCodesResolver() { return null; } @@ -104,6 +113,7 @@ public MessageCodesResolver getMessageCodesResolver() { * {@inheritDoc} *

This implementation is empty. */ + @Override public void addInterceptors(InterceptorRegistry registry) { } @@ -111,6 +121,7 @@ public void addInterceptors(InterceptorRegistry registry) { * {@inheritDoc} *

This implementation is empty. */ + @Override public void addViewControllers(ViewControllerRegistry registry) { } @@ -118,6 +129,7 @@ public void addViewControllers(ViewControllerRegistry registry) { * {@inheritDoc} *

This implementation is empty. */ + @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { } @@ -125,6 +137,7 @@ public void addResourceHandlers(ResourceHandlerRegistry registry) { * {@inheritDoc} *

This implementation is empty. */ + @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurerComposite.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurerComposite.java index e222c3b1260b..05461d501304 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurerComposite.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurerComposite.java @@ -43,72 +43,84 @@ public void addWebMvcConfigurers(List configurers) { } } + @Override public void addFormatters(FormatterRegistry registry) { for (WebMvcConfigurer delegate : this.delegates) { delegate.addFormatters(registry); } } + @Override public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { for (WebMvcConfigurer delegate : this.delegates) { delegate.configureContentNegotiation(configurer); } } + @Override public void configureAsyncSupport(AsyncSupportConfigurer configurer) { for (WebMvcConfigurer delegate : this.delegates) { delegate.configureAsyncSupport(configurer); } } + @Override public void configureMessageConverters(List> converters) { for (WebMvcConfigurer delegate : this.delegates) { delegate.configureMessageConverters(converters); } } + @Override public void addArgumentResolvers(List argumentResolvers) { for (WebMvcConfigurer delegate : this.delegates) { delegate.addArgumentResolvers(argumentResolvers); } } + @Override public void addReturnValueHandlers(List returnValueHandlers) { for (WebMvcConfigurer delegate : this.delegates) { delegate.addReturnValueHandlers(returnValueHandlers); } } + @Override public void configureHandlerExceptionResolvers(List exceptionResolvers) { for (WebMvcConfigurer delegate : this.delegates) { delegate.configureHandlerExceptionResolvers(exceptionResolvers); } } + @Override public void addInterceptors(InterceptorRegistry registry) { for (WebMvcConfigurer delegate : this.delegates) { delegate.addInterceptors(registry); } } + @Override public void addViewControllers(ViewControllerRegistry registry) { for (WebMvcConfigurer delegate : this.delegates) { delegate.addViewControllers(registry); } } + @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { for (WebMvcConfigurer delegate : this.delegates) { delegate.addResourceHandlers(registry); } } + @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { for (WebMvcConfigurer delegate : this.delegates) { delegate.configureDefaultServletHandling(configurer); } } + @Override public Validator getValidator() { List candidates = new ArrayList(); for (WebMvcConfigurer configurer : this.delegates) { @@ -133,6 +145,7 @@ else if (instances.size() == 1) { } } + @Override public MessageCodesResolver getMessageCodesResolver() { List candidates = new ArrayList(); for (WebMvcConfigurer configurer : this.delegates) { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerExceptionResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerExceptionResolver.java index 330c1878703f..e432818d50fd 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerExceptionResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerExceptionResolver.java @@ -64,6 +64,7 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } @@ -123,6 +124,7 @@ public void setPreventResponseCaching(boolean preventResponseCaching) { * in case of "mappedHandlers" having been specified), then delegates to the * {@link #doResolveException} template method. */ + @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMapping.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMapping.java index b790a1e62b2c..9d121fc11a58 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMapping.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMapping.java @@ -82,6 +82,7 @@ public final void setOrder(int order) { this.order = order; } + @Override public final int getOrder() { return this.order; } @@ -294,6 +295,7 @@ protected final MappedInterceptor[] getMappedInterceptors() { * @return the corresponding handler instance, or the default handler * @see #getHandlerInternal */ + @Override public final HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception { Object handler = getHandlerInternal(request); if (handler == null) { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMethodMapping.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMethodMapping.java index ccdec77d51dd..deca4899059b 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMethodMapping.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMethodMapping.java @@ -90,6 +90,7 @@ public Map getHandlerMethods() { /** * Detects handler methods at initialization. */ + @Override public void afterPropertiesSet() { initHandlerMethods(); } @@ -142,6 +143,7 @@ protected void detectHandlerMethods(final Object handler) { final Class userType = ClassUtils.getUserClass(handlerType); Set methods = HandlerMethodSelector.selectMethods(userType, new MethodFilter() { + @Override public boolean matches(Method method) { return getMappingForMethod(method, userType) != null; } @@ -369,6 +371,7 @@ public MatchComparator(Comparator comparator) { this.comparator = comparator; } + @Override public int compare(Match match1, Match match2) { return this.comparator.compare(match1.mapping, match2.mapping); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/HandlerExceptionResolverComposite.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/HandlerExceptionResolverComposite.java index 8716f20cef6f..bcf6090121c9 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/HandlerExceptionResolverComposite.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/HandlerExceptionResolverComposite.java @@ -42,6 +42,7 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } @@ -64,6 +65,7 @@ public List getExceptionResolvers() { * Resolve the exception by iterating over the list of configured exception resolvers. * The first one to return a ModelAndView instance wins. Otherwise {@code null} is returned. */ + @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/HandlerInterceptorAdapter.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/HandlerInterceptorAdapter.java index c721327101e1..602886ba297c 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/HandlerInterceptorAdapter.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/HandlerInterceptorAdapter.java @@ -34,6 +34,7 @@ public abstract class HandlerInterceptorAdapter implements AsyncHandlerIntercept /** * This implementation always returns {@code true}. */ + @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return true; @@ -42,6 +43,7 @@ public boolean preHandle(HttpServletRequest request, HttpServletResponse respons /** * This implementation is empty. */ + @Override public void postHandle( HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { @@ -50,6 +52,7 @@ public void postHandle( /** * This implementation is empty. */ + @Override public void afterCompletion( HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { @@ -58,6 +61,7 @@ public void afterCompletion( /** * This implementation is empty. */ + @Override public void afterConcurrentHandlingStarted( HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/SimpleServletHandlerAdapter.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/SimpleServletHandlerAdapter.java index e72e011c7ae4..e19ebe57f0c3 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/SimpleServletHandlerAdapter.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/SimpleServletHandlerAdapter.java @@ -53,10 +53,12 @@ */ public class SimpleServletHandlerAdapter implements HandlerAdapter { + @Override public boolean supports(Object handler) { return (handler instanceof Servlet); } + @Override public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { @@ -64,6 +66,7 @@ public ModelAndView handle(HttpServletRequest request, HttpServletResponse respo return null; } + @Override public long getLastModified(HttpServletRequest request, Object handler) { return -1; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/SimpleServletPostProcessor.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/SimpleServletPostProcessor.java index 663786ff294b..49e2e3c813db 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/SimpleServletPostProcessor.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/SimpleServletPostProcessor.java @@ -86,19 +86,23 @@ public void setUseSharedServletConfig(boolean useSharedServletConfig) { this.useSharedServletConfig = useSharedServletConfig; } + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } + @Override public void setServletConfig(ServletConfig servletConfig) { this.servletConfig = servletConfig; } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof Servlet) { ServletConfig config = this.servletConfig; @@ -115,6 +119,7 @@ public Object postProcessAfterInitialization(Object bean, String beanName) throw return bean; } + @Override public void postProcessBeforeDestruction(Object bean, String beanName) throws BeansException { if (bean instanceof Servlet) { ((Servlet) bean).destroy(); @@ -137,18 +142,22 @@ public DelegatingServletConfig(String servletName, ServletContext servletContext this.servletContext = servletContext; } + @Override public String getServletName() { return this.servletName; } + @Override public ServletContext getServletContext() { return this.servletContext; } + @Override public String getInitParameter(String paramName) { return null; } + @Override public Enumeration getInitParameterNames() { return Collections.enumeration(new HashSet()); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/WebRequestHandlerInterceptorAdapter.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/WebRequestHandlerInterceptorAdapter.java index 42b1203d7b04..2c204ba67349 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/WebRequestHandlerInterceptorAdapter.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/WebRequestHandlerInterceptorAdapter.java @@ -49,6 +49,7 @@ public WebRequestHandlerInterceptorAdapter(WebRequestInterceptor requestIntercep } + @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { @@ -56,6 +57,7 @@ public boolean preHandle(HttpServletRequest request, HttpServletResponse respons return true; } + @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { @@ -63,12 +65,14 @@ public void postHandle(HttpServletRequest request, HttpServletResponse response, (modelAndView != null && !modelAndView.wasCleared() ? modelAndView.getModelMap() : null)); } + @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { this.requestInterceptor.afterCompletion(new DispatcherServletWebRequest(request, response), ex); } + @Override public void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) { if (this.requestInterceptor instanceof AsyncWebRequestInterceptor) { AsyncWebRequestInterceptor asyncInterceptor = (AsyncWebRequestInterceptor) this.requestInterceptor; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/AcceptHeaderLocaleResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/AcceptHeaderLocaleResolver.java index 661bb62ac753..b736a9457582 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/AcceptHeaderLocaleResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/AcceptHeaderLocaleResolver.java @@ -37,10 +37,12 @@ */ public class AcceptHeaderLocaleResolver implements LocaleResolver { + @Override public Locale resolveLocale(HttpServletRequest request) { return request.getLocale(); } + @Override public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) { throw new UnsupportedOperationException( "Cannot change HTTP accept header - use a different locale resolution strategy"); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/CookieLocaleResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/CookieLocaleResolver.java index 94c7d03723f5..007090ad1763 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/CookieLocaleResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/CookieLocaleResolver.java @@ -89,6 +89,7 @@ protected Locale getDefaultLocale() { } + @Override public Locale resolveLocale(HttpServletRequest request) { // Check request for pre-parsed or preset locale. Locale locale = (Locale) request.getAttribute(LOCALE_REQUEST_ATTRIBUTE_NAME); @@ -112,6 +113,7 @@ public Locale resolveLocale(HttpServletRequest request) { return determineDefaultLocale(request); } + @Override public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) { if (locale != null) { // Set request attribute and add cookie. diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/FixedLocaleResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/FixedLocaleResolver.java index f56590f4698a..e7397c0a1d83 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/FixedLocaleResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/FixedLocaleResolver.java @@ -52,6 +52,7 @@ public FixedLocaleResolver(Locale locale) { } + @Override public Locale resolveLocale(HttpServletRequest request) { Locale locale = getDefaultLocale(); if (locale == null) { @@ -60,6 +61,7 @@ public Locale resolveLocale(HttpServletRequest request) { return locale; } + @Override public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) { throw new UnsupportedOperationException( "Cannot change fixed locale - use a different locale resolution strategy"); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/SessionLocaleResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/SessionLocaleResolver.java index de1bdd57c7cb..07ba5fc9700f 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/SessionLocaleResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/SessionLocaleResolver.java @@ -52,6 +52,7 @@ public class SessionLocaleResolver extends AbstractLocaleResolver { public static final String LOCALE_SESSION_ATTRIBUTE_NAME = SessionLocaleResolver.class.getName() + ".LOCALE"; + @Override public Locale resolveLocale(HttpServletRequest request) { Locale locale = (Locale) WebUtils.getSessionAttribute(request, LOCALE_SESSION_ATTRIBUTE_NAME); if (locale == null) { @@ -78,6 +79,7 @@ protected Locale determineDefaultLocale(HttpServletRequest request) { return defaultLocale; } + @Override public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) { WebUtils.setSessionAttribute(request, LOCALE_SESSION_ATTRIBUTE_NAME, locale); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/AbstractController.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/AbstractController.java index a0ef16cc32f9..ec2c81639bd8 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/AbstractController.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/AbstractController.java @@ -133,6 +133,7 @@ public final boolean isSynchronizeOnSession() { } + @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/HttpRequestHandlerAdapter.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/HttpRequestHandlerAdapter.java index f329098d65fe..7c6f8349cba3 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/HttpRequestHandlerAdapter.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/HttpRequestHandlerAdapter.java @@ -39,10 +39,12 @@ */ public class HttpRequestHandlerAdapter implements HandlerAdapter { + @Override public boolean supports(Object handler) { return (handler instanceof HttpRequestHandler); } + @Override public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { @@ -50,6 +52,7 @@ public ModelAndView handle(HttpServletRequest request, HttpServletResponse respo return null; } + @Override public long getLastModified(HttpServletRequest request, Object handler) { if (handler instanceof LastModified) { return ((LastModified) handler).getLastModified(request); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/ServletForwardingController.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/ServletForwardingController.java index 2574e1290f8f..e9a014098b98 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/ServletForwardingController.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/ServletForwardingController.java @@ -101,6 +101,7 @@ public void setServletName(String servletName) { this.servletName = servletName; } + @Override public void setBeanName(String name) { this.beanName = name; if (this.servletName == null) { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/ServletWrappingController.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/ServletWrappingController.java index cdc3f8fddfc3..7f241a92cb57 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/ServletWrappingController.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/ServletWrappingController.java @@ -123,6 +123,7 @@ public void setInitParameters(Properties initParameters) { this.initParameters = initParameters; } + @Override public void setBeanName(String name) { this.beanName = name; } @@ -132,6 +133,7 @@ public void setBeanName(String name) { * Initialize the wrapped Servlet instance. * @see javax.servlet.Servlet#init(javax.servlet.ServletConfig) */ + @Override public void afterPropertiesSet() throws Exception { if (this.servletClass == null) { throw new IllegalArgumentException("servletClass is required"); @@ -165,6 +167,7 @@ protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpSer * Destroy the wrapped Servlet instance. * @see javax.servlet.Servlet#destroy() */ + @Override public void destroy() { this.servletInstance.destroy(); } @@ -177,18 +180,22 @@ public void destroy() { */ private class DelegatingServletConfig implements ServletConfig { + @Override public String getServletName() { return servletName; } + @Override public ServletContext getServletContext() { return ServletWrappingController.this.getServletContext(); } + @Override public String getInitParameter(String paramName) { return initParameters.getProperty(paramName); } + @Override public Enumeration getInitParameterNames() { return initParameters.keys(); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/SimpleControllerHandlerAdapter.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/SimpleControllerHandlerAdapter.java index db409ca719f0..bcd28c0e5400 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/SimpleControllerHandlerAdapter.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/SimpleControllerHandlerAdapter.java @@ -38,16 +38,19 @@ */ public class SimpleControllerHandlerAdapter implements HandlerAdapter { + @Override public boolean supports(Object handler) { return (handler instanceof Controller); } + @Override public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return ((Controller) handler).handleRequest(request, response); } + @Override public long getLastModified(HttpServletRequest request, Object handler) { if (handler instanceof LastModified) { return ((LastModified) handler).getLastModified(request); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/WebContentInterceptor.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/WebContentInterceptor.java index 50a20e51b971..5eae702cd5e8 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/WebContentInterceptor.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/WebContentInterceptor.java @@ -137,6 +137,7 @@ public void setPathMatcher(PathMatcher pathMatcher) { } + @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException { @@ -189,6 +190,7 @@ protected Integer lookupCacheSeconds(String urlPath) { /** * This implementation is empty. */ + @Override public void postHandle( HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { @@ -197,6 +199,7 @@ public void postHandle( /** * This implementation is empty. */ + @Override public void afterCompletion( HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerAdapter.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerAdapter.java index f62226435db2..9e4baa213ccb 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerAdapter.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerAdapter.java @@ -378,10 +378,12 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } + @Override public void setBeanFactory(BeanFactory beanFactory) { if (beanFactory instanceof ConfigurableBeanFactory) { this.beanFactory = (ConfigurableBeanFactory) beanFactory; @@ -390,10 +392,12 @@ public void setBeanFactory(BeanFactory beanFactory) { } + @Override public boolean supports(Object handler) { return getMethodResolver(handler).hasHandlerMethods(); } + @Override public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { @@ -452,6 +456,7 @@ protected ModelAndView invokeHandlerMethod(HttpServletRequest request, HttpServl * to check it, and return {@code null} if that returns {@code true}. * @see org.springframework.web.context.request.WebRequest#checkNotModified(long) */ + @Override public long getLastModified(HttpServletRequest request, Object handler) { return -1; } @@ -1210,6 +1215,7 @@ static class RequestSpecificMappingInfoComparator implements Comparator, Method> matchedHandlers = new HashMap, Method>(); ReflectionUtils.doWithMethods(handlerType, new ReflectionUtils.MethodCallback() { + @Override public void doWith(Method method) { method = ClassUtils.getMostSpecificMethod(method, handlerType); List> handledExceptions = getHandledExceptions(method); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/DefaultAnnotationHandlerMapping.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/DefaultAnnotationHandlerMapping.java index f7f1c163d82e..557992e21192 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/DefaultAnnotationHandlerMapping.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/DefaultAnnotationHandlerMapping.java @@ -177,6 +177,7 @@ protected String[] determineUrlsForHandlerMethods(Class handlerType, final bo handlerTypes.addAll(Arrays.asList(handlerType.getInterfaces())); for (Class currentHandlerType : handlerTypes) { ReflectionUtils.doWithMethods(currentHandlerType, new ReflectionUtils.MethodCallback() { + @Override public void doWith(Method method) { RequestMapping mapping = AnnotationUtils.findAnnotation(method, RequestMapping.class); if (mapping != null) { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/ResponseStatusExceptionResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/ResponseStatusExceptionResolver.java index 3e5fd7365922..6bff5bd8d2e6 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/ResponseStatusExceptionResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/ResponseStatusExceptionResolver.java @@ -43,6 +43,7 @@ public class ResponseStatusExceptionResolver extends AbstractHandlerExceptionRes private MessageSource messageSource; + @Override public void setMessageSource(MessageSource messageSource) { this.messageSource = messageSource; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/AbstractMediaTypeExpression.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/AbstractMediaTypeExpression.java index bc65b27de2a5..87866e0fb378 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/AbstractMediaTypeExpression.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/AbstractMediaTypeExpression.java @@ -56,10 +56,12 @@ abstract class AbstractMediaTypeExpression implements Comparable implements NameValueExpression } } + @Override public String getName() { return this.name; } + @Override public T getValue() { return this.value; } + @Override public boolean isNegated() { return this.isNegated; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/CompositeRequestCondition.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/CompositeRequestCondition.java index b7c8e0442a63..1f6befcbacaa 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/CompositeRequestCondition.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/CompositeRequestCondition.java @@ -106,6 +106,7 @@ private int getLength() { * If both instances have conditions, combine the individual conditions * after ensuring they are of the same type and number. */ + @Override public CompositeRequestCondition combine(CompositeRequestCondition other) { if (isEmpty() && other.isEmpty()) { return this; @@ -137,6 +138,7 @@ private void assertNumberOfConditions(CompositeRequestCondition other) { * resulting "matching" condition instances. *

An empty {@code CompositeRequestCondition} matches to all requests. */ + @Override public CompositeRequestCondition getMatchingCondition(HttpServletRequest request) { if (isEmpty()) { return this; @@ -155,6 +157,7 @@ public CompositeRequestCondition getMatchingCondition(HttpServletRequest request * If one instance is empty, the other "wins". If both instances have * conditions, compare them in the order in which they were provided. */ + @Override public int compareTo(CompositeRequestCondition other, HttpServletRequest request) { if (isEmpty() && other.isEmpty()) { return 0; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/ConsumesRequestCondition.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/ConsumesRequestCondition.java index c6e8e0a04a89..39f46205013d 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/ConsumesRequestCondition.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/ConsumesRequestCondition.java @@ -140,6 +140,7 @@ protected String getToStringInfix() { * instance otherwise. Practically that means a method-level "consumes" * overrides a type-level "consumes" condition. */ + @Override public ConsumesRequestCondition combine(ConsumesRequestCondition other) { return !other.expressions.isEmpty() ? other : this; } @@ -156,6 +157,7 @@ public ConsumesRequestCondition combine(ConsumesRequestCondition other) { * or a new condition with matching expressions only; * or {@code null} if no expressions match. */ + @Override public ConsumesRequestCondition getMatchingCondition(HttpServletRequest request) { if (isEmpty()) { return this; @@ -182,6 +184,7 @@ public ConsumesRequestCondition getMatchingCondition(HttpServletRequest request) * {@link #getMatchingCondition(HttpServletRequest)} and each instance contains * the matching consumable media type expression only or is otherwise empty. */ + @Override public int compareTo(ConsumesRequestCondition other, HttpServletRequest request) { if (this.expressions.isEmpty() && other.expressions.isEmpty()) { return 0; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/HeadersRequestCondition.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/HeadersRequestCondition.java index 3ece7e8d73b3..78e845bb17d9 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/HeadersRequestCondition.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/HeadersRequestCondition.java @@ -91,6 +91,7 @@ protected String getToStringInfix() { * Returns a new instance with the union of the header expressions * from "this" and the "other" instance. */ + @Override public HeadersRequestCondition combine(HeadersRequestCondition other) { Set set = new LinkedHashSet(this.expressions); set.addAll(other.expressions); @@ -101,6 +102,7 @@ public HeadersRequestCondition combine(HeadersRequestCondition other) { * Returns "this" instance if the request matches all expressions; * or {@code null} otherwise. */ + @Override public HeadersRequestCondition getMatchingCondition(HttpServletRequest request) { for (HeaderExpression expression : expressions) { if (!expression.match(request)) { @@ -122,6 +124,7 @@ public HeadersRequestCondition getMatchingCondition(HttpServletRequest request) * {@link #getMatchingCondition(HttpServletRequest)} and each instance * contains the matching header expression only or is otherwise empty. */ + @Override public int compareTo(HeadersRequestCondition other, HttpServletRequest request) { return other.expressions.size() - this.expressions.size(); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/ParamsRequestCondition.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/ParamsRequestCondition.java index 294d4e6ed134..dac9b38a6fc3 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/ParamsRequestCondition.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/ParamsRequestCondition.java @@ -82,6 +82,7 @@ protected String getToStringInfix() { * Returns a new instance with the union of the param expressions * from "this" and the "other" instance. */ + @Override public ParamsRequestCondition combine(ParamsRequestCondition other) { Set set = new LinkedHashSet(this.expressions); set.addAll(other.expressions); @@ -92,6 +93,7 @@ public ParamsRequestCondition combine(ParamsRequestCondition other) { * Returns "this" instance if the request matches all param expressions; * or {@code null} otherwise. */ + @Override public ParamsRequestCondition getMatchingCondition(HttpServletRequest request) { for (ParamExpression expression : expressions) { if (!expression.match(request)) { @@ -113,6 +115,7 @@ public ParamsRequestCondition getMatchingCondition(HttpServletRequest request) { * {@link #getMatchingCondition(HttpServletRequest)} and each instance * contains the matching parameter expressions only or is otherwise empty. */ + @Override public int compareTo(ParamsRequestCondition other, HttpServletRequest request) { return other.expressions.size() - this.expressions.size(); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/ProducesRequestCondition.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/ProducesRequestCondition.java index 13292f1a7662..f34694aae9f3 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/ProducesRequestCondition.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/ProducesRequestCondition.java @@ -159,6 +159,7 @@ protected String getToStringInfix() { * instance otherwise. Practically that means a method-level "produces" * overrides a type-level "produces" condition. */ + @Override public ProducesRequestCondition combine(ProducesRequestCondition other) { return !other.expressions.isEmpty() ? other : this; } @@ -175,6 +176,7 @@ public ProducesRequestCondition combine(ProducesRequestCondition other) { * or a new condition with matching expressions; * or {@code null} if no expressions match. */ + @Override public ProducesRequestCondition getMatchingCondition(HttpServletRequest request) { if (isEmpty()) { return this; @@ -208,6 +210,7 @@ public ProducesRequestCondition getMatchingCondition(HttpServletRequest request) * contains the matching producible media type expression only or * is otherwise empty. */ + @Override public int compareTo(ProducesRequestCondition other, HttpServletRequest request) { try { List acceptedMediaTypes = getAcceptedMediaTypes(request); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/RequestConditionHolder.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/RequestConditionHolder.java index 8779839fbbd9..fffbf7c923df 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/RequestConditionHolder.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/RequestConditionHolder.java @@ -71,6 +71,7 @@ protected String getToStringInfix() { * instances after making sure the conditions are of the same type. * Or if one holder is empty, the other holder is returned. */ + @Override public RequestConditionHolder combine(RequestConditionHolder other) { if (this.condition == null && other.condition == null) { return this; @@ -104,6 +105,7 @@ private void assertEqualConditionTypes(RequestConditionHolder other) { * new RequestConditionHolder instance. Or otherwise if this is an empty * holder, return the same holder instance. */ + @Override public RequestConditionHolder getMatchingCondition(HttpServletRequest request) { if (this.condition == null) { return this; @@ -117,6 +119,7 @@ public RequestConditionHolder getMatchingCondition(HttpServletRequest request) { * instances after making sure the conditions are of the same type. * Or if one holder is empty, the other holder is preferred. */ + @Override public int compareTo(RequestConditionHolder other, HttpServletRequest request) { if (this.condition == null && other.condition == null) { return 0; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/RequestMethodsRequestCondition.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/RequestMethodsRequestCondition.java index 8fc09c176ae2..c74cc973331c 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/RequestMethodsRequestCondition.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/RequestMethodsRequestCondition.java @@ -80,6 +80,7 @@ protected String getToStringInfix() { * Returns a new instance with a union of the HTTP request methods * from "this" and the "other" instance. */ + @Override public RequestMethodsRequestCondition combine(RequestMethodsRequestCondition other) { Set set = new LinkedHashSet(this.methods); set.addAll(other.methods); @@ -94,6 +95,7 @@ public RequestMethodsRequestCondition combine(RequestMethodsRequestCondition oth * @return the same instance if the condition is empty, a new condition with * the matched request method, or {@code null} if no request methods match */ + @Override public RequestMethodsRequestCondition getMatchingCondition(HttpServletRequest request) { if (this.methods.isEmpty()) { return this; @@ -130,6 +132,7 @@ private RequestMethod getRequestMethod(HttpServletRequest request) { * {@link #getMatchingCondition(HttpServletRequest)} and therefore each instance * contains the matching HTTP request method only or is otherwise empty. */ + @Override public int compareTo(RequestMethodsRequestCondition other, HttpServletRequest request) { return other.methods.size() - this.methods.size(); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/AbstractHandlerMethodAdapter.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/AbstractHandlerMethodAdapter.java index 9824b80e0e51..8eb83966bb26 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/AbstractHandlerMethodAdapter.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/AbstractHandlerMethodAdapter.java @@ -50,6 +50,7 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } @@ -60,6 +61,7 @@ public int getOrder() { * @param handler the handler instance to check * @return whether or not this adapter can adapt the given handler */ + @Override public final boolean supports(Object handler) { return handler instanceof HandlerMethod && supportsInternal((HandlerMethod) handler); } @@ -75,6 +77,7 @@ public final boolean supports(Object handler) { /** * {@inheritDoc}

This implementation expects the handler to be an {@link HandlerMethod}. */ + @Override public final ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return handleInternal(request, response, (HandlerMethod) handler); @@ -98,6 +101,7 @@ protected abstract ModelAndView handleInternal(HttpServletRequest request, /** * {@inheritDoc}

This implementation expects the handler to be an {@link HandlerMethod}. */ + @Override public final long getLastModified(HttpServletRequest request, Object handler) { return getLastModifiedInternal(request, (HandlerMethod) handler); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/RequestMappingInfo.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/RequestMappingInfo.java index 6d0e3941e6c8..573133ea0524 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/RequestMappingInfo.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/RequestMappingInfo.java @@ -148,6 +148,7 @@ public RequestCondition getCustomCondition() { *

Example: combine type- and method-level request mappings. * @return a new request mapping info instance; never {@code null} */ + @Override public RequestMappingInfo combine(RequestMappingInfo other) { PatternsRequestCondition patterns = this.patternsCondition.combine(other.patternsCondition); RequestMethodsRequestCondition methods = this.methodsCondition.combine(other.methodsCondition); @@ -167,6 +168,7 @@ public RequestMappingInfo combine(RequestMappingInfo other) { * the current request, sorted with best matching patterns on top. * @return a new instance in case all conditions match; or {@code null} otherwise */ + @Override public RequestMappingInfo getMatchingCondition(HttpServletRequest request) { RequestMethodsRequestCondition methods = methodsCondition.getMatchingCondition(request); ParamsRequestCondition params = paramsCondition.getMatchingCondition(request); @@ -197,6 +199,7 @@ public RequestMappingInfo getMatchingCondition(HttpServletRequest request) { * {@link #getMatchingCondition(HttpServletRequest)} to ensure they have conditions with * content relevant to current request. */ + @Override public int compareTo(RequestMappingInfo other, HttpServletRequest request) { int result = patternsCondition.compareTo(other.getPatternsCondition(), request); if (result != 0) { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMapping.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMapping.java index 07ad5dce9d77..d4c79c193b70 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMapping.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMapping.java @@ -78,6 +78,7 @@ protected RequestMappingInfo getMatchingMapping(RequestMappingInfo info, HttpSer @Override protected Comparator getMappingComparator(final HttpServletRequest request) { return new Comparator() { + @Override public int compare(RequestMappingInfo info1, RequestMappingInfo info2) { return info1.compareTo(info2, request); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AsyncTaskMethodReturnValueHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AsyncTaskMethodReturnValueHandler.java index 98130ad84eaa..1c4f3e3933cc 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AsyncTaskMethodReturnValueHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AsyncTaskMethodReturnValueHandler.java @@ -39,11 +39,13 @@ public AsyncTaskMethodReturnValueHandler(BeanFactory beanFactory) { this.beanFactory = beanFactory; } + @Override public boolean supportsReturnType(MethodParameter returnType) { Class paramType = returnType.getParameterType(); return WebAsyncTask.class.isAssignableFrom(paramType); } + @Override public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/CallableMethodReturnValueHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/CallableMethodReturnValueHandler.java index 22471f7c3fbc..7da354795cec 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/CallableMethodReturnValueHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/CallableMethodReturnValueHandler.java @@ -32,11 +32,13 @@ */ public class CallableMethodReturnValueHandler implements HandlerMethodReturnValueHandler { + @Override public boolean supportsReturnType(MethodParameter returnType) { Class paramType = returnType.getParameterType(); return Callable.class.isAssignableFrom(paramType); } + @Override public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/DeferredResultMethodReturnValueHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/DeferredResultMethodReturnValueHandler.java index fbb7c8531af2..5f10dfa89122 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/DeferredResultMethodReturnValueHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/DeferredResultMethodReturnValueHandler.java @@ -31,11 +31,13 @@ */ public class DeferredResultMethodReturnValueHandler implements HandlerMethodReturnValueHandler { + @Override public boolean supportsReturnType(MethodParameter returnType) { Class paramType = returnType.getParameterType(); return DeferredResult.class.isAssignableFrom(paramType); } + @Override public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ExceptionHandlerExceptionResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ExceptionHandlerExceptionResolver.java index 757d2744dd5f..8a62923a429e 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ExceptionHandlerExceptionResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ExceptionHandlerExceptionResolver.java @@ -205,6 +205,7 @@ public void setContentNegotiationManager(ContentNegotiationManager contentNegoti this.contentNegotiationManager = contentNegotiationManager; } + @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } @@ -213,6 +214,7 @@ public ApplicationContext getApplicationContext() { return this.applicationContext; } + @Override public void afterPropertiesSet() { if (this.argumentResolvers == null) { List resolvers = getDefaultArgumentResolvers(); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/HttpEntityMethodProcessor.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/HttpEntityMethodProcessor.java index edb113e6079e..8d127ba1b107 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/HttpEntityMethodProcessor.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/HttpEntityMethodProcessor.java @@ -61,16 +61,19 @@ public HttpEntityMethodProcessor(List> messageConverters super(messageConverters, contentNegotiationManager); } + @Override public boolean supportsParameter(MethodParameter parameter) { Class parameterType = parameter.getParameterType(); return HttpEntity.class.equals(parameterType); } + @Override public boolean supportsReturnType(MethodParameter returnType) { Class parameterType = returnType.getParameterType(); return HttpEntity.class.isAssignableFrom(parameterType) || ResponseEntity.class.isAssignableFrom(parameterType); } + @Override public Object resolveArgument( MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) @@ -94,6 +97,7 @@ private Type getHttpEntityType(MethodParameter parameter) { + " is not parameterized or has more than one parameter"); } + @Override public void handleReturnValue( Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MatrixVariableMapMethodArgumentResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MatrixVariableMapMethodArgumentResolver.java index 9a5160ade9c9..ffefd917863a 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MatrixVariableMapMethodArgumentResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MatrixVariableMapMethodArgumentResolver.java @@ -44,6 +44,7 @@ */ public class MatrixVariableMapMethodArgumentResolver implements HandlerMethodArgumentResolver { + @Override public boolean supportsParameter(MethodParameter parameter) { MatrixVariable paramAnnot = parameter.getParameterAnnotation(MatrixVariable.class); if (paramAnnot != null) { @@ -54,6 +55,7 @@ public boolean supportsParameter(MethodParameter parameter) { return false; } + @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest request, WebDataBinderFactory binderFactory) throws Exception { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MatrixVariableMethodArgumentResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MatrixVariableMethodArgumentResolver.java index 5b511116dbc9..e4fd61ceac1e 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MatrixVariableMethodArgumentResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MatrixVariableMethodArgumentResolver.java @@ -47,6 +47,7 @@ public MatrixVariableMethodArgumentResolver() { super(null); } + @Override public boolean supportsParameter(MethodParameter parameter) { if (!parameter.hasParameterAnnotation(MatrixVariable.class)) { return false; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ModelAndViewMethodReturnValueHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ModelAndViewMethodReturnValueHandler.java index 92d180f31cda..ebdcd8fcf3b3 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ModelAndViewMethodReturnValueHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ModelAndViewMethodReturnValueHandler.java @@ -42,10 +42,12 @@ */ public class ModelAndViewMethodReturnValueHandler implements HandlerMethodReturnValueHandler { + @Override public boolean supportsReturnType(MethodParameter returnType) { return ModelAndView.class.isAssignableFrom(returnType.getParameterType()); } + @Override public void handleReturnValue( Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ModelAndViewResolverMethodReturnValueHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ModelAndViewResolverMethodReturnValueHandler.java index a39649551aa1..a54518b393e1 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ModelAndViewResolverMethodReturnValueHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ModelAndViewResolverMethodReturnValueHandler.java @@ -67,10 +67,12 @@ public ModelAndViewResolverMethodReturnValueHandler(List m /** * Always returns {@code true}. See class-level note. */ + @Override public boolean supportsReturnType(MethodParameter returnType) { return true; } + @Override public void handleReturnValue( Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest request) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/PathVariableMapMethodArgumentResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/PathVariableMapMethodArgumentResolver.java index 514df9100228..2726da4378ec 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/PathVariableMapMethodArgumentResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/PathVariableMapMethodArgumentResolver.java @@ -42,6 +42,7 @@ */ public class PathVariableMapMethodArgumentResolver implements HandlerMethodArgumentResolver { + @Override public boolean supportsParameter(MethodParameter parameter) { PathVariable annot = parameter.getParameterAnnotation(PathVariable.class); return ((annot != null) && (Map.class.isAssignableFrom(parameter.getParameterType())) @@ -51,6 +52,7 @@ public boolean supportsParameter(MethodParameter parameter) { /** * Return a Map with all URI template variables or an empty map. */ + @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/PathVariableMethodArgumentResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/PathVariableMethodArgumentResolver.java index 7b960f001ce5..efc48fd7040c 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/PathVariableMethodArgumentResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/PathVariableMethodArgumentResolver.java @@ -65,6 +65,7 @@ public PathVariableMethodArgumentResolver() { super(null); } + @Override public boolean supportsParameter(MethodParameter parameter) { if (!parameter.hasParameterAnnotation(PathVariable.class)) { return false; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RedirectAttributesMethodArgumentResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RedirectAttributesMethodArgumentResolver.java index 89d4849c3d4a..9cf3a73189f6 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RedirectAttributesMethodArgumentResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RedirectAttributesMethodArgumentResolver.java @@ -42,10 +42,12 @@ */ public class RedirectAttributesMethodArgumentResolver implements HandlerMethodArgumentResolver { + @Override public boolean supportsParameter(MethodParameter parameter) { return RedirectAttributes.class.isAssignableFrom(parameter.getParameterType()); } + @Override public Object resolveArgument( MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerAdapter.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerAdapter.java index 83c205360b9a..6cd0fcb1bf1a 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerAdapter.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerAdapter.java @@ -465,6 +465,7 @@ public void setParameterNameDiscoverer(ParameterNameDiscoverer parameterNameDisc *

A {@link ConfigurableBeanFactory} is expected for resolving * expressions in method argument default values. */ + @Override public void setBeanFactory(BeanFactory beanFactory) { if (beanFactory instanceof ConfigurableBeanFactory) { this.beanFactory = (ConfigurableBeanFactory) beanFactory; @@ -478,6 +479,7 @@ protected ConfigurableBeanFactory getBeanFactory() { return this.beanFactory; } + @Override public void afterPropertiesSet() { if (this.argumentResolvers == null) { List resolvers = getDefaultArgumentResolvers(); @@ -865,6 +867,7 @@ private ModelAndView getModelAndView(ModelAndViewContainer mavContainer, */ public static final MethodFilter INIT_BINDER_METHODS = new MethodFilter() { + @Override public boolean matches(Method method) { return AnnotationUtils.findAnnotation(method, InitBinder.class) != null; } @@ -875,6 +878,7 @@ public boolean matches(Method method) { */ public static final MethodFilter MODEL_ATTRIBUTE_METHODS = new MethodFilter() { + @Override public boolean matches(Method method) { return ((AnnotationUtils.findAnnotation(method, RequestMapping.class) == null) && (AnnotationUtils.findAnnotation(method, ModelAttribute.class) != null)); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestPartMethodArgumentResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestPartMethodArgumentResolver.java index 80b7678571db..f3474d102a89 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestPartMethodArgumentResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestPartMethodArgumentResolver.java @@ -87,6 +87,7 @@ public RequestPartMethodArgumentResolver(List> messageCo *

  • Of type {@code javax.servlet.http.Part} unless annotated with {@code @RequestParam}. * */ + @Override public boolean supportsParameter(MethodParameter parameter) { if (parameter.hasParameterAnnotation(RequestPart.class)) { return true; @@ -107,6 +108,7 @@ else if ("javax.servlet.http.Part".equals(parameter.getParameterType().getName() } } + @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest request, WebDataBinderFactory binderFactory) throws Exception { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestResponseBodyMethodProcessor.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestResponseBodyMethodProcessor.java index a7473a60f185..0e2cc60956f5 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestResponseBodyMethodProcessor.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestResponseBodyMethodProcessor.java @@ -74,10 +74,12 @@ public RequestResponseBodyMethodProcessor(List> messageC super(messageConverters, contentNegotiationManager); } + @Override public boolean supportsParameter(MethodParameter parameter) { return parameter.hasParameterAnnotation(RequestBody.class); } + @Override public boolean supportsReturnType(MethodParameter returnType) { return returnType.getMethodAnnotation(ResponseBody.class) != null; } @@ -89,6 +91,7 @@ public boolean supportsReturnType(MethodParameter returnType) { * is {@code true} and there is no body content or if there is no suitable * converter to read the content with. */ + @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { @@ -180,6 +183,7 @@ public InputStream getBody() throws IOException { return super.readWithMessageConverters(inputMessage, methodParam, paramType); } + @Override public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws IOException, HttpMediaTypeNotAcceptableException { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ServletInvocableHandlerMethod.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ServletInvocableHandlerMethod.java index b219196c5982..bc9246c046c7 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ServletInvocableHandlerMethod.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ServletInvocableHandlerMethod.java @@ -182,6 +182,7 @@ ServletInvocableHandlerMethod wrapConcurrentResult(final Object result) { return new CallableHandlerMethod(new Callable() { + @Override public Object call() throws Exception { if (result instanceof Exception) { throw (Exception) result; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ServletRequestMethodArgumentResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ServletRequestMethodArgumentResolver.java index d0c3a020247f..3a6770c79397 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ServletRequestMethodArgumentResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ServletRequestMethodArgumentResolver.java @@ -55,6 +55,7 @@ */ public class ServletRequestMethodArgumentResolver implements HandlerMethodArgumentResolver { + @Override public boolean supportsParameter(MethodParameter parameter) { Class paramType = parameter.getParameterType(); return WebRequest.class.isAssignableFrom(paramType) || @@ -67,6 +68,7 @@ public boolean supportsParameter(MethodParameter parameter) { Reader.class.isAssignableFrom(paramType); } + @Override public Object resolveArgument( MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ServletResponseMethodArgumentResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ServletResponseMethodArgumentResolver.java index 14c216258f70..11e97e8660b3 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ServletResponseMethodArgumentResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ServletResponseMethodArgumentResolver.java @@ -44,6 +44,7 @@ */ public class ServletResponseMethodArgumentResolver implements HandlerMethodArgumentResolver { + @Override public boolean supportsParameter(MethodParameter parameter) { Class paramType = parameter.getParameterType(); return ServletResponse.class.isAssignableFrom(paramType) @@ -57,6 +58,7 @@ public boolean supportsParameter(MethodParameter parameter) { * to the response. If subsequently the underlying method returns * {@code null}, the request is considered directly handled. */ + @Override public Object resolveArgument( MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/UriComponentsBuilderMethodArgumentResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/UriComponentsBuilderMethodArgumentResolver.java index f87811a950b0..a1800c285800 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/UriComponentsBuilderMethodArgumentResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/UriComponentsBuilderMethodArgumentResolver.java @@ -37,10 +37,12 @@ */ public class UriComponentsBuilderMethodArgumentResolver implements HandlerMethodArgumentResolver { + @Override public boolean supportsParameter(MethodParameter parameter) { return UriComponentsBuilder.class.isAssignableFrom(parameter.getParameterType()); } + @Override public Object resolveArgument( MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ViewMethodReturnValueHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ViewMethodReturnValueHandler.java index de6a387330cf..e68d91273eab 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ViewMethodReturnValueHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ViewMethodReturnValueHandler.java @@ -40,10 +40,12 @@ */ public class ViewMethodReturnValueHandler implements HandlerMethodReturnValueHandler { + @Override public boolean supportsReturnType(MethodParameter returnType) { return View.class.isAssignableFrom(returnType.getParameterType()); } + @Override public void handleReturnValue( Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ViewNameMethodReturnValueHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ViewNameMethodReturnValueHandler.java index 153486abb5a7..d4ffdb805979 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ViewNameMethodReturnValueHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ViewNameMethodReturnValueHandler.java @@ -40,11 +40,13 @@ */ public class ViewNameMethodReturnValueHandler implements HandlerMethodReturnValueHandler { + @Override public boolean supportsReturnType(MethodParameter returnType) { Class paramType = returnType.getParameterType(); return (void.class.equals(paramType) || String.class.equals(paramType)); } + @Override public void handleReturnValue( Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/multiaction/AbstractUrlMethodNameResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/multiaction/AbstractUrlMethodNameResolver.java index ed781d99c787..3ee748d461cf 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/multiaction/AbstractUrlMethodNameResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/multiaction/AbstractUrlMethodNameResolver.java @@ -85,6 +85,7 @@ public void setUrlPathHelper(UrlPathHelper urlPathHelper) { * Converts {@code null} values to NoSuchRequestHandlingMethodExceptions. * @see #getHandlerMethodNameForUrlPath */ + @Override public final String getHandlerMethodName(HttpServletRequest request) throws NoSuchRequestHandlingMethodException { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/multiaction/MultiActionController.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/multiaction/MultiActionController.java index 77fc74210446..0c2eff8a4b03 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/multiaction/MultiActionController.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/multiaction/MultiActionController.java @@ -364,6 +364,7 @@ private void registerExceptionHandlerMethod(Method method) { * Return -1 if there's no such handler, indicating that content must be updated. * @see org.springframework.web.servlet.mvc.LastModified#getLastModified(HttpServletRequest) */ + @Override public long getLastModified(HttpServletRequest request) { try { String handlerMethodName = this.methodNameResolver.getHandlerMethodName(request); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/multiaction/ParameterMethodNameResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/multiaction/ParameterMethodNameResolver.java index 1a2e175fb1a0..83a65d086f1d 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/multiaction/ParameterMethodNameResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/multiaction/ParameterMethodNameResolver.java @@ -157,6 +157,7 @@ public void setDefaultMethodName(String defaultMethodName) { } + @Override public String getHandlerMethodName(HttpServletRequest request) throws NoSuchRequestHandlingMethodException { String methodName = null; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/multiaction/PropertiesMethodNameResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/multiaction/PropertiesMethodNameResolver.java index 3cbcb08a8f74..08026a873521 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/multiaction/PropertiesMethodNameResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/multiaction/PropertiesMethodNameResolver.java @@ -72,6 +72,7 @@ public void setPathMatcher(PathMatcher pathMatcher) { this.pathMatcher = pathMatcher; } + @Override public void afterPropertiesSet() { if (this.mappings == null || this.mappings.isEmpty()) { throw new IllegalArgumentException("'mappings' property is required"); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/RedirectAttributes.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/RedirectAttributes.java index f3f2e8b12eaf..e8952b58f4f1 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/RedirectAttributes.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/RedirectAttributes.java @@ -59,12 +59,16 @@ */ public interface RedirectAttributes extends Model { + @Override RedirectAttributes addAttribute(String attributeName, Object attributeValue); + @Override RedirectAttributes addAttribute(Object attributeValue); + @Override RedirectAttributes addAllAttributes(Collection attributeValues); + @Override RedirectAttributes mergeAttributes(Map attributes); /** diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/RedirectAttributesModelMap.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/RedirectAttributesModelMap.java index 6db27a10d4fb..66c811837bc9 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/RedirectAttributesModelMap.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/RedirectAttributesModelMap.java @@ -57,6 +57,7 @@ public RedirectAttributesModelMap() { /** * Return the attributes candidate for flash storage or an empty Map. */ + @Override public Map getFlashAttributes() { return this.flashAttributes; } @@ -65,6 +66,7 @@ public RedirectAttributesModelMap() { * {@inheritDoc} *

    Formats the attribute value as a String before adding it. */ + @Override public RedirectAttributesModelMap addAttribute(String attributeName, Object attributeValue) { super.addAttribute(attributeName, formatValue(attributeValue)); return this; @@ -81,6 +83,7 @@ private String formatValue(Object value) { * {@inheritDoc} *

    Formats the attribute value as a String before adding it. */ + @Override public RedirectAttributesModelMap addAttribute(Object attributeValue) { super.addAttribute(attributeValue); return this; @@ -90,6 +93,7 @@ public RedirectAttributesModelMap addAttribute(Object attributeValue) { * {@inheritDoc} *

    Each attribute value is formatted as a String before being added. */ + @Override public RedirectAttributesModelMap addAllAttributes(Collection attributeValues) { super.addAllAttributes(attributeValues); return this; @@ -99,6 +103,7 @@ public RedirectAttributesModelMap addAllAttributes(Collection attributeValues * {@inheritDoc} *

    Each attribute value is formatted as a String before being added. */ + @Override public RedirectAttributesModelMap addAllAttributes(Map attributes) { if (attributes != null) { for (String key : attributes.keySet()) { @@ -112,6 +117,7 @@ public RedirectAttributesModelMap addAllAttributes(Map attributes) { * {@inheritDoc} *

    Each attribute value is formatted as a String before being merged. */ + @Override public RedirectAttributesModelMap mergeAttributes(Map attributes) { if (attributes != null) { for (String key : attributes.keySet()) { @@ -123,6 +129,7 @@ public RedirectAttributesModelMap mergeAttributes(Map attributes) { return this; } + @Override public Map asMap() { return this; } @@ -149,11 +156,13 @@ public void putAll(Map map) { } } + @Override public RedirectAttributes addFlashAttribute(String attributeName, Object attributeValue) { this.flashAttributes.addAttribute(attributeName, attributeValue); return this; } + @Override public RedirectAttributes addFlashAttribute(Object attributeValue) { this.flashAttributes.addAttribute(attributeValue); return this; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/DefaultServletHttpRequestHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/DefaultServletHttpRequestHandler.java index eadd19b0ac02..180bc6e88a15 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/DefaultServletHttpRequestHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/DefaultServletHttpRequestHandler.java @@ -83,6 +83,7 @@ public void setDefaultServletName(String defaultServletName) { * attempts to locate the default Servlet using the known common * container-specific names. */ + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; if (!StringUtils.hasText(this.defaultServletName)) { @@ -109,6 +110,7 @@ else if (this.servletContext.getNamedDispatcher(WEBSPHERE_DEFAULT_SERVLET_NAME) } + @Override public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java index 0a928be3a45f..965adae67bfe 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java @@ -88,6 +88,7 @@ public void setLocations(List locations) { this.locations = locations; } + @Override public void afterPropertiesSet() throws Exception { Assert.notEmpty(locations, "Locations list must not be empty"); } @@ -104,6 +105,7 @@ public void afterPropertiesSet() throws Exception { * of the resource will be written to the response with caching headers * set to expire one year in the future. */ + @Override public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/support/AbstractFlashMapManager.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/support/AbstractFlashMapManager.java index 9fe88e8ef740..d667e88a819c 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/support/AbstractFlashMapManager.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/support/AbstractFlashMapManager.java @@ -82,6 +82,7 @@ public UrlPathHelper getUrlPathHelper() { return this.urlPathHelper; } + @Override public final FlashMap retrieveAndUpdate(HttpServletRequest request, HttpServletResponse response) { List maps = retrieveFlashMaps(request); @@ -178,6 +179,7 @@ protected boolean isFlashMapForRequest(FlashMap flashMap, HttpServletRequest req return true; } + @Override public final void saveOutputFlashMap(FlashMap flashMap, HttpServletRequest request, HttpServletResponse response) { if (CollectionUtils.isEmpty(flashMap)) { return; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/support/SessionFlashMapManager.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/support/SessionFlashMapManager.java index 527f89d6335b..d3afa478ac2e 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/support/SessionFlashMapManager.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/support/SessionFlashMapManager.java @@ -40,6 +40,7 @@ public class SessionFlashMapManager extends AbstractFlashMapManager{ * FlashMap matching the current request is found or there are expired * FlashMap to be removed. */ + @Override @SuppressWarnings("unchecked") protected List retrieveFlashMaps(HttpServletRequest request) { HttpSession session = request.getSession(false); @@ -49,6 +50,7 @@ protected List retrieveFlashMaps(HttpServletRequest request) { /** * Save the given FlashMap instance, if not empty, in the HTTP session. */ + @Override protected void updateFlashMaps(List flashMaps, HttpServletRequest request, HttpServletResponse response) { request.getSession().setAttribute(FLASH_MAPS_SESSION_ATTRIBUTE, flashMaps); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/BindTag.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/BindTag.java index 3f060693412d..e773e2a29f2d 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/BindTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/BindTag.java @@ -168,6 +168,7 @@ public final Errors getErrors() { return this.status.getErrors(); } + @Override public final PropertyEditor getEditor() { return this.status.getEditor(); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/EscapeBodyTag.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/EscapeBodyTag.java index 0102f23bc910..5ef72651f87f 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/EscapeBodyTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/EscapeBodyTag.java @@ -64,10 +64,12 @@ protected int doStartTagInternal() { return EVAL_BODY_BUFFERED; } + @Override public void doInitBody() { // do nothing } + @Override public void setBodyContent(BodyContent bodyContent) { this.bodyContent = bodyContent; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/EvalTag.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/EvalTag.java index 391935eb53bc..0a5331e57034 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/EvalTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/EvalTag.java @@ -162,15 +162,18 @@ public JspPropertyAccessor(PageContext pageContext) { this.variableResolver = pageContext.getVariableResolver(); } + @Override public Class[] getSpecificTargetClasses() { return null; } + @Override public boolean canRead(EvaluationContext context, Object target, String name) throws AccessException { return (target == null && (resolveImplicitVariable(name) != null || this.pageContext.findAttribute(name) != null)); } + @Override public TypedValue read(EvaluationContext context, Object target, String name) throws AccessException { Object implicitVar = resolveImplicitVariable(name); if (implicitVar != null) { @@ -179,10 +182,12 @@ public TypedValue read(EvaluationContext context, Object target, String name) th return new TypedValue(this.pageContext.findAttribute(name)); } + @Override public boolean canWrite(EvaluationContext context, Object target, String name) { return false; } + @Override public void write(EvaluationContext context, Object target, String name, Object newValue) { throw new UnsupportedOperationException(); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/NestedPathTag.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/NestedPathTag.java index 6f9222a8704e..4636b46c20b5 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/NestedPathTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/NestedPathTag.java @@ -108,10 +108,12 @@ public int doEndTag() { return EVAL_PAGE; } + @Override public void doCatch(Throwable throwable) throws Throwable { throw throwable; } + @Override public void doFinally() { this.previousNestedPath = null; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/RequestContextAwareTag.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/RequestContextAwareTag.java index b02021fbb609..7105bc71c03d 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/RequestContextAwareTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/RequestContextAwareTag.java @@ -110,10 +110,12 @@ protected final RequestContext getRequestContext() { protected abstract int doStartTagInternal() throws Exception; + @Override public void doCatch(Throwable throwable) throws Throwable { throw throwable; } + @Override public void doFinally() { this.requestContext = null; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/UrlTag.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/UrlTag.java index a71e6cb0da8b..4d6cd703e0d1 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/UrlTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/UrlTag.java @@ -154,6 +154,7 @@ public void setJavaScriptEscape(boolean javaScriptEscape) throws JspException { this.javaScriptEscape = javaScriptEscape; } + @Override public void addParam(Param param) { this.params.add(param); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/AbstractDataBoundFormElementTag.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/AbstractDataBoundFormElementTag.java index 4cb3c8df4677..8a9b82528c52 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/AbstractDataBoundFormElementTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/AbstractDataBoundFormElementTag.java @@ -208,6 +208,7 @@ protected PropertyEditor getPropertyEditor() throws JspException { * Exposes the {@link PropertyEditor} for {@link EditorAwareTag}. *

    Use {@link #getPropertyEditor()} for internal rendering purposes. */ + @Override public final PropertyEditor getEditor() throws JspException { return getPropertyEditor(); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/AbstractHtmlElementBodyTag.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/AbstractHtmlElementBodyTag.java index a31cc1ebe62a..0bbc79ba6f60 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/AbstractHtmlElementBodyTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/AbstractHtmlElementBodyTag.java @@ -149,10 +149,12 @@ protected void flushBufferedBodyContent(BodyContent bodyContent) throws JspExcep // BodyTag implementation //--------------------------------------------------------------------- + @Override public void doInitBody() throws JspException { // no op } + @Override public void setBodyContent(BodyContent bodyContent) { this.bodyContent = bodyContent; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/AbstractHtmlElementTag.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/AbstractHtmlElementTag.java index 6316ac8b3c2f..f3da981aa867 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/AbstractHtmlElementTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/AbstractHtmlElementTag.java @@ -394,6 +394,7 @@ protected Map getDynamicAttributes() { /** * {@inheritDoc} */ + @Override public void setDynamicAttribute(String uri, String localName, Object value ) throws JspException { if (this.dynamicAttributes == null) { this.dynamicAttributes = new HashMap(); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/ButtonTag.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/ButtonTag.java index efe6f5a04dda..3ccd819b5b14 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/ButtonTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/ButtonTag.java @@ -55,6 +55,7 @@ public void setName(String name) { /** * Set the value of the '{@code name}' attribute. */ + @Override public String getName() { return name; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/SelectTag.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/SelectTag.java index 29eedb0b57ea..bc60a5c7e772 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/SelectTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/SelectTag.java @@ -210,6 +210,7 @@ protected int writeTagContent(TagWriter tagWriter) throws JspException { ObjectUtils.getDisplayString(evaluate("itemLabel", getItemLabel())) : null); OptionWriter optionWriter = new OptionWriter(itemsObject, getBindStatus(), valueProperty, labelProperty, isHtmlEscape()) { + @Override protected String processOptionValue(String resolvedValue) { return processFieldValue(selectName, resolvedValue, "option"); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/theme/CookieThemeResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/theme/CookieThemeResolver.java index 266609873499..5d73b8e45214 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/theme/CookieThemeResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/theme/CookieThemeResolver.java @@ -76,6 +76,7 @@ public String getDefaultThemeName() { } + @Override public String resolveThemeName(HttpServletRequest request) { // Check request for preparsed or preset theme. String theme = (String) request.getAttribute(THEME_REQUEST_ATTRIBUTE_NAME); @@ -93,6 +94,7 @@ public String resolveThemeName(HttpServletRequest request) { return getDefaultThemeName(); } + @Override public void setThemeName(HttpServletRequest request, HttpServletResponse response, String themeName) { if (themeName != null) { // Set request attribute and add cookie. diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/theme/FixedThemeResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/theme/FixedThemeResolver.java index 75aae57b6192..c02bc45aa5ad 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/theme/FixedThemeResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/theme/FixedThemeResolver.java @@ -33,10 +33,12 @@ */ public class FixedThemeResolver extends AbstractThemeResolver { + @Override public String resolveThemeName(HttpServletRequest request) { return getDefaultThemeName(); } + @Override public void setThemeName(HttpServletRequest request, HttpServletResponse response, String themeName) { throw new UnsupportedOperationException("Cannot change theme - use a different theme resolution strategy"); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/theme/SessionThemeResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/theme/SessionThemeResolver.java index 686f7a2708dd..7c9f0089f85e 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/theme/SessionThemeResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/theme/SessionThemeResolver.java @@ -46,12 +46,14 @@ public class SessionThemeResolver extends AbstractThemeResolver { */ public static final String THEME_SESSION_ATTRIBUTE_NAME = SessionThemeResolver.class.getName() + ".THEME"; + @Override public String resolveThemeName(HttpServletRequest request) { String theme = (String) WebUtils.getSessionAttribute(request, THEME_SESSION_ATTRIBUTE_NAME); // specific theme, or fallback to default? return (theme != null ? theme : getDefaultThemeName()); } + @Override public void setThemeName(HttpServletRequest request, HttpServletResponse response, String themeName) { WebUtils.setSessionAttribute(request, THEME_SESSION_ATTRIBUTE_NAME, themeName); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractCachingViewResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractCachingViewResolver.java index 51b6cbc2f2fb..3f2f94ed5744 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractCachingViewResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractCachingViewResolver.java @@ -47,9 +47,11 @@ public abstract class AbstractCachingViewResolver extends WebApplicationObjectSu /** Dummy marker object for unresolved views in the cache Maps */ private static final View UNRESOLVED_VIEW = new View() { + @Override public String getContentType() { return null; } + @Override public void render(Map model, HttpServletRequest request, HttpServletResponse response) { } }; @@ -138,6 +140,7 @@ public boolean isCacheUnresolved() { } + @Override public View resolveViewName(String viewName, Locale locale) throws Exception { if (!isCache()) { return createView(viewName, locale); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractUrlBasedView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractUrlBasedView.java index 9e17d98f8fd0..39f2c3b0952a 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractUrlBasedView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractUrlBasedView.java @@ -62,6 +62,7 @@ public String getUrl() { return this.url; } + @Override public void afterPropertiesSet() throws Exception { if (isUrlRequired() && getUrl() == null) { throw new IllegalArgumentException("Property 'url' is required"); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractView.java index fc17d9bd5e06..f9c1c29d836c 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractView.java @@ -78,6 +78,7 @@ public abstract class AbstractView extends WebApplicationObjectSupport implement * Set the view's name. Helpful for traceability. *

    Framework code must call this when constructing views. */ + @Override public void setBeanName(String beanName) { this.beanName = beanName; } @@ -103,6 +104,7 @@ public void setContentType(String contentType) { /** * Return the content type for this view. */ + @Override public String getContentType() { return this.contentType; } @@ -251,6 +253,7 @@ public boolean isExposePathVariables() { * Delegates to renderMergedOutputModel for the actual rendering. * @see #renderMergedOutputModel */ + @Override public void render(Map model, HttpServletRequest request, HttpServletResponse response) throws Exception { if (logger.isTraceEnabled()) { logger.trace("Rendering view with name '" + this.beanName + "' with model " + model + diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/BeanNameViewResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/BeanNameViewResolver.java index a8ca84e66454..f19239c254da 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/BeanNameViewResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/BeanNameViewResolver.java @@ -61,11 +61,13 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return order; } + @Override public View resolveViewName(String viewName, Locale locale) throws BeansException { ApplicationContext context = getApplicationContext(); if (!context.containsBean(viewName)) { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/ContentNegotiatingViewResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/ContentNegotiatingViewResolver.java index f7b59c3f6c24..54295286ec39 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/ContentNegotiatingViewResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/ContentNegotiatingViewResolver.java @@ -108,6 +108,7 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } @@ -266,6 +267,7 @@ protected void initServletContext(ServletContext servletContext) { this.cnManagerFactoryBean.setServletContext(servletContext); } + @Override public void afterPropertiesSet() { if (this.contentNegotiationManager == null) { this.cnManagerFactoryBean.afterPropertiesSet(); @@ -273,6 +275,7 @@ public void afterPropertiesSet() { } } + @Override public View resolveViewName(String viewName, Locale locale) throws Exception { RequestAttributes attrs = RequestContextHolder.getRequestAttributes(); Assert.isInstanceOf(ServletRequestAttributes.class, attrs); @@ -407,10 +410,12 @@ private View getBestView(List candidateViews, List requestedMed private static final View NOT_ACCEPTABLE_VIEW = new View() { + @Override public String getContentType() { return null; } + @Override public void render(Map model, HttpServletRequest request, HttpServletResponse response) { response.setStatus(HttpServletResponse.SC_NOT_ACCEPTABLE); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/DefaultRequestToViewNameTranslator.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/DefaultRequestToViewNameTranslator.java index 9ffb54e7b791..dd8b1d3912c2 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/DefaultRequestToViewNameTranslator.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/DefaultRequestToViewNameTranslator.java @@ -171,6 +171,7 @@ public void setUrlPathHelper(UrlPathHelper urlPathHelper) { * @see org.springframework.web.util.UrlPathHelper#getLookupPathForRequest * @see #transformPath */ + @Override public String getViewName(HttpServletRequest request) { String lookupPath = this.urlPathHelper.getLookupPathForRequest(request); return (this.prefix + transformPath(lookupPath) + this.suffix); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/RedirectView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/RedirectView.java index 0f96d4832ad5..8813f4172f8f 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/RedirectView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/RedirectView.java @@ -238,6 +238,7 @@ public void setExpandUriTemplateVariables(boolean expandUriTemplateVariables) { /** * Returns "true" indicating this view performs a redirect. */ + @Override public boolean isRedirectView() { return true; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/ResourceBundleViewResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/ResourceBundleViewResolver.java index 77c3a67e036a..a3b50574ff03 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/ResourceBundleViewResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/ResourceBundleViewResolver.java @@ -91,6 +91,7 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return this.order; } @@ -180,6 +181,7 @@ public void setLocalesToInitialize(Locale[] localesToInitialize) { * Eagerly initialize Locales if necessary. * @see #setLocalesToInitialize */ + @Override public void afterPropertiesSet() throws BeansException { if (this.localesToInitialize != null) { for (Locale locale : this.localesToInitialize) { @@ -275,6 +277,7 @@ protected ResourceBundle getBundle(String basename, Locale locale) throws Missin /** * Close the bundle View factories on context shutdown. */ + @Override public void destroy() throws BeansException { for (ConfigurableApplicationContext factory : this.bundleCache.values()) { factory.close(); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/UrlBasedViewResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/UrlBasedViewResolver.java index 56a3a3effb8d..086d6e204e9e 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/UrlBasedViewResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/UrlBasedViewResolver.java @@ -334,6 +334,7 @@ public void setOrder(int order) { * Return the order in which this {@link org.springframework.web.servlet.ViewResolver} * is evaluated. */ + @Override public int getOrder() { return this.order; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/XmlViewResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/XmlViewResolver.java index 59b45a8a8007..67f3ac5192cb 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/XmlViewResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/XmlViewResolver.java @@ -69,6 +69,7 @@ public void setOrder(int order) { this.order = order; } + @Override public int getOrder() { return order; } @@ -86,6 +87,7 @@ public void setLocation(Resource location) { * Pre-initialize the factory from the XML file. * Only effective if caching is enabled. */ + @Override public void afterPropertiesSet() throws BeansException { if (isCache()) { initFactory(); @@ -152,6 +154,7 @@ protected synchronized BeanFactory initFactory() throws BeansException { /** * Close the view bean factory on context shutdown. */ + @Override public void destroy() throws BeansException { if (this.cachedFactory != null) { this.cachedFactory.close(); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/FreeMarkerConfigurer.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/FreeMarkerConfigurer.java index 5cd17b19345d..5a9508b6632a 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/FreeMarkerConfigurer.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/FreeMarkerConfigurer.java @@ -97,6 +97,7 @@ public void setConfiguration(Configuration configuration) { /** * Initialize the {@link TaglibFactory} for the given ServletContext. */ + @Override public void setServletContext(ServletContext servletContext) { this.taglibFactory = new TaglibFactory(servletContext); } @@ -109,6 +110,7 @@ public void setServletContext(ServletContext servletContext) { * @see #createConfiguration * @see #setConfiguration */ + @Override public void afterPropertiesSet() throws IOException, TemplateException { if (this.configuration == null) { this.configuration = createConfiguration(); @@ -129,6 +131,7 @@ protected void postProcessTemplateLoaders(List templateLoaders) /** * Return the Configuration object wrapped by this bean. */ + @Override public Configuration getConfiguration() { return this.configuration; } @@ -136,6 +139,7 @@ public Configuration getConfiguration() { /** * Return the TaglibFactory object wrapped by this bean. */ + @Override public TaglibFactory getTaglibFactory() { return this.taglibFactory; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/FreeMarkerView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/FreeMarkerView.java index 643231404a1d..d64e1e0ae304 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/FreeMarkerView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/FreeMarkerView.java @@ -387,18 +387,22 @@ public void service(ServletRequest servletRequest, ServletResponse servletRespon */ private class DelegatingServletConfig implements ServletConfig { + @Override public String getServletName() { return FreeMarkerView.this.getBeanName(); } + @Override public ServletContext getServletContext() { return FreeMarkerView.this.getServletContext(); } + @Override public String getInitParameter(String paramName) { return null; } + @Override public Enumeration getInitParameterNames() { return Collections.enumeration(new HashSet()); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles2/AbstractSpringPreparerFactory.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles2/AbstractSpringPreparerFactory.java index ef4faaf2e0a9..06b3fdabaf6a 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles2/AbstractSpringPreparerFactory.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles2/AbstractSpringPreparerFactory.java @@ -36,6 +36,7 @@ */ public abstract class AbstractSpringPreparerFactory implements PreparerFactory { + @Override public ViewPreparer getPreparer(String name, TilesRequestContext context) throws TilesException { WebApplicationContext webApplicationContext = (WebApplicationContext) context.getRequestScope().get( DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles2/SpringTilesApplicationContextFactory.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles2/SpringTilesApplicationContextFactory.java index 0ebda796a561..3b399b193285 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles2/SpringTilesApplicationContextFactory.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles2/SpringTilesApplicationContextFactory.java @@ -47,10 +47,12 @@ public class SpringTilesApplicationContextFactory extends AbstractTilesApplicati private Map params; + @Override public void init(Map params) { this.params = params; } + @Override public TilesApplicationContext createApplicationContext(Object context) { return new SpringWildcardServletTilesApplicationContext((ServletContext) context, this.params); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles2/TilesConfigurer.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles2/TilesConfigurer.java index 05e035445586..75a30e6f54a3 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles2/TilesConfigurer.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles2/TilesConfigurer.java @@ -309,6 +309,7 @@ public void setTilesProperties(Properties tilesProperties) { CollectionUtils.mergePropertiesIntoMap(tilesProperties, this.tilesPropertyMap); } + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } @@ -320,6 +321,7 @@ public void setServletContext(ServletContext servletContext) { * @throws TilesException in case of setup failure * @see #createTilesInitializer() */ + @Override public void afterPropertiesSet() throws TilesException { boolean activateEl = false; if (tilesElPresent) { @@ -376,6 +378,7 @@ protected TilesInitializer createTilesInitializer() { * Removes the TilesContainer from this web application. * @throws TilesException in case of cleanup failure */ + @Override public void destroy() throws TilesException { try { // Tiles 2.2? diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/velocity/VelocityConfigurer.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/velocity/VelocityConfigurer.java index 5d547a639e3e..d5394519af00 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/velocity/VelocityConfigurer.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/velocity/VelocityConfigurer.java @@ -104,6 +104,7 @@ public void setVelocityEngine(VelocityEngine velocityEngine) { this.velocityEngine = velocityEngine; } + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } @@ -114,6 +115,7 @@ public void setServletContext(ServletContext servletContext) { * @see #createVelocityEngine * @see #setVelocityEngine */ + @Override public void afterPropertiesSet() throws IOException, VelocityException { if (this.velocityEngine == null) { this.velocityEngine = createVelocityEngine(); @@ -141,6 +143,7 @@ protected void postProcessVelocityEngine(VelocityEngine velocityEngine) { } } + @Override public VelocityEngine getVelocityEngine() { return this.velocityEngine; } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMappingTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMappingTests.java index 63fce21fa7d7..064f83a71b44 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMappingTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMappingTests.java @@ -119,6 +119,7 @@ public void useSuffixPatternMatch() { @Test public void resolveEmbeddedValuesInPatterns() { this.handlerMapping.setEmbeddedValueResolver(new StringValueResolver() { + @Override public String resolveStringValue(String value) { return "/${pattern}/bar".equals(value) ? "/foo/bar" : value; } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/Country.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/Country.java index 4f1e72264fce..8af7c0125a9f 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/Country.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/Country.java @@ -54,6 +54,7 @@ public String getName() { } + @Override public String toString() { return this.name + "(" + this.isoCode + ")"; } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/ItemPet.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/ItemPet.java index e3cd3eab0d5a..d4388628796f 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/ItemPet.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/ItemPet.java @@ -41,6 +41,7 @@ public String getLabel() { return this.name.toUpperCase(); } + @Override public boolean equals(Object other) { if (this == other) { return true; @@ -52,6 +53,7 @@ public boolean equals(Object other) { return (this.name != null && this.name.equals(otherPet.getName())); } + @Override public int hashCode() { return this.name.hashCode(); } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/OptionTagTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/OptionTagTests.java index 995214dd082a..c9396899c6e1 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/OptionTagTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/OptionTagTests.java @@ -532,6 +532,7 @@ public static RulesVariant fromId(String id) { return new RulesVariant(rules, variant); } + @Override public boolean equals(Object obj) { if (obj instanceof RulesVariant) { RulesVariant other = (RulesVariant) obj; @@ -540,6 +541,7 @@ public boolean equals(Object obj) { return false; } + @Override public int hashCode() { return this.toId().hashCode(); } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/TestTypes.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/TestTypes.java index 555111266c56..8be784fc1fa8 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/TestTypes.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/TestTypes.java @@ -33,6 +33,7 @@ public String getEnumValue() { return "Value: " + name(); } + @Override public String toString() { return "TestEnum: " + name(); } diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/adapter/StandardWebSocketSessionAdapter.java b/spring-websocket/src/main/java/org/springframework/web/socket/adapter/StandardWebSocketSessionAdapter.java index 8c5ccaff905b..45f8e6cd3c6b 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/adapter/StandardWebSocketSessionAdapter.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/adapter/StandardWebSocketSessionAdapter.java @@ -47,6 +47,7 @@ public class StandardWebSocketSessionAdapter extends AbstractWebSocketSesssionAd private String remoteAddress; + @Override public void initSession(javax.websocket.Session session) { Assert.notNull(session, "session is required"); this.session = session; diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/client/ConnectionManagerSupport.java b/spring-websocket/src/main/java/org/springframework/web/socket/client/ConnectionManagerSupport.java index 6cfe503d6179..f01c04ce14e3 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/client/ConnectionManagerSupport.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/client/ConnectionManagerSupport.java @@ -67,6 +67,7 @@ public void setAutoStartup(boolean autoStartup) { * connection manager will connect to the remote endpoint upon a * ContextRefreshedEvent. */ + @Override public boolean isAutoStartup() { return this.autoStartup; } @@ -86,6 +87,7 @@ public void setPhase(int phase) { * Return the phase in which this endpoint connection factory will be auto-connected * and stopped. */ + @Override public int getPhase() { return this.phase; } @@ -97,6 +99,7 @@ protected URI getUri() { /** * Return whether this ConnectionManager has been started. */ + @Override public boolean isRunning() { synchronized (this.lifecycleMonitor) { return this.isRunning; @@ -107,6 +110,7 @@ public boolean isRunning() { * Connect to the configured {@link #setDefaultUri(URI) default URI}. If already * connected, the method has no impact. */ + @Override public final void start() { synchronized (this.lifecycleMonitor) { if (!isRunning()) { @@ -139,6 +143,7 @@ public void run() { protected abstract void openConnection() throws Exception; + @Override public final void stop() { synchronized (this.lifecycleMonitor) { if (isRunning()) { @@ -168,6 +173,7 @@ protected void stopInternal() { protected abstract void closeConnection() throws Exception; + @Override public final void stop(Runnable callback) { synchronized (this.lifecycleMonitor) { this.stop(); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractServerSockJsSession.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractServerSockJsSession.java index 710e5e7d3376..e401b4bfec34 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractServerSockJsSession.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractServerSockJsSession.java @@ -51,6 +51,7 @@ protected SockJsConfiguration getSockJsConfig() { return this.sockJsConfig; } + @Override public final synchronized void sendMessage(WebSocketMessage message) throws IOException { Assert.isTrue(!isClosed(), "Cannot send a message when session is closed"); Assert.isInstanceOf(TextMessage.class, message, "Expected text message: " + message); @@ -132,6 +133,7 @@ protected void scheduleHeartbeat() { } Date time = new Date(System.currentTimeMillis() + getSockJsConfig().getHeartbeatTime()); this.heartbeatTask = getSockJsConfig().getTaskScheduler().schedule(new Runnable() { + @Override public void run() { try { sendHeartbeat(); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractSockJsService.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractSockJsService.java index 0abf1cc5230e..ea8089ccd166 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractSockJsService.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractSockJsService.java @@ -130,6 +130,7 @@ public void setValidSockJsPrefixes(String... prefixes) { // sort with longest prefix at the top Collections.sort(this.sockJsPrefixes, Collections.reverseOrder(new Comparator() { + @Override public int compare(String o1, String o2) { return new Integer(o1.length()).compareTo(new Integer(o2.length())); } @@ -166,6 +167,7 @@ public AbstractSockJsService setStreamBytesLimit(int streamBytesLimit) { return this; } + @Override public int getStreamBytesLimit() { return streamBytesLimit; } @@ -196,10 +198,12 @@ public AbstractSockJsService setHeartbeatTime(long heartbeatTime) { return this; } + @Override public long getHeartbeatTime() { return this.heartbeatTime; } + @Override public TaskScheduler getTaskScheduler() { return this.taskScheduler; } @@ -249,6 +253,7 @@ public boolean isWebSocketEnabled() { * * @throws Exception */ + @Override public final void handleRequest(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler handler) throws IOException, TransportErrorException { @@ -438,6 +443,7 @@ private interface SockJsRequestHandler { private static final String INFO_CONTENT = "{\"entropy\":%s,\"origins\":[\"*:*\"],\"cookie_needed\":%s,\"websocket\":%s}"; + @Override public void handle(ServerHttpRequest request, ServerHttpResponse response) throws IOException { if (HttpMethod.GET.equals(request.getMethod())) { @@ -483,6 +489,7 @@ else if (HttpMethod.OPTIONS.equals(request.getMethod())) { "\n" + ""; + @Override public void handle(ServerHttpRequest request, ServerHttpResponse response) throws IOException { if (!HttpMethod.GET.equals(request.getMethod())) { diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractSockJsSession.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractSockJsSession.java index eb461db07271..571dc8ea5847 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractSockJsSession.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractSockJsSession.java @@ -70,6 +70,7 @@ public AbstractSockJsSession(String sessionId, WebSocketHandler webSocketHandler this.handler = webSocketHandler; } + @Override public String getId() { return this.id; } @@ -89,26 +90,32 @@ public boolean isSecure() { return "wss".equals(this.uri.getSchemeSpecificPart()); } + @Override public String getRemoteHostName() { return this.remoteHostName; } + @Override public void setRemoteHostName(String remoteHostName) { this.remoteHostName = remoteHostName; } + @Override public String getRemoteAddress() { return this.remoteAddress; } + @Override public void setRemoteAddress(String remoteAddress) { this.remoteAddress = remoteAddress; } + @Override public Principal getPrincipal() { return this.principal; } + @Override public void setPrincipal(Principal principal) { this.principal = principal; } @@ -117,6 +124,7 @@ public boolean isNew() { return State.NEW.equals(this.state); } + @Override public boolean isOpen() { return State.OPEN.equals(this.state); } @@ -216,6 +224,7 @@ protected void connectionClosedInternal(CloseStatus status) { * {@inheritDoc} *

    Performs cleanup and notifies the {@link SockJsHandler}. */ + @Override public final void close() throws IOException { close(new CloseStatus(3000, "Go away!")); } @@ -224,6 +233,7 @@ public final void close() throws IOException { * {@inheritDoc} *

    Performs cleanup and notifies the {@link SockJsHandler}. */ + @Override public final void close(CloseStatus status) throws IOException { if (isOpen()) { if (logger.isDebugEnabled()) { diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/SockJsFrame.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/SockJsFrame.java index c1a52ef37dc9..d70a50023225 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/SockJsFrame.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/SockJsFrame.java @@ -107,6 +107,7 @@ private static boolean isSockJsEscapeCharacter(char ch) { || (ch >= '\uFFF0' && ch <= '\uFFFF') || (ch >= '\uD800' && ch <= '\uDFFF'); } + @Override public String toString() { String result = this.content; if (result.length() > 80) { @@ -161,6 +162,7 @@ public DefaultFrameFormat(String format) { * frame content is to be inserted; e.g. "data: %s\r\n\r\n" * @return new SockJsFrame instance with the formatted content */ + @Override public SockJsFrame format(SockJsFrame frame) { String content = String.format(this.format, preProcessContent(frame.getContent())); return new SockJsFrame(content); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/support/DefaultSockJsService.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/support/DefaultSockJsService.java index 6f8e497678a1..48d25224d946 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/support/DefaultSockJsService.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/support/DefaultSockJsService.java @@ -245,6 +245,7 @@ protected AbstractSockJsSession getSockJsSession(String sessionId, WebSocketHand private void scheduleSessionTask() { this.sessionCleanupTask = getTaskScheduler().scheduleAtFixedRate(new Runnable() { + @Override public void run() { try { int count = sessions.size(); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/AbstractHttpServerSockJsSession.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/AbstractHttpServerSockJsSession.java index be38656c676f..51b4bd429282 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/AbstractHttpServerSockJsSession.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/AbstractHttpServerSockJsSession.java @@ -117,6 +117,7 @@ private void udpateRequest(ServerHttpRequest request, ServerHttpResponse respons } + @Override public synchronized boolean isActive() { return ((this.asyncRequest != null) && (!this.asyncRequest.isAsyncCompleted())); } @@ -133,6 +134,7 @@ protected ServerHttpResponse getResponse() { return this.response; } + @Override protected final synchronized void sendMessageInternal(String message) throws IOException { this.messageCache.add(message); tryFlushCache(); @@ -170,6 +172,7 @@ protected synchronized void resetRequest() { this.response = null; } + @Override protected synchronized void writeFrameInternal(SockJsFrame frame) throws IOException { if (isActive()) { frame = this.frameFormat.format(frame); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/StreamingServerSockJsSession.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/StreamingServerSockJsSession.java index fe37568a61b6..c0f176b8918e 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/StreamingServerSockJsSession.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/StreamingServerSockJsSession.java @@ -48,6 +48,7 @@ public synchronized void setInitialRequest(ServerHttpRequest request, ServerHttp } } + @Override protected void flushCache() throws IOException { cancelHeartbeat(); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/XhrPollingTransportHandler.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/XhrPollingTransportHandler.java index 93adce579e8b..1c5bc97f8df3 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/XhrPollingTransportHandler.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/XhrPollingTransportHandler.java @@ -50,6 +50,7 @@ protected FrameFormat getFrameFormat(ServerHttpRequest request) { return new DefaultFrameFormat("%s\n"); } + @Override public PollingServerSockJsSession createSession(String sessionId, WebSocketHandler handler) { Assert.notNull(getSockJsConfig(), "This transport requires SockJsConfiguration"); return new PollingServerSockJsSession(sessionId, getSockJsConfig(), handler); diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/AbstractSockJsServiceTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/AbstractSockJsServiceTests.java index fcc532512757..01169740e97f 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/AbstractSockJsServiceTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/AbstractSockJsServiceTests.java @@ -40,6 +40,7 @@ public class AbstractSockJsServiceTests extends AbstractHttpRequestTests { private WebSocketHandler handler; + @Override @Before public void setUp() { super.setUp(); diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/StubSockJsConfig.java b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/StubSockJsConfig.java index 0f2a4c4f05b0..5b002846391b 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/StubSockJsConfig.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/StubSockJsConfig.java @@ -32,6 +32,7 @@ public class StubSockJsConfig implements SockJsConfiguration { private TaskScheduler taskScheduler = new ThreadPoolTaskScheduler(); + @Override public int getStreamBytesLimit() { return streamBytesLimit; } @@ -40,6 +41,7 @@ public void setStreamBytesLimit(int streamBytesLimit) { this.streamBytesLimit = streamBytesLimit; } + @Override public long getHeartbeatTime() { return heartbeatTime; } @@ -48,6 +50,7 @@ public void setHeartbeatTime(long heartbeatTime) { this.heartbeatTime = heartbeatTime; } + @Override public TaskScheduler getTaskScheduler() { return taskScheduler; } diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/support/DefaultSockJsServiceTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/support/DefaultSockJsServiceTests.java index ac93207c5cff..ccf42cea435d 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/support/DefaultSockJsServiceTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/support/DefaultSockJsServiceTests.java @@ -38,6 +38,7 @@ public class DefaultSockJsServiceTests extends AbstractHttpRequestTests { private DefaultSockJsService service; + @Override @Before public void setUp() { super.setUp();