From 3b40ce76bf751d788f57064bb692ceb8804a58af Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Fri, 28 Dec 2012 14:00:16 +0100 Subject: [PATCH] Add @Override annotations to main sources Issue: SPR-10130 --- .../org/springframework/aop/TargetSource.java | 1 + .../springframework/aop/TrueClassFilter.java | 1 + .../aop/TrueMethodMatcher.java | 3 + .../org/springframework/aop/TruePointcut.java | 2 + .../aop/aspectj/AbstractAspectJAdvice.java | 4 + .../AspectJAdviceParameterNameDiscoverer.java | 2 + .../aop/aspectj/AspectJAfterAdvice.java | 3 + .../aspectj/AspectJAfterReturningAdvice.java | 3 + .../aspectj/AspectJAfterThrowingAdvice.java | 3 + .../aop/aspectj/AspectJAroundAdvice.java | 3 + .../aspectj/AspectJExpressionPointcut.java | 20 ++++ .../AspectJExpressionPointcutAdvisor.java | 1 + .../aspectj/AspectJMethodBeforeAdvice.java | 3 + .../aop/aspectj/AspectJPointcutAdvisor.java | 4 + .../aspectj/AspectJWeaverMessageHandler.java | 4 + .../aop/aspectj/DeclareParentsAdvisor.java | 6 + .../MethodInvocationProceedingJoinPoint.java | 28 +++++ .../aop/aspectj/RuntimeTestWalker.java | 9 ++ .../aspectj/SimpleAspectInstanceFactory.java | 3 + .../SingletonAspectInstanceFactory.java | 3 + .../aop/aspectj/TypePatternClassFilter.java | 1 + .../AbstractAspectJAdvisorFactory.java | 4 + .../BeanFactoryAspectInstanceFactory.java | 4 + ...ntiationModelAwarePointcutAdvisorImpl.java | 11 ++ ...ngletonAspectInstanceFactoryDecorator.java | 4 + .../ReflectiveAspectJAdvisorFactory.java | 7 ++ ...pleMetadataAwareAspectInstanceFactory.java | 1 + ...tonMetadataAwareAspectInstanceFactory.java | 1 + .../AspectJAwareAdvisorAutoProxyCreator.java | 2 + .../AspectJPrecedenceComparator.java | 1 + ...erceptorDrivenBeanDefinitionDecorator.java | 1 + .../config/AdvisorComponentDefinition.java | 2 + .../aop/config/AopNamespaceHandler.java | 1 + .../AspectJAutoProxyBeanDefinitionParser.java | 1 + .../config/ConfigBeanDefinitionParser.java | 1 + .../aop/config/MethodLocatingFactoryBean.java | 4 + .../config/PointcutComponentDefinition.java | 2 + .../ScopedProxyBeanDefinitionDecorator.java | 1 + ...BeanFactoryAwareAspectInstanceFactory.java | 4 + .../SpringConfiguredBeanDefinitionParser.java | 1 + .../AbstractAdvisingBeanPostProcessor.java | 4 + .../AbstractSingletonProxyFactoryBean.java | 5 + .../aop/framework/AdvisedSupport.java | 19 ++++ .../aop/framework/CglibAopProxy.java | 13 +++ .../framework/DefaultAdvisorChainFactory.java | 1 + .../aop/framework/DefaultAopProxyFactory.java | 1 + .../aop/framework/JdkDynamicAopProxy.java | 3 + .../aop/framework/ProxyFactoryBean.java | 7 ++ .../framework/ReflectiveMethodInvocation.java | 11 ++ .../AdvisorAdapterRegistrationManager.java | 2 + .../adapter/AfterReturningAdviceAdapter.java | 2 + .../AfterReturningAdviceInterceptor.java | 1 + .../DefaultAdvisorAdapterRegistry.java | 3 + .../adapter/MethodBeforeAdviceAdapter.java | 2 + .../MethodBeforeAdviceInterceptor.java | 1 + .../adapter/ThrowsAdviceAdapter.java | 2 + .../adapter/ThrowsAdviceInterceptor.java | 1 + .../autoproxy/AbstractAutoProxyCreator.java | 11 ++ .../DefaultAdvisorAutoProxyCreator.java | 1 + ...ctBeanFactoryBasedTargetSourceCreator.java | 3 + .../interceptor/AbstractTraceInterceptor.java | 1 + .../AsyncExecutionAspectSupport.java | 1 + .../AsyncExecutionInterceptor.java | 3 + .../ConcurrencyThrottleInterceptor.java | 1 + .../interceptor/ExposeBeanNameAdvisors.java | 2 + .../ExposeInvocationInterceptor.java | 2 + .../aop/scope/DefaultScopedObject.java | 2 + .../aop/scope/ScopedProxyFactoryBean.java | 4 + .../AbstractBeanFactoryPointcutAdvisor.java | 2 + .../support/AbstractExpressionPointcut.java | 1 + .../AbstractGenericPointcutAdvisor.java | 1 + .../aop/support/AbstractPointcutAdvisor.java | 2 + .../support/AbstractRegexpMethodPointcut.java | 1 + .../aop/support/ClassFilters.java | 2 + .../aop/support/ComposablePointcut.java | 2 + .../aop/support/ControlFlowPointcut.java | 6 + .../DefaultBeanFactoryPointcutAdvisor.java | 1 + .../support/DefaultIntroductionAdvisor.java | 7 ++ .../aop/support/DefaultPointcutAdvisor.java | 1 + ...erTargetObjectIntroductionInterceptor.java | 1 + .../DelegatingIntroductionInterceptor.java | 1 + .../aop/support/DynamicMethodMatcher.java | 2 + .../support/DynamicMethodMatcherPointcut.java | 2 + .../aop/support/IntroductionInfoSupport.java | 1 + .../aop/support/MethodMatchers.java | 8 ++ .../aop/support/NameMatchMethodPointcut.java | 1 + .../NameMatchMethodPointcutAdvisor.java | 1 + .../aop/support/Pointcuts.java | 2 + .../support/RegexpMethodPointcutAdvisor.java | 1 + .../aop/support/RootClassFilter.java | 1 + .../aop/support/StaticMethodMatcher.java | 2 + .../support/StaticMethodMatcherPointcut.java | 2 + .../StaticMethodMatcherPointcutAdvisor.java | 4 + .../annotation/AnnotationClassFilter.java | 1 + .../AnnotationMatchingPointcut.java | 2 + .../annotation/AnnotationMethodMatcher.java | 1 + .../AbstractBeanFactoryBasedTargetSource.java | 4 + .../AbstractLazyCreationTargetSource.java | 4 + .../target/AbstractPoolingTargetSource.java | 2 + .../aop/target/CommonsPoolTargetSource.java | 8 ++ .../aop/target/EmptyTargetSource.java | 4 + .../aop/target/HotSwappableTargetSource.java | 4 + .../aop/target/LazyInitTargetSource.java | 1 + .../aop/target/PrototypeTargetSource.java | 1 + .../aop/target/SimpleBeanTargetSource.java | 1 + .../aop/target/SingletonTargetSource.java | 4 + .../aop/target/ThreadLocalTargetSource.java | 5 + .../AbstractRefreshableTargetSource.java | 7 ++ .../beans/AbstractPropertyAccessor.java | 9 ++ .../beans/BeanMetadataAttribute.java | 1 + .../beans/BeanMetadataAttributeAccessor.java | 1 + .../beans/BeanWrapperImpl.java | 17 +++ .../beans/DirectFieldAccessor.java | 4 + .../beans/ExtendedBeanInfo.java | 9 ++ .../beans/ExtendedBeanInfoFactory.java | 2 + .../beans/MethodInvocationException.java | 1 + .../beans/MutablePropertyValues.java | 5 + .../beans/PropertyEditorRegistrySupport.java | 3 + .../beans/TypeConverterSupport.java | 3 + .../beans/TypeMismatchException.java | 1 + .../access/SingletonBeanFactoryLocator.java | 3 + .../AnnotatedGenericBeanDefinition.java | 1 + .../AnnotationBeanWiringInfoResolver.java | 1 + .../AutowiredAnnotationBeanPostProcessor.java | 3 + .../annotation/CustomAutowireConfigurer.java | 3 + ...nitDestroyAnnotationBeanPostProcessor.java | 5 + ...erAnnotationAutowireCandidateResolver.java | 3 + .../RequiredAnnotationBeanPostProcessor.java | 3 + .../factory/config/AbstractFactoryBean.java | 8 ++ .../factory/config/BeanDefinitionHolder.java | 1 + .../config/BeanReferenceFactoryBean.java | 6 + .../factory/config/CommonsLogFactoryBean.java | 4 + .../config/ConstructorArgumentValues.java | 1 + .../config/CustomEditorConfigurer.java | 4 + .../factory/config/CustomScopeConfigurer.java | 3 + .../factory/config/DeprecatedBeanWarner.java | 1 + .../config/FieldRetrievingFactoryBean.java | 6 + ...ntiationAwareBeanPostProcessorAdapter.java | 8 ++ .../config/MethodInvokingFactoryBean.java | 6 + .../ObjectFactoryCreatingFactoryBean.java | 1 + .../config/PlaceholderConfigurerSupport.java | 2 + .../PreferencesPlaceholderConfigurer.java | 1 + .../factory/config/PropertiesFactoryBean.java | 4 + .../config/PropertyPathFactoryBean.java | 5 + .../config/PropertyPlaceholderConfigurer.java | 2 + .../config/PropertyResourceConfigurer.java | 2 + .../config/ProviderCreatingFactoryBean.java | 1 + .../config/RuntimeBeanNameReference.java | 2 + .../factory/config/RuntimeBeanReference.java | 2 + .../config/ServiceLocatorFactoryBean.java | 6 + .../factory/config/TypedStringValue.java | 1 + .../parsing/AbstractComponentDefinition.java | 4 + .../factory/parsing/AliasDefinition.java | 1 + .../parsing/BeanComponentDefinition.java | 5 + .../parsing/CompositeComponentDefinition.java | 2 + .../parsing/EmptyReaderEventListener.java | 4 + .../parsing/FailFastProblemReporter.java | 3 + .../factory/parsing/ImportDefinition.java | 1 + .../factory/parsing/NullSourceExtractor.java | 1 + .../parsing/PassThroughSourceExtractor.java | 1 + .../AbstractAutowireCapableBeanFactory.java | 19 ++++ .../support/AbstractBeanDefinition.java | 25 ++++ .../support/AbstractBeanDefinitionReader.java | 8 ++ .../factory/support/AbstractBeanFactory.java | 42 +++++++ .../beans/factory/support/AutowireUtils.java | 3 + .../support/BeanDefinitionResource.java | 2 + ...CglibSubclassingInstantiationStrategy.java | 3 + .../factory/support/ChildBeanDefinition.java | 2 + .../factory/support/ConstructorResolver.java | 3 + .../support/DefaultBeanNameGenerator.java | 1 + .../support/DefaultListableBeanFactory.java | 21 ++++ .../support/DefaultSingletonBeanRegistry.java | 5 + .../support/DisposableBeanAdapter.java | 6 + .../support/FactoryBeanRegistrySupport.java | 2 + .../support/GenericBeanDefinition.java | 2 + .../beans/factory/support/ManagedList.java | 3 + .../beans/factory/support/ManagedMap.java | 3 + .../factory/support/ManagedProperties.java | 3 + .../beans/factory/support/ManagedSet.java | 3 + .../beans/factory/support/MethodOverride.java | 1 + .../PropertiesBeanDefinitionReader.java | 1 + .../factory/support/RootBeanDefinition.java | 2 + .../SimpleAutowireCandidateResolver.java | 2 + .../support/SimpleBeanDefinitionRegistry.java | 7 ++ .../support/SimpleInstantiationStrategy.java | 6 + .../SimpleSecurityContextProvider.java | 1 + .../support/StaticListableBeanFactory.java | 19 ++++ .../factory/wiring/BeanConfigurerSupport.java | 3 + .../ClassNameBeanWiringInfoResolver.java | 1 + .../xml/AbstractBeanDefinitionParser.java | 1 + .../beans/factory/xml/BeansDtdResolver.java | 1 + .../DefaultBeanDefinitionDocumentReader.java | 2 + .../factory/xml/DefaultDocumentLoader.java | 1 + .../xml/DefaultNamespaceHandlerResolver.java | 1 + .../factory/xml/DelegatingEntityResolver.java | 1 + .../xml/DocumentDefaultsDefinition.java | 1 + .../factory/xml/NamespaceHandlerSupport.java | 2 + .../factory/xml/PluggableSchemaResolver.java | 1 + .../SimpleConstructorNamespaceHandler.java | 3 + .../xml/SimplePropertyNamespaceHandler.java | 3 + .../factory/xml/UtilNamespaceHandler.java | 1 + .../factory/xml/XmlBeanDefinitionReader.java | 1 + .../beans/support/MutableSortDefinition.java | 3 + .../beans/support/PropertyComparator.java | 1 + .../support/ResourceEditorRegistrar.java | 1 + .../cache/ehcache/EhCacheCache.java | 6 + .../cache/ehcache/EhCacheFactoryBean.java | 5 + .../ehcache/EhCacheManagerFactoryBean.java | 5 + .../cache/jcache/JCacheCache.java | 6 + .../jcache/JCacheManagerFactoryBean.java | 6 + .../TransactionAwareCacheDecorator.java | 6 + .../TransactionAwareCacheManagerProxy.java | 3 + .../mail/SimpleMailMessage.java | 11 ++ .../javamail/ConfigurableMimeFileTypeMap.java | 1 + .../mail/javamail/JavaMailSenderImpl.java | 8 ++ .../mail/javamail/MimeMailMessage.java | 11 ++ .../mail/javamail/MimeMessageHelper.java | 4 + .../commonj/DelegatingTimerListener.java | 1 + .../scheduling/commonj/DelegatingWork.java | 3 + .../commonj/TimerManagerAccessor.java | 5 + .../commonj/TimerManagerFactoryBean.java | 4 + .../commonj/TimerManagerTaskScheduler.java | 9 ++ .../commonj/WorkManagerTaskExecutor.java | 10 ++ .../quartz/AdaptableJobFactory.java | 1 + .../scheduling/quartz/CronTriggerBean.java | 3 + .../quartz/CronTriggerFactoryBean.java | 5 + .../scheduling/quartz/DelegatingJob.java | 1 + .../scheduling/quartz/JobDetailBean.java | 3 + .../quartz/JobDetailFactoryBean.java | 6 + .../quartz/LocalDataSourceJobStore.java | 4 + .../quartz/LocalTaskExecutorThreadPool.java | 5 + .../MethodInvokingJobDetailFactoryBean.java | 7 ++ .../scheduling/quartz/QuartzJobBean.java | 1 + .../quartz/ResourceLoaderClassLoadHelper.java | 5 + .../scheduling/quartz/SchedulerAccessor.java | 1 + .../quartz/SchedulerAccessorBean.java | 2 + .../quartz/SchedulerFactoryBean.java | 13 +++ .../quartz/SimpleThreadPoolTaskExecutor.java | 7 ++ .../scheduling/quartz/SimpleTriggerBean.java | 3 + .../quartz/SimpleTriggerFactoryBean.java | 5 + .../quartz/SpringBeanJobFactory.java | 1 + .../FreeMarkerConfigurationFactoryBean.java | 4 + .../ui/freemarker/SpringTemplateLoader.java | 4 + .../ui/velocity/CommonsLoggingLogSystem.java | 2 + .../velocity/VelocityEngineFactoryBean.java | 4 + .../AbstractCachingConfiguration.java | 1 + .../CachingConfigurationSelector.java | 1 + .../SpringCacheAnnotationParser.java | 1 + .../cache/concurrent/ConcurrentMapCache.java | 6 + .../ConcurrentMapCacheFactoryBean.java | 5 + .../concurrent/ConcurrentMapCacheManager.java | 2 + ...tationDrivenCacheBeanDefinitionParser.java | 1 + .../cache/config/CacheNamespaceHandler.java | 1 + .../AbstractFallbackCacheOperationSource.java | 1 + ...eanFactoryCacheOperationSourceAdvisor.java | 1 + .../cache/interceptor/CacheAspectSupport.java | 1 + .../cache/interceptor/CacheInterceptor.java | 2 + .../CacheOperationSourcePointcut.java | 1 + .../CompositeCacheOperationSource.java | 1 + .../interceptor/DefaultKeyGenerator.java | 1 + .../NameMatchCacheOperationSource.java | 1 + .../cache/support/AbstractCacheManager.java | 3 + .../cache/support/CompositeCacheManager.java | 3 + .../cache/support/NoOpCacheManager.java | 8 ++ .../cache/support/SimpleValueWrapper.java | 1 + .../ConfigurableApplicationContext.java | 2 + .../access/ContextBeanFactoryReference.java | 2 + .../access/ContextJndiBeanFactoryLocator.java | 1 + .../annotation/AdviceModeImportSelector.java | 1 + .../AnnotationBeanNameGenerator.java | 1 + .../AnnotationConfigBeanDefinitionParser.java | 1 + .../AnnotationScopeMetadataResolver.java | 1 + .../annotation/AspectJAutoProxyRegistrar.java | 1 + .../annotation/AutoProxyRegistrar.java | 1 + ...athScanningCandidateComponentProvider.java | 2 + .../CommonAnnotationBeanPostProcessor.java | 4 + .../ComponentScanBeanDefinitionParser.java | 1 + ...onfigurationClassBeanDefinitionReader.java | 1 + .../ConfigurationClassEnhancer.java | 5 + .../annotation/ConfigurationClassParser.java | 2 + .../ConfigurationClassPostProcessor.java | 9 ++ .../Jsr330ScopeMetadataResolver.java | 1 + .../LoadTimeWeavingConfiguration.java | 2 + .../annotation/MBeanExportConfiguration.java | 2 + .../ScannedGenericBeanDefinition.java | 1 + .../config/ContextNamespaceHandler.java | 1 + .../SpringConfiguredBeanDefinitionParser.java | 1 + .../AbstractApplicationEventMulticaster.java | 6 + .../event/EventPublicationInterceptor.java | 3 + .../GenericApplicationListenerAdapter.java | 4 + .../SimpleApplicationEventMulticaster.java | 2 + .../event/SourceFilteringListener.java | 4 + .../BeanExpressionContextAccessor.java | 5 + .../expression/BeanFactoryAccessor.java | 5 + .../expression/BeanFactoryResolver.java | 1 + .../expression/EnvironmentAccessor.java | 5 + .../context/expression/MapAccessor.java | 5 + .../StandardBeanExpressionResolver.java | 4 + .../context/i18n/SimpleLocaleContext.java | 1 + .../support/AbstractApplicationContext.java | 52 +++++++++ .../support/AbstractMessageSource.java | 5 + ...ctRefreshableConfigApplicationContext.java | 2 + .../ApplicationContextAwareProcessor.java | 4 + .../support/ApplicationObjectSupport.java | 1 + .../support/ContextTypeMatchClassLoader.java | 1 + .../support/ConversionServiceFactoryBean.java | 4 + .../support/DefaultLifecycleProcessor.java | 8 ++ .../DefaultMessageSourceResolvable.java | 3 + .../support/DelegatingMessageSource.java | 5 + .../support/GenericApplicationContext.java | 7 ++ .../context/support/LiveBeansView.java | 2 + .../PropertySourcesPlaceholderConfigurer.java | 2 + ...ReloadableResourceBundleMessageSource.java | 1 + .../support/ResourceBundleMessageSource.java | 2 + .../context/support/SimpleThreadScope.java | 5 + .../weaving/AspectJWeavingEnabler.java | 5 + .../weaving/DefaultContextLoadTimeWeaver.java | 5 + .../weaving/LoadTimeWeaverAwareProcessor.java | 3 + .../AbstractSlsbInvokerInterceptor.java | 1 + ...LocalStatelessSessionProxyFactoryBean.java | 4 + .../SimpleRemoteSlsbInvokerInterceptor.java | 1 + ...emoteStatelessSessionProxyFactoryBean.java | 4 + .../ejb/config/JeeNamespaceHandler.java | 1 + .../ejb/support/AbstractEnterpriseBean.java | 1 + .../support/AbstractMessageDrivenBean.java | 1 + .../ejb/support/AbstractSessionBean.java | 2 + .../support/AbstractStatelessSessionBean.java | 2 + .../format/datetime/DateFormatter.java | 2 + .../datetime/DateFormatterRegistrar.java | 7 ++ ...eTimeFormatAnnotationFormatterFactory.java | 4 + .../joda/DateTimeFormatterFactoryBean.java | 4 + .../format/datetime/joda/DateTimeParser.java | 1 + ...eTimeFormatAnnotationFormatterFactory.java | 4 + .../datetime/joda/JodaTimeConverters.java | 10 ++ .../joda/JodaTimeFormatterRegistrar.java | 1 + .../joda/MillisecondInstantPrinter.java | 1 + .../datetime/joda/ReadableInstantPrinter.java | 1 + .../datetime/joda/ReadablePartialPrinter.java | 1 + .../number/AbstractNumberFormatter.java | 2 + .../format/number/CurrencyFormatter.java | 2 + ...umberFormatAnnotationFormatterFactory.java | 4 + .../format/number/NumberFormatter.java | 1 + .../format/number/PercentFormatter.java | 1 + .../support/FormattingConversionService.java | 15 +++ ...ormattingConversionServiceFactoryBean.java | 5 + .../InstrumentationLoadTimeWeaver.java | 4 + .../ReflectiveLoadTimeWeaver.java | 3 + ...esourceOverridingShadowingClassLoader.java | 2 + .../classloading/SimpleLoadTimeWeaver.java | 3 + .../glassfish/ClassTransformerAdapter.java | 1 + .../glassfish/GlassFishLoadTimeWeaver.java | 3 + .../jboss/JBossLoadTimeWeaver.java | 3 + .../classloading/jboss/JBossMCAdapter.java | 2 + .../jboss/JBossMCTranslatorAdapter.java | 1 + .../jboss/JBossModulesAdapter.java | 2 + .../oc4j/OC4JClassPreprocessorAdapter.java | 1 + .../classloading/oc4j/OC4JLoadTimeWeaver.java | 3 + .../WebLogicClassPreProcessorAdapter.java | 1 + .../weblogic/WebLogicLoadTimeWeaver.java | 3 + .../WebSphereClassPreDefinePlugin.java | 1 + .../websphere/WebSphereLoadTimeWeaver.java | 3 + .../jmx/access/MBeanClientInterceptor.java | 4 + .../jmx/access/MBeanProxyFactoryBean.java | 3 + .../access/NotificationListenerRegistrar.java | 2 + .../jmx/export/MBeanExporter.java | 9 ++ .../jmx/export/NotificationListenerBean.java | 1 + .../AnnotationJmxAttributeSource.java | 8 ++ .../assembler/AbstractMBeanInfoAssembler.java | 1 + .../InterfaceBasedMBeanInfoAssembler.java | 2 + .../assembler/MetadataMBeanInfoAssembler.java | 2 + .../export/naming/IdentityNamingStrategy.java | 1 + .../jmx/export/naming/KeyNamingStrategy.java | 2 + .../export/naming/MetadataNamingStrategy.java | 2 + .../ModelMBeanNotificationPublisher.java | 1 + .../support/ConnectorServerFactoryBean.java | 5 + .../MBeanServerConnectionFactoryBean.java | 6 + .../jmx/support/MBeanServerFactoryBean.java | 5 + .../WebSphereMBeanServerFactoryBean.java | 4 + .../jndi/JndiObjectFactoryBean.java | 5 + .../jndi/JndiObjectLocator.java | 1 + .../jndi/JndiObjectTargetSource.java | 4 + .../springframework/jndi/JndiTemplate.java | 4 + .../jndi/support/SimpleJndiBeanFactory.java | 10 ++ .../rmi/JndiRmiClientInterceptor.java | 1 + .../remoting/rmi/JndiRmiProxyFactoryBean.java | 4 + .../remoting/rmi/JndiRmiServiceExporter.java | 2 + .../RemoteInvocationSerializingExporter.java | 1 + .../remoting/rmi/RmiClientInterceptor.java | 1 + .../remoting/rmi/RmiInvocationWrapper.java | 2 + .../remoting/rmi/RmiProxyFactoryBean.java | 3 + .../remoting/rmi/RmiRegistryFactoryBean.java | 5 + .../remoting/rmi/RmiServiceExporter.java | 2 + .../DefaultRemoteInvocationExecutor.java | 1 + .../DefaultRemoteInvocationFactory.java | 1 + .../RemoteInvocationTraceInterceptor.java | 1 + .../remoting/support/RemotingSupport.java | 1 + .../support/SimpleHttpServerFactoryBean.java | 5 + .../support/UrlBasedRemoteAccessor.java | 1 + .../AbstractAsyncConfiguration.java | 1 + .../annotation/AsyncAnnotationAdvisor.java | 3 + .../AsyncAnnotationBeanPostProcessor.java | 1 + .../AsyncConfigurationSelector.java | 1 + .../scheduling/annotation/AsyncResult.java | 5 + .../ScheduledAnnotationBeanPostProcessor.java | 8 ++ .../ConcurrentTaskExecutor.java | 5 + .../CustomizableThreadFactory.java | 1 + .../ThreadPoolTaskExecutor.java | 8 ++ .../concurrent/ConcurrentTaskExecutor.java | 5 + .../concurrent/ConcurrentTaskScheduler.java | 6 + .../concurrent/CustomizableThreadFactory.java | 1 + .../ExecutorConfigurationSupport.java | 3 + .../concurrent/ForkJoinPoolFactoryBean.java | 5 + .../concurrent/ReschedulingRunnable.java | 7 ++ .../ScheduledExecutorFactoryBean.java | 4 + .../ThreadPoolExecutorFactoryBean.java | 4 + .../concurrent/ThreadPoolTaskExecutor.java | 6 + .../concurrent/ThreadPoolTaskScheduler.java | 13 +++ .../AnnotationDrivenBeanDefinitionParser.java | 1 + .../config/ScheduledTaskRegistrar.java | 2 + .../config/TaskExecutorFactoryBean.java | 6 + .../config/TaskNamespaceHandler.java | 1 + .../scheduling/support/CronTrigger.java | 1 + .../DelegatingErrorHandlingRunnable.java | 1 + .../support/MethodInvokingRunnable.java | 3 + .../scheduling/support/PeriodicTrigger.java | 1 + .../support/ScheduledMethodRunnable.java | 1 + .../support/SimpleTriggerContext.java | 3 + .../scheduling/support/TaskUtils.java | 2 + .../MethodInvokingTimerTaskFactoryBean.java | 3 + .../scheduling/timer/TimerFactoryBean.java | 6 + .../scheduling/timer/TimerTaskExecutor.java | 8 ++ .../scripting/bsh/BshScriptFactory.java | 7 ++ .../scripting/bsh/BshScriptUtils.java | 1 + .../config/LangNamespaceHandler.java | 1 + .../config/ScriptingDefaultsParser.java | 1 + .../scripting/groovy/GroovyScriptFactory.java | 8 ++ .../scripting/jruby/JRubyScriptFactory.java | 7 ++ .../scripting/jruby/JRubyScriptUtils.java | 1 + .../support/ResourceScriptSource.java | 3 + .../support/ScriptFactoryPostProcessor.java | 5 + .../scripting/support/StaticScriptSource.java | 3 + .../springframework/ui/ExtendedModelMap.java | 1 + .../support/DelegatingThemeSource.java | 3 + .../support/ResourceBundleThemeSource.java | 3 + .../ui/context/support/SimpleTheme.java | 2 + .../validation/AbstractBindingResult.java | 17 +++ .../validation/AbstractErrors.java | 22 ++++ .../validation/BindException.java | 39 +++++++ .../validation/DataBinder.java | 6 + .../DefaultBindingErrorProcessor.java | 2 + .../DefaultMessageCodesResolver.java | 4 + .../BeanValidationPostProcessor.java | 3 + .../beanvalidation/CustomValidatorBean.java | 1 + .../LocalValidatorFactoryBean.java | 7 ++ .../LocaleContextMessageInterpolator.java | 2 + .../MessageSourceResourceBundleLocator.java | 1 + .../MethodValidationInterceptor.java | 1 + .../MethodValidationPostProcessor.java | 1 + .../SpringConstraintValidatorFactory.java | 1 + .../SpringValidatorAdapter.java | 8 ++ .../core/AttributeAccessorSupport.java | 5 + .../core/ControlFlowFactory.java | 3 + .../core/ExceptionDepthComparator.java | 1 + ...lVariableTableParameterNameDiscoverer.java | 2 + .../springframework/core/OrderComparator.java | 1 + .../PrioritizedParameterNameDiscoverer.java | 2 + .../core/SimpleAliasRegistry.java | 4 + .../converter/ConvertingComparator.java | 4 + .../support/ArrayToArrayConverter.java | 3 + .../support/ArrayToCollectionConverter.java | 3 + .../support/ArrayToObjectConverter.java | 3 + .../support/ArrayToStringConverter.java | 3 + .../support/CharacterToNumberFactory.java | 2 + .../support/CollectionToArrayConverter.java | 3 + .../CollectionToCollectionConverter.java | 3 + .../support/CollectionToObjectConverter.java | 3 + .../support/CollectionToStringConverter.java | 3 + .../support/EnumToStringConverter.java | 2 + .../FallbackObjectToStringConverter.java | 3 + .../support/GenericConversionService.java | 17 +++ .../convert/support/IdToEntityConverter.java | 3 + .../convert/support/MapToMapConverter.java | 3 + .../support/NumberToCharacterConverter.java | 1 + .../NumberToNumberConverterFactory.java | 3 + .../support/ObjectToArrayConverter.java | 3 + .../support/ObjectToCollectionConverter.java | 3 + .../support/ObjectToObjectConverter.java | 3 + .../support/ObjectToStringConverter.java | 1 + .../support/PropertiesToStringConverter.java | 1 + .../support/StringToArrayConverter.java | 3 + .../support/StringToBooleanConverter.java | 1 + .../support/StringToCharacterConverter.java | 1 + .../support/StringToCollectionConverter.java | 3 + .../support/StringToEnumConverterFactory.java | 2 + .../support/StringToLocaleConverter.java | 1 + .../StringToNumberConverterFactory.java | 2 + .../support/StringToPropertiesConverter.java | 1 + .../support/StringToUUIDConverter.java | 1 + .../AbstractCachingLabeledEnumResolver.java | 4 + .../enums/AbstractGenericLabeledEnum.java | 1 + .../core/enums/AbstractLabeledEnum.java | 2 + .../core/enums/LabeledEnum.java | 2 + .../core/enums/LetterCodedLabeledEnum.java | 1 + .../core/enums/ShortCodedLabeledEnum.java | 1 + .../core/enums/StaticLabeledEnum.java | 2 + .../core/enums/StringCodedLabeledEnum.java | 1 + .../core/env/AbstractEnvironment.java | 28 +++++ .../core/env/AbstractPropertyResolver.java | 15 +++ .../core/env/EnumerablePropertySource.java | 1 + .../core/env/MutablePropertySources.java | 3 + .../env/PropertySourcesPropertyResolver.java | 4 + .../core/env/ReadOnlySystemAttributesMap.java | 12 ++ .../core/io/AbstractResource.java | 10 ++ .../core/io/ByteArrayResource.java | 2 + .../core/io/ClassPathResource.java | 2 + .../core/io/ClassRelativeResourceLoader.java | 2 + .../core/io/DefaultResourceLoader.java | 3 + .../core/io/DescriptiveResource.java | 2 + .../core/io/FileSystemResource.java | 4 + .../core/io/FileSystemResourceLoader.java | 1 + .../core/io/InputStreamResource.java | 2 + .../springframework/core/io/UrlResource.java | 2 + .../springframework/core/io/VfsResource.java | 2 + .../PathMatchingResourcePatternResolver.java | 4 + .../core/serializer/DefaultDeserializer.java | 1 + .../core/serializer/DefaultSerializer.java | 1 + .../support/DeserializingConverter.java | 1 + .../support/SerializingConverter.java | 1 + .../core/style/DefaultToStringStyler.java | 5 + .../core/style/DefaultValueStyler.java | 1 + .../core/task/SimpleAsyncTaskExecutor.java | 5 + .../core/task/SyncTaskExecutor.java | 1 + .../core/task/TaskExecutor.java | 1 + .../support/ConcurrentExecutorAdapter.java | 1 + .../task/support/ExecutorServiceAdapter.java | 6 + .../task/support/TaskExecutorAdapter.java | 4 + .../core/type/StandardAnnotationMetadata.java | 9 ++ .../core/type/StandardClassMetadata.java | 12 ++ .../core/type/StandardMethodMetadata.java | 7 ++ .../AnnotationAttributesReadingVisitor.java | 6 + .../AnnotationMetadataReadingVisitor.java | 9 ++ .../ClassMetadataReadingVisitor.java | 21 ++++ .../MethodMetadataReadingVisitor.java | 7 ++ .../classreading/SimpleMetadataReader.java | 3 + .../SimpleMetadataReaderFactory.java | 2 + .../AbstractClassTestingTypeFilter.java | 1 + ...AbstractTypeHierarchyTraversingFilter.java | 1 + .../core/type/filter/AspectJTypeFilter.java | 1 + .../springframework/util/AntPathMatcher.java | 8 ++ .../util/AutoPopulatingList.java | 24 ++++ .../util/CachingMapDecorator.java | 12 ++ .../springframework/util/CollectionUtils.java | 20 ++++ .../util/CompositeIterator.java | 3 + .../util/ConcurrentReferenceHashMap.java | 16 +++ .../util/DefaultPropertiesPersister.java | 7 ++ .../util/LinkedMultiValueMap.java | 17 +++ .../util/PropertyPlaceholderHelper.java | 1 + .../springframework/util/ReflectionUtils.java | 6 + .../util/SystemPropertyUtils.java | 1 + .../util/WeakReferenceMonitor.java | 1 + .../util/comparator/BooleanComparator.java | 1 + .../util/comparator/ComparableComparator.java | 1 + .../util/comparator/CompoundComparator.java | 1 + .../util/comparator/InstanceComparator.java | 1 + .../util/comparator/InvertibleComparator.java | 1 + .../util/comparator/NullSafeComparator.java | 1 + .../util/xml/AbstractStaxContentHandler.java | 10 ++ .../util/xml/AbstractStaxXMLReader.java | 6 + .../util/xml/AbstractXMLReader.java | 12 ++ .../util/xml/AbstractXMLStreamReader.java | 21 ++++ .../util/xml/DomContentHandler.java | 11 ++ .../util/xml/SimpleNamespaceContext.java | 3 + .../util/xml/SimpleSaxErrorHandler.java | 3 + .../xml/SimpleTransformErrorListener.java | 3 + .../util/xml/StaxEventContentHandler.java | 6 + .../util/xml/StaxEventXMLReader.java | 6 + .../util/xml/StaxStreamContentHandler.java | 1 + .../util/xml/StaxStreamXMLReader.java | 6 + .../util/xml/XMLEventStreamReader.java | 24 ++++ .../util/xml/XMLEventStreamWriter.java | 32 ++++++ .../expression/ParserContext.java | 3 + .../common/CompositeStringExpression.java | 23 ++++ .../expression/common/LiteralExpression.java | 23 ++++ .../common/TemplateAwareExpressionParser.java | 5 + .../common/TemplateParserContext.java | 3 + .../spel/InternalParseException.java | 1 + .../expression/spel/ast/Indexer.java | 15 +++ .../expression/spel/ast/MethodReference.java | 3 + .../expression/spel/ast/OpMinus.java | 1 + .../spel/ast/PropertyOrFieldReference.java | 3 + .../expression/spel/ast/SpelNodeImpl.java | 10 ++ .../expression/spel/ast/ValueRef.java | 6 + .../spel/ast/VariableReference.java | 3 + .../spel/standard/SpelExpression.java | 23 ++++ .../ReflectiveConstructorExecutor.java | 1 + .../ReflectiveConstructorResolver.java | 2 + .../support/ReflectiveMethodExecutor.java | 1 + .../support/ReflectiveMethodResolver.java | 2 + .../support/ReflectivePropertyAccessor.java | 10 ++ .../support/StandardEvaluationContext.java | 11 ++ .../support/StandardOperatorOverloader.java | 2 + .../spel/support/StandardTypeComparator.java | 2 + .../spel/support/StandardTypeConverter.java | 2 + .../spel/support/StandardTypeLocator.java | 1 + .../jdbc/config/JdbcNamespaceHandler.java | 1 + .../config/SortedResourcesFactoryBean.java | 2 + .../jdbc/core/ArgPreparedStatementSetter.java | 2 + .../core/ArgTypePreparedStatementSetter.java | 2 + .../jdbc/core/BatchUpdateUtils.java | 2 + .../jdbc/core/BeanPropertyRowMapper.java | 1 + .../core/CallableStatementCreatorFactory.java | 3 + .../jdbc/core/ColumnMapRowMapper.java | 1 + .../jdbc/core/JdbcTemplate.java | 84 ++++++++++++++ .../core/PreparedStatementCreatorFactory.java | 4 + .../jdbc/core/RowCountCallbackHandler.java | 1 + .../core/RowMapperResultSetExtractor.java | 1 + .../jdbc/core/SingleColumnRowMapper.java | 1 + .../core/SqlRowSetResultSetExtractor.java | 3 + .../metadata/CallMetaDataProviderFactory.java | 1 + .../metadata/GenericCallMetaDataProvider.java | 20 ++++ .../GenericTableMetaDataProvider.java | 14 +++ .../TableMetaDataProviderFactory.java | 1 + .../AbstractSqlParameterSource.java | 2 + .../BeanPropertySqlParameterSource.java | 2 + .../namedparam/MapSqlParameterSource.java | 2 + .../NamedParameterBatchUpdateUtils.java | 2 + .../NamedParameterJdbcTemplate.java | 31 +++++ .../jdbc/core/simple/AbstractJdbcInsert.java | 4 + .../jdbc/core/simple/SimpleJdbcCall.java | 19 ++++ .../jdbc/core/simple/SimpleJdbcInsert.java | 16 +++ .../jdbc/core/simple/SimpleJdbcTemplate.java | 36 ++++++ ...rruptibleBatchPreparedStatementSetter.java | 3 + ...tLobCreatingPreparedStatementCallback.java | 1 + ...bstractLobStreamingResultSetExtractor.java | 1 + .../core/support/AbstractSqlTypeValue.java | 1 + .../support/JdbcBeanDefinitionReader.java | 1 + .../jdbc/core/support/SqlLobValue.java | 2 + .../jdbc/datasource/AbstractDataSource.java | 7 ++ .../AbstractDriverBasedDataSource.java | 2 + .../DataSourceTransactionManager.java | 3 + .../jdbc/datasource/DelegatingDataSource.java | 10 ++ .../JdbcTransactionObjectSupport.java | 4 + .../LazyConnectionDataSourceProxy.java | 1 + .../datasource/SimpleConnectionHandle.java | 2 + .../SingleConnectionDataSource.java | 3 + .../TransactionAwareDataSourceProxy.java | 1 + .../AbstractEmbeddedDatabaseConfigurer.java | 1 + .../DerbyEmbeddedDatabaseConfigurer.java | 2 + .../embedded/EmbeddedDatabaseFactory.java | 10 ++ .../embedded/EmbeddedDatabaseFactoryBean.java | 5 + .../H2EmbeddedDatabaseConfigurer.java | 1 + .../HsqlEmbeddedDatabaseConfigurer.java | 1 + .../embedded/OutputStreamFactory.java | 1 + .../SimpleDriverDataSourceFactory.java | 6 + .../init/CompositeDatabasePopulator.java | 1 + .../init/DataSourceInitializer.java | 2 + .../init/ResourceDatabasePopulator.java | 1 + .../lookup/AbstractRoutingDataSource.java | 3 + .../lookup/BeanFactoryDataSourceLookup.java | 2 + .../lookup/JndiDataSourceLookup.java | 1 + .../lookup/MapDataSourceLookup.java | 1 + .../lookup/SingleDataSourceLookup.java | 1 + .../jdbc/object/BatchSqlUpdate.java | 2 + .../jdbc/object/GenericSqlQuery.java | 2 + .../object/MappingSqlQueryWithParameters.java | 1 + .../jdbc/object/RdbmsOperation.java | 1 + .../jdbc/object/UpdatableSqlQuery.java | 1 + ...bstractFallbackSQLExceptionTranslator.java | 1 + ...CustomSQLExceptionTranslatorRegistrar.java | 1 + .../support/DatabaseStartupValidator.java | 1 + .../jdbc/support/GeneratedKeyHolder.java | 3 + .../jdbc/support/JdbcAccessor.java | 1 + .../jdbc/support/JdbcUtils.java | 1 + .../AbstractDataFieldMaxValueIncrementer.java | 4 + .../jdbc/support/lob/AbstractLobHandler.java | 5 + .../jdbc/support/lob/DefaultLobHandler.java | 12 ++ .../lob/JtaLobCreatorSynchronization.java | 2 + .../jdbc/support/lob/LobCreator.java | 1 + .../jdbc/support/lob/OracleLobHandler.java | 17 +++ .../jdbc/support/lob/PassThroughBlob.java | 11 ++ .../jdbc/support/lob/PassThroughClob.java | 13 +++ .../NativeJdbcExtractorAdapter.java | 9 ++ .../rowset/ResultSetWrappingSqlRowSet.java | 50 ++++++++ .../ResultSetWrappingSqlRowSetMetaData.java | 16 +++ .../jdbc/support/xml/Jdbc4SqlXmlHandler.java | 15 +++ .../org/springframework/jms/JmsException.java | 1 + .../AbstractListenerContainerParser.java | 1 + .../config/JcaListenerContainerParser.java | 1 + .../config/JmsListenerContainerParser.java | 1 + .../jms/config/JmsNamespaceHandler.java | 1 + .../jms/connection/CachedMessageConsumer.java | 10 ++ .../jms/connection/CachedMessageProducer.java | 24 ++++ .../connection/CachingConnectionFactory.java | 3 + .../connection/ChainedExceptionListener.java | 1 + .../connection/ConnectionFactoryUtils.java | 18 +++ .../DelegatingConnectionFactory.java | 8 ++ .../jms/connection/JmsTransactionManager.java | 13 +++ .../connection/JmsTransactionManager102.java | 3 + .../connection/SingleConnectionFactory.java | 10 ++ .../SingleConnectionFactory102.java | 2 + ...ransactionAwareConnectionFactoryProxy.java | 8 ++ ...erCredentialsConnectionFactoryAdapter.java | 7 ++ .../springframework/jms/core/JmsTemplate.java | 48 ++++++++ .../jms/core/JmsTemplate102.java | 11 ++ .../jms/core/support/JmsGatewaySupport.java | 1 + .../AbstractJmsListeningContainer.java | 8 ++ ...stractPollingMessageListenerContainer.java | 5 + .../DefaultMessageListenerContainer.java | 2 + .../DefaultMessageListenerContainer102.java | 6 + .../SimpleMessageListenerContainer.java | 4 + .../SimpleMessageListenerContainer102.java | 4 + .../adapter/MessageListenerAdapter.java | 3 + .../adapter/MessageListenerAdapter102.java | 2 + .../DefaultJmsActivationSpecFactory.java | 3 + .../endpoint/JmsMessageEndpointFactory.java | 3 + .../endpoint/JmsMessageEndpointManager.java | 1 + .../StandardJmsActivationSpecFactory.java | 1 + .../remoting/JmsInvokerClientInterceptor.java | 2 + .../remoting/JmsInvokerProxyFactoryBean.java | 5 + .../remoting/JmsInvokerServiceExporter.java | 2 + .../jms/support/JmsAccessor.java | 1 + .../MappingJacksonMessageConverter.java | 2 + .../MarshallingMessageConverter.java | 3 + .../converter/SimpleMessageConverter.java | 2 + .../converter/SimpleMessageConverter102.java | 1 + .../BeanFactoryDestinationResolver.java | 2 + .../DynamicDestinationResolver.java | 1 + .../destination/JndiDestinationResolver.java | 3 + .../HibernateExceptionTranslator.java | 1 + .../HibernateTransactionManager.java | 3 + .../hibernate4/LocalSessionFactoryBean.java | 6 + .../orm/hibernate4/SpringSessionContext.java | 1 + .../SpringSessionSynchronization.java | 8 ++ .../support/OpenSessionInViewInterceptor.java | 4 + .../AbstractSessionFactoryBean.java | 5 + .../FilterDefinitionFactoryBean.java | 5 + .../orm/hibernate3/HibernateAccessor.java | 2 + .../HibernateExceptionTranslator.java | 1 + .../orm/hibernate3/HibernateInterceptor.java | 1 + .../orm/hibernate3/HibernateTemplate.java | 107 ++++++++++++++++++ .../HibernateTransactionManager.java | 5 + .../hibernate3/LocalCacheProviderProxy.java | 5 + .../LocalDataSourceConnectionProvider.java | 5 + .../hibernate3/LocalRegionFactoryProxy.java | 8 ++ .../hibernate3/LocalSessionFactoryBean.java | 5 + .../LocalTransactionManagerLookup.java | 3 + .../orm/hibernate3/SpringSessionContext.java | 1 + .../SpringSessionSynchronization.java | 8 ++ .../hibernate3/SpringTransactionFactory.java | 6 + .../orm/hibernate3/TypeDefinitionBean.java | 2 + .../AnnotationSessionFactoryBean.java | 1 + .../hibernate3/support/AbstractLobType.java | 9 ++ .../hibernate3/support/BlobByteArrayType.java | 2 + .../support/BlobSerializableType.java | 2 + .../hibernate3/support/BlobStringType.java | 2 + .../hibernate3/support/ClobStringType.java | 2 + .../support/OpenSessionInViewInterceptor.java | 4 + .../orm/ibatis/SqlMapClientFactoryBean.java | 4 + .../orm/ibatis/SqlMapClientTemplate.java | 29 +++++ .../support/AbstractLobTypeHandler.java | 4 + .../support/BlobByteArrayTypeHandler.java | 1 + .../support/BlobSerializableTypeHandler.java | 1 + .../ibatis/support/ClobStringTypeHandler.java | 1 + .../orm/jdo/DefaultJdoDialect.java | 9 ++ .../springframework/orm/jdo/JdoAccessor.java | 1 + .../orm/jdo/JdoInterceptor.java | 1 + .../springframework/orm/jdo/JdoTemplate.java | 57 ++++++++++ .../orm/jdo/JdoTransactionManager.java | 4 + .../LocalPersistenceManagerFactoryBean.java | 7 ++ .../jdo/PersistenceManagerFactoryUtils.java | 1 + ...onAwarePersistenceManagerFactoryProxy.java | 5 + ...enPersistenceManagerInViewInterceptor.java | 3 + .../SpringPersistenceManagerProxyBean.java | 5 + .../StandardPersistenceManagerProxyBean.java | 3 + .../jpa/AbstractEntityManagerFactoryBean.java | 18 +++ .../orm/jpa/DefaultJpaDialect.java | 10 ++ .../orm/jpa/EntityManagerFactoryAccessor.java | 1 + .../orm/jpa/EntityManagerFactoryUtils.java | 1 + .../orm/jpa/ExtendedEntityManagerCreator.java | 2 + .../springframework/orm/jpa/JpaAccessor.java | 1 + .../orm/jpa/JpaInterceptor.java | 1 + .../springframework/orm/jpa/JpaTemplate.java | 29 +++++ .../orm/jpa/JpaTransactionManager.java | 5 + ...ocalContainerEntityManagerFactoryBean.java | 2 + .../orm/jpa/SharedEntityManagerCreator.java | 2 + .../ClassFileTransformerAdapter.java | 1 + .../DefaultPersistenceUnitManager.java | 6 + .../MutablePersistenceUnitInfo.java | 15 +++ .../OpenEntityManagerInViewInterceptor.java | 4 + ...ersistenceAnnotationBeanPostProcessor.java | 9 ++ .../jpa/support/SharedEntityManagerBean.java | 4 + .../jpa/vendor/AbstractJpaVendorAdapter.java | 6 + .../vendor/EclipseLinkJpaVendorAdapter.java | 1 + .../orm/jpa/vendor/HibernateJpaDialect.java | 2 + .../HibernateJpaSessionFactoryBean.java | 3 + .../jpa/vendor/HibernateJpaVendorAdapter.java | 1 + .../orm/jpa/vendor/OpenJpaDialect.java | 5 + .../orm/jpa/vendor/OpenJpaVendorAdapter.java | 1 + .../jpa/vendor/TopLinkJpaVendorAdapter.java | 1 + .../oxm/castor/CastorMarshaller.java | 3 + .../oxm/config/OxmNamespaceHandler.java | 1 + .../oxm/jaxb/Jaxb2Marshaller.java | 13 +++ .../oxm/jibx/JibxMarshaller.java | 2 + .../oxm/support/AbstractMarshaller.java | 2 + .../oxm/support/MarshallingSource.java | 14 +++ .../oxm/xmlbeans/XmlBeansMarshaller.java | 1 + .../oxm/xmlbeans/XmlOptionsFactoryBean.java | 3 + .../oxm/xstream/XStreamMarshaller.java | 3 + .../servlet/view/tiles/TilesConfigurer.java | 1 + .../struts/ActionServletAwareProcessor.java | 3 + .../web/struts/ContextLoaderPlugIn.java | 3 + .../MockMvcClientHttpRequestFactory.java | 1 + .../web/client/MockRestServiceServer.java | 1 + .../RequestMatcherClientHttpRequest.java | 3 + .../client/match/ContentRequestMatchers.java | 5 + .../client/match/JsonPathRequestMatchers.java | 1 + .../client/match/MockRestRequestMatchers.java | 7 ++ .../client/match/XpathRequestMatchers.java | 1 + .../response/DefaultResponseCreator.java | 1 + .../test/web/servlet/DefaultMvcResult.java | 9 ++ .../test/web/servlet/MockMvc.java | 3 + .../web/servlet/TestDispatcherServlet.java | 2 + .../web/servlet/request/MockAsyncContext.java | 13 +++ .../MockHttpServletRequestBuilder.java | 3 + .../request/MockMvcRequestBuilders.java | 1 + .../Servlet3MockHttpServletRequest.java | 9 ++ ...rvlet3MockMultipartHttpServletRequest.java | 9 ++ .../servlet/result/ContentResultMatchers.java | 8 ++ .../servlet/result/CookieResultMatchers.java | 15 +++ .../result/FlashAttributeResultMatchers.java | 4 + .../servlet/result/HandlerResultMatchers.java | 4 + .../servlet/result/HeaderResultMatchers.java | 3 + .../result/JsonPathResultMatchers.java | 5 + .../servlet/result/MockMvcResultHandlers.java | 2 + .../servlet/result/MockMvcResultMatchers.java | 2 + .../servlet/result/ModelResultMatchers.java | 11 ++ .../servlet/result/PrintingResultHandler.java | 1 + .../servlet/result/RequestResultMatchers.java | 8 ++ .../servlet/result/StatusResultMatchers.java | 5 + .../servlet/result/ViewResultMatchers.java | 2 + .../servlet/result/XpathResultMatchers.java | 10 ++ .../servlet/setup/DefaultMockMvcBuilder.java | 1 + .../setup/PatternMappingFilterProxy.java | 3 + .../setup/StandaloneMockMvcBuilder.java | 2 + .../setup/StubWebApplicationContext.java | 48 ++++++++ .../mock/http/MockHttpInputMessage.java | 2 + .../mock/http/MockHttpOutputMessage.java | 2 + .../http/client/MockClientHttpRequest.java | 3 + .../http/client/MockClientHttpResponse.java | 4 + .../mock/jndi/ExpectedLookupTemplate.java | 1 + .../mock/jndi/SimpleNamingContext.java | 36 ++++++ .../mock/jndi/SimpleNamingContextBuilder.java | 2 + .../web/DelegatingServletInputStream.java | 2 + .../web/DelegatingServletOutputStream.java | 3 + .../mock/web/MockBodyContent.java | 28 +++++ .../mock/web/MockExpressionEvaluator.java | 3 + .../mock/web/MockFilterChain.java | 4 + .../mock/web/MockFilterConfig.java | 4 + .../mock/web/MockHttpServletRequest.java | 54 +++++++++ .../mock/web/MockHttpServletResponse.java | 38 +++++++ .../mock/web/MockHttpSession.java | 17 +++ .../mock/web/MockJspWriter.java | 26 +++++ .../mock/web/MockMultipartFile.java | 8 ++ .../web/MockMultipartHttpServletRequest.java | 9 ++ .../mock/web/MockPageContext.java | 27 +++++ .../mock/web/MockRequestDispatcher.java | 2 + .../mock/web/MockServletConfig.java | 4 + .../mock/web/MockServletContext.java | 25 ++++ .../mock/web/PassThroughFilterChain.java | 1 + .../mock/web/portlet/MockActionResponse.java | 7 ++ .../mock/web/portlet/MockBaseURL.java | 9 ++ .../mock/web/portlet/MockCacheControl.java | 8 ++ .../web/portlet/MockClientDataRequest.java | 7 ++ .../mock/web/portlet/MockEvent.java | 3 + .../mock/web/portlet/MockEventRequest.java | 2 + .../mock/web/portlet/MockEventResponse.java | 1 + .../mock/web/portlet/MockMimeResponse.java | 16 +++ .../portlet/MockMultipartActionRequest.java | 6 + .../mock/web/portlet/MockPortalContext.java | 5 + .../mock/web/portlet/MockPortletConfig.java | 11 ++ .../mock/web/portlet/MockPortletContext.java | 20 ++++ .../web/portlet/MockPortletPreferences.java | 9 ++ .../mock/web/portlet/MockPortletRequest.java | 38 +++++++ .../portlet/MockPortletRequestDispatcher.java | 3 + .../mock/web/portlet/MockPortletResponse.java | 7 ++ .../mock/web/portlet/MockPortletSession.java | 18 +++ .../mock/web/portlet/MockPortletURL.java | 5 + .../mock/web/portlet/MockRenderRequest.java | 1 + .../mock/web/portlet/MockRenderResponse.java | 2 + .../mock/web/portlet/MockResourceRequest.java | 4 + .../web/portlet/MockResourceResponse.java | 1 + .../mock/web/portlet/MockResourceURL.java | 3 + .../web/portlet/MockStateAwareResponse.java | 11 ++ .../ServletWrappingPortletContext.java | 20 ++++ ...DependencyInjectionSpringContextTests.java | 1 + .../AbstractSingleSpringContextTests.java | 3 + ...sactionalDataSourceSpringContextTests.java | 1 + ...stractTransactionalSpringContextTests.java | 2 + .../test/ConditionalTestCase.java | 1 + ...ractAnnotationAwareTransactionalTests.java | 1 + .../annotation/SystemProfileValueSource.java | 1 + .../AbstractJUnit38SpringContextTests.java | 2 + .../AbstractJUnit4SpringContextTests.java | 1 + .../support/AbstractContextLoader.java | 2 + .../AbstractDelegatingSmartContextLoader.java | 4 + .../support/AbstractGenericContextLoader.java | 2 + .../AbstractTestExecutionListener.java | 5 + .../AnnotationConfigContextLoader.java | 1 + .../support/DelegatingSmartContextLoader.java | 2 + .../AbstractTestNGSpringContextTests.java | 2 + .../TransactionalTestExecutionListener.java | 1 + .../web/AbstractGenericWebContextLoader.java | 2 + .../web/AnnotationConfigWebContextLoader.java | 1 + .../web/GenericXmlWebContextLoader.java | 1 + .../web/ServletTestExecutionListener.java | 3 + .../web/WebDelegatingSmartContextLoader.java | 2 + .../test/jpa/AbstractJpaTests.java | 4 + ...ersistenceExceptionTranslationAdvisor.java | 2 + ...enceExceptionTranslationPostProcessor.java | 1 + ...ChainedPersistenceExceptionTranslator.java | 1 + .../dao/support/DaoSupport.java | 1 + ...stenceExceptionTranslationInterceptor.java | 3 + .../CciLocalTransactionManager.java | 2 + .../DelegatingConnectionFactory.java | 7 ++ .../connection/NotSupportedRecordFactory.java | 2 + .../connection/SingleConnectionFactory.java | 2 + ...ransactionAwareConnectionFactoryProxy.java | 1 + .../jca/cci/core/CciTemplate.java | 10 ++ .../jca/cci/core/support/CommAreaRecord.java | 6 + .../jca/cci/object/EisOperation.java | 1 + .../cci/object/MappingRecordOperation.java | 2 + .../BootstrapContextAwareProcessor.java | 2 + .../ResourceAdapterApplicationContext.java | 1 + .../context/SpringContextResourceAdapter.java | 5 + .../AbstractMessageEndpointFactory.java | 5 + .../GenericMessageEndpointFactory.java | 1 + .../GenericMessageEndpointManager.java | 8 ++ .../support/LocalConnectionFactoryBean.java | 4 + .../support/ResourceAdapterFactoryBean.java | 5 + .../jca/support/SimpleBootstrapContext.java | 3 + .../jca/work/DelegatingWork.java | 2 + .../jca/work/SimpleTaskWorkManager.java | 8 ++ .../jca/work/WorkManagerTaskExecutor.java | 13 +++ ...actTransactionManagementConfiguration.java | 1 + .../Ejb3TransactionAnnotationParser.java | 1 + .../SpringTransactionAnnotationParser.java | 1 + .../AnnotationDrivenBeanDefinitionParser.java | 1 + .../config/TxNamespaceHandler.java | 1 + ...actFallbackTransactionAttributeSource.java | 1 + ...toryTransactionAttributeSourceAdvisor.java | 1 + .../CompositeTransactionAttributeSource.java | 1 + .../DefaultTransactionAttribute.java | 2 + .../DelegatingTransactionAttribute.java | 2 + ...MatchAlwaysTransactionAttributeSource.java | 1 + .../MethodMapTransactionAttributeSource.java | 3 + .../NameMatchTransactionAttributeSource.java | 1 + .../interceptor/TransactionAspectSupport.java | 2 + .../TransactionAttributeSourceAdvisor.java | 2 + .../TransactionAttributeSourcePointcut.java | 1 + .../interceptor/TransactionInterceptor.java | 2 + .../TransactionProxyFactoryBean.java | 1 + .../JtaAfterCompletionSynchronization.java | 2 + .../jta/JtaTransactionManager.java | 3 + .../transaction/jta/JtaTransactionObject.java | 2 + .../jta/ManagedTransactionAdapter.java | 7 ++ .../jta/SimpleTransactionFactory.java | 2 + .../jta/SpringJtaSynchronizationAdapter.java | 2 + .../jta/UserTransactionAdapter.java | 6 + .../jta/WebSphereUowTransactionManager.java | 2 + .../AbstractPlatformTransactionManager.java | 3 + .../support/AbstractTransactionStatus.java | 8 ++ .../support/DefaultTransactionDefinition.java | 5 + .../support/DefaultTransactionStatus.java | 1 + .../DelegatingTransactionDefinition.java | 5 + .../support/ResourceHolderSupport.java | 3 + .../ResourceHolderSynchronization.java | 7 ++ .../support/SimpleTransactionStatus.java | 1 + .../TransactionCallbackWithoutResult.java | 1 + .../TransactionSynchronizationAdapter.java | 8 ++ .../support/TransactionTemplate.java | 2 + .../org/springframework/http/HttpHeaders.java | 17 +++ .../org/springframework/http/MediaType.java | 3 + .../client/AbstractClientHttpRequest.java | 3 + ...stractClientHttpRequestFactoryWrapper.java | 1 + .../client/AbstractClientHttpResponse.java | 1 + .../BufferingClientHttpRequestWrapper.java | 2 + .../BufferingClientHttpResponseWrapper.java | 6 + .../http/client/ClientHttpResponse.java | 1 + .../http/client/CommonsClientHttpRequest.java | 2 + .../CommonsClientHttpRequestFactory.java | 2 + .../client/CommonsClientHttpResponse.java | 5 + .../HttpComponentsClientHttpRequest.java | 2 + ...ttpComponentsClientHttpRequestFactory.java | 2 + .../HttpComponentsClientHttpResponse.java | 5 + .../client/InterceptingClientHttpRequest.java | 3 + .../SimpleBufferingClientHttpRequest.java | 2 + .../SimpleClientHttpRequestFactory.java | 1 + .../http/client/SimpleClientHttpResponse.java | 5 + .../SimpleStreamingClientHttpRequest.java | 2 + .../client/support/HttpRequestWrapper.java | 3 + .../http/client/support/ProxyFactoryBean.java | 4 + .../AbstractHttpMessageConverter.java | 5 + .../BufferedImageHttpMessageConverter.java | 5 + .../converter/FormHttpMessageConverter.java | 7 ++ .../json/Jackson2ObjectMapperFactoryBean.java | 4 + .../json/JacksonObjectMapperFactoryBean.java | 4 + .../MappingJackson2HttpMessageConverter.java | 2 + .../MappingJacksonHttpMessageConverter.java | 2 + .../Jaxb2CollectionHttpMessageConverter.java | 2 + .../http/server/ServerHttpResponse.java | 1 + .../http/server/ServletServerHttpRequest.java | 4 + .../server/ServletServerHttpResponse.java | 4 + .../caucho/BurlapClientInterceptor.java | 1 + .../remoting/caucho/BurlapExporter.java | 1 + .../caucho/BurlapProxyFactoryBean.java | 3 + .../caucho/BurlapServiceExporter.java | 1 + .../caucho/HessianClientInterceptor.java | 1 + .../remoting/caucho/HessianExporter.java | 1 + .../caucho/HessianProxyFactoryBean.java | 3 + .../caucho/HessianServiceExporter.java | 1 + .../caucho/SimpleBurlapServiceExporter.java | 1 + .../caucho/SimpleHessianServiceExporter.java | 1 + .../AbstractHttpInvokerRequestExecutor.java | 2 + .../HttpInvokerClientInterceptor.java | 2 + .../HttpInvokerProxyFactoryBean.java | 3 + .../HttpInvokerServiceExporter.java | 1 + .../SimpleHttpInvokerServiceExporter.java | 1 + .../jaxrpc/JaxRpcPortClientInterceptor.java | 2 + .../jaxrpc/JaxRpcPortProxyFactoryBean.java | 4 + .../jaxrpc/LocalJaxRpcServiceFactoryBean.java | 4 + .../jaxrpc/ServletEndpointSupport.java | 2 + .../jaxws/AbstractJaxWsServiceExporter.java | 3 + .../jaxws/JaxWsPortClientInterceptor.java | 3 + .../jaxws/JaxWsPortProxyFactoryBean.java | 3 + .../jaxws/LocalJaxWsServiceFactoryBean.java | 4 + .../SpringServletContainerInitializer.java | 1 + ...ractMappingContentNegotiationStrategy.java | 1 + .../web/accept/ContentNegotiationManager.java | 3 + .../ContentNegotiationManagerFactoryBean.java | 5 + .../FixedContentNegotiationStrategy.java | 1 + .../HeaderContentNegotiationStrategy.java | 1 + ...MappingMediaTypeFileExtensionResolver.java | 2 + .../web/bind/EscapedErrors.java | 29 +++++ .../support/HandlerMethodResolver.java | 1 + .../ConfigurableWebBindingInitializer.java | 1 + .../support/DefaultDataBinderFactory.java | 1 + .../support/DefaultSessionAttributeStore.java | 3 + .../web/bind/support/SimpleSessionStatus.java | 2 + .../client/DefaultResponseErrorHandler.java | 2 + .../client/HttpMessageConverterExtractor.java | 1 + .../web/client/RestTemplate.java | 39 +++++++ .../AbstractContextLoaderInitializer.java | 1 + .../ConfigurableWebApplicationContext.java | 1 + .../web/context/ContextCleanupListener.java | 2 + .../web/context/ContextLoaderListener.java | 2 + .../AbstractRequestAttributesScope.java | 4 + .../DestructionCallbackBindingListener.java | 2 + .../request/FacesRequestAttributes.java | 8 ++ .../web/context/request/FacesWebRequest.java | 20 ++++ ...g4jNestedDiagnosticContextInterceptor.java | 4 + .../request/RequestContextListener.java | 2 + .../web/context/request/RequestScope.java | 1 + .../request/ServletRequestAttributes.java | 8 ++ .../context/request/ServletWebRequest.java | 20 ++++ .../web/context/request/SessionScope.java | 1 + .../CallableProcessingInterceptorAdapter.java | 5 + ...redResultProcessingInterceptorAdapter.java | 5 + .../async/NoSupportAsyncWebRequest.java | 7 ++ .../async/StandardServletAsyncWebRequest.java | 11 ++ .../request/async/WebAsyncManager.java | 7 ++ ...tractRefreshableWebApplicationContext.java | 7 ++ .../support/GenericWebApplicationContext.java | 10 ++ .../ServletContextAttributeExporter.java | 1 + .../ServletContextAttributeFactoryBean.java | 4 + .../support/ServletContextAwareProcessor.java | 2 + .../support/ServletContextFactoryBean.java | 4 + .../ServletContextParameterFactoryBean.java | 4 + ...tContextPropertyPlaceholderConfigurer.java | 1 + .../support/ServletContextResource.java | 3 + .../context/support/ServletContextScope.java | 6 + .../support/StandardServletEnvironment.java | 1 + .../support/StaticWebApplicationContext.java | 10 ++ .../support/WebApplicationContextUtils.java | 5 + .../support/WebApplicationObjectSupport.java | 1 + .../web/filter/CompositeFilter.java | 4 + .../web/filter/DelegatingFilterProxy.java | 1 + .../web/filter/GenericFilterBean.java | 6 + .../web/filter/OncePerRequestFilter.java | 1 + .../DelegatingPhaseListenerMulticaster.java | 3 + .../web/method/ControllerAdviceBean.java | 1 + .../web/method/HandlerMethodSelector.java | 1 + ...ractCookieValueMethodArgumentResolver.java | 1 + ...tractNamedValueMethodArgumentResolver.java | 1 + .../AbstractWebArgumentResolverAdapter.java | 2 + .../ErrorsMethodArgumentResolver.java | 2 + .../ExceptionHandlerMethodResolver.java | 1 + ...ExpressionValueMethodArgumentResolver.java | 1 + .../method/annotation/MapMethodProcessor.java | 4 + .../ModelAttributeMethodProcessor.java | 4 + .../annotation/ModelMethodProcessor.java | 4 + ...equestHeaderMapMethodArgumentResolver.java | 2 + .../RequestHeaderMethodArgumentResolver.java | 1 + ...RequestParamMapMethodArgumentResolver.java | 2 + .../RequestParamMethodArgumentResolver.java | 1 + .../SessionStatusMethodArgumentResolver.java | 2 + ...andlerMethodArgumentResolverComposite.java | 2 + ...dlerMethodReturnValueHandlerComposite.java | 2 + .../commons/CommonsMultipartFile.java | 8 ++ .../commons/CommonsMultipartResolver.java | 4 + .../AbstractMultipartHttpServletRequest.java | 7 ++ .../DefaultMultipartHttpServletRequest.java | 2 + .../StandardMultipartHttpServletRequest.java | 10 ++ .../StandardServletMultipartResolver.java | 3 + .../web/util/HierarchicalUriComponents.java | 20 ++++ .../web/util/HttpSessionMutexListener.java | 2 + .../web/util/IntrospectorCleanupListener.java | 2 + .../web/util/Log4jConfigListener.java | 2 + .../web/util/UriComponents.java | 2 + .../web/util/UriComponentsBuilder.java | 12 ++ .../web/util/WebAppRootListener.java | 2 + .../web/portlet/FrameworkPortlet.java | 1 + .../web/portlet/GenericPortletBean.java | 2 + ...tRefreshablePortletApplicationContext.java | 7 ++ .../PortletApplicationContextUtils.java | 3 + .../PortletApplicationObjectSupport.java | 1 + .../context/PortletContextAwareProcessor.java | 2 + .../context/PortletContextResource.java | 3 + .../portlet/context/PortletContextScope.java | 6 + .../context/PortletRequestAttributes.java | 8 ++ .../portlet/context/PortletWebRequest.java | 20 ++++ .../StaticPortletApplicationContext.java | 10 ++ .../AbstractHandlerExceptionResolver.java | 3 + .../handler/AbstractHandlerMapping.java | 2 + .../handler/HandlerInterceptorAdapter.java | 10 ++ .../handler/SimplePortletHandlerAdapter.java | 6 + .../handler/SimplePortletPostProcessor.java | 16 +++ .../WebRequestHandlerInterceptorAdapter.java | 10 ++ .../CommonsPortletMultipartResolver.java | 4 + .../DefaultMultipartActionRequest.java | 6 + .../web/portlet/mvc/AbstractController.java | 2 + .../mvc/PortletModeNameViewController.java | 2 + .../mvc/PortletWrappingController.java | 17 +++ .../mvc/SimpleControllerHandlerAdapter.java | 6 + .../AnnotationMethodHandlerAdapter.java | 7 ++ ...otationMethodHandlerExceptionResolver.java | 1 + .../DefaultAnnotationHandlerMapping.java | 16 +++ .../tiles3/AbstractSpringPreparerFactory.java | 1 + .../servlet/view/tiles3/TilesConfigurer.java | 3 + .../web/servlet/DispatcherServlet.java | 1 + .../springframework/web/servlet/FlashMap.java | 1 + .../web/servlet/FrameworkServlet.java | 1 + .../web/servlet/HttpServletBean.java | 2 + .../AnnotationDrivenBeanDefinitionParser.java | 1 + ...ultServletHandlerBeanDefinitionParser.java | 1 + .../InterceptorsBeanDefinitionParser.java | 1 + .../servlet/config/MvcNamespaceHandler.java | 1 + .../config/ResourcesBeanDefinitionParser.java | 1 + .../ViewControllerBeanDefinitionParser.java | 1 + .../WebMvcConfigurationSupport.java | 4 + .../annotation/WebMvcConfigurerAdapter.java | 13 +++ .../annotation/WebMvcConfigurerComposite.java | 13 +++ .../AbstractHandlerExceptionResolver.java | 2 + .../handler/AbstractHandlerMapping.java | 2 + .../handler/AbstractHandlerMethodMapping.java | 3 + .../HandlerExceptionResolverComposite.java | 2 + .../handler/HandlerInterceptorAdapter.java | 4 + .../handler/SimpleServletHandlerAdapter.java | 3 + .../handler/SimpleServletPostProcessor.java | 9 ++ .../WebRequestHandlerInterceptorAdapter.java | 4 + .../i18n/AcceptHeaderLocaleResolver.java | 2 + .../servlet/i18n/CookieLocaleResolver.java | 2 + .../web/servlet/i18n/FixedLocaleResolver.java | 2 + .../servlet/i18n/SessionLocaleResolver.java | 2 + .../web/servlet/mvc/AbstractController.java | 1 + .../mvc/HttpRequestHandlerAdapter.java | 3 + .../mvc/ServletForwardingController.java | 1 + .../mvc/ServletWrappingController.java | 7 ++ .../mvc/SimpleControllerHandlerAdapter.java | 3 + .../servlet/mvc/WebContentInterceptor.java | 3 + .../AnnotationMethodHandlerAdapter.java | 6 + ...otationMethodHandlerExceptionResolver.java | 1 + .../DefaultAnnotationHandlerMapping.java | 1 + .../AbstractMediaTypeExpression.java | 3 + .../AbstractNameValueExpression.java | 3 + .../condition/CompositeRequestCondition.java | 3 + .../condition/ConsumesRequestCondition.java | 3 + .../condition/HeadersRequestCondition.java | 3 + .../mvc/condition/ParamsRequestCondition.java | 3 + .../condition/PatternsRequestCondition.java | 3 + .../condition/ProducesRequestCondition.java | 3 + .../mvc/condition/RequestConditionHolder.java | 3 + .../RequestMethodsRequestCondition.java | 3 + .../method/AbstractHandlerMethodAdapter.java | 4 + .../mvc/method/RequestMappingInfo.java | 3 + .../RequestMappingInfoHandlerMapping.java | 1 + .../AsyncTaskMethodReturnValueHandler.java | 2 + .../CallableMethodReturnValueHandler.java | 2 + ...eferredResultMethodReturnValueHandler.java | 2 + .../ExceptionHandlerExceptionResolver.java | 2 + .../annotation/HttpEntityMethodProcessor.java | 4 + ...trixVariableMapMethodArgumentResolver.java | 2 + .../MatrixVariableMethodArgumentResolver.java | 1 + .../ModelAndViewMethodReturnValueHandler.java | 2 + ...dViewResolverMethodReturnValueHandler.java | 2 + ...PathVariableMapMethodArgumentResolver.java | 2 + .../PathVariableMethodArgumentResolver.java | 1 + ...irectAttributesMethodArgumentResolver.java | 2 + .../RequestMappingHandlerAdapter.java | 4 + .../RequestPartMethodArgumentResolver.java | 2 + .../RequestResponseBodyMethodProcessor.java | 4 + .../ServletInvocableHandlerMethod.java | 1 + .../ServletRequestMethodArgumentResolver.java | 2 + ...ServletResponseMethodArgumentResolver.java | 2 + ...mponentsBuilderMethodArgumentResolver.java | 2 + .../ViewMethodReturnValueHandler.java | 2 + .../ViewNameMethodReturnValueHandler.java | 2 + .../AbstractUrlMethodNameResolver.java | 1 + .../multiaction/MultiActionController.java | 1 + .../ParameterMethodNameResolver.java | 1 + .../PropertiesMethodNameResolver.java | 1 + .../mvc/support/RedirectAttributes.java | 4 + .../support/RedirectAttributesModelMap.java | 9 ++ .../DefaultServletHttpRequestHandler.java | 2 + .../resource/ResourceHttpRequestHandler.java | 2 + .../support/AbstractFlashMapManager.java | 2 + .../support/SessionFlashMapManager.java | 2 + .../web/servlet/tags/BindTag.java | 1 + .../web/servlet/tags/EscapeBodyTag.java | 2 + .../web/servlet/tags/EvalTag.java | 5 + .../web/servlet/tags/NestedPathTag.java | 2 + .../servlet/tags/RequestContextAwareTag.java | 2 + .../web/servlet/tags/UrlTag.java | 1 + .../form/AbstractDataBoundFormElementTag.java | 1 + .../tags/form/AbstractHtmlElementBodyTag.java | 2 + .../tags/form/AbstractHtmlElementTag.java | 1 + .../web/servlet/tags/form/ButtonTag.java | 1 + .../web/servlet/tags/form/SelectTag.java | 1 + .../servlet/theme/CookieThemeResolver.java | 2 + .../web/servlet/theme/FixedThemeResolver.java | 2 + .../servlet/theme/SessionThemeResolver.java | 2 + .../view/AbstractCachingViewResolver.java | 1 + .../servlet/view/AbstractUrlBasedView.java | 1 + .../web/servlet/view/AbstractView.java | 3 + .../servlet/view/BeanNameViewResolver.java | 2 + .../view/ContentNegotiatingViewResolver.java | 5 + .../DefaultRequestToViewNameTranslator.java | 1 + .../web/servlet/view/RedirectView.java | 1 + .../view/ResourceBundleViewResolver.java | 3 + .../servlet/view/UrlBasedViewResolver.java | 1 + .../web/servlet/view/XmlViewResolver.java | 3 + .../view/freemarker/FreeMarkerConfigurer.java | 4 + .../view/freemarker/FreeMarkerView.java | 4 + .../tiles2/AbstractSpringPreparerFactory.java | 1 + .../SpringTilesApplicationContextFactory.java | 2 + .../servlet/view/tiles2/TilesConfigurer.java | 3 + .../view/velocity/VelocityConfigurer.java | 3 + 1256 files changed, 5716 insertions(+) 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 9633b4b33b..8e5ccc1fa6 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 248e2f6416..1d622196f7 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 a8bf94dcae..b4722cdf00 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 553b0e9d6d..1a44c2ac26 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 515358c3e3..3a6436c7f8 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 abstract class AbstractAspectJAdvice implements Advice, AspectJPrecedence return this.aspectInstanceFactory.getAspectClassLoader(); } + @Override public int getOrder() { return this.aspectInstanceFactory.getOrder(); } @@ -212,6 +213,7 @@ public abstract class AbstractAspectJAdvice implements Advice, AspectJPrecedence this.aspectName = name; } + @Override public String getAspectName() { return this.aspectName; } @@ -223,6 +225,7 @@ public abstract class AbstractAspectJAdvice implements Advice, AspectJPrecedence this.declarationOrder = order; } + @Override public int getDeclarationOrder() { return this.declarationOrder; } @@ -678,6 +681,7 @@ public abstract class AbstractAspectJAdvice implements Advice, AspectJPrecedence 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 42a2c6f729..0fbeed07b8 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 class AspectJAdviceParameterNameDiscoverer implements ParameterNameDiscov * @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 class AspectJAdviceParameterNameDiscoverer implements ParameterNameDiscov * @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 fd5b0d64c4..c6669af251 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 class AspectJAfterAdvice extends AbstractAspectJAdvice implements MethodI super(aspectJBeforeAdviceMethod, pointcut, aif); } + @Override public Object invoke(MethodInvocation mi) throws Throwable { try { return mi.proceed(); @@ -46,10 +47,12 @@ public class AspectJAfterAdvice extends AbstractAspectJAdvice implements MethodI } } + @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 2f9396c230..ae3cec974d 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 class AspectJAfterReturningAdvice extends AbstractAspectJAdvice implement super(aspectJBeforeAdviceMethod, pointcut, aif); } + @Override public boolean isBeforeAdvice() { return false; } + @Override public boolean isAfterAdvice() { return true; } @@ -53,6 +55,7 @@ public class AspectJAfterReturningAdvice extends AbstractAspectJAdvice implement 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 6b9b611b96..da9e10ed4d 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 class AspectJAfterThrowingAdvice extends AbstractAspectJAdvice implements super(aspectJBeforeAdviceMethod, pointcut, aif); } + @Override public boolean isBeforeAdvice() { return false; } + @Override public boolean isAfterAdvice() { return true; } @@ -50,6 +52,7 @@ public class AspectJAfterThrowingAdvice extends AbstractAspectJAdvice implements 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 3048103a10..d0a3b1375e 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 class AspectJAroundAdvice extends AbstractAspectJAdvice implements Method super(aspectJAroundAdviceMethod, pointcut, aif); } + @Override public boolean isBeforeAdvice() { return false; } + @Override public boolean isAfterAdvice() { return false; } @@ -55,6 +57,7 @@ public class AspectJAroundAdvice extends AbstractAspectJAdvice implements Method } + @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 7e101ea57d..2f92de4f8f 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 class AspectJExpressionPointcut extends AbstractExpressionPointcut 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 class AspectJExpressionPointcut extends AbstractExpressionPointcut return this.pointcutExpression; } + @Override public boolean matches(Class targetClass) { checkReadyToMatch(); try { @@ -267,6 +271,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut } } + @Override public boolean matches(Method method, Class targetClass, boolean beanHasIntroductions) { checkReadyToMatch(); Method targetMethod = AopUtils.getMostSpecificMethod(method, targetClass); @@ -287,15 +292,18 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut } } + @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 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut 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 class AspectJExpressionPointcut extends AbstractExpressionPointcut 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 class AspectJExpressionPointcut extends AbstractExpressionPointcut 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 class AspectJExpressionPointcut extends AbstractExpressionPointcut } } + @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 70b6575076..5354360cd4 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 503119714f..31a849ae86 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 class AspectJMethodBeforeAdvice extends AbstractAspectJAdvice implements 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 2b8950a0e6..f92b2300bb 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 class AspectJPointcutAdvisor implements PointcutAdvisor, Ordered { } + @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 4505e6f330..c6e568b7d8 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(); @@ -93,15 +94,18 @@ public class AspectJWeaverMessageHandler implements IMessageHandler { 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 27618c9b46..0d1a84247b 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 @@ public class DeclareParentsAdvisor implements IntroductionAdvisor { // Excludes methods implemented. ClassFilter exclusion = new ClassFilter() { + @Override public boolean matches(Class clazz) { return !(introducedInterface.isAssignableFrom(clazz)); } @@ -87,22 +88,27 @@ public class DeclareParentsAdvisor implements IntroductionAdvisor { } + @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 fbdcf09313..952706078e 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 class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint, 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 class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint, /** * Returns the Spring AOP proxy. Cannot be {@code null}. */ + @Override public Object getThis() { return this.methodInvocation.getProxy(); } @@ -101,10 +105,12 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint, /** * 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 class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint, return this.defensiveCopyOfArgs; } + @Override public Signature getSignature() { if (this.signature == null) { this.signature = new MethodSignatureImpl(); @@ -121,6 +128,7 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint, return signature; } + @Override public SourceLocation getSourceLocation() { if (this.sourceLocation == null) { this.sourceLocation = new SourceLocationImpl(); @@ -128,23 +136,28 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint, 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() + ")"; } @@ -161,34 +174,42 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint, 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,14 +217,17 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint, 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); } @@ -267,6 +291,7 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint, */ 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 +299,17 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint, 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 fa470759cd..7d52c03615 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 @@ class RuntimeTestWalker { 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 40049e978e..dfb36d6a72 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 class SimpleAspectInstanceFactory implements AspectInstanceFactory { } + @Override public final Object getAspectInstance() { try { return this.aspectClass.newInstance(); @@ -61,6 +62,7 @@ public class SimpleAspectInstanceFactory implements AspectInstanceFactory { } } + @Override public ClassLoader getAspectClassLoader() { return this.aspectClass.getClassLoader(); } @@ -73,6 +75,7 @@ public class SimpleAspectInstanceFactory implements AspectInstanceFactory { * @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 7f550a333d..1e8f723efb 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 class SingletonAspectInstanceFactory implements AspectInstanceFactory { } + @Override public final Object getAspectInstance() { return this.aspectInstance; } + @Override public ClassLoader getAspectClassLoader() { return this.aspectInstance.getClass().getClassLoader(); } @@ -60,6 +62,7 @@ public class SingletonAspectInstanceFactory implements AspectInstanceFactory { * @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 adb8c4db37..f2893fc583 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 class TypePatternClassFilter implements ClassFilter { * @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 5b3f48bce8..add6c5fac2 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 @@ public abstract class AbstractAspectJAdvisorFactory implements AspectJAdvisorFac * 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 @@ public abstract class AbstractAspectJAdvisorFactory implements AspectJAdvisorFac 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 abstract class AbstractAspectJAdvisorFactory implements AspectJAdvisorFac */ 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 abstract class AbstractAspectJAdvisorFactory implements AspectJAdvisorFac } } + @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 81a6c2a3ad..855af77216 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 class BeanFactoryAspectInstanceFactory implements MetadataAwareAspectInst } + @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 class BeanFactoryAspectInstanceFactory implements MetadataAwareAspectInst } } + @Override public AspectMetadata getAspectMetadata() { return this.aspectMetadata; } @@ -99,6 +102,7 @@ public class BeanFactoryAspectInstanceFactory implements MetadataAwareAspectInst * @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 b9863ab67a..2d16ece7c5 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 @@ class InstantiationModelAwarePointcutAdvisorImpl * 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 @@ class InstantiationModelAwarePointcutAdvisorImpl * 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 @@ class InstantiationModelAwarePointcutAdvisorImpl /** * Lazily instantiate advice if necessary. */ + @Override public synchronized Advice getAdvice() { if (this.instantiatedAdvice == null) { this.instantiatedAdvice = instantiateAdvice(this.declaredPointcut); @@ -127,10 +130,12 @@ class InstantiationModelAwarePointcutAdvisorImpl return this.instantiatedAdvice; } + @Override public boolean isLazy() { return this.lazy; } + @Override public synchronized boolean isAdviceInstantiated() { return (this.instantiatedAdvice != null); } @@ -149,18 +154,22 @@ class InstantiationModelAwarePointcutAdvisorImpl 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 @@ class InstantiationModelAwarePointcutAdvisorImpl return this.isBeforeAdvice; } + @Override public boolean isAfterAdvice() { if (this.isAfterAdvice == null) { determineAdviceType(); @@ -245,6 +255,7 @@ class InstantiationModelAwarePointcutAdvisorImpl 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 39d28fff7e..23df015c5c 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 class LazySingletonAspectInstanceFactoryDecorator implements MetadataAwar } + @Override public synchronized Object getAspectInstance() { if (this.materialized == null) { synchronized (this) { @@ -57,14 +58,17 @@ public class LazySingletonAspectInstanceFactoryDecorator implements MetadataAwar 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 f8d684bc3b..35ed1e2847 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 class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFacto })); comparator.addComparator(new ConvertingComparator( new Converter() { + @Override public String convert(Method method) { return method.getName(); } @@ -90,6 +92,7 @@ public class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFacto } + @Override public List getAdvisors(MetadataAwareAspectInstanceFactory maaif) { final Class aspectClass = maaif.getAspectMetadata().getAspectClass(); final String aspectName = maaif.getAspectMetadata().getAspectName(); @@ -128,6 +131,7 @@ public class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFacto 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 @@ public class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFacto } + @Override public Advisor getAdvisor(Method candidateAdviceMethod, MetadataAwareAspectInstanceFactory aif, int declarationOrderInAspect, String aspectName) { @@ -191,6 +196,7 @@ public class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFacto } + @Override public Advice getAdvice(Method candidateAdviceMethod, AspectJExpressionPointcut ajexp, MetadataAwareAspectInstanceFactory aif, int declarationOrderInAspect, String aspectName) { @@ -272,6 +278,7 @@ public class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFacto 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 bb623b372b..70ff5e6532 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 class SimpleMetadataAwareAspectInstanceFactory extends SimpleAspectInstan } + @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 ef9014a144..31f1e18f27 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 class SingletonMetadataAwareAspectInstanceFactory extends SingletonAspect } + @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 dbfcbd380e..847b1932af 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 @@ -131,11 +131,13 @@ public class AspectJAwareAdvisorAutoProxyCreator extends AbstractAdvisorAutoProx 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 0dd176354e..2e2134675b 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 @@ -76,6 +76,7 @@ class AspectJPrecedenceComparator implements Comparator { } + @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 6e58344f80..65169d1a8d 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 @@ import org.springframework.util.StringUtils; */ 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 374e40290a..bd86b2ea2e 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 @@ public class AdvisorComponentDefinition extends AbstractComponentDefinition { } + @Override public String getName() { return this.advisorBeanName; } @@ -110,6 +111,7 @@ public class AdvisorComponentDefinition extends AbstractComponentDefinition { 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 611376efb9..459c394219 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 aa3d70d11e..95371f59b7 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 @@ import org.springframework.beans.factory.xml.ParserContext; */ 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 9f75cba9be..c7cb6735d6 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 5891bc8455..e827eef1f0 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 class MethodLocatingFactoryBean implements FactoryBean, BeanFacto 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 class MethodLocatingFactoryBean implements FactoryBean, BeanFacto } + @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 cd1c0f9f59..23827f914e 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 class PointcutComponentDefinition extends AbstractComponentDefinition { } + @Override public String getName() { return this.pointcutBeanName; } @@ -60,6 +61,7 @@ public class PointcutComponentDefinition extends AbstractComponentDefinition { 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 0d2daf364f..0acf968b51 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 6ffc8c8868..9c08b0258a 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 class SimpleBeanFactoryAwareAspectInstanceFactory implements AspectInstan this.aspectBeanName = aspectBeanName; } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; if (!StringUtils.hasText(this.aspectBeanName)) { @@ -59,10 +60,12 @@ public class SimpleBeanFactoryAwareAspectInstanceFactory implements AspectInstan * 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 class SimpleBeanFactoryAwareAspectInstanceFactory implements AspectInstan } } + @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 36c2a9c911..06bbf9b614 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 9e6baee932..f65ae62508 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 @@ -50,6 +50,7 @@ public abstract class AbstractAdvisingBeanPostProcessor extends ProxyConfig private final Map eligibleBeans = new ConcurrentHashMap(64); + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } @@ -58,15 +59,18 @@ public abstract class AbstractAdvisingBeanPostProcessor extends ProxyConfig 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 18d8d25d15..4e640d0477 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 abstract class AbstractSingletonProxyFactoryBean extends ProxyConfig this.proxyClassLoader = classLoader; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { if (this.proxyClassLoader == null) { this.proxyClassLoader = classLoader; @@ -129,6 +130,7 @@ public abstract class AbstractSingletonProxyFactoryBean extends ProxyConfig } + @Override public void afterPropertiesSet() { if (this.target == null) { throw new IllegalArgumentException("Property 'target' is required"); @@ -190,6 +192,7 @@ public abstract class AbstractSingletonProxyFactoryBean extends ProxyConfig } + @Override public Object getObject() { if (this.proxy == null) { throw new FactoryBeanNotInitializedException(); @@ -197,6 +200,7 @@ public abstract class AbstractSingletonProxyFactoryBean extends ProxyConfig return this.proxy; } + @Override public Class getObjectType() { if (this.proxy != null) { return this.proxy.getClass(); @@ -213,6 +217,7 @@ public abstract class AbstractSingletonProxyFactoryBean extends ProxyConfig 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 e5f89177b6..5cf6828d66 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 class AdvisedSupport extends ProxyConfig implements Advised { 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 class AdvisedSupport extends ProxyConfig implements Advised { 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 class AdvisedSupport extends ProxyConfig implements Advised { 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 class AdvisedSupport extends ProxyConfig implements Advised { } + @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 class AdvisedSupport extends ProxyConfig implements Advised { addAdvisorInternal(pos, advisor); } + @Override public boolean removeAdvisor(Advisor advisor) { int index = indexOf(advisor); if (index == -1) { @@ -269,6 +280,7 @@ public class AdvisedSupport extends ProxyConfig implements Advised { } } + @Override public void removeAdvisor(int index) throws AopConfigException { if (isFrozen()) { throw new AopConfigException("Cannot remove Advisor: Configuration is frozen."); @@ -292,11 +304,13 @@ public class AdvisedSupport extends ProxyConfig implements Advised { 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"); @@ -388,6 +402,7 @@ public class AdvisedSupport extends ProxyConfig implements Advised { } + @Override public void addAdvice(Advice advice) throws AopConfigException { int pos = this.advisors.size(); addAdvice(pos, advice); @@ -396,6 +411,7 @@ public class AdvisedSupport extends ProxyConfig implements Advised { /** * 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) { @@ -412,6 +428,7 @@ public class AdvisedSupport extends ProxyConfig implements Advised { } } + @Override public boolean removeAdvice(Advice advice) throws AopConfigException { int index = indexOf(advice); if (index == -1) { @@ -423,6 +440,7 @@ public class AdvisedSupport extends ProxyConfig implements Advised { } } + @Override public int indexOf(Advice advice) { Assert.notNull(advice, "Advice must not be null"); for (int i = 0; i < this.advisors.size(); i++) { @@ -554,6 +572,7 @@ public class AdvisedSupport extends ProxyConfig implements Advised { } + @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 5801458ff0..6ee9f6d450 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 @@ final class CglibAopProxy implements AopProxy, Serializable { } + @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 @@ final class CglibAopProxy implements AopProxy, Serializable { 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 @@ final class CglibAopProxy implements AopProxy, Serializable { 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 @@ final class CglibAopProxy implements AopProxy, Serializable { 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 @@ final class CglibAopProxy implements AopProxy, Serializable { 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 @@ final class CglibAopProxy implements AopProxy, Serializable { this.target = target; } + @Override public Object loadObject() { return this.target; } @@ -502,6 +509,7 @@ final class CglibAopProxy implements AopProxy, Serializable { this.advised = advised; } + @Override public Object loadObject() throws Exception { return this.advised; } @@ -520,6 +528,7 @@ final class CglibAopProxy implements AopProxy, Serializable { 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 @@ final class CglibAopProxy implements AopProxy, Serializable { 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 @@ final class CglibAopProxy implements AopProxy, Serializable { 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 @@ final class CglibAopProxy implements AopProxy, Serializable { 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 @@ final class CglibAopProxy implements AopProxy, Serializable { * 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 90eeef7b48..3eef11bd9b 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 @@ import org.springframework.aop.support.MethodMatchers; @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 8b95e3303b..5d3640677a 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 @@ import org.springframework.aop.SpringProxy; 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 7e10c4c228..ad36cd8934 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 @@ final class JdkDynamicAopProxy implements AopProxy, InvocationHandler, Serializa } + @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 @@ final class JdkDynamicAopProxy implements AopProxy, InvocationHandler, Serializa *

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 a369f56c82..7e62678340 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 class ProxyFactoryBean extends ProxyCreatorSupport 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 class ProxyFactoryBean extends ProxyCreatorSupport * {@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 class ProxyFactoryBean extends ProxyCreatorSupport * 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 @@ public class ProxyFactoryBean extends ProxyCreatorSupport } } + @Override public boolean isSingleton() { return this.singleton; } @@ -638,10 +643,12 @@ public class ProxyFactoryBean extends ProxyCreatorSupport 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 c9ac099b48..8556823d92 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 @@ public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea } + @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 class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea * 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 @@ public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea * current interceptor index. * @see java.lang.Object#clone() */ + @Override public MethodInvocation invocableClone() { Object[] cloneArguments = null; if (this.arguments != null) { @@ -210,6 +218,7 @@ public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea * 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 class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea } + @Override public void setUserAttribute(String key, Object value) { if (value != null) { if (this.userAttributes == null) { @@ -244,6 +254,7 @@ public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea } } + @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 bd3ebe7d57..5ff96dcd12 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 class AdvisorAdapterRegistrationManager implements BeanPostProcessor { } + @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 a921e6e509..de562f4fbe 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 @@ import org.springframework.aop.AfterReturningAdvice; @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 9f8f698faf..5e0bd1d23d 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 class AfterReturningAdviceInterceptor implements MethodInterceptor, After 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 136f004586..0925b818af 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 class DefaultAdvisorAdapterRegistry implements AdvisorAdapterRegistry, Se } + @Override public Advisor wrap(Object adviceObject) throws UnknownAdviceTypeException { if (adviceObject instanceof Advisor) { return (Advisor) adviceObject; @@ -74,6 +75,7 @@ public class DefaultAdvisorAdapterRegistry implements AdvisorAdapterRegistry, Se 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 class DefaultAdvisorAdapterRegistry implements AdvisorAdapterRegistry, Se 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 6fc3cdef5e..57e0e16af7 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 @@ import org.springframework.aop.MethodBeforeAdvice; @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 83d7b8e851..8b3fd0ce20 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 class MethodBeforeAdviceInterceptor implements MethodInterceptor, Seriali 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 687a6d5f8b..822b789b54 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 @@ import org.springframework.aop.ThrowsAdvice; @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 69b0bd1cc5..de2767be2c 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 @@ public class ThrowsAdviceInterceptor implements MethodInterceptor, AfterAdvice { 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 06010d6710..db4f429198 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 @@ -155,6 +155,7 @@ public abstract class AbstractAutoProxyCreator extends ProxyConfig this.order = order; } + @Override public final int getOrder() { return this.order; } @@ -232,12 +233,14 @@ public abstract class AbstractAutoProxyCreator extends ProxyConfig 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; } @@ -251,21 +254,25 @@ public abstract class AbstractAutoProxyCreator extends ProxyConfig } + @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.put(cacheKey, Boolean.TRUE); return wrapIfNecessary(bean, beanName, cacheKey); } + @Override public Object postProcessBeforeInstantiation(Class beanClass, String beanName) throws BeansException { Object cacheKey = getCacheKey(beanClass, beanName); @@ -296,16 +303,19 @@ public abstract class AbstractAutoProxyCreator extends ProxyConfig 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; } @@ -315,6 +325,7 @@ public abstract class AbstractAutoProxyCreator extends ProxyConfig * 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 953a751d32..044c7bbc11 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 class DefaultAdvisorAutoProxyCreator extends AbstractAdvisorAutoProxyCrea 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 c1ef00cbe2..3735ba06e7 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 @@ public abstract class AbstractBeanFactoryBasedTargetSourceCreator // Implementation of the TargetSourceCreator interface //--------------------------------------------------------------------- + @Override public final TargetSource getTargetSource(Class beanClass, String beanName) { AbstractBeanFactoryBasedTargetSource targetSource = createBeanFactoryBasedTargetSource(beanClass, beanName); @@ -159,6 +161,7 @@ public abstract class AbstractBeanFactoryBasedTargetSourceCreator * 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 7c29c775bc..1ba6dca904 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 abstract class AbstractTraceInterceptor implements MethodInterceptor, Ser * 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 96237b86d1..f94b575806 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 abstract class AsyncExecutionAspectSupport implements BeanFactoryAware { /** * 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 792639b1c6..7730f54426 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 @@ -75,9 +75,11 @@ public class AsyncExecutionInterceptor extends AsyncExecutionAspectSupport * @return {@link Future} if the original method returns {@code Future}; {@code null} * otherwise. */ + @Override public Object invoke(final MethodInvocation invocation) throws Throwable { Future result = this.determineAsyncExecutor(invocation.getMethod()).submit( new Callable() { + @Override public Object call() throws Exception { try { Object result = invocation.proceed(); @@ -113,6 +115,7 @@ public class AsyncExecutionInterceptor extends AsyncExecutionAspectSupport 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 8f6f3ee479..ad57e4c635 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 class ConcurrencyThrottleInterceptor extends ConcurrencyThrottleSupport 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 a4ce58d528..78479765ca 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 abstract class ExposeBeanNameAdvisors { 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 abstract class ExposeBeanNameAdvisors { 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 c5443e7dc3..9f9d887e7a 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 class ExposeInvocationInterceptor implements MethodInterceptor, Ordered, private ExposeInvocationInterceptor() { } + @Override public Object invoke(MethodInvocation mi) throws Throwable { MethodInvocation oldInvocation = invocation.get(); invocation.set(mi); @@ -95,6 +96,7 @@ public class ExposeInvocationInterceptor implements MethodInterceptor, Ordered, } } + @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 95009495ba..337c660022 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 class DefaultScopedObject implements ScopedObject, Serializable { } + @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 34bc7b9b74..a0c6fee7b6 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 class ScopedProxyFactoryBean extends ProxyConfig implements FactoryBean getObjectType() { if (this.proxy != null) { return this.proxy.getClass(); @@ -128,6 +131,7 @@ public class ScopedProxyFactoryBean extends ProxyConfig implements FactoryBean 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 35d765c297..df3963dc85 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 @@ import org.springframework.aop.Pointcut; */ 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 c8807f7639..e10c0c9921 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 class IntroductionInfoSupport implements IntroductionInfo, Serializable { 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 be8b5bca7f..160496c074 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 abstract class MethodMatchers { 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 @@ public abstract class MethodMatchers { 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 abstract class MethodMatchers { 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 69389d0bf5..26ffedaf5a 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 class NameMatchMethodPointcut extends StaticMethodMatcherPointcut impleme } + @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 c2f85b5881..375ecdeac7 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 class NameMatchMethodPointcutAdvisor extends AbstractGenericPointcutAdvis } + @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 2bfbcb1c32..957f5d319e 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 @@ public abstract class Pointcuts { 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 @@ public abstract class Pointcuts { 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 1edb2d746b..177fe9b277 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 class RegexpMethodPointcutAdvisor extends AbstractGenericPointcutAdvisor /** * 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 461252e617..c232b2826b 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 class RootClassFilter implements ClassFilter, Serializable { 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 6efebf1106..8bb1d74d73 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 @@ import org.springframework.aop.MethodMatcher; */ 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 7e96730e37..1f0917877c 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 abstract class StaticMethodMatcherPointcut extends StaticMethodMatcher im 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 921129c89b..3b0c382072 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 abstract class StaticMethodMatcherPointcutAdvisor extends StaticMethodMat this.order = order; } + @Override public int getOrder() { return this.order; } @@ -71,14 +72,17 @@ public abstract class StaticMethodMatcherPointcutAdvisor extends StaticMethodMat 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 9136c8974e..d3a84e3a73 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 class AnnotationClassFilter implements ClassFilter { } + @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 acdbbeff88..46c6f69e3e 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 class AnnotationMatchingPointcut implements Pointcut { } + @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 4f4dd6c391..9b557473ff 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 class AnnotationMethodMatcher extends StaticMethodMatcher { } + @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 3192fab5fe..0928b54b89 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 abstract class AbstractBeanFactoryBasedTargetSource * 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 abstract class AbstractBeanFactoryBasedTargetSource } + @Override public synchronized Class getTargetClass() { if (this.targetClass == null && this.beanFactory != null) { // Determine type of the target bean. @@ -137,10 +139,12 @@ public abstract class AbstractBeanFactoryBasedTargetSource 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 6fdd24ef92..97f3ae8732 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 abstract class AbstractLazyCreationTargetSource implements TargetSource { * 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 abstract class AbstractLazyCreationTargetSource implements TargetSource { * 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 abstract class AbstractLazyCreationTargetSource implements TargetSource { 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 91e1b72ee7..c0bef77145 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 abstract class AbstractPoolingTargetSource extends AbstractPrototypeBased /** * Return the maximum size of the pool. */ + @Override public int getMaxSize() { return this.maxSize; } @@ -97,6 +98,7 @@ public abstract class AbstractPoolingTargetSource extends AbstractPrototypeBased * @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 47a35f756e..08f16258a1 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 class CommonsPoolTargetSource extends AbstractPoolingTargetSource 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 class CommonsPoolTargetSource extends AbstractPoolingTargetSource /** * 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 class CommonsPoolTargetSource extends AbstractPoolingTargetSource // 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 193259ba8d..826917a561 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 @@ public class EmptyTargetSource implements TargetSource, Serializable { /** * Always returns the specified target Class, or {@code null} if none. */ + @Override public Class getTargetClass() { return this.targetClass; } @@ -96,6 +97,7 @@ public class EmptyTargetSource implements TargetSource, Serializable { /** * Always returns {@code true}. */ + @Override public boolean isStatic() { return this.isStatic; } @@ -103,6 +105,7 @@ public class EmptyTargetSource implements TargetSource, Serializable { /** * Always returns {@code null}. */ + @Override public Object getTarget() { return null; } @@ -110,6 +113,7 @@ public class EmptyTargetSource implements TargetSource, Serializable { /** * 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 14c32af6e2..8948bb3699 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 class HotSwappableTargetSource implements TargetSource, Serializable { * 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 dcb6108e87..bad59acf1b 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 81642f6b2e..a404a93234 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 14560404c4..805f1a0562 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 @@ package org.springframework.aop.target; @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 cd2dfb0c0c..439e59509a 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 class SingletonTargetSource implements TargetSource, Serializable { } + @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 7b100fe0da..af22df411d 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 class ThreadLocalTargetSource extends AbstractPrototypeBasedTargetSource * 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 class ThreadLocalTargetSource extends AbstractPrototypeBasedTargetSource } + @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 7aba951ee5..c96c21e193 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 abstract class AbstractRefreshableTargetSource implements TargetSource, R } + @Override public synchronized Class getTargetClass() { if (this.targetObject == null) { refresh(); @@ -73,10 +74,12 @@ public abstract class AbstractRefreshableTargetSource implements TargetSource, R /** * 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 abstract class AbstractRefreshableTargetSource implements TargetSource, R /** * 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 abstract class AbstractRefreshableTargetSource implements TargetSource, R 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-beans/src/main/java/org/springframework/beans/AbstractPropertyAccessor.java b/spring-beans/src/main/java/org/springframework/beans/AbstractPropertyAccessor.java index 258313c90f..8be616c7dd 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 abstract class AbstractPropertyAccessor extends TypeConverterSupport impl * @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 abstract class AbstractPropertyAccessor extends TypeConverterSupport impl * @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 f806b9f6a5..366256452c 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 class BeanMetadataAttribute implements BeanMetadataElement { 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 c683f50ab8..d08a8fa341 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 class BeanMetadataAttributeAccessor extends AttributeAccessorSupport impl 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 bac8df4ce6..705d4a7ac7 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 class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra 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 class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra * 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 class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra /** * Return whether "auto-growing" of nested paths has been activated. */ + @Override public boolean isAutoGrowNestedPaths() { return this.autoGrowNestedPaths; } @@ -272,6 +276,7 @@ public class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra * 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 class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra /** * Return the limit for array and collection auto-growing. */ + @Override public int getAutoGrowCollectionLimit() { return this.autoGrowCollectionLimit; } @@ -324,10 +330,12 @@ public class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra } + @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 BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra return null; } + @Override public TypeDescriptor getPropertyTypeDescriptor(String propertyName) throws BeansException { try { BeanWrapperImpl nestedBw = getBeanWrapperForPropertyPath(propertyName); @@ -402,6 +411,7 @@ public class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra return null; } + @Override public boolean isReadableProperty(String propertyName) { try { PropertyDescriptor pd = getPropertyDescriptorInternal(propertyName); @@ -422,6 +432,7 @@ public class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra return false; } + @Override public boolean isWritableProperty(String propertyName) { try { PropertyDescriptor pd = getPropertyDescriptorInternal(propertyName); @@ -711,6 +722,7 @@ public class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra 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 class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra 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 @@ public class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra !readMethod.isAccessible()) { if (System.getSecurityManager()!= null) { AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { readMethod.setAccessible(true); return null; @@ -1075,6 +1089,7 @@ public class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra 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 class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra 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 class BeanWrapperImpl extends AbstractPropertyAccessor implements BeanWra 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 d7913aa906..9e6c67703c 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 class DirectFieldAccessor extends AbstractPropertyAccessor { 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 class DirectFieldAccessor extends AbstractPropertyAccessor { } + @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 DirectFieldAccessor extends AbstractPropertyAccessor { 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 856e62c031..caf47703a4 100644 --- a/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfo.java +++ b/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfo.java @@ -217,35 +217,43 @@ class ExtendedBeanInfo implements BeanInfo { * 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(); } @@ -655,6 +663,7 @@ class PropertyDescriptorUtils { */ 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 7e46211922..6908cc06b6 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 @@ public class ExtendedBeanInfoFactory implements Ordered, BeanInfoFactory { 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 e079bb0f56..e82daabbcb 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 class MethodInvocationException extends PropertyAccessException { 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 390b3f8a12..56bf9bb374 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 class MutablePropertyValues implements PropertyValues, Serializable { } + @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 class MutablePropertyValues implements PropertyValues, Serializable { return null; } + @Override public PropertyValues changesSince(PropertyValues old) { MutablePropertyValues changes = new MutablePropertyValues(); if (old == this) { @@ -278,11 +281,13 @@ public class MutablePropertyValues implements PropertyValues, Serializable { 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 81854100d4..b598879b3e 100644 --- a/spring-beans/src/main/java/org/springframework/beans/PropertyEditorRegistrySupport.java +++ b/spring-beans/src/main/java/org/springframework/beans/PropertyEditorRegistrySupport.java @@ -269,10 +269,12 @@ public class PropertyEditorRegistrySupport implements PropertyEditorRegistry { // 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"); @@ -319,6 +321,7 @@ public class PropertyEditorRegistrySupport implements PropertyEditorRegistry { return (this.sharedEditors != null && this.sharedEditors.contains(propertyEditor)); } + @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 61fb062afe..ec1f5a2b4c 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 d1b7c48130..83883a31a1 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 TypeMismatchException extends PropertyAccessException { 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 1dc3257819..c9536c7729 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 @@ public class SingletonBeanFactoryLocator implements BeanFactoryLocator { 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 class SingletonBeanFactoryLocator implements BeanFactoryLocator { 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 f0fd4c5cac..9cbd62ccf5 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 @@ -71,6 +71,7 @@ public class AnnotatedGenericBeanDefinition extends GenericBeanDefinition implem } + @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 ef1a2e4b63..8729b095a9 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 @@ import org.springframework.util.ClassUtils; */ 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 e1f0e2f392..6a0442c3d0 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 class AutowiredAnnotationBeanPostProcessor extends InstantiationAwareBean 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 class AutowiredAnnotationBeanPostProcessor extends InstantiationAwareBean } + @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 91bc3b5bfe..106997fe76 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 class CustomAutowireConfigurer implements BeanFactoryPostProcessor, BeanC this.order = order; } + @Override public int getOrder() { return this.order; } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } @@ -82,6 +84,7 @@ public class CustomAutowireConfigurer implements BeanFactoryPostProcessor, BeanC } + @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 74a5e59d24..2bc1537f9a 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 class InitDestroyAnnotationBeanPostProcessor 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 class InitDestroyAnnotationBeanPostProcessor } } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { LifecycleMetadata metadata = findLifecycleMetadata(bean.getClass()); try { @@ -138,10 +141,12 @@ public class InitDestroyAnnotationBeanPostProcessor 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 657ee22666..2a7f122f9d 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 class QualifierAnnotationAutowireCandidateResolver implements AutowireCan this.valueAnnotationType = valueAnnotationType; } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } @@ -143,6 +144,7 @@ public class QualifierAnnotationAutowireCandidateResolver implements AutowireCan * 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 @@ public class QualifierAnnotationAutowireCandidateResolver implements AutowireCan * 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 862dbd6fa6..19f3035a36 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 @@ -116,6 +116,7 @@ public class RequiredAnnotationBeanPostProcessor extends InstantiationAwareBeanP return this.requiredAnnotationType; } + @Override public void setBeanFactory(BeanFactory beanFactory) { if (beanFactory instanceof ConfigurableListableBeanFactory) { this.beanFactory = (ConfigurableListableBeanFactory) beanFactory; @@ -126,11 +127,13 @@ public class RequiredAnnotationBeanPostProcessor extends InstantiationAwareBeanP 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 5c1ad4b751..2dda2ca735 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 abstract class AbstractFactoryBean 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 @@ public abstract class AbstractFactoryBean /** * Eagerly create the singleton instance, if necessary. */ + @Override public void afterPropertiesSet() throws Exception { if (isSingleton()) { this.initialized = true; @@ -138,6 +142,7 @@ public abstract class AbstractFactoryBean * @see #createInstance() * @see #getEarlySingletonInterfaces() */ + @Override public final T getObject() throws Exception { if (isSingleton()) { return (this.initialized ? this.singletonInstance : getEarlySingletonInstance()); @@ -181,6 +186,7 @@ public abstract class AbstractFactoryBean * 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 abstract class AbstractFactoryBean * 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 @@ public abstract class AbstractFactoryBean */ 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 c9d442c335..0f8148f060 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 class BeanDefinitionHolder implements BeanMetadataElement { * 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 bbe7ddf804..f637b891e1 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 class BeanReferenceFactoryBean implements SmartFactoryBean, BeanFactoryAw this.targetBeanName = targetBeanName; } + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; if (this.targetBeanName == null) { @@ -76,6 +77,7 @@ public class BeanReferenceFactoryBean implements SmartFactoryBean, BeanFactoryAw } + @Override public Object getObject() throws BeansException { if (this.beanFactory == null) { throw new FactoryBeanNotInitializedException(); @@ -83,6 +85,7 @@ public class BeanReferenceFactoryBean implements SmartFactoryBean, BeanFactoryAw return this.beanFactory.getBean(this.targetBeanName); } + @Override public Class getObjectType() { if (this.beanFactory == null) { return null; @@ -90,6 +93,7 @@ public class BeanReferenceFactoryBean implements SmartFactoryBean, BeanFactoryAw return this.beanFactory.getType(this.targetBeanName); } + @Override public boolean isSingleton() { if (this.beanFactory == null) { throw new FactoryBeanNotInitializedException(); @@ -97,6 +101,7 @@ public class BeanReferenceFactoryBean implements SmartFactoryBean, BeanFactoryAw return this.beanFactory.isSingleton(this.targetBeanName); } + @Override public boolean isPrototype() { if (this.beanFactory == null) { throw new FactoryBeanNotInitializedException(); @@ -104,6 +109,7 @@ public class BeanReferenceFactoryBean implements SmartFactoryBean, BeanFactoryAw 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 d0e93c8b0c..c49cb6db32 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 class CommonsLogFactoryBean implements FactoryBean, InitializingBean } + @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 1e59e7d134..795ef04a5c 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 class ConstructorArgumentValues { 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 f155dedbdf..b10c74c78b 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 @@ -119,6 +119,7 @@ public class CustomEditorConfigurer implements BeanFactoryPostProcessor, BeanCla this.order = order; } + @Override public int getOrder() { return this.order; } @@ -161,11 +162,13 @@ public class CustomEditorConfigurer implements BeanFactoryPostProcessor, BeanCla this.ignoreUnresolvableEditors = ignoreUnresolvableEditors; } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } + @Override @SuppressWarnings("unchecked") public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { if (this.propertyEditorRegistrars != null) { @@ -234,6 +237,7 @@ public class CustomEditorConfigurer implements BeanFactoryPostProcessor, BeanCla this.sharedEditor = sharedEditor; } + @Override public void registerCustomEditors(PropertyEditorRegistry registry) { if (!(registry instanceof PropertyEditorRegistrySupport)) { throw new IllegalArgumentException("Cannot registered shared editor " + 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 130387e552..ebd4f3236c 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 class CustomScopeConfigurer implements BeanFactoryPostProcessor, BeanClas 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 815173b6be..893e4c2016 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 class DeprecatedBeanWarner implements BeanFactoryPostProcessor { } + @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 31edfa9144..b5471cb4e1 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 class FieldRetrievingFactoryBean * 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 @@ public class FieldRetrievingFactoryBean } + @Override public Object getObject() throws IllegalAccessException { if (this.fieldObject == null) { throw new FactoryBeanNotInitializedException(); @@ -206,10 +210,12 @@ public class FieldRetrievingFactoryBean } } + @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 49eeaaf532..b21ac39b30 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 @@ import org.springframework.beans.PropertyValues; */ 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 abstract class InstantiationAwareBeanPostProcessorAdapter implements Smar 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 1615a8125f..0e6ad68f07 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 class MethodInvokingFactoryBean extends ArgumentConvertingMethodInvoker this.singleton = singleton; } + @Override public boolean isSingleton() { return this.singleton; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -123,6 +125,7 @@ public class MethodInvokingFactoryBean extends ArgumentConvertingMethodInvoker return ClassUtils.forName(className, this.beanClassLoader); } + @Override public void setBeanFactory(BeanFactory beanFactory) { if (beanFactory instanceof ConfigurableBeanFactory) { this.beanFactory = (ConfigurableBeanFactory) beanFactory; @@ -145,6 +148,7 @@ public class MethodInvokingFactoryBean extends ArgumentConvertingMethodInvoker } + @Override public void afterPropertiesSet() throws Exception { prepare(); if (this.singleton) { @@ -178,6 +182,7 @@ public class MethodInvokingFactoryBean extends ArgumentConvertingMethodInvoker * 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 class MethodInvokingFactoryBean extends ArgumentConvertingMethodInvoker * 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 710eeddae6..5c3ed77257 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 class ObjectFactoryCreatingFactoryBean extends AbstractFactoryBean 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 b9b822e2e2..4b8703abf0 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 class PropertyPathFactoryBean implements FactoryBean, BeanNameAwa * "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 @@ public class PropertyPathFactoryBean implements FactoryBean, BeanNameAwa } + @Override public Object getObject() throws BeansException { BeanWrapper target = this.targetBeanWrapper; if (target != null) { @@ -208,6 +211,7 @@ public class PropertyPathFactoryBean implements FactoryBean, BeanNameAwa return target.getPropertyValue(this.propertyPath); } + @Override public Class getObjectType() { return this.resultType; } @@ -218,6 +222,7 @@ public class PropertyPathFactoryBean implements FactoryBean, BeanNameAwa * 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 bf9474138f..c9d39f3bf5 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 class PropertyPlaceholderConfigurer extends PlaceholderConfigurerSupport 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 @@ public class PropertyPlaceholderConfigurer extends PlaceholderConfigurerSupport 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 8da5a7772b..c58bc9a90f 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 abstract class PropertyResourceConfigurer extends PropertiesLoaderSupport this.order = order; } + @Override public int getOrder() { return this.order; } @@ -73,6 +74,7 @@ public abstract class PropertyResourceConfigurer extends PropertiesLoaderSupport * {@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 b64f38ffe2..c0d2537042 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 class ProviderCreatingFactoryBean extends AbstractFactoryBean { 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 7477e197cb..2e078aeb48 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 class RuntimeBeanNameReference implements BeanReference { this.beanName = beanName; } + @Override public String getBeanName() { return this.beanName; } @@ -56,6 +57,7 @@ public class RuntimeBeanNameReference implements BeanReference { 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 836098ff8c..dd3648e3cc 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 class RuntimeBeanReference implements BeanReference { } + @Override public String getBeanName() { return this.beanName; } @@ -81,6 +82,7 @@ public class RuntimeBeanReference implements BeanReference { 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 e8f2b72b6c..ef91b2b749 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 @@ -246,6 +246,7 @@ public class ServiceLocatorFactoryBean implements FactoryBean, BeanFacto this.serviceMappings = serviceMappings; } + @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { if (!(beanFactory instanceof ListableBeanFactory)) { throw new FatalBeanException( @@ -254,6 +255,7 @@ public class ServiceLocatorFactoryBean implements FactoryBean, BeanFacto this.beanFactory = (ListableBeanFactory) beanFactory; } + @Override public void afterPropertiesSet() { if (this.serviceLocatorInterface == null) { throw new IllegalArgumentException("Property 'serviceLocatorInterface' is required"); @@ -323,14 +325,17 @@ public class ServiceLocatorFactoryBean implements FactoryBean, BeanFacto } + @Override public Object getObject() { return this.proxy; } + @Override public Class getObjectType() { return this.serviceLocatorInterface; } + @Override public boolean isSingleton() { return true; } @@ -341,6 +346,7 @@ public class ServiceLocatorFactoryBean implements FactoryBean, BeanFacto */ 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 e4f27fec8b..a9ff4fdbfb 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 class TypedStringValue implements BeanMetadataElement { 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 24a03a757f..0ae0a3f87a 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 abstract class AbstractComponentDefinition implements ComponentDefinition /** * Returns an empty array. */ + @Override public BeanDefinition[] getBeanDefinitions() { return new BeanDefinition[0]; } @@ -49,6 +51,7 @@ public abstract class AbstractComponentDefinition implements ComponentDefinition /** * Returns an empty array. */ + @Override public BeanDefinition[] getInnerBeanDefinitions() { return new BeanDefinition[0]; } @@ -56,6 +59,7 @@ public abstract class AbstractComponentDefinition implements ComponentDefinition /** * 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 828cdc8257..06d037c5d7 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 class AliasDefinition implements BeanMetadataElement { 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 d281d86cd4..2b88d82765 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 @@ public class BeanComponentDefinition extends BeanDefinitionHolder implements Com } + @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 e8589d0889..019fa6e3f5 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 class CompositeComponentDefinition extends AbstractComponentDefinition { } + @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 b5d49c09a1..cf3b61e2a8 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 @@ package org.springframework.beans.factory.parsing; */ 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 76f3a2fd8a..859d611f14 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 class FailFastProblemReporter implements ProblemReporter { * 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 class FailFastProblemReporter implements ProblemReporter { * 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 class FailFastProblemReporter implements ProblemReporter { * 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 ffc1cb2a1e..85eea69610 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 class ImportDefinition implements BeanMetadataElement { 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 66dfae23d9..3e3fa62524 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 4611365c07..a9f56dbfbb 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 c112676ea1..4bb0f75145 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 abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac // 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 abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac 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 abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac 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 abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac 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 abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac // 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 abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac 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 abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac if (System.getSecurityManager() != null) { bean = AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { return getInstantiationStrategy().instantiate(bd, null, parent); } @@ -364,6 +371,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac } } + @Override public void autowireBeanProperties(Object existingBean, int autowireMode, boolean dependencyCheck) throws BeansException { @@ -379,6 +387,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac 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 abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac 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 abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac return result; } + @Override public Object applyBeanPostProcessorsAfterInitialization(Object existingBean, String beanName) throws BeansException { @@ -510,6 +522,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac "' to allow for resolving potential circular references"); } addSingletonFactory(beanName, new ObjectFactory() { + @Override public Object getObject() throws BeansException { return getEarlyBeanReference(beanName, mbd, bean); } @@ -695,6 +708,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac // @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())) { @@ -995,6 +1009,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac final BeanFactory parent = this; if (System.getSecurityManager() != null) { beanInstance = AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { return getInstantiationStrategy().instantiate(mbd, beanName, parent); } @@ -1464,6 +1479,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac 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; @@ -1531,6 +1547,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac if (System.getSecurityManager() != null) { try { AccessController.doPrivileged(new PrivilegedExceptionAction() { + @Override public Object run() throws Exception { ((InitializingBean) bean).afterPropertiesSet(); return null; @@ -1588,6 +1605,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac if (System.getSecurityManager() != null) { AccessController.doPrivileged(new PrivilegedExceptionAction() { + @Override public Object run() throws Exception { ReflectionUtils.makeAccessible(initMethod); return null; @@ -1595,6 +1613,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac }); 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 f93ea1b408..3d1895aa78 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 @@ -386,10 +386,12 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess return (Class) beanClassObject; } + @Override public void setBeanClassName(String beanClassName) { this.beanClass = beanClassName; } + @Override public String getBeanClassName() { Object beanClassObject = this.beanClass; if (beanClassObject instanceof Class) { @@ -429,6 +431,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess * @see #SCOPE_SINGLETON * @see #SCOPE_PROTOTYPE */ + @Override public void setScope(String scope) { this.scope = scope; this.singleton = SCOPE_SINGLETON.equals(scope) || SCOPE_DEFAULT.equals(scope); @@ -438,6 +441,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess /** * Return the name of the target scope for the bean. */ + @Override public String getScope() { return this.scope; } @@ -467,6 +471,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess * returned from all calls. * @see #SCOPE_SINGLETON */ + @Override public boolean isSingleton() { return this.singleton; } @@ -476,6 +481,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess * returned for each call. * @see #SCOPE_PROTOTYPE */ + @Override public boolean isPrototype() { return this.prototype; } @@ -494,6 +500,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess * 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; } @@ -503,6 +510,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess *

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; } @@ -511,6 +519,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess * 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; } @@ -591,6 +600,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess * 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; } @@ -598,6 +608,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess /** * Return the bean names that this bean depends on. */ + @Override public String[] getDependsOn() { return this.dependsOn; } @@ -605,6 +616,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess /** * Set whether this bean is a candidate for getting autowired into some other bean. */ + @Override public void setAutowireCandidate(boolean autowireCandidate) { this.autowireCandidate = autowireCandidate; } @@ -612,6 +624,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess /** * Return whether this bean is a candidate for getting autowired into some other bean. */ + @Override public boolean isAutowireCandidate() { return this.autowireCandidate; } @@ -621,6 +634,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess * 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; } @@ -630,6 +644,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess * 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; } @@ -724,6 +739,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess /** * Return constructor argument values for this bean (never {@code null}). */ + @Override public ConstructorArgumentValues getConstructorArgumentValues() { return this.constructorArgumentValues; } @@ -745,6 +761,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess /** * Return property values for this bean (never {@code null}). */ + @Override public MutablePropertyValues getPropertyValues() { return this.propertyValues; } @@ -766,18 +783,22 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess } + @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; } @@ -874,6 +895,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess /** * Return the role hint for this {@code BeanDefinition}. */ + @Override public int getRole() { return this.role; } @@ -886,6 +908,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess this.description = description; } + @Override public String getDescription() { return this.description; } @@ -913,6 +936,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess this.resource = new DescriptiveResource(resourceDescription); } + @Override public String getResourceDescription() { return (this.resource != null ? this.resource.getDescription() : null); } @@ -924,6 +948,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess 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 b07e211d16..3f81a2a2b0 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 abstract class AbstractBeanDefinitionReader implements EnvironmentCapable return this.registry; } + @Override public final BeanDefinitionRegistry getRegistry() { return this.registry; } @@ -121,6 +122,7 @@ public abstract class AbstractBeanDefinitionReader implements EnvironmentCapable this.resourceLoader = resourceLoader; } + @Override public ResourceLoader getResourceLoader() { return this.resourceLoader; } @@ -136,6 +138,7 @@ public abstract class AbstractBeanDefinitionReader implements EnvironmentCapable this.beanClassLoader = beanClassLoader; } + @Override public ClassLoader getBeanClassLoader() { return this.beanClassLoader; } @@ -149,6 +152,7 @@ public abstract class AbstractBeanDefinitionReader implements EnvironmentCapable this.environment = environment; } + @Override public Environment getEnvironment() { return this.environment; } @@ -162,11 +166,13 @@ public abstract class AbstractBeanDefinitionReader implements EnvironmentCapable 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 abstract class AbstractBeanDefinitionReader implements EnvironmentCapable return counter; } + @Override public int loadBeanDefinitions(String location) throws BeanDefinitionStoreException { return loadBeanDefinitions(location, null); } @@ -236,6 +243,7 @@ public abstract class AbstractBeanDefinitionReader implements EnvironmentCapable } } + @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 8db728ae57..1d73ee4734 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 abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp // 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 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp // 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 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp } try { Object scopedInstance = scope.get(beanName, new ObjectFactory() { + @Override public Object getObject() throws BeansException { beforePrototypeCreation(beanName); try { @@ -364,6 +369,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp return (T) bean; } + @Override public boolean containsBean(String name) { String beanName = transformedBeanName(name); if (containsSingleton(beanName) || containsBeanDefinition(beanName)) { @@ -374,6 +380,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp return (parentBeanFactory != null && parentBeanFactory.containsBean(originalBeanName(name))); } + @Override public boolean isSingleton(String name) throws NoSuchBeanDefinitionException { String beanName = transformedBeanName(name); @@ -419,6 +426,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp } } + @Override public boolean isPrototype(String name) throws NoSuchBeanDefinitionException { String beanName = transformedBeanName(name); @@ -443,6 +451,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp 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 abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp } } + @Override public boolean isTypeMatch(String name, Class targetType) throws NoSuchBeanDefinitionException { String beanName = transformedBeanName(name); Class typeToMatch = (targetType != null ? targetType : Object.class); @@ -531,6 +541,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp } } + @Override public Class getType(String name) throws NoSuchBeanDefinitionException { String beanName = transformedBeanName(name); @@ -621,10 +632,12 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp // 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)) && @@ -636,6 +649,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp // 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); @@ -643,46 +657,57 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp 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); @@ -695,12 +720,14 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp 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); } @@ -712,6 +739,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp return this.customEditors; } + @Override public void setTypeConverter(TypeConverter typeConverter) { this.typeConverter = typeConverter; } @@ -724,6 +752,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp return this.typeConverter; } + @Override public TypeConverter getTypeConverter() { TypeConverter customConverter = getCustomTypeConverter(); if (customConverter != null) { @@ -738,11 +767,13 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp } } + @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) { @@ -751,6 +782,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp return result; } + @Override public void addBeanPostProcessor(BeanPostProcessor beanPostProcessor) { Assert.notNull(beanPostProcessor, "BeanPostProcessor must not be null"); this.beanPostProcessors.remove(beanPostProcessor); @@ -763,6 +795,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp } } + @Override public int getBeanPostProcessorCount() { return this.beanPostProcessors.size(); } @@ -795,6 +828,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp 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"); @@ -804,10 +838,12 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp 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); @@ -833,6 +869,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp AccessController.getContext()); } + @Override public void copyConfigurationFrom(ConfigurableBeanFactory otherFactory) { Assert.notNull(otherFactory, "BeanFactory must not be null"); setBeanClassLoader(otherFactory.getBeanClassLoader()); @@ -866,6 +903,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp * @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); @@ -877,6 +915,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp return getMergedLocalBeanDefinition(beanName); } + @Override public boolean isFactoryBean(String name) throws NoSuchBeanDefinitionException { String beanName = transformedBeanName(name); @@ -959,6 +998,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp } } + @Override public void destroyBean(String beanName, Object beanInstance) { destroyBean(beanName, beanInstance, getMergedLocalBeanDefinition(beanName)); } @@ -974,6 +1014,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp new DisposableBeanAdapter(beanInstance, beanName, mbd, getBeanPostProcessors(), getAccessControlContext()).destroy(); } + @Override public void destroyScopedBean(String beanName) { RootBeanDefinition mbd = getMergedLocalBeanDefinition(beanName); if (mbd.isSingleton() || mbd.isPrototype()) { @@ -1246,6 +1287,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp } 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 f8ffd5798b..140e11569c 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 @@ abstract class AutowireUtils { */ 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 @@ abstract class AutowireUtils { 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 330b699096..7de75a1be6 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 @@ class BeanDefinitionResource extends AbstractResource { 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 dc601c3bd4..8c802f09d2 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 class CglibSubclassingInstantiationStrategy extends SimpleInstantiationSt */ 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 class CglibSubclassingInstantiationStrategy extends SimpleInstantiationSt */ 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 class CglibSubclassingInstantiationStrategy extends SimpleInstantiationSt */ 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 b03ca67dcd..cbc43acfbe 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 class ChildBeanDefinition extends AbstractBeanDefinition { } + @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 161eae7e99..994c0d6e95 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 @@ class ConstructorResolver { 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 @@ class ConstructorResolver { 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 @@ class ConstructorResolver { 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 065c4e2163..79c213cbc3 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 @@ import org.springframework.beans.factory.config.BeanDefinition; */ 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 824caaaec5..cb2e9fe4df 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 @@ -215,6 +215,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto if (System.getSecurityManager() != null) { final BeanFactory target = this; AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { ((BeanFactoryAware) autowireCandidateResolver).setBeanFactory(target); return null; @@ -253,6 +254,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto // 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); @@ -285,10 +287,12 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto return this.beanDefinitionMap.containsKey(beanName); } + @Override public int getBeanDefinitionCount() { return this.beanDefinitionMap.size(); } + @Override public String[] getBeanDefinitionNames() { synchronized (this.beanDefinitionMap) { if (this.frozenBeanDefinitionNames != null) { @@ -300,10 +304,12 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto } } + @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); @@ -407,10 +413,12 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto 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 { @@ -441,6 +449,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto return result; } + @Override public Map getBeansWithAnnotation(Class annotationType) { Set beanNames = new LinkedHashSet(getBeanDefinitionCount()); beanNames.addAll(Arrays.asList(getBeanDefinitionNames())); @@ -460,6 +469,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto * 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); @@ -483,6 +493,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto // Implementation of ConfigurableListableBeanFactory interface //--------------------------------------------------------------------- + @Override public void registerResolvableDependency(Class dependencyType, Object autowiredValue) { Assert.notNull(dependencyType, "Type must not be null"); if (autowiredValue != null) { @@ -492,6 +503,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto } } + @Override public boolean isAutowireCandidate(String beanName, DependencyDescriptor descriptor) throws NoSuchBeanDefinitionException { @@ -552,6 +564,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto return bd; } + @Override public void freezeConfiguration() { this.configurationFrozen = true; synchronized (this.beanDefinitionMap) { @@ -559,6 +572,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto } } + @Override public boolean isConfigurationFrozen() { return this.configurationFrozen; } @@ -573,6 +587,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto return (this.configurationFrozen || super.isBeanEligibleForMetadataCaching(beanName)); } + @Override public void preInstantiateSingletons() throws BeansException { if (this.logger.isInfoEnabled()) { this.logger.info("Pre-instantiating singletons in " + this); @@ -591,6 +606,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto boolean isEagerInit; if (System.getSecurityManager() != null && factory instanceof SmartFactoryBean) { isEagerInit = AccessController.doPrivileged(new PrivilegedAction() { + @Override public Boolean run() { return ((SmartFactoryBean) factory).isEagerInit(); } @@ -616,6 +632,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto // Implementation of BeanDefinitionRegistry interface //--------------------------------------------------------------------- + @Override public void registerBeanDefinition(String beanName, BeanDefinition beanDefinition) throws BeanDefinitionStoreException { @@ -657,6 +674,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto resetBeanDefinition(beanName); } + @Override public void removeBeanDefinition(String beanName) throws NoSuchBeanDefinitionException { Assert.hasText(beanName, "'beanName' must not be empty"); @@ -717,6 +735,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto // Dependency resolution functionality //--------------------------------------------------------------------- + @Override public Object resolveDependency(DependencyDescriptor descriptor, String beanName, Set autowiredBeanNames, TypeConverter typeConverter) throws BeansException { @@ -1032,6 +1051,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto this.beanName = beanName; } + @Override public Object getObject() throws BeansException { return doResolveDependency(this.descriptor, this.descriptor.getDependencyType(), this.beanName, null, null); } @@ -1047,6 +1067,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto 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 cbf7c872ff..a087466cb4 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 @@ -117,6 +117,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) { @@ -163,6 +164,7 @@ public class DefaultSingletonBeanRegistry extends SimpleAliasRegistry implements } } + @Override public Object getSingleton(String beanName) { return getSingleton(beanName, true); } @@ -270,16 +272,19 @@ public class DefaultSingletonBeanRegistry extends SimpleAliasRegistry implements } } + @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 990438597f..e5186e4334 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 @@ -203,10 +203,12 @@ class DisposableBeanAdapter implements DisposableBean, Runnable, Serializable { } + @Override public void run() { destroy(); } + @Override public void destroy() { if (this.beanPostProcessors != null && !this.beanPostProcessors.isEmpty()) { for (DestructionAwareBeanPostProcessor processor : this.beanPostProcessors) { @@ -221,6 +223,7 @@ class DisposableBeanAdapter implements DisposableBean, Runnable, Serializable { try { if (System.getSecurityManager() != null) { AccessController.doPrivileged(new PrivilegedExceptionAction() { + @Override public Object run() throws Exception { ((DisposableBean) bean).destroy(); return null; @@ -258,6 +261,7 @@ class DisposableBeanAdapter implements DisposableBean, Runnable, Serializable { try { if (System.getSecurityManager() != null) { return AccessController.doPrivileged(new PrivilegedAction() { + @Override public Method run() { return findDestroyMethod(); } @@ -298,6 +302,7 @@ class DisposableBeanAdapter implements DisposableBean, Runnable, Serializable { try { if (System.getSecurityManager() != null) { AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { ReflectionUtils.makeAccessible(destroyMethod); return null; @@ -305,6 +310,7 @@ class DisposableBeanAdapter implements DisposableBean, Runnable, Serializable { }); 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 71a22243f7..286765a80d 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 @@ public abstract class FactoryBeanRegistrySupport extends DefaultSingletonBeanReg try { if (System.getSecurityManager() != null) { return AccessController.doPrivileged(new PrivilegedAction() { + @Override public Class run() { return factoryBean.getObjectType(); } @@ -129,6 +130,7 @@ public abstract class FactoryBeanRegistrySupport extends DefaultSingletonBeanReg 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 82fddd2106..5953236d6c 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 class GenericBeanDefinition extends AbstractBeanDefinition { } + @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 5c9aa55011..d01b649bca 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 class ManagedList extends ArrayList implements Mergeable, BeanMetad this.source = source; } + @Override public Object getSource() { return this.source; } @@ -83,10 +84,12 @@ public class ManagedList extends ArrayList implements Mergeable, BeanMetad 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 4529b71441..4646766596 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 class ManagedMap extends LinkedHashMap implements Mergeable, this.source = source; } + @Override public Object getSource() { return this.source; } @@ -98,10 +99,12 @@ public class ManagedMap extends LinkedHashMap implements Mergeable, 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 95b444721b..dadaac3e0c 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 class ManagedProperties extends Properties implements Mergeable, BeanMeta this.source = source; } + @Override public Object getSource() { return this.source; } @@ -57,11 +58,13 @@ public class ManagedProperties extends Properties implements Mergeable, BeanMeta 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 654cadc9fc..570963c17a 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 class ManagedSet extends LinkedHashSet implements Mergeable, BeanMe this.source = source; } + @Override public Object getSource() { return this.source; } @@ -82,10 +83,12 @@ public class ManagedSet extends LinkedHashSet implements Mergeable, BeanMe 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 ecc984a7ce..96f41279f2 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 abstract class MethodOverride implements BeanMetadataElement { 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 7b7822f0df..51e4209de4 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 class PropertiesBeanDefinitionReader extends AbstractBeanDefinitionReader * @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 7eaba17a54..d400b01cac 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 @@ -241,10 +241,12 @@ public class RootBeanDefinition extends AbstractBeanDefinition { } + @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 735def6654..8d23469022 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 8a42fc233e..b792c6cda8 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 class SimpleBeanDefinitionRegistry extends SimpleAliasRegistry implements 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 class SimpleBeanDefinitionRegistry extends SimpleAliasRegistry implements 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 b06904221f..4dd5a1a1ca 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 class SimpleInstantiationStrategy implements InstantiationStrategy { } + @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 class SimpleInstantiationStrategy implements InstantiationStrategy { 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 @@ public class SimpleInstantiationStrategy implements InstantiationStrategy { "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 class SimpleInstantiationStrategy implements InstantiationStrategy { 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 @@ public class SimpleInstantiationStrategy implements InstantiationStrategy { "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 edb954ae7f..15aed4c50d 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 class SimpleSecurityContextProvider implements SecurityContextProvider { } + @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 3e8784b181..f7a91be9e4 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 @@ -75,6 +75,7 @@ public class StaticListableBeanFactory implements ListableBeanFactory { // Implementation of BeanFactory interface //--------------------------------------------------------------------- + @Override public Object getBean(String name) throws BeansException { String beanName = BeanFactoryUtils.transformedBeanName(name); Object bean = this.beans.get(beanName); @@ -103,6 +104,7 @@ public class StaticListableBeanFactory implements ListableBeanFactory { } } + @Override @SuppressWarnings("unchecked") public T getBean(String name, Class requiredType) throws BeansException { Object bean = getBean(name); @@ -112,6 +114,7 @@ public class StaticListableBeanFactory implements ListableBeanFactory { return (T) bean; } + @Override public T getBean(Class requiredType) throws BeansException { String[] beanNames = getBeanNamesForType(requiredType); if (beanNames.length == 1) { @@ -122,6 +125,7 @@ public class StaticListableBeanFactory implements ListableBeanFactory { } } + @Override public Object getBean(String name, Object... args) throws BeansException { if (args != null) { throw new UnsupportedOperationException( @@ -130,16 +134,19 @@ public class StaticListableBeanFactory implements ListableBeanFactory { 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. @@ -147,11 +154,13 @@ public class StaticListableBeanFactory implements ListableBeanFactory { (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); @@ -168,6 +177,7 @@ public class StaticListableBeanFactory implements ListableBeanFactory { return bean.getClass(); } + @Override public String[] getAliases(String name) { return new String[0]; } @@ -177,22 +187,27 @@ public class StaticListableBeanFactory implements ListableBeanFactory { // 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(); @@ -215,10 +230,12 @@ public class StaticListableBeanFactory implements ListableBeanFactory { 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 { @@ -255,6 +272,7 @@ public class StaticListableBeanFactory implements ListableBeanFactory { return matches; } + @Override public Map getBeansWithAnnotation(Class annotationType) throws BeansException { @@ -267,6 +285,7 @@ public class StaticListableBeanFactory implements ListableBeanFactory { 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 e46145f296..3be2b8b2fb 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 @@ -72,6 +72,7 @@ public class BeanConfigurerSupport implements BeanFactoryAware, InitializingBean /** * Set the {@link BeanFactory} in which this aspect must configure beans. */ + @Override public void setBeanFactory(BeanFactory beanFactory) { if (!(beanFactory instanceof ConfigurableListableBeanFactory)) { throw new IllegalArgumentException( @@ -96,6 +97,7 @@ public class BeanConfigurerSupport implements BeanFactoryAware, InitializingBean /** * Check that a {@link BeanFactory} has been set. */ + @Override public void afterPropertiesSet() { Assert.notNull(this.beanFactory, "BeanFactory must be set"); } @@ -104,6 +106,7 @@ public class BeanConfigurerSupport implements BeanFactoryAware, InitializingBean * 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 4ba5a99d43..e4d13eb1e6 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 @@ import org.springframework.util.ClassUtils; */ 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 91c94990cc..38dba2c10e 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 d7fcfc9e4d..6f3386cb86 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 9900aa1651..81497416aa 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 @@ -91,6 +91,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; } @@ -102,6 +103,7 @@ public class DefaultBeanDefinitionDocumentReader implements BeanDefinitionDocume *

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; 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 d057cf7e51..e7910e0ea3 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 6699253594..fd7d64cc8c 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 class DefaultNamespaceHandlerResolver implements NamespaceHandlerResolver * @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 07bfe7afa9..c6f8daff90 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 class DelegatingEntityResolver implements EntityResolver { } + @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 874eeaf034..ba31c92aaa 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 class DocumentDefaultsDefinition implements DefaultsDefinition { 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 1ad13daf09..217773c986 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 @@ public abstract class NamespaceHandlerSupport implements NamespaceHandler { * 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 8c0d2e77a0..6cfefe7559 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 class PluggableSchemaResolver implements EntityResolver { 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 a7ca4fbd54..02aef0f045 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 27d861bcb8..e6716d2900 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 39676dc24d..4d33f236ce 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 16b58500bc..0021ed45b0 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 class XmlBeanDefinitionReader extends AbstractBeanDefinitionReader { * @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 2c64bf5252..4f59e4d30e 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 class MutableSortDefinition implements SortDefinition, Serializable { } } + @Override public String getProperty() { return this.property; } @@ -115,6 +116,7 @@ public class MutableSortDefinition implements SortDefinition, Serializable { this.ignoreCase = ignoreCase; } + @Override public boolean isIgnoreCase() { return this.ignoreCase; } @@ -126,6 +128,7 @@ public class MutableSortDefinition implements SortDefinition, Serializable { 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 afe74eac66..bbea12861a 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 class PropertyComparator implements Comparator { } + @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 3f4abc6568..2db246e47d 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 class ResourceEditorRegistrar implements PropertyEditorRegistrar { * @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-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 eb02a84e2a..fa28b2913c 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 class EhCacheCache implements Cache { } + @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 fc2ad00022..4088855bd3 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 @@ -296,11 +296,13 @@ public class EhCacheFactoryBean implements FactoryBean, BeanNameAware, this.disabled = disabled; } + @Override public void setBeanName(String name) { this.beanName = name; } + @Override public void afterPropertiesSet() throws CacheException, IOException { // If no CacheManager given, fetch the default. if (this.cacheManager == null) { @@ -393,6 +395,7 @@ public class EhCacheFactoryBean implements FactoryBean, BeanNameAware, } + @Override public Ehcache getObject() { return this.cache; } @@ -402,6 +405,7 @@ public class EhCacheFactoryBean implements FactoryBean, BeanNameAware, * {@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(); @@ -420,6 +424,7 @@ public class EhCacheFactoryBean implements FactoryBean, BeanNameAware, 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 8ae68321dc..a2d378c4b9 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 @@ -96,6 +96,7 @@ public class EhCacheManagerFactoryBean implements FactoryBean, Ini } + @Override public void afterPropertiesSet() throws IOException, CacheException { logger.info("Initializing EHCache CacheManager"); if (this.configLocation != null) { @@ -116,19 +117,23 @@ public class EhCacheManagerFactoryBean implements FactoryBean, Ini } + @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 d47e3dcb92..8b0a731c4e 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 class JCacheCache implements Cache { } + @Override public String getName() { return this.cache.getName(); } + @Override public javax.cache.Cache getNativeCache() { return this.cache; } @@ -76,22 +78,26 @@ public class JCacheCache implements Cache { 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 b43c1d75b8..0bf1c5cb6c 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 class JCacheManagerFactoryBean 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 class JCacheManagerFactoryBean } + @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 7b7ac52f97..abda2b7caf 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 class TransactionAwareCacheDecorator implements Cache { } + @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 class TransactionAwareCacheDecorator implements Cache { } } + @Override public void evict(final Object key) { if (TransactionSynchronizationManager.isSynchronizationActive()) { TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() { @@ -87,6 +92,7 @@ public class TransactionAwareCacheDecorator implements Cache { } } + @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 efcfd8f54c..2813c0d334 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 class TransactionAwareCacheManagerProxy implements CacheManager, Initiali this.targetCacheManager = targetCacheManager; } + @Override public void afterPropertiesSet() { if (this.targetCacheManager == null) { throw new IllegalStateException("'targetCacheManager' is required"); @@ -72,10 +73,12 @@ public class TransactionAwareCacheManagerProxy implements CacheManager, Initiali } + @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 7cc61122bb..65dc4d08ee 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 class SimpleMailMessage implements MailMessage, Serializable { } + @Override public void setFrom(String from) { this.from = from; } @@ -97,6 +98,7 @@ public class SimpleMailMessage implements MailMessage, Serializable { return this.from; } + @Override public void setReplyTo(String replyTo) { this.replyTo = replyTo; } @@ -105,10 +107,12 @@ public class SimpleMailMessage implements MailMessage, Serializable { 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 class SimpleMailMessage implements MailMessage, Serializable { 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 class SimpleMailMessage implements MailMessage, Serializable { 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 class SimpleMailMessage implements MailMessage, Serializable { return bcc; } + @Override public void setSentDate(Date sentDate) { this.sentDate = sentDate; } @@ -149,6 +158,7 @@ public class SimpleMailMessage implements MailMessage, Serializable { return sentDate; } + @Override public void setSubject(String subject) { this.subject = subject; } @@ -157,6 +167,7 @@ public class SimpleMailMessage implements MailMessage, Serializable { 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 ac683c5243..803e1f5be1 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 class ConfigurableMimeFileTypeMap extends FileTypeMap implements Initiali /** * 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 257b15b78e..3993d28ee0 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 class JavaMailSenderImpl implements JavaMailSender { // 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 class JavaMailSenderImpl implements JavaMailSender { * @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 class JavaMailSenderImpl implements JavaMailSender { } } + @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 242f0e5f27..c9f9e32cb9 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 class MimeMailMessage implements MailMessage { } + @Override public void setFrom(String from) throws MailParseException { try { this.helper.setFrom(from); @@ -82,6 +83,7 @@ public class MimeMailMessage implements MailMessage { } } + @Override public void setReplyTo(String replyTo) throws MailParseException { try { this.helper.setReplyTo(replyTo); @@ -91,6 +93,7 @@ public class MimeMailMessage implements MailMessage { } } + @Override public void setTo(String to) throws MailParseException { try { this.helper.setTo(to); @@ -100,6 +103,7 @@ public class MimeMailMessage implements MailMessage { } } + @Override public void setTo(String[] to) throws MailParseException { try { this.helper.setTo(to); @@ -109,6 +113,7 @@ public class MimeMailMessage implements MailMessage { } } + @Override public void setCc(String cc) throws MailParseException { try { this.helper.setCc(cc); @@ -118,6 +123,7 @@ public class MimeMailMessage implements MailMessage { } } + @Override public void setCc(String[] cc) throws MailParseException { try { this.helper.setCc(cc); @@ -127,6 +133,7 @@ public class MimeMailMessage implements MailMessage { } } + @Override public void setBcc(String bcc) throws MailParseException { try { this.helper.setBcc(bcc); @@ -136,6 +143,7 @@ public class MimeMailMessage implements MailMessage { } } + @Override public void setBcc(String[] bcc) throws MailParseException { try { this.helper.setBcc(bcc); @@ -145,6 +153,7 @@ public class MimeMailMessage implements MailMessage { } } + @Override public void setSentDate(Date sentDate) throws MailParseException { try { this.helper.setSentDate(sentDate); @@ -154,6 +163,7 @@ public class MimeMailMessage implements MailMessage { } } + @Override public void setSubject(String subject) throws MailParseException { try { this.helper.setSubject(subject); @@ -163,6 +173,7 @@ public class MimeMailMessage implements MailMessage { } } + @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 47a115e980..245fb23c78 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 @@ -1082,15 +1082,19 @@ public class MimeMessageHelper { 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 853ea465f2..5e08cd6abd 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 class DelegatingTimerListener implements TimerListener { /** * 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 6566dc7892..a6657fdc98 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 class DelegatingWork implements Work { /** * Delegates execution to the underlying Runnable. */ + @Override public void run() { this.delegate.run(); } @@ -66,6 +67,7 @@ public class DelegatingWork implements Work { * {@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 class DelegatingWork implements Work { * 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 8167f6a709..728350db8e 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 abstract class TimerManagerAccessor extends JndiLocatorSupport } + @Override public void afterPropertiesSet() throws NamingException { if (this.timerManager == null) { if (this.timerManagerName == null) { @@ -117,6 +118,7 @@ public abstract class TimerManagerAccessor extends JndiLocatorSupport * 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 abstract class TimerManagerAccessor extends JndiLocatorSupport * 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 abstract class TimerManagerAccessor extends JndiLocatorSupport * @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 abstract class TimerManagerAccessor extends JndiLocatorSupport * 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 e46cbdba70..1f4c3251d6 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 class TimerManagerFactoryBean extends TimerManagerAccessor // Implementation of InitializingBean interface //--------------------------------------------------------------------- + @Override public void afterPropertiesSet() throws NamingException { super.afterPropertiesSet(); if (this.scheduledTimerListeners != null) { @@ -105,15 +106,18 @@ public class TimerManagerFactoryBean extends TimerManagerAccessor // 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 76714ce5f2..3801e703c0 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 class TimerManagerTaskScheduler extends TimerManagerAccessor implements T } + @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 class TimerManagerTaskScheduler extends TimerManagerAccessor implements T 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 class TimerManagerTaskScheduler extends TimerManagerAccessor implements T 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 class TimerManagerTaskScheduler extends TimerManagerAccessor implements T 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 class TimerManagerTaskScheduler extends TimerManagerAccessor implements T 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 class TimerManagerTaskScheduler extends TimerManagerAccessor implements T this.timer = timer; } + @Override public void timerExpired(Timer timer) { runAndReset(); } @@ -125,10 +132,12 @@ public class TimerManagerTaskScheduler extends TimerManagerAccessor implements T 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 4d1518dfa9..2c9ce17a49 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 class WorkManagerTaskExecutor extends JndiLocatorSupport this.workListener = workListener; } + @Override public void afterPropertiesSet() throws NamingException { if (this.workManager == null) { if (this.workManagerName == null) { @@ -123,6 +124,7 @@ public class WorkManagerTaskExecutor extends JndiLocatorSupport // 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 class WorkManagerTaskExecutor extends JndiLocatorSupport } } + @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 class WorkManagerTaskExecutor extends JndiLocatorSupport /** * This task executor prefers short-lived work units. */ + @Override public boolean prefersShortLivedTasks() { return true; } @@ -170,24 +176,28 @@ public class WorkManagerTaskExecutor extends JndiLocatorSupport // 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 aa40358ca9..931c560749 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 class AdaptableJobFactory implements JobFactory { /** * 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 c5e1c070b8..00988a7749 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 class CronTriggerBean extends CronTrigger 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 101c3fdf04..66741456fd 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 class CronTriggerFactoryBean implements FactoryBean, BeanNam 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 @@ public class CronTriggerFactoryBean implements FactoryBean, BeanNam } + @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 bcec0e566a..942f40b39a 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 class DelegatingJob implements Job { /** * 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 0a53406577..43998ffcdb 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 class JobDetailBean extends JobDetail } } + @Override public void setBeanName(String beanName) { this.beanName = beanName; } + @Override public void setApplicationContext(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } @@ -144,6 +146,7 @@ public class JobDetailBean extends JobDetail } + @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 81d370646a..8f177da433 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 class JobDetailFactoryBean 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 class JobDetailFactoryBean } + @Override public void afterPropertiesSet() { if (this.name == null) { this.name = this.beanName; @@ -215,14 +218,17 @@ public class JobDetailFactoryBean } + @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 c9664b28f8..1c0939a006 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 class LocalDataSourceJobStore extends JobStoreCMT { 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 class LocalDataSourceJobStore extends JobStoreCMT { 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 6e5189e3b0..9614f1d1a4 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 @@ -47,6 +47,7 @@ public class LocalTaskExecutorThreadPool implements ThreadPool { } + @Override public void initialize() throws SchedulerConfigException { // Absolutely needs thread-bound TaskExecutor to initialize. this.taskExecutor = SchedulerFactoryBean.getConfigTimeTaskExecutor(); @@ -57,14 +58,17 @@ public class LocalTaskExecutorThreadPool implements ThreadPool { } } + @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 +83,7 @@ public class LocalTaskExecutorThreadPool implements ThreadPool { } } + @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 80ce225457..5d6a8a867d 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 class MethodInvokingJobDetailFactoryBean extends ArgumentConvertingMethod 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 @@ public class MethodInvokingJobDetailFactoryBean extends ArgumentConvertingMethod } + @Override public void afterPropertiesSet() throws ClassNotFoundException, NoSuchMethodException { prepare(); @@ -272,14 +276,17 @@ public class MethodInvokingJobDetailFactoryBean extends ArgumentConvertingMethod } + @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 b2d61536da..bdeb1e749a 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 @@ -95,6 +95,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 5eba86a105..54dd55760b 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 class ResourceLoaderClassLoadHelper implements ClassLoadHelper { } + @Override public void initialize() { if (this.resourceLoader == null) { this.resourceLoader = SchedulerFactoryBean.getConfigTimeResourceLoader(); @@ -71,6 +72,7 @@ public class ResourceLoaderClassLoadHelper implements ClassLoadHelper { } } + @Override public Class loadClass(String name) throws ClassNotFoundException { return this.resourceLoader.getClassLoader().loadClass(name); } @@ -80,6 +82,7 @@ public class ResourceLoaderClassLoadHelper implements ClassLoadHelper { return loadClass(name); } + @Override public URL getResource(String name) { Resource resource = this.resourceLoader.getResource(name); try { @@ -94,6 +97,7 @@ public class ResourceLoaderClassLoadHelper implements ClassLoadHelper { } } + @Override public InputStream getResourceAsStream(String name) { Resource resource = this.resourceLoader.getResource(name); try { @@ -108,6 +112,7 @@ public class ResourceLoaderClassLoadHelper implements ClassLoadHelper { } } + @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 9c65590231..020c3f141c 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 @@ -238,6 +238,7 @@ public abstract class SchedulerAccessor implements ResourceLoaderAware { 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 9c69a47c00..edf2941060 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 class SchedulerAccessorBean extends SchedulerAccessor implements BeanFact 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 84db22173a..cb266ad6a3 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 class SchedulerFactoryBean extends SchedulerAccessor implements FactoryBe * 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 class SchedulerFactoryBean extends SchedulerAccessor implements FactoryBe /** * Return the phase in which this scheduler will be started and stopped. */ + @Override public int getPhase() { return this.phase; } @@ -426,12 +428,14 @@ public class SchedulerFactoryBean extends SchedulerAccessor implements FactoryBe } + @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 class SchedulerFactoryBean extends SchedulerAccessor implements FactoryBe // 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 class SchedulerFactoryBean extends SchedulerAccessor implements FactoryBe 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 class SchedulerFactoryBean extends SchedulerAccessor implements FactoryBe // Implementation of Lifecycle interface //--------------------------------------------------------------------- + @Override public void start() throws SchedulingException { if (this.scheduler != null) { try { @@ -717,6 +726,7 @@ public class SchedulerFactoryBean extends SchedulerAccessor implements FactoryBe } } + @Override public void stop() throws SchedulingException { if (this.scheduler != null) { try { @@ -728,11 +738,13 @@ public class SchedulerFactoryBean extends SchedulerAccessor implements FactoryBe } } + @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 class SchedulerFactoryBean extends SchedulerAccessor implements FactoryBe * 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 de51892481..e87c4c173e 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 class SimpleThreadPoolTaskExecutor extends SimpleThreadPool 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 class SimpleThreadPoolTaskExecutor extends SimpleThreadPool } } + @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 class SimpleThreadPoolTaskExecutor extends SimpleThreadPool /** * 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 b35bb59ad9..37f480e3e4 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 class SimpleTriggerBean extends SimpleTrigger 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 15d1e901ab..31896c7ff4 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 class SimpleTriggerFactoryBean implements FactoryBean, Bea 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 @@ public class SimpleTriggerFactoryBean implements FactoryBean, Bea } + @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 a9d837e7da..6ffed1af47 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 class SpringBeanJobFactory extends AdaptableJobFactory implements Schedul 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 cf1652b5b6..6536778dfa 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 7ed965ddb5..f157080704 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 class SpringTemplateLoader implements 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 class SpringTemplateLoader implements TemplateLoader { 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 class SpringTemplateLoader implements TemplateLoader { } + @Override public long getLastModified(Object templateSource) { Resource resource = (Resource) templateSource; try { @@ -99,6 +102,7 @@ public class SpringTemplateLoader implements TemplateLoader { } } + @Override public void closeTemplateSource(Object templateSource) throws IOException { } diff --git a/spring-context-support/src/main/java/org/springframework/ui/velocity/CommonsLoggingLogSystem.java b/spring-context-support/src/main/java/org/springframework/ui/velocity/CommonsLoggingLogSystem.java index 160516db63..454ef1adbb 100644 --- a/spring-context-support/src/main/java/org/springframework/ui/velocity/CommonsLoggingLogSystem.java +++ b/spring-context-support/src/main/java/org/springframework/ui/velocity/CommonsLoggingLogSystem.java @@ -40,9 +40,11 @@ public class CommonsLoggingLogSystem implements LogSystem { private static final Log logger = LogFactory.getLog(VelocityEngine.class); + @Override public void init(RuntimeServices runtimeServices) { } + @Override public void logVelocityMessage(int type, String msg) { switch (type) { case ERROR_ID: 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 8d25492aa6..6552690d78 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 4937eeb5e3..222d3308f4 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 33c4a120a7..b4fb7e5c83 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 54b9b6ef14..7780357153 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 class ConcurrentMapCache implements Cache { } + @Override public String getName() { return this.name; } + @Override public ConcurrentMap getNativeCache() { return this.store; } @@ -95,19 +97,23 @@ public class ConcurrentMapCache implements Cache { 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 26b242310b..e36426f54f 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 class ConcurrentMapCacheFactoryBean 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 7a0067a329..35371d92d4 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 class ConcurrentMapCacheManager implements CacheManager { } } + @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 5cae8fdff4..7a6ecc9d1a 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 40100245f3..be44366e17 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 @@ public class CacheNamespaceHandler extends NamespaceHandlerSupport { 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 978dbd8c36..11dc537f03 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 a8d4a51e7b..55a746f44f 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 class BeanFactoryCacheOperationSourceAdvisor extends AbstractBeanFactoryP 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 7c62a21af7..3ebe8e0606 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 @@ -128,6 +128,7 @@ public abstract class CacheAspectSupport implements InitializingBean { 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 9358a5b07c..7cea0341a6 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 @@ public class CacheInterceptor extends CacheAspectSupport implements MethodInterc } } + @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 8210297a23..58548bb799 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 @@ import org.springframework.util.ObjectUtils; @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 a604ba266a..6f4438b32c 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 class CompositeCacheOperationSource implements CacheOperationSource, Seri 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 cb0dcc95d8..a12b04a0c4 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 69f22ec49f..3137501a89 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 class NameMatchCacheOperationSource implements CacheOperationSource, Seri 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 5d301d85f4..8d0f00bbf1 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 @@ -43,6 +43,7 @@ public abstract class AbstractCacheManager implements CacheManager, Initializing private Set cacheNames = new LinkedHashSet(16); + @Override public void afterPropertiesSet() { Collection caches = loadCaches(); Assert.notEmpty(caches, "loadCaches must not return an empty Collection"); @@ -71,10 +72,12 @@ public abstract class AbstractCacheManager implements CacheManager, Initializing } + @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 ab5b96d867..4434909fc2 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 class CompositeCacheManager implements InitializingBean, CacheManager { this.fallbackToNoOpCache = fallbackToNoOpCache; } + @Override public void afterPropertiesSet() { if (this.fallbackToNoOpCache) { this.cacheManagers.add(new NoOpCacheManager()); @@ -66,6 +67,7 @@ public class CompositeCacheManager implements InitializingBean, CacheManager { } + @Override public Cache getCache(String name) { for (CacheManager cacheManager : this.cacheManagers) { Cache cache = cacheManager.getCache(name); @@ -76,6 +78,7 @@ public class CompositeCacheManager implements InitializingBean, CacheManager { 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 dc3203e6cf..f8ffe0e729 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 class NoOpCacheManager implements CacheManager { /** * 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 class NoOpCacheManager implements CacheManager { 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 3b687a86de..b248902038 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 class SimpleValueWrapper implements ValueWrapper { /** * 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 9d0bdc4b7c..09048cbe1f 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 b39ae88590..f978a3db42 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 class ContextBeanFactoryReference implements BeanFactoryReference { } + @Override public BeanFactory getFactory() { if (this.applicationContext == null) { throw new IllegalStateException( @@ -56,6 +57,7 @@ public class ContextBeanFactoryReference implements BeanFactoryReference { 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 54b66347ad..fe9493824b 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 eae51ec251..826214448b 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 @@ public abstract class AdviceModeImportSelector implements * 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 c09600998c..00d2f9810d 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 c25b536f93..e386246b53 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 @@ import org.springframework.beans.factory.xml.ParserContext; */ 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 f678425ea8..79556e6aff 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 @@ -73,6 +73,7 @@ public class AnnotationScopeMetadataResolver implements ScopeMetadataResolver { } + @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 aedbbbe28e..5b3c522d8f 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 5fcd8a572d..e0fde7df8f 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 6dacb49d60..5e1dd4b18a 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 class ClassPathScanningCandidateComponentProvider implements EnvironmentC * @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 class ClassPathScanningCandidateComponentProvider implements EnvironmentC 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 a105e147f7..e381c9ce71 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 @@ -269,6 +269,7 @@ public class CommonAnnotationBeanPostProcessor extends InitDestroyAnnotationBean this.resourceFactory = resourceFactory; } + @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { Assert.notNull(beanFactory, "BeanFactory must not be null"); this.beanFactory = beanFactory; @@ -287,14 +288,17 @@ public class CommonAnnotationBeanPostProcessor extends InitDestroyAnnotationBean } } + @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 f7b5677635..bf2db85ed9 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/ConfigurationClassBeanDefinitionReader.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java index e41aca1728..b30a04694e 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 @@ -318,6 +318,7 @@ class ConfigurationClassBeanDefinitionReader { 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 99678159d3..f75157fc16 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 @@ -56,6 +56,7 @@ class ConfigurationClassEnhancer { DisposableBeanMethodInterceptor.class, NoOp.class }; private static final CallbackFilter CALLBACK_FILTER = new CallbackFilter() { + @Override public int accept(Method candidateMethod) { // Set up the callback filter to return the index of the BeanMethodInterceptor when // handling a @Bean-annotated method; otherwise, return index of the NoOp callback. @@ -168,6 +169,7 @@ class ConfigurationClassEnhancer { this.beanName = beanName; } + @Override public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { return beanFactory.getBean(beanName); } @@ -183,6 +185,7 @@ class ConfigurationClassEnhancer { */ private static class DisposableBeanMethodInterceptor implements MethodInterceptor { + @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? @@ -213,6 +216,7 @@ class ConfigurationClassEnhancer { GetObjectMethodInterceptor.class, NoOp.class }; private static final CallbackFilter CALLBACK_FITLER = new CallbackFilter() { + @Override public int accept(Method method) { return method.getName().equals("getObject") ? 0 : 1; } @@ -234,6 +238,7 @@ class ConfigurationClassEnhancer { * 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 { 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 2901e5cea0..7bb0e7f1f3 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 @@ -413,6 +413,7 @@ class ConfigurationClassParser { this.imports.put(importedClass, importingClass); } + @Override public String getImportingClassFor(String importedClass) { return this.imports.get(importedClass); } @@ -426,6 +427,7 @@ class ConfigurationClassParser { 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 7afbc02733..ab10dfda19 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 @@ -183,16 +183,19 @@ public class ConfigurationClassPostProcessor implements BeanDefinitionRegistryPo 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) { @@ -204,6 +207,7 @@ public class ConfigurationClassPostProcessor implements BeanDefinitionRegistryPo /** * 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); @@ -227,6 +231,7 @@ public class ConfigurationClassPostProcessor implements BeanDefinitionRegistryPo * 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)) { @@ -373,10 +378,12 @@ public class ConfigurationClassPostProcessor implements BeanDefinitionRegistryPo 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); @@ -399,10 +406,12 @@ public class ConfigurationClassPostProcessor implements BeanDefinitionRegistryPo 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 8549d97f8e..072951d075 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 @@ public class Jsr330ScopeMetadataResolver implements ScopeMetadataResolver { } + @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 d81821b703..26cd32ab49 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 class LoadTimeWeavingConfiguration implements ImportAware, BeanClassLoade 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 f9d38ecefd..d2f0bb2b5b 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 class MBeanExportConfiguration implements ImportAware, BeanFactoryAware { "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/ScannedGenericBeanDefinition.java b/spring-context/src/main/java/org/springframework/context/annotation/ScannedGenericBeanDefinition.java index b5afe9f6de..7ed9bed6fe 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 class ScannedGenericBeanDefinition extends GenericBeanDefinition implemen } + @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 1a758b60a9..f85d09d0ab 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 @@ import org.springframework.context.annotation.ComponentScanBeanDefinitionParser; */ 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 98e3c3a025..322d8e6289 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 055b5e59db..35a3ed3288 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 abstract class AbstractApplicationEventMulticaster implements Application } } + @Override public void addApplicationListenerBean(String listenerBeanName) { synchronized (this.defaultRetriever) { this.defaultRetriever.applicationListenerBeans.add(listenerBeanName); @@ -72,6 +74,7 @@ public abstract class AbstractApplicationEventMulticaster implements Application } } + @Override public void removeApplicationListener(ApplicationListener listener) { synchronized (this.defaultRetriever) { this.defaultRetriever.applicationListeners.remove(listener); @@ -79,6 +82,7 @@ public abstract class AbstractApplicationEventMulticaster implements Application } } + @Override public void removeApplicationListenerBean(String listenerBeanName) { synchronized (this.defaultRetriever) { this.defaultRetriever.applicationListenerBeans.remove(listenerBeanName); @@ -86,6 +90,7 @@ public abstract class AbstractApplicationEventMulticaster implements Application } } + @Override public void removeAllListeners() { synchronized (this.defaultRetriever) { this.defaultRetriever.applicationListeners.clear(); @@ -94,6 +99,7 @@ public abstract class AbstractApplicationEventMulticaster implements Application } } + @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 ef32c7b6f7..0ff440e34c 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 class EventPublicationInterceptor } } + @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 class EventPublicationInterceptor } + @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 5866212e87..26fd7dcc58 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 class GenericApplicationListenerAdapter implements SmartApplicationListen } + @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 class GenericApplicationListenerAdapter implements SmartApplicationListen 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 2e13855d4a..ebbdae71dc 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 @@ public class SimpleApplicationEventMulticaster extends AbstractApplicationEventM } + @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 @SuppressWarnings("unchecked") 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 a9326c5b16..ff1f4bb2d1 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 @@ public class SourceFilteringListener implements SmartApplicationListener { } + @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 e81c929e81..167a8f8e10 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 @@ import org.springframework.expression.TypedValue; */ 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 486ded925f..0aa3414679 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 @@ import org.springframework.expression.TypedValue; */ 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 ff4aaaa78d..0c09e42113 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 class BeanFactoryResolver implements BeanResolver { 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 d041610a5e..3995136a7c 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 @@ import org.springframework.expression.TypedValue; */ public class EnvironmentAccessor implements PropertyAccessor { + @Override public Class[] getSpecificTargetClasses() { return new Class[] { Environment.class }; } @@ -39,6 +40,7 @@ public class EnvironmentAccessor implements PropertyAccessor { * 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 class EnvironmentAccessor implements PropertyAccessor { * 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 class EnvironmentAccessor implements PropertyAccessor { * Read only. * @return false */ + @Override public boolean canWrite(EvaluationContext context, Object target, String name) throws AccessException { return false; } @@ -62,6 +66,7 @@ public class EnvironmentAccessor implements PropertyAccessor { /** * 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 155fefbbc1..7f4de09daf 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 @@ import org.springframework.expression.TypedValue; */ 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 class MapAccessor implements PropertyAccessor { 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 fff09d2da4..b2cecd883e 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 class StandardBeanExpressionResolver implements BeanExpressionResolver { } + @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 d3848ebe0a..de1246bf0b 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 class SimpleLocaleContext implements LocaleContext { 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 6bfc380aa5..8a9001cb00 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 abstract class AbstractApplicationContext extends DefaultResourceLoader * 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 abstract class AbstractApplicationContext extends DefaultResourceLoader * 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 abstract class AbstractApplicationContext extends DefaultResourceLoader * 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 abstract class AbstractApplicationContext extends DefaultResourceLoader *

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 abstract class AbstractApplicationContext extends DefaultResourceLoader * 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 abstract class AbstractApplicationContext extends DefaultResourceLoader * if already available. * @see #getBeanFactory() */ + @Override public AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException { return getBeanFactory(); } @@ -314,6 +322,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader /** * Return the timestamp (ms) when this context was first loaded. */ + @Override public long getStartupDate() { return this.startupDate; } @@ -326,6 +335,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader * @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 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader * 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 abstract class AbstractApplicationContext extends DefaultResourceLoader } } + @Override public void addBeanFactoryPostProcessor(BeanFactoryPostProcessor beanFactoryPostProcessor) { this.beanFactoryPostProcessors.add(beanFactoryPostProcessor); } @@ -417,6 +429,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader return this.beanFactoryPostProcessors; } + @Override public void addApplicationListener(ApplicationListener listener) { if (this.applicationEventMulticaster != null) { this.applicationEventMulticaster.addApplicationListener(listener); @@ -442,6 +455,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader return new StandardEnvironment(); } + @Override public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // Prepare this context for refreshing. @@ -971,6 +985,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader * @see #close() * @see #doClose() */ + @Override public void registerShutdownHook() { if (this.shutdownHook == null) { // No shutdown hook registered yet. @@ -994,6 +1009,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader * @see #close() * @see org.springframework.beans.factory.access.SingletonBeanFactoryLocator */ + @Override public void destroy() { close(); } @@ -1005,6 +1021,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader * @see #doClose() * @see #registerShutdownHook() */ + @Override public void close() { synchronized (this.startupShutdownMonitor) { doClose(); @@ -1102,6 +1119,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader // For subclasses: do nothing by default. } + @Override public boolean isActive() { synchronized (this.activeMonitor) { return this.active; @@ -1113,42 +1131,52 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader // Implementation of BeanFactory interface //--------------------------------------------------------------------- + @Override public Object getBean(String name) throws BeansException { return getBeanFactory().getBean(name); } + @Override public T getBean(String name, Class requiredType) throws BeansException { return getBeanFactory().getBean(name, requiredType); } + @Override public T getBean(Class requiredType) throws BeansException { return getBeanFactory().getBean(requiredType); } + @Override public Object getBean(String name, Object... args) throws BeansException { return getBeanFactory().getBean(name, args); } + @Override public boolean containsBean(String name) { return getBeanFactory().containsBean(name); } + @Override public boolean isSingleton(String name) throws NoSuchBeanDefinitionException { return getBeanFactory().isSingleton(name); } + @Override public boolean isPrototype(String name) throws NoSuchBeanDefinitionException { return getBeanFactory().isPrototype(name); } + @Override public boolean isTypeMatch(String name, Class targetType) throws NoSuchBeanDefinitionException { return getBeanFactory().isTypeMatch(name, targetType); } + @Override public Class getType(String name) throws NoSuchBeanDefinitionException { return getBeanFactory().getType(name); } + @Override public String[] getAliases(String name) { return getBeanFactory().getAliases(name); } @@ -1158,42 +1186,51 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader // 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) { return getBeanFactory().getBeanNamesForType(type); } + @Override public String[] getBeanNamesForType(Class type, boolean includeNonSingletons, boolean allowEagerInit) { return getBeanFactory().getBeanNamesForType(type, includeNonSingletons, allowEagerInit); } + @Override public Map getBeansOfType(Class type) throws BeansException { return getBeanFactory().getBeansOfType(type); } + @Override public Map getBeansOfType(Class type, boolean includeNonSingletons, boolean allowEagerInit) throws BeansException { return getBeanFactory().getBeansOfType(type, includeNonSingletons, allowEagerInit); } + @Override public Map getBeansWithAnnotation(Class annotationType) throws BeansException { return getBeanFactory().getBeansWithAnnotation(annotationType); } + @Override public A findAnnotationOnBean(String beanName, Class annotationType) { return getBeanFactory().findAnnotationOnBean(beanName, annotationType); } @@ -1203,10 +1240,12 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader // Implementation of HierarchicalBeanFactory interface //--------------------------------------------------------------------- + @Override public BeanFactory getParentBeanFactory() { return getParent(); } + @Override public boolean containsLocalBean(String name) { return getBeanFactory().containsLocalBean(name); } @@ -1226,14 +1265,17 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader // 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); } @@ -1265,6 +1307,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader // Implementation of ResourcePatternResolver interface //--------------------------------------------------------------------- + @Override public Resource[] getResources(String locationPattern) throws IOException { return this.resourcePatternResolver.getResources(locationPattern); } @@ -1274,16 +1317,19 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader // 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(); } @@ -1325,6 +1371,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader * @see #refreshBeanFactory() * @see #closeBeanFactory() */ + @Override public abstract ConfigurableListableBeanFactory getBeanFactory() throws IllegalStateException; @@ -1363,10 +1410,12 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader 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) { @@ -1389,16 +1438,19 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader 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 768c963d3b..87209ec95a 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 @@ -67,10 +67,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; } @@ -109,6 +111,7 @@ public abstract class AbstractMessageSource extends MessageSourceSupport impleme } + @Override public final String getMessage(String code, Object[] args, String defaultMessage, Locale locale) { String msg = getMessageInternal(code, args, locale); if (msg != null) { @@ -123,6 +126,7 @@ public abstract class AbstractMessageSource extends MessageSourceSupport impleme 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) { @@ -135,6 +139,7 @@ public abstract class AbstractMessageSource extends MessageSourceSupport impleme 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 138f45526c..3004d68c22 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 abstract class AbstractRefreshableConfigApplicationContext extends Abstra * 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 abstract class AbstractRefreshableConfigApplicationContext extends Abstra * 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 e88b26799c..2a521b3b64 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 @@ class ApplicationContextAwareProcessor implements BeanPostProcessor { } + @Override public Object postProcessBeforeInitialization(final Object bean, String beanName) throws BeansException { AccessControlContext acc = null; @@ -82,6 +83,7 @@ class ApplicationContextAwareProcessor implements BeanPostProcessor { if (acc != null) { AccessController.doPrivileged(new PrivilegedAction() { + @Override public Object run() { invokeAwareInterfaces(bean); return null; @@ -119,6 +121,7 @@ class ApplicationContextAwareProcessor implements BeanPostProcessor { } } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) { return bean; } @@ -132,6 +135,7 @@ class ApplicationContextAwareProcessor implements BeanPostProcessor { 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 ebee90cc03..e3bb18e49c 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 f81020673d..9cdff9d621 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 @@ class ContextTypeMatchClassLoader extends DecoratingClassLoader implements Smart 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 95b40263ed..5cf2e81746 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 class ConversionServiceFactoryBean implements FactoryBean 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 025f4cfb96..a443d13b8b 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 class DefaultLifecycleProcessor implements LifecycleProcessor, BeanFactor this.timeoutPerShutdownPhase = timeoutPerShutdownPhase; } + @Override public void setBeanFactory(BeanFactory beanFactory) { Assert.isInstanceOf(ConfigurableListableBeanFactory.class, beanFactory); this.beanFactory = (ConfigurableListableBeanFactory) beanFactory; @@ -85,6 +86,7 @@ public class DefaultLifecycleProcessor implements LifecycleProcessor, BeanFactor * 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 class DefaultLifecycleProcessor implements LifecycleProcessor, BeanFactor * 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 @@ public class DefaultLifecycleProcessor implements LifecycleProcessor, BeanFactor } countDownBeanNames.add(beanName); ((SmartLifecycle) bean).stop(new Runnable() { + @Override public void run() { latch.countDown(); countDownBeanNames.remove(beanName); @@ -389,6 +396,7 @@ public class DefaultLifecycleProcessor implements LifecycleProcessor, BeanFactor 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 e668c4e736..e688b5009d 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 class DefaultMessageSourceResolvable implements MessageSourceResolvable, } + @Override public String[] getCodes() { return this.codes; } @@ -108,10 +109,12 @@ public class DefaultMessageSourceResolvable implements MessageSourceResolvable, 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 c42e38d5ea..7ca94b6400 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 class DelegatingMessageSource extends MessageSourceSupport implements Hie } } + @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 class DelegatingMessageSource extends MessageSourceSupport implements Hie } } + @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 7c3d8bcc11..01f175abe3 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 class GenericApplicationContext extends AbstractApplicationContext implem // 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 7cdfb8d492..bf20ae1017 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 @@ public class LiveBeansView implements LiveBeansViewMBean, ApplicationContextAwar private ConfigurableApplicationContext applicationContext; + @Override public void setApplicationContext(ApplicationContext applicationContext) { Assert.isTrue(applicationContext instanceof ConfigurableApplicationContext, "ApplicationContext does not implement ConfigurableApplicationContext"); @@ -105,6 +106,7 @@ public class LiveBeansView implements LiveBeansViewMBean, ApplicationContextAwar * 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 c831bbb855..d39c7d3d5b 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 @@ -98,6 +98,7 @@ public class PropertySourcesPlaceholderConfigurer extends PlaceholderConfigurerS * @see #setPropertySources * @see #postProcessBeanFactory */ + @Override public void setEnvironment(Environment environment) { this.environment = environment; } @@ -163,6 +164,7 @@ public class PropertySourcesPlaceholderConfigurer extends PlaceholderConfigurerS 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 e428c760b9..14b831c098 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 class ReloadableResourceBundleMessageSource extends AbstractMessageSource * @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 eeca86a108..b11f8b2649 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 @@ -223,6 +223,7 @@ public class ResourceBundleMessageSource extends AbstractMessageSource implement return (this.bundleClassLoader != null ? this.bundleClassLoader : this.beanClassLoader); } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = (classLoader != null ? classLoader : ClassUtils.getDefaultClassLoader()); } @@ -431,6 +432,7 @@ public class ResourceBundleMessageSource extends AbstractMessageSource implement 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 30aad8a078..0feb05443e 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 @@ public class SimpleThreadScope implements Scope { } }; + @Override public Object get(String name, ObjectFactory objectFactory) { Map scope = threadScope.get(); Object object = scope.get(name); @@ -65,20 +66,24 @@ public class SimpleThreadScope implements Scope { 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 e659b94179..069509d259 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 @@ -50,18 +50,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); } @@ -95,6 +99,7 @@ public class AspectJWeavingEnabler 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 b93c8b2df5..93f82eefae 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 @@ -70,6 +70,7 @@ public class DefaultContextLoadTimeWeaver implements LoadTimeWeaver, BeanClassLo setBeanClassLoader(beanClassLoader); } + @Override public void setBeanClassLoader(ClassLoader classLoader) { LoadTimeWeaver serverSpecificLoadTimeWeaver = createServerSpecificLoadTimeWeaver(classLoader); if (serverSpecificLoadTimeWeaver != null) { @@ -130,6 +131,7 @@ public class DefaultContextLoadTimeWeaver implements LoadTimeWeaver, BeanClassLo return null; } + @Override public void destroy() { if (this.loadTimeWeaver instanceof InstrumentationLoadTimeWeaver) { logger.info("Removing all registered transformers for class loader: " + @@ -139,14 +141,17 @@ public class DefaultContextLoadTimeWeaver implements LoadTimeWeaver, BeanClassLo } + @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 d2c704f1a5..7509b8beff 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 class LoadTimeWeaverAwareProcessor implements BeanPostProcessor, BeanFact } + @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 class LoadTimeWeaverAwareProcessor implements BeanPostProcessor, BeanFact 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 8a12977c8a..77e88a8c42 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 @@ public abstract class AbstractSlsbInvokerInterceptor extends JndiObjectLocator * 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 c824d4c917..ca4d245ff4 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 LocalStatelessSessionProxyFactoryBean extends LocalSlsbInvokerInter return this.businessInterface; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -91,14 +92,17 @@ public class LocalStatelessSessionProxyFactoryBean extends LocalSlsbInvokerInter } + @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 ce39ce9a6c..89bc055415 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 @@ public class SimpleRemoteSlsbInvokerInterceptor extends AbstractRemoteSlsbInvoke /** * 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 de6a45b1fe..ff40f71ba4 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 SimpleRemoteStatelessSessionProxyFactoryBean extends SimpleRemoteSl return this.businessInterface; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -105,14 +106,17 @@ public class SimpleRemoteStatelessSessionProxyFactoryBean extends SimpleRemoteSl } + @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 2e106d8ed0..0cbdc2ff8d 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 @@ import org.springframework.beans.factory.xml.NamespaceHandlerSupport; */ 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/ejb/support/AbstractEnterpriseBean.java b/spring-context/src/main/java/org/springframework/ejb/support/AbstractEnterpriseBean.java index aaa6f7adff..729a0a991e 100644 --- a/spring-context/src/main/java/org/springframework/ejb/support/AbstractEnterpriseBean.java +++ b/spring-context/src/main/java/org/springframework/ejb/support/AbstractEnterpriseBean.java @@ -187,6 +187,7 @@ public abstract class AbstractEnterpriseBean implements EnterpriseBean { this.beanFactoryReference = beanFactoryReference; } + @Override public void released() { this.beanFactoryReference.release(); } diff --git a/spring-context/src/main/java/org/springframework/ejb/support/AbstractMessageDrivenBean.java b/spring-context/src/main/java/org/springframework/ejb/support/AbstractMessageDrivenBean.java index bbfc158cbb..897bec18f8 100644 --- a/spring-context/src/main/java/org/springframework/ejb/support/AbstractMessageDrivenBean.java +++ b/spring-context/src/main/java/org/springframework/ejb/support/AbstractMessageDrivenBean.java @@ -57,6 +57,7 @@ public abstract class AbstractMessageDrivenBean extends AbstractEnterpriseBean * Required lifecycle method. Sets the MessageDriven context. * @param messageDrivenContext MessageDrivenContext */ + @Override public void setMessageDrivenContext(MessageDrivenContext messageDrivenContext) { this.messageDrivenContext = messageDrivenContext; } diff --git a/spring-context/src/main/java/org/springframework/ejb/support/AbstractSessionBean.java b/spring-context/src/main/java/org/springframework/ejb/support/AbstractSessionBean.java index 5f4e2770b7..1a4a065746 100644 --- a/spring-context/src/main/java/org/springframework/ejb/support/AbstractSessionBean.java +++ b/spring-context/src/main/java/org/springframework/ejb/support/AbstractSessionBean.java @@ -42,6 +42,7 @@ public abstract class AbstractSessionBean extends AbstractEnterpriseBean impleme * Set the session context for this EJB. *

When overriding this method, be sure to invoke this form of it first. */ + @Override public void setSessionContext(SessionContext sessionContext) { this.sessionContext = sessionContext; } @@ -50,6 +51,7 @@ public abstract class AbstractSessionBean extends AbstractEnterpriseBean impleme * Convenience method for subclasses, returning the EJB session context * saved on initialization ({@link #setSessionContext}). */ + @Override public final SessionContext getSessionContext() { return this.sessionContext; } diff --git a/spring-context/src/main/java/org/springframework/ejb/support/AbstractStatelessSessionBean.java b/spring-context/src/main/java/org/springframework/ejb/support/AbstractStatelessSessionBean.java index ee013df6cb..554b5b6405 100644 --- a/spring-context/src/main/java/org/springframework/ejb/support/AbstractStatelessSessionBean.java +++ b/spring-context/src/main/java/org/springframework/ejb/support/AbstractStatelessSessionBean.java @@ -85,6 +85,7 @@ public abstract class AbstractStatelessSessionBean extends AbstractSessionBean { * This method always throws an exception, as it should not be invoked by the EJB container. * @see javax.ejb.SessionBean#ejbActivate() */ + @Override public void ejbActivate() throws EJBException { throw new IllegalStateException("ejbActivate must not be invoked on a stateless session bean"); } @@ -93,6 +94,7 @@ public abstract class AbstractStatelessSessionBean extends AbstractSessionBean { * This method always throws an exception, as it should not be invoked by the EJB container. * @see javax.ejb.SessionBean#ejbPassivate() */ + @Override public void ejbPassivate() throws EJBException { throw new IllegalStateException("ejbPassivate must not be invoked on a stateless session bean"); } 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 365800aba8..15b913b3ad 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 @@ -145,10 +145,12 @@ public class DateFormatter implements Formatter { } + @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 eb413a6ea7..e9591ac152 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 @@ -43,6 +43,7 @@ public class DateFormatterRegistrar implements FormatterRegistrar { private DateFormatter dateFormatter = new DateFormatter(); + @Override public void registerFormatters(FormatterRegistry registry) { addDateConverters(registry); registry.addFormatter(dateFormatter); @@ -76,6 +77,7 @@ public class DateFormatterRegistrar implements FormatterRegistrar { private static class DateToLongConverter implements Converter { + @Override public Long convert(Date source) { return source.getTime(); } @@ -83,6 +85,7 @@ public class DateFormatterRegistrar implements FormatterRegistrar { private static class DateToCalendarConverter implements Converter { + @Override public Calendar convert(Date source) { Calendar calendar = Calendar.getInstance(); calendar.setTime(source); @@ -92,6 +95,7 @@ public class DateFormatterRegistrar implements FormatterRegistrar { private static class CalendarToDateConverter implements Converter { + @Override public Date convert(Calendar source) { return source.getTime(); } @@ -99,6 +103,7 @@ public class DateFormatterRegistrar implements FormatterRegistrar { private static class CalendarToLongConverter implements Converter { + @Override public Long convert(Calendar source) { return source.getTime().getTime(); } @@ -106,6 +111,7 @@ public class DateFormatterRegistrar implements FormatterRegistrar { private static class LongToDateConverter implements Converter { + @Override public Date convert(Long source) { return new Date(source); } @@ -116,6 +122,7 @@ public class DateFormatterRegistrar implements FormatterRegistrar { private DateToCalendarConverter dateToCalendarConverter = new DateToCalendarConverter(); + @Override public Calendar convert(Long source) { return dateToCalendarConverter.convert(new Date(source)); } diff --git a/spring-context/src/main/java/org/springframework/format/datetime/DateTimeFormatAnnotationFormatterFactory.java b/spring-context/src/main/java/org/springframework/format/datetime/DateTimeFormatAnnotationFormatterFactory.java index 93efaf43a8..bd7928ba55 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/DateTimeFormatAnnotationFormatterFactory.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/DateTimeFormatAnnotationFormatterFactory.java @@ -55,18 +55,22 @@ public class DateTimeFormatAnnotationFormatterFactory implements private StringValueResolver embeddedValueResolver; + @Override public void setEmbeddedValueResolver(StringValueResolver resolver) { this.embeddedValueResolver = resolver; } + @Override public Set> 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 8c12e4b317..b7010b8924 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 48f8d46c42..8dd1903870 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 @@ -42,6 +42,7 @@ public final class DateTimeParser implements Parser { this.formatter = 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 2c5638c26f..f161939942 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,10 +71,12 @@ public class JodaDateTimeFormatAnnotationFormatterFactory private StringValueResolver embeddedValueResolver; + @Override public final Set> getFieldTypes() { return FIELD_TYPES; } + @Override public void setEmbeddedValueResolver(StringValueResolver resolver) { this.embeddedValueResolver = resolver; } @@ -83,6 +85,7 @@ public class JodaDateTimeFormatAnnotationFormatterFactory return (this.embeddedValueResolver != null ? this.embeddedValueResolver.resolveStringValue(value) : value); } + @Override public Printer getPrinter(DateTimeFormat annotation, Class fieldType) { DateTimeFormatter formatter = getFormatter(annotation, fieldType); if (ReadableInstant.class.isAssignableFrom(fieldType)) { @@ -99,6 +102,7 @@ public class JodaDateTimeFormatAnnotationFormatterFactory return new MillisecondInstantPrinter(formatter); } + @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 6943ad4241..ef214dccb8 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 @@ -63,6 +63,7 @@ final class JodaTimeConverters { * @see DateTimeParser **/ private static class DateTimeToLocalDateConverter implements Converter { + @Override public LocalDate convert(DateTime source) { return source.toLocalDate(); } @@ -73,6 +74,7 @@ final class JodaTimeConverters { * @see DateTimeParser */ private static class DateTimeToLocalTimeConverter implements Converter { + @Override public LocalTime convert(DateTime source) { return source.toLocalTime(); } @@ -83,6 +85,7 @@ final class JodaTimeConverters { * @see DateTimeParser */ private static class DateTimeToLocalDateTimeConverter implements Converter { + @Override public LocalDateTime convert(DateTime source) { return source.toLocalDateTime(); } @@ -93,6 +96,7 @@ final class JodaTimeConverters { * @see DateTimeParser */ private static class DateTimeToDateMidnightConverter implements Converter { + @Override public DateMidnight convert(DateTime source) { return source.toDateMidnight(); } @@ -103,6 +107,7 @@ final class JodaTimeConverters { * @see DateTimeParser */ private static class DateTimeToInstantConverter implements Converter { + @Override public Instant convert(DateTime source) { return source.toInstant(); } @@ -113,6 +118,7 @@ final class JodaTimeConverters { * @see DateTimeParser */ private static class DateTimeToMutableDateTimeConverter implements Converter { + @Override public MutableDateTime convert(DateTime source) { return source.toMutableDateTime(); } @@ -123,6 +129,7 @@ final class JodaTimeConverters { * @see DateTimeParser */ private static class DateTimeToDateConverter implements Converter { + @Override public Date convert(DateTime source) { return source.toDate(); } @@ -133,6 +140,7 @@ final class JodaTimeConverters { * @see DateTimeParser */ private static class DateTimeToCalendarConverter implements Converter { + @Override public Calendar convert(DateTime source) { return source.toGregorianCalendar(); } @@ -143,6 +151,7 @@ final class JodaTimeConverters { * @see DateTimeParser */ private static class DateTimeToLongConverter implements Converter { + @Override public Long convert(DateTime source) { return source.getMillis(); } @@ -154,6 +163,7 @@ final class JodaTimeConverters { * @see JodaDateTimeFormatAnnotationFormatterFactory */ 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 51d9f9684b..fbf01be973 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 @@ -149,6 +149,7 @@ public class JodaTimeFormatterRegistrar implements FormatterRegistrar { this.formatters.put(Type.DATE_TIME, 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 d7b22e71f0..319463877c 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 @@ -40,6 +40,7 @@ public final class MillisecondInstantPrinter implements Printer { this.formatter = 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 8cf404fcad..09d62b2532 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 @@ -40,6 +40,7 @@ public final class ReadableInstantPrinter implements Printer { this.formatter = 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 9ad97c2058..50a871ed50 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 @@ -41,6 +41,7 @@ public final class ReadablePartialPrinter implements Printer { this.formatter = 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/number/AbstractNumberFormatter.java b/spring-context/src/main/java/org/springframework/format/number/AbstractNumberFormatter.java index da34f935bc..aa9e85177a 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 abstract class AbstractNumberFormatter implements Formatter { 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 c540d74d38..00bf1303a1 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 class CurrencyFormatter extends AbstractNumberFormatter { } + @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 class CurrencyFormatter extends AbstractNumberFormatter { 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 2108d9f5ae..a20cf4120a 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 class 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 @@ public class NumberFormatAnnotationFormatterFactory } + @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 1854a2e9d0..cee5a62a37 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 class NumberFormatter extends AbstractNumberFormatter { } + @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 6e9cb946ef..719b77dd39 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 @@ import java.util.Locale; */ 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 345131a5aa..4346e46ef9 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 class FormattingConversionService extends GenericConversionService 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 class FormattingConversionService extends GenericConversionService 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) { @@ -159,10 +166,12 @@ public class FormattingConversionService extends GenericConversionService 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)) { @@ -206,14 +215,17 @@ public class FormattingConversionService extends GenericConversionService 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 = @@ -250,14 +262,17 @@ public class FormattingConversionService extends GenericConversionService 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 = 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 2dc19dda74..8a464ce05e 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 class FormattingConversionServiceFactoryBean 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 @@ public class FormattingConversionServiceFactoryBean } + @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 94316c8f6d..54a3571064 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 class InstrumentationLoadTimeWeaver implements LoadTimeWeaver { } + @Override public void addTransformer(ClassFileTransformer transformer) { Assert.notNull(transformer, "Transformer must not be null"); FilteringClassFileTransformer actualTransformer = @@ -97,6 +98,7 @@ public class InstrumentationLoadTimeWeaver implements LoadTimeWeaver { * 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 class InstrumentationLoadTimeWeaver implements LoadTimeWeaver { /** * This implementation always returns a {@link SimpleThrowawayClassLoader}. */ + @Override public ClassLoader getThrowawayClassLoader() { return new SimpleThrowawayClassLoader(getInstrumentableClassLoader()); } @@ -171,6 +174,7 @@ public class InstrumentationLoadTimeWeaver implements LoadTimeWeaver { 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 86907d33dd..646066db59 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 class ReflectiveLoadTimeWeaver implements LoadTimeWeaver { } + @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 3d15f1035c..47bb8dc30b 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 @@ import org.springframework.util.Assert; 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 a421f0418e..d95b3d9821 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 class SimpleLoadTimeWeaver implements LoadTimeWeaver { } + @Override public void addTransformer(ClassFileTransformer transformer) { this.classLoader.addTransformer(transformer); } + @Override public ClassLoader getInstrumentableClassLoader() { return this.classLoader; } @@ -73,6 +75,7 @@ public class SimpleLoadTimeWeaver implements LoadTimeWeaver { /** * 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 36d5d1751e..2fd924ed53 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 @@ class ClassTransformerAdapter implements ClassTransformer { 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 eb28f67ddf..205ed59c2a 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 class GlassFishLoadTimeWeaver implements LoadTimeWeaver { } + @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 260d1d4885..939114249f 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 class JBossLoadTimeWeaver implements LoadTimeWeaver { } + @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 a128608d84..fe262717be 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 @@ class JBossMCAdapter implements JBossClassLoaderAdapter { } } + @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 8325e1b798..220d6ceb3d 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 @@ class JBossMCTranslatorAdapter implements InvocationHandler { 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 f9ba2b6204..ac3e17645f 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 @@ class JBossModulesAdapter implements JBossClassLoaderAdapter { } } + @Override public void addTransformer(ClassFileTransformer transformer) { try { addTransformer.invoke(delegatingTransformer, transformer); @@ -65,6 +66,7 @@ class JBossModulesAdapter implements JBossClassLoaderAdapter { } } + @Override public ClassLoader getInstrumentableClassLoader() { return classLoader; } diff --git a/spring-context/src/main/java/org/springframework/instrument/classloading/oc4j/OC4JClassPreprocessorAdapter.java b/spring-context/src/main/java/org/springframework/instrument/classloading/oc4j/OC4JClassPreprocessorAdapter.java index dce5761898..725aa5529b 100644 --- a/spring-context/src/main/java/org/springframework/instrument/classloading/oc4j/OC4JClassPreprocessorAdapter.java +++ b/spring-context/src/main/java/org/springframework/instrument/classloading/oc4j/OC4JClassPreprocessorAdapter.java @@ -43,6 +43,7 @@ class OC4JClassPreprocessorAdapter implements InvocationHandler { 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/oc4j/OC4JLoadTimeWeaver.java b/spring-context/src/main/java/org/springframework/instrument/classloading/oc4j/OC4JLoadTimeWeaver.java index 1e71d0cdbb..761629a6b9 100644 --- a/spring-context/src/main/java/org/springframework/instrument/classloading/oc4j/OC4JLoadTimeWeaver.java +++ b/spring-context/src/main/java/org/springframework/instrument/classloading/oc4j/OC4JLoadTimeWeaver.java @@ -62,6 +62,7 @@ public class OC4JLoadTimeWeaver implements LoadTimeWeaver { } + @Override public void addTransformer(ClassFileTransformer transformer) { Assert.notNull(transformer, "Transformer must not be null"); // Since OC4J 10.1.3's PolicyClassLoader is going to be removed, @@ -69,10 +70,12 @@ public class OC4JLoadTimeWeaver implements LoadTimeWeaver { 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/weblogic/WebLogicClassPreProcessorAdapter.java b/spring-context/src/main/java/org/springframework/instrument/classloading/weblogic/WebLogicClassPreProcessorAdapter.java index aede3544be..e0c2f310b0 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 @@ class WebLogicClassPreProcessorAdapter implements InvocationHandler { 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 6662830c73..087b47d735 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 class WebLogicLoadTimeWeaver implements LoadTimeWeaver { } + @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 c95684c4d6..5662febce0 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 @@ class WebSphereClassPreDefinePlugin implements InvocationHandler { } + @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 3312c37778..55c6f863ef 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 class WebSphereLoadTimeWeaver implements LoadTimeWeaver { } + @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 36894535ed..86c95431c1 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 @@ public class MBeanClientInterceptor return this.managementInterface; } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } @@ -236,6 +237,7 @@ public class MBeanClientInterceptor * 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 @@ public class MBeanClientInterceptor * @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 @@ public class MBeanClientInterceptor } + @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 466a4ff8fb..022a3a01f6 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 class MBeanProxyFactoryBean extends MBeanClientInterceptor } + @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 bb0b2021de..913136578b 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 class NotificationListenerRegistrar extends NotificationListenerHolder } + @Override public void afterPropertiesSet() { if (getNotificationListener() == null) { throw new IllegalArgumentException("Property 'notificationListener' is required"); @@ -153,6 +154,7 @@ public class NotificationListenerRegistrar extends NotificationListenerHolder /** * 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 9e94a66df3..e9a73da2ff 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 class MBeanExporter extends MBeanRegistrationSupport notificationListeners.toArray(new NotificationListenerBean[notificationListeners.size()]); } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -383,6 +384,7 @@ public class MBeanExporter extends MBeanRegistrationSupport * @see #setBeans * @see #setAutodetect */ + @Override public void setBeanFactory(BeanFactory beanFactory) { if (beanFactory instanceof ListableBeanFactory) { this.beanFactory = (ListableBeanFactory) beanFactory; @@ -402,6 +404,7 @@ public class MBeanExporter extends MBeanRegistrationSupport * {@code ApplicationContext}. * @see #registerBeans() */ + @Override public void afterPropertiesSet() { // If no server was provided then try to find one. This is useful in an environment // such as JDK 1.5, Tomcat or JBoss where there is already an MBeanServer loaded. @@ -425,6 +428,7 @@ public class MBeanExporter extends MBeanRegistrationSupport * Unregisters all beans that this exported has exposed via JMX * when the enclosing {@code ApplicationContext} is destroyed. */ + @Override public void destroy() { logger.info("Unregistering JMX-exposed beans on shutdown"); unregisterNotificationListeners(); @@ -436,6 +440,7 @@ public class MBeanExporter extends MBeanRegistrationSupport // Implementation of MBeanExportOperations interface //--------------------------------------------------------------------- + @Override public ObjectName registerManagedResource(Object managedResource) throws MBeanExportException { Assert.notNull(managedResource, "Managed resource must not be null"); ObjectName objectName; @@ -452,6 +457,7 @@ public class MBeanExporter extends MBeanRegistrationSupport return objectName; } + @Override public void registerManagedResource(Object managedResource, ObjectName objectName) throws MBeanExportException { Assert.notNull(managedResource, "Managed resource must not be null"); Assert.notNull(objectName, "ObjectName must not be null"); @@ -471,6 +477,7 @@ public class MBeanExporter extends MBeanRegistrationSupport } } + @Override public void unregisterManagedResource(ObjectName objectName) { Assert.notNull(objectName, "ObjectName must not be null"); doUnregister(objectName); @@ -840,6 +847,7 @@ public class MBeanExporter extends MBeanRegistrationSupport */ private void autodetectBeans(final AutodetectCapableMBeanInfoAssembler assembler) { autodetect(new AutodetectCallback() { + @Override public boolean include(Class beanClass, String beanName) { return assembler.includeBean(beanClass, beanName); } @@ -852,6 +860,7 @@ public class MBeanExporter extends MBeanRegistrationSupport */ private void autodetectMBeans() { autodetect(new AutodetectCallback() { + @Override public boolean include(Class beanClass, String beanName) { return isMBean(beanClass); } diff --git a/spring-context/src/main/java/org/springframework/jmx/export/NotificationListenerBean.java b/spring-context/src/main/java/org/springframework/jmx/export/NotificationListenerBean.java index 10a1226891..b82366aa17 100644 --- a/spring-context/src/main/java/org/springframework/jmx/export/NotificationListenerBean.java +++ b/spring-context/src/main/java/org/springframework/jmx/export/NotificationListenerBean.java @@ -61,6 +61,7 @@ public class NotificationListenerBean extends NotificationListenerHolder impleme } + @Override public void afterPropertiesSet() { if (getNotificationListener() == null) { throw new IllegalArgumentException("Property 'notificationListener' is required"); diff --git a/spring-context/src/main/java/org/springframework/jmx/export/annotation/AnnotationJmxAttributeSource.java b/spring-context/src/main/java/org/springframework/jmx/export/annotation/AnnotationJmxAttributeSource.java index 741932841d..fece173a26 100644 --- a/spring-context/src/main/java/org/springframework/jmx/export/annotation/AnnotationJmxAttributeSource.java +++ b/spring-context/src/main/java/org/springframework/jmx/export/annotation/AnnotationJmxAttributeSource.java @@ -52,11 +52,13 @@ public class AnnotationJmxAttributeSource implements JmxAttributeSource, BeanFac private StringValueResolver embeddedValueResolver; + @Override public void setBeanFactory(final BeanFactory beanFactory) { if (beanFactory instanceof ConfigurableBeanFactory) { // Not using EmbeddedValueResolverAware in order to avoid a spring-context dependency: // ConfigurableBeanFactory and its resolveEmbeddedValue live in the spring-beans module. this.embeddedValueResolver = new StringValueResolver() { + @Override public String resolveStringValue(String strVal) { return ((ConfigurableBeanFactory) beanFactory).resolveEmbeddedValue(strVal); } @@ -65,6 +67,7 @@ public class AnnotationJmxAttributeSource implements JmxAttributeSource, BeanFac } + @Override public ManagedResource getManagedResource(Class beanClass) throws InvalidMetadataException { org.springframework.jmx.export.annotation.ManagedResource ann = beanClass.getAnnotation(org.springframework.jmx.export.annotation.ManagedResource.class); @@ -83,6 +86,7 @@ public class AnnotationJmxAttributeSource implements JmxAttributeSource, BeanFac 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 class AnnotationJmxAttributeSource implements JmxAttributeSource, BeanFac 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 class AnnotationJmxAttributeSource implements JmxAttributeSource, BeanFac 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 class AnnotationJmxAttributeSource implements JmxAttributeSource, BeanFac return op; } + @Override public ManagedOperationParameter[] getManagedOperationParameters(Method method) throws InvalidMetadataException { @@ -139,6 +146,7 @@ public class AnnotationJmxAttributeSource implements JmxAttributeSource, BeanFac 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 ce2c24a185..244e6a5966 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 e464fa234b..3f91e7fdfa 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 class InterfaceBasedMBeanInfoAssembler extends AbstractConfigurableMBeanI 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 320a64790e..e20ad95df8 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 @@ -88,6 +88,7 @@ public class MetadataMBeanInfoAssembler extends AbstractReflectiveMBeanInfoAssem this.attributeSource = attributeSource; } + @Override public void afterPropertiesSet() { if (this.attributeSource == null) { throw new IllegalArgumentException("Property 'attributeSource' is required"); @@ -114,6 +115,7 @@ public class MetadataMBeanInfoAssembler extends AbstractReflectiveMBeanInfoAssem * @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 1e9e4ff432..ea29cc1737 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 07b459910d..fd0f36cbba 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 class KeyNamingStrategy implements ObjectNamingStrategy, InitializingBean * used for {@code ObjectName} resolution. * @throws IOException */ + @Override public void afterPropertiesSet() throws IOException { this.mergedMappings = new Properties(); @@ -129,6 +130,7 @@ public class KeyNamingStrategy implements ObjectNamingStrategy, InitializingBean * 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 f1d138d38b..f574256ef0 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 class MetadataNamingStrategy implements ObjectNamingStrategy, Initializin this.defaultDomain = defaultDomain; } + @Override public void afterPropertiesSet() { if (this.attributeSource == null) { throw new IllegalArgumentException("Property 'attributeSource' is required"); @@ -105,6 +106,7 @@ public class MetadataNamingStrategy implements ObjectNamingStrategy, Initializin * 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 1c94273bbb..3d4e11ff7d 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 class ModelMBeanNotificationPublisher implements NotificationPublisher { * @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 a717b8a1ab..5a4d05a7fb 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 class ConnectorServerFactoryBean extends MBeanRegistrationSupport * 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 class ConnectorServerFactoryBean extends MBeanRegistrationSupport } + @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 class ConnectorServerFactoryBean extends MBeanRegistrationSupport * 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 3d9b82bc34..5c923b1903 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 class MBeanServerConnectionFactoryBean this.connectOnStartup = connectOnStartup; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -110,6 +111,7 @@ public class MBeanServerConnectionFactoryBean * 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 @@ public class MBeanServerConnectionFactoryBean } + @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 class MBeanServerConnectionFactoryBean /** * 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 61b1086a4c..9bbfe08c85 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 class MBeanServerFactoryBean implements FactoryBean, Initial /** * 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 @@ public class MBeanServerFactoryBean implements FactoryBean, Initial } + @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 class MBeanServerFactoryBean implements FactoryBean, Initial /** * 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 5cd37f3d65..1cd564b193 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 class WebSphereMBeanServerFactoryBean implements FactoryBean } + @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 504a96ad8c..1648ad3edb 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 class JndiObjectFactoryBean extends JndiObjectLocator implements FactoryB this.defaultObject = defaultObject; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -228,10 +229,12 @@ public class JndiObjectFactoryBean extends JndiObjectLocator implements FactoryB /** * 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 @@ public class JndiObjectFactoryBean extends JndiObjectLocator implements FactoryB } } + @Override public boolean isSingleton() { return true; } @@ -323,6 +327,7 @@ public class JndiObjectFactoryBean extends JndiObjectLocator implements FactoryB 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 4f8a148588..50327e4545 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 abstract class JndiObjectLocator extends JndiLocatorSupport implements In 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 5a9bb616b1..7202531de1 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 class JndiObjectTargetSource extends JndiObjectLocator implements TargetS } + @Override public Class getTargetClass() { if (this.cachedObject != null) { return this.cachedObject.getClass(); @@ -117,10 +118,12 @@ public class JndiObjectTargetSource extends JndiObjectLocator implements TargetS } } + @Override public boolean isStatic() { return (this.cachedObject != null); } + @Override public Object getTarget() { try { if (this.lookupOnStartup || !this.cache) { @@ -140,6 +143,7 @@ public class JndiObjectTargetSource extends JndiObjectLocator implements TargetS } } + @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 441a113d88..35f964fde8 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 class JndiTemplate { 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 class JndiTemplate { 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 class JndiTemplate { 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 class JndiTemplate { 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 f565f37edf..555e1f4b91 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 class SimpleJndiBeanFactory extends JndiLocatorSupport implements BeanFac //--------------------------------------------------------------------- + @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 class SimpleJndiBeanFactory extends JndiLocatorSupport implements BeanFac } } + @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 class SimpleJndiBeanFactory extends JndiLocatorSupport implements BeanFac 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 class SimpleJndiBeanFactory extends JndiLocatorSupport implements BeanFac } } + @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 SimpleJndiBeanFactory extends JndiLocatorSupport implements BeanFac } } + @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 8660e2cf5b..d0be75a7b8 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 @@ -267,6 +267,7 @@ public class JndiRmiClientInterceptor extends JndiObjectLocator implements Metho * @see java.rmi.ConnectIOException * @see java.rmi.NoSuchObjectException */ + @Override public Object invoke(MethodInvocation invocation) throws Throwable { Object stub = null; 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 b4e884e260..645251429c 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 class JndiRmiProxyFactoryBean extends JndiRmiClientInterceptor } + @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 180ba0f563..d3e50819f1 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 class JndiRmiServiceExporter extends RmiBasedExporter implements Initiali } + @Override public void afterPropertiesSet() throws NamingException, RemoteException { prepare(); } @@ -137,6 +138,7 @@ public class JndiRmiServiceExporter extends RmiBasedExporter implements Initiali /** * 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 d4673dbff6..6e0c08466a 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 abstract class RemoteInvocationSerializingExporter extends RemoteInvocati } + @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 ba9d8775d9..f019c3644e 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 @@ public class RmiClientInterceptor extends RemoteInvocationBasedAccessor * @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 22cac7f71f..b5d2da6159 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 @@ class RmiInvocationWrapper implements RmiInvocationHandler { * 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 @@ class RmiInvocationWrapper implements RmiInvocationHandler { * 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 a635a1fa59..ef88378589 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 class RmiProxyFactoryBean extends RmiClientInterceptor implements Factory } + @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 fee68ce8d7..0a6ded9114 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 class RmiRegistryFactoryBean implements FactoryBean, Initializi } + @Override public void afterPropertiesSet() throws Exception { // Check socket factories for registry. if (this.clientSocketFactory instanceof RMIServerSocketFactory) { @@ -282,14 +283,17 @@ public class RmiRegistryFactoryBean implements FactoryBean, Initializi } + @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 class RmiRegistryFactoryBean implements FactoryBean, Initializi * 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 dcd5f91f85..49429b36d8 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 class RmiServiceExporter extends RmiBasedExporter implements Initializing } + @Override public void afterPropertiesSet() throws RemoteException { prepare(); } @@ -424,6 +425,7 @@ public class RmiServiceExporter extends RmiBasedExporter implements Initializing /** * 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 303ed12b6f..7d8a49f623 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 @@ import org.springframework.util.Assert; */ 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 a1baffb853..9d32dbbed5 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 @@ import org.aopalliance.intercept.MethodInvocation; */ 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 d66fe1228d..03fe329f9e 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 class RemoteInvocationTraceInterceptor implements MethodInterceptor { } + @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 832d489962..02f31ba803 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 192d5e3fe6..8aa6921f42 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 class SimpleHttpServerFactoryBean implements FactoryBean, Ini } + @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 class SimpleHttpServerFactoryBean implements FactoryBean, Ini 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 bec4866618..fba31eae21 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 abstract class UrlBasedRemoteAccessor extends RemoteAccessor implements I } + @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 57fd7b6945..2f8703dc69 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 873740c21c..21613bc066 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 @@ -91,6 +91,7 @@ public class AsyncAnnotationAdvisor extends AbstractPointcutAdvisor implements B /** * Set the {@code BeanFactory} to be used when looking up executors by qualifier. */ + @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { this.beanFactory = beanFactory; delegateBeanFactory(beanFactory); @@ -127,10 +128,12 @@ public class AsyncAnnotationAdvisor extends AbstractPointcutAdvisor implements B } + @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 f4c7d65125..63c7ee012e 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 @@ -74,6 +74,7 @@ public class AsyncAnnotationBeanPostProcessor extends AbstractAdvisingBeanPostPr 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 3815016c9e..38e975167c 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 implements Future { this.value = value; } + @Override public boolean cancel(boolean mayInterruptIfRunning) { return false; } + @Override public boolean isCancelled() { return false; } + @Override public boolean isDone() { return true; } + @Override public V get() { return this.value; } + @Override public V get(long timeout, TimeUnit unit) { return this.value; } diff --git a/spring-context/src/main/java/org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessor.java b/spring-context/src/main/java/org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessor.java index f5f236d2f9..74b6bc6216 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessor.java @@ -89,25 +89,31 @@ public class ScheduledAnnotationBeanPostProcessor this.scheduler = scheduler; } + @Override public void setEmbeddedValueResolver(StringValueResolver resolver) { this.embeddedValueResolver = resolver; } + @Override public void setApplicationContext(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } + @Override public int getOrder() { return LOWEST_PRECEDENCE; } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) { return bean; } + @Override public Object postProcessAfterInitialization(final Object bean, String beanName) { final Class 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) { @@ -164,6 +170,7 @@ public class ScheduledAnnotationBeanPostProcessor return bean; } + @Override public void onApplicationEvent(ContextRefreshedEvent event) { if (event.getApplicationContext() != this.applicationContext) { return; @@ -203,6 +210,7 @@ public class ScheduledAnnotationBeanPostProcessor 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/backportconcurrent/ConcurrentTaskExecutor.java b/spring-context/src/main/java/org/springframework/scheduling/backportconcurrent/ConcurrentTaskExecutor.java index d467243131..7277bc9362 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/backportconcurrent/ConcurrentTaskExecutor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/backportconcurrent/ConcurrentTaskExecutor.java @@ -102,6 +102,7 @@ public class ConcurrentTaskExecutor implements SchedulingTaskExecutor, Executor * Delegates to the specified JSR-166 backport concurrent executor. * @see edu.emory.mathcs.backport.java.util.concurrent.Executor#execute(Runnable) */ + @Override public void execute(Runnable task) { try { this.concurrentExecutor.execute(task); @@ -112,16 +113,19 @@ public class ConcurrentTaskExecutor implements SchedulingTaskExecutor, Executor } } + @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); @@ -131,6 +135,7 @@ public class ConcurrentTaskExecutor implements SchedulingTaskExecutor, Executor /** * 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/backportconcurrent/CustomizableThreadFactory.java b/spring-context/src/main/java/org/springframework/scheduling/backportconcurrent/CustomizableThreadFactory.java index 8cfb86f2b3..79a2652550 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/backportconcurrent/CustomizableThreadFactory.java +++ b/spring-context/src/main/java/org/springframework/scheduling/backportconcurrent/CustomizableThreadFactory.java @@ -54,6 +54,7 @@ public class CustomizableThreadFactory extends CustomizableThreadCreator impleme } + @Override public Thread newThread(Runnable runnable) { return createThread(runnable); } diff --git a/spring-context/src/main/java/org/springframework/scheduling/backportconcurrent/ThreadPoolTaskExecutor.java b/spring-context/src/main/java/org/springframework/scheduling/backportconcurrent/ThreadPoolTaskExecutor.java index ca237fe1af..821dabc32d 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/backportconcurrent/ThreadPoolTaskExecutor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/backportconcurrent/ThreadPoolTaskExecutor.java @@ -238,6 +238,7 @@ public class ThreadPoolTaskExecutor extends CustomizableThreadFactory this.threadNamePrefixSet = true; } + @Override public void setBeanName(String name) { this.beanName = name; } @@ -247,6 +248,7 @@ public class ThreadPoolTaskExecutor extends CustomizableThreadFactory * Calls {@code initialize()} after the container applied all property values. * @see #initialize() */ + @Override public void afterPropertiesSet() { initialize(); } @@ -306,6 +308,7 @@ public class ThreadPoolTaskExecutor extends CustomizableThreadFactory * @see edu.emory.mathcs.backport.java.util.concurrent.Executor#execute(Runnable) * @see org.springframework.core.task.TaskExecutor#execute(Runnable) */ + @Override public void execute(Runnable task) { Executor executor = getThreadPoolExecutor(); try { @@ -316,16 +319,19 @@ public class ThreadPoolTaskExecutor extends CustomizableThreadFactory } } + @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); @@ -335,6 +341,7 @@ public class ThreadPoolTaskExecutor extends CustomizableThreadFactory /** * This task executor prefers short-lived work units. */ + @Override public boolean prefersShortLivedTasks() { return true; } @@ -362,6 +369,7 @@ public class ThreadPoolTaskExecutor extends CustomizableThreadFactory * the task executor instance. * @see #shutdown() */ + @Override public void destroy() { shutdown(); } 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 ea5bc9ca89..3427652bfd 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 @@ -87,18 +87,22 @@ public class ConcurrentTaskExecutor implements SchedulingTaskExecutor { } + @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); } @@ -106,6 +110,7 @@ public class ConcurrentTaskExecutor implements SchedulingTaskExecutor { /** * 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 b972db0601..97fc81496a 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 @@ -116,6 +116,7 @@ public class ConcurrentTaskScheduler extends ConcurrentTaskExecutor implements T } + @Override public ScheduledFuture schedule(Runnable task, Trigger trigger) { try { ErrorHandler errorHandler = @@ -127,6 +128,7 @@ public class ConcurrentTaskScheduler extends ConcurrentTaskExecutor implements T } } + @Override public ScheduledFuture schedule(Runnable task, Date startTime) { long initialDelay = startTime.getTime() - System.currentTimeMillis(); try { @@ -138,6 +140,7 @@ public class ConcurrentTaskScheduler extends ConcurrentTaskExecutor implements T } } + @Override public ScheduledFuture scheduleAtFixedRate(Runnable task, Date startTime, long period) { long initialDelay = startTime.getTime() - System.currentTimeMillis(); try { @@ -149,6 +152,7 @@ public class ConcurrentTaskScheduler extends ConcurrentTaskExecutor implements T } } + @Override public ScheduledFuture scheduleAtFixedRate(Runnable task, long period) { try { return this.scheduledExecutor.scheduleAtFixedRate( @@ -159,6 +163,7 @@ public class ConcurrentTaskScheduler extends ConcurrentTaskExecutor implements T } } + @Override public ScheduledFuture scheduleWithFixedDelay(Runnable task, Date startTime, long delay) { long initialDelay = startTime.getTime() - System.currentTimeMillis(); try { @@ -170,6 +175,7 @@ public class ConcurrentTaskScheduler extends ConcurrentTaskExecutor implements T } } + @Override public ScheduledFuture scheduleWithFixedDelay(Runnable task, long delay) { try { return this.scheduledExecutor.scheduleWithFixedDelay( 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 7ac8d4790e..090eac7b50 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 class CustomizableThreadFactory extends CustomizableThreadCreator impleme } + @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 964872e1d6..c237883e4e 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 @@ -95,6 +95,7 @@ public abstract class ExecutorConfigurationSupport extends CustomizableThreadFac this.waitForTasksToCompleteOnShutdown = waitForJobsToCompleteOnShutdown; } + @Override public void setBeanName(String name) { this.beanName = name; } @@ -104,6 +105,7 @@ public abstract class ExecutorConfigurationSupport extends CustomizableThreadFac * Calls {@code initialize()} after the container applied all property values. * @see #initialize() */ + @Override public void afterPropertiesSet() { initialize(); } @@ -138,6 +140,7 @@ public abstract class ExecutorConfigurationSupport extends CustomizableThreadFac * 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 fe30fd108b..5c184f313e 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 @@ -82,25 +82,30 @@ public class ForkJoinPoolFactoryBean implements FactoryBean, Initi this.asyncMode = asyncMode; } + @Override public void afterPropertiesSet() { this.forkJoinPool = 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() { 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 fba41f0778..ff199f1609 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 @@ class ReschedulingRunnable extends DelegatingErrorHandlingRunnable implements Sc } + @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 @@ class ReschedulingRunnable extends DelegatingErrorHandlingRunnable implements Sc return curr.get(); } + @Override public Object get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { ScheduledFuture curr; synchronized (this.triggerContextMonitor) { @@ -123,6 +128,7 @@ class ReschedulingRunnable extends DelegatingErrorHandlingRunnable implements Sc return curr.get(timeout, unit); } + @Override public long getDelay(TimeUnit unit) { ScheduledFuture curr; synchronized (this.triggerContextMonitor) { @@ -131,6 +137,7 @@ class ReschedulingRunnable extends DelegatingErrorHandlingRunnable implements Sc 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 40d48ad295..4b5e4b6a25 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 class ScheduledExecutorFactoryBean extends ExecutorConfigurationSupport } + @Override protected ExecutorService initializeExecutor( ThreadFactory threadFactory, RejectedExecutionHandler rejectedExecutionHandler) { @@ -198,14 +199,17 @@ public class ScheduledExecutorFactoryBean extends ExecutorConfigurationSupport } + @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 19cd880bbb..4c4c92e6ee 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 class ThreadPoolExecutorFactoryBean extends ExecutorConfigurationSupport } + @Override protected ExecutorService initializeExecutor( ThreadFactory threadFactory, RejectedExecutionHandler rejectedExecutionHandler) { @@ -170,14 +171,17 @@ public class ThreadPoolExecutorFactoryBean extends ExecutorConfigurationSupport } + @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 31dc69d553..6674768af7 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 class ThreadPoolTaskExecutor extends ExecutorConfigurationSupport impleme } + @Override protected ExecutorService initializeExecutor( ThreadFactory threadFactory, RejectedExecutionHandler rejectedExecutionHandler) { @@ -236,6 +237,7 @@ public class ThreadPoolTaskExecutor extends ExecutorConfigurationSupport impleme } + @Override public void execute(Runnable task) { Executor executor = getThreadPoolExecutor(); try { @@ -246,10 +248,12 @@ public class ThreadPoolTaskExecutor extends ExecutorConfigurationSupport impleme } } + @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 class ThreadPoolTaskExecutor extends ExecutorConfigurationSupport impleme } } + @Override public Future submit(Callable task) { ExecutorService executor = getThreadPoolExecutor(); try { @@ -273,6 +278,7 @@ public class ThreadPoolTaskExecutor extends ExecutorConfigurationSupport impleme /** * 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 e8961e05e3..01c05d6bc4 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 class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport this.errorHandler = errorHandler; } + @Override protected ExecutorService initializeExecutor( ThreadFactory threadFactory, RejectedExecutionHandler rejectedExecutionHandler) { @@ -113,6 +114,7 @@ public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport // SchedulingTaskExecutor implementation + @Override public void execute(Runnable task) { Executor executor = getScheduledExecutor(); try { @@ -123,10 +125,12 @@ public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport } } + @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 class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport } } + @Override public Future submit(Callable task) { ExecutorService executor = getScheduledExecutor(); try { @@ -150,6 +155,7 @@ public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport } } + @Override public boolean prefersShortLivedTasks() { return true; } @@ -157,6 +163,7 @@ public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport // TaskScheduler implementation + @Override public ScheduledFuture schedule(Runnable task, Trigger trigger) { ScheduledExecutorService executor = getScheduledExecutor(); try { @@ -169,6 +176,7 @@ public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport } } + @Override public ScheduledFuture schedule(Runnable task, Date startTime) { ScheduledExecutorService executor = getScheduledExecutor(); long initialDelay = startTime.getTime() - System.currentTimeMillis(); @@ -180,6 +188,7 @@ public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport } } + @Override public ScheduledFuture scheduleAtFixedRate(Runnable task, Date startTime, long period) { ScheduledExecutorService executor = getScheduledExecutor(); long initialDelay = startTime.getTime() - System.currentTimeMillis(); @@ -191,6 +200,7 @@ public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport } } + @Override public ScheduledFuture scheduleAtFixedRate(Runnable task, long period) { ScheduledExecutorService executor = getScheduledExecutor(); try { @@ -201,6 +211,7 @@ public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport } } + @Override public ScheduledFuture scheduleWithFixedDelay(Runnable task, Date startTime, long delay) { ScheduledExecutorService executor = getScheduledExecutor(); long initialDelay = startTime.getTime() - System.currentTimeMillis(); @@ -212,6 +223,7 @@ public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport } } + @Override public ScheduledFuture scheduleWithFixedDelay(Runnable task, long delay) { ScheduledExecutorService executor = getScheduledExecutor(); try { @@ -238,6 +250,7 @@ public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport 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 39b86694d2..7900b9988e 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/ScheduledTaskRegistrar.java b/spring-context/src/main/java/org/springframework/scheduling/config/ScheduledTaskRegistrar.java index 592fd033c1..8198caeb67 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 class ScheduledTaskRegistrar implements InitializingBean, DisposableBean * Schedule all registered tasks against the underlying {@linkplain * #setTaskScheduler(TaskScheduler) task scheduler}. */ + @Override public void afterPropertiesSet() { long now = System.currentTimeMillis(); @@ -325,6 +326,7 @@ public class ScheduledTaskRegistrar implements InitializingBean, DisposableBean } } + @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 4579a9e91b..39b1b55668 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 @@ -67,11 +67,13 @@ public class TaskExecutorFactoryBean implements this.keepAliveSeconds = keepAliveSeconds; } + @Override public void setBeanName(String beanName) { this.beanName = beanName; } + @Override public void afterPropertiesSet() throws Exception { Class executorClass = (shouldUseBackport() ? getClass().getClassLoader().loadClass("org.springframework.scheduling.backportconcurrent.ThreadPoolTaskExecutor") : @@ -145,10 +147,12 @@ public class TaskExecutorFactoryBean implements } + @Override public TaskExecutor getObject() { return this.target; } + @Override public Class getObjectType() { if (this.target != null) { return this.target.getClass(); @@ -156,11 +160,13 @@ public class TaskExecutorFactoryBean implements return (!shouldUseBackport() ? ThreadPoolTaskExecutor.class : TaskExecutor.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 6ba1d5a552..4d86209219 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 @@ import org.springframework.beans.factory.xml.NamespaceHandlerSupport; */ 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 eca37982e6..40e5c1792f 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 class CronTrigger implements Trigger { } + @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 34cd55286e..667933911c 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 class DelegatingErrorHandlingRunnable implements Runnable { 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 142b832e3c..a3d755625a 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 @@ -46,6 +46,7 @@ public class MethodInvokingRunnable extends ArgumentConvertingMethodInvoker private ClassLoader beanClassLoader = ClassUtils.getDefaultClassLoader(); + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -55,11 +56,13 @@ public class MethodInvokingRunnable extends ArgumentConvertingMethodInvoker 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 b494e4c5ff..f2e5a4fb0d 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 @@ -94,6 +94,7 @@ public class PeriodicTrigger implements Trigger { /** * 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 5b7b9350fb..165ab45fc6 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 class ScheduledMethodRunnable implements Runnable { } + @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 650d95ea73..d68534b3ab 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 @@ -48,14 +48,17 @@ public class SimpleTriggerContext implements TriggerContext { } + @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 81c16bc9a5..6f2dd2c18c 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 @@ -90,6 +90,7 @@ public abstract class TaskUtils { 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); @@ -104,6 +105,7 @@ public abstract class TaskUtils { */ 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/scheduling/timer/MethodInvokingTimerTaskFactoryBean.java b/spring-context/src/main/java/org/springframework/scheduling/timer/MethodInvokingTimerTaskFactoryBean.java index 389e9a76b9..1b9c978c38 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/timer/MethodInvokingTimerTaskFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/scheduling/timer/MethodInvokingTimerTaskFactoryBean.java @@ -53,14 +53,17 @@ public class MethodInvokingTimerTaskFactoryBean extends MethodInvokingRunnable i } + @Override public TimerTask getObject() { return this.timerTask; } + @Override public Class getObjectType() { return TimerTask.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context/src/main/java/org/springframework/scheduling/timer/TimerFactoryBean.java b/spring-context/src/main/java/org/springframework/scheduling/timer/TimerFactoryBean.java index c0de9b4eb9..18faa7926f 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/timer/TimerFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/scheduling/timer/TimerFactoryBean.java @@ -88,11 +88,13 @@ public class TimerFactoryBean implements FactoryBean, BeanNameAware, Init this.daemon = daemon; } + @Override public void setBeanName(String beanName) { this.beanName = beanName; } + @Override public void afterPropertiesSet() { logger.info("Initializing Timer"); this.timer = createTimer(this.beanName, this.daemon); @@ -144,14 +146,17 @@ public class TimerFactoryBean implements FactoryBean, BeanNameAware, Init } + @Override public Timer getObject() { return this.timer; } + @Override public Class getObjectType() { return Timer.class; } + @Override public boolean isSingleton() { return true; } @@ -161,6 +166,7 @@ public class TimerFactoryBean implements FactoryBean, BeanNameAware, Init * Cancel the Timer on bean factory shutdown, stopping all scheduled tasks. * @see java.util.Timer#cancel() */ + @Override public void destroy() { logger.info("Cancelling Timer"); this.timer.cancel(); diff --git a/spring-context/src/main/java/org/springframework/scheduling/timer/TimerTaskExecutor.java b/spring-context/src/main/java/org/springframework/scheduling/timer/TimerTaskExecutor.java index 03979dc45a..af24b3ba18 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/timer/TimerTaskExecutor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/timer/TimerTaskExecutor.java @@ -96,11 +96,13 @@ public class TimerTaskExecutor implements SchedulingTaskExecutor, BeanNameAware, this.delay = delay; } + @Override public void setBeanName(String beanName) { this.beanName = beanName; } + @Override public void afterPropertiesSet() { if (this.timer == null) { logger.info("Initializing Timer"); @@ -141,21 +143,25 @@ public class TimerTaskExecutor implements SchedulingTaskExecutor, BeanNameAware, * wrapping it in a {@link DelegatingTimerTask}. * @param task the task to be executed */ + @Override public void execute(Runnable task) { getTimer().schedule(new DelegatingTimerTask(task), this.delay); } + @Override public void execute(Runnable task, long startTimeout) { long actualDelay = (startTimeout < this.delay ? startTimeout : this.delay); getTimer().schedule(new DelegatingTimerTask(task), actualDelay); } + @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); @@ -165,6 +171,7 @@ public class TimerTaskExecutor implements SchedulingTaskExecutor, BeanNameAware, /** * This task executor prefers short-lived work units. */ + @Override public boolean prefersShortLivedTasks() { return true; } @@ -174,6 +181,7 @@ public class TimerTaskExecutor implements SchedulingTaskExecutor, BeanNameAware, * Cancel the {@link Timer} on bean factory shutdown, stopping all scheduled tasks. * @see java.util.Timer#cancel() */ + @Override public void destroy() { if (this.timerInternal) { logger.info("Cancelling Timer"); 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 2d94a16cb8..f22a9a50a8 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 class BshScriptFactory implements ScriptFactory, BeanClassLoaderAware { 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 BshScriptFactory implements ScriptFactory, BeanClassLoaderAware { /** * BeanShell scripts do require a config interface. */ + @Override public boolean requiresConfigInterface() { return true; } @@ -108,6 +112,7 @@ public class BshScriptFactory implements ScriptFactory, BeanClassLoaderAware { * 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 class BshScriptFactory implements ScriptFactory, BeanClassLoaderAware { } } + @Override public Class getScriptedObjectType(ScriptSource scriptSource) throws IOException, ScriptCompilationException { @@ -177,6 +183,7 @@ public class BshScriptFactory implements ScriptFactory, BeanClassLoaderAware { } } + @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 d71298e29c..1ad320493c 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 abstract class BshScriptUtils { 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 e66455a8d6..b7888faa78 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 @@ import org.springframework.beans.factory.xml.NamespaceHandlerSupport; */ 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 d0766b95f4..b545262486 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 e40871defb..85bebc5731 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 @@ -99,12 +99,14 @@ public class GroovyScriptFactory implements ScriptFactory, BeanFactoryAware, Bea } + @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); } @@ -122,6 +124,7 @@ public class GroovyScriptFactory implements ScriptFactory, BeanFactoryAware, Bea } + @Override public String getScriptSourceLocator() { return this.scriptSourceLocator; } @@ -131,6 +134,7 @@ public class GroovyScriptFactory implements ScriptFactory, BeanFactoryAware, Bea * hence we don't need to explicitly expose interfaces here. * @return {@code null} always */ + @Override public Class[] getScriptInterfaces() { return null; } @@ -139,6 +143,7 @@ public class GroovyScriptFactory implements ScriptFactory, BeanFactoryAware, Bea * Groovy scripts do not need a config interface, * since they expose their setters as public methods. */ + @Override public boolean requiresConfigInterface() { return false; } @@ -148,6 +153,7 @@ public class GroovyScriptFactory implements ScriptFactory, BeanFactoryAware, Bea * Loads and parses the Groovy script via the GroovyClassLoader. * @see groovy.lang.GroovyClassLoader */ + @Override public Object getScriptedObject(ScriptSource scriptSource, Class[] actualInterfaces) throws IOException, ScriptCompilationException { @@ -189,6 +195,7 @@ public class GroovyScriptFactory implements ScriptFactory, BeanFactoryAware, Bea } } + @Override public Class getScriptedObjectType(ScriptSource scriptSource) throws IOException, ScriptCompilationException { @@ -218,6 +225,7 @@ public class GroovyScriptFactory implements ScriptFactory, BeanFactoryAware, Bea } } + @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 3611f04e5c..81a785e222 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 @@ -67,15 +67,18 @@ public class JRubyScriptFactory implements ScriptFactory, BeanClassLoaderAware { } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public String getScriptSourceLocator() { return this.scriptSourceLocator; } + @Override public Class[] getScriptInterfaces() { return this.scriptInterfaces; } @@ -83,6 +86,7 @@ public class JRubyScriptFactory implements ScriptFactory, BeanClassLoaderAware { /** * JRuby scripts do require a config interface. */ + @Override public boolean requiresConfigInterface() { return true; } @@ -91,6 +95,7 @@ public class JRubyScriptFactory implements ScriptFactory, BeanClassLoaderAware { * 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 { @@ -108,12 +113,14 @@ public class JRubyScriptFactory implements ScriptFactory, BeanClassLoaderAware { } } + @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 2271d1b53d..1aecc365a8 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 abstract class JRubyScriptUtils { 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 23be717eac..ea4ee583d2 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 class ResourceScriptSource implements ScriptSource { return this.resource; } + @Override public String getScriptAsString() throws IOException { synchronized (this.lastModifiedMonitor) { this.lastModified = retrieveLastModifiedTime(); @@ -86,6 +87,7 @@ public class ResourceScriptSource implements ScriptSource { return FileCopyUtils.copyToString(reader); } + @Override public boolean isModified() { synchronized (this.lastModifiedMonitor) { return (this.lastModified < 0 || retrieveLastModifiedTime() > this.lastModified); @@ -108,6 +110,7 @@ public class ResourceScriptSource implements ScriptSource { } } + @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 d46917005f..84ea6a9d27 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 class ScriptFactoryPostProcessor extends InstantiationAwareBeanPostProces 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 class ScriptFactoryPostProcessor extends InstantiationAwareBeanPostProces } } + @Override public void setResourceLoader(ResourceLoader resourceLoader) { this.resourceLoader = resourceLoader; } + @Override public int getOrder() { return Integer.MIN_VALUE; } @@ -570,6 +574,7 @@ public class ScriptFactoryPostProcessor extends InstantiationAwareBeanPostProces /** * 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 5afede47a8..dbd937a0f0 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 class StaticScriptSource implements ScriptSource { } + @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 b2710d4bde..c7b6ffbb14 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 class ExtendedModelMap extends ModelMap implements Model { 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 789e0132cd..75caa42182 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 a0c195df32..c595af8cf2 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 class ResourceBundleThemeSource implements HierarchicalThemeSource { } } + @Override public ThemeSource getParentThemeSource() { return this.parentThemeSource; } @@ -93,6 +95,7 @@ public class ResourceBundleThemeSource implements HierarchicalThemeSource { * @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 47910c9995..37d14c5115 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 class SimpleTheme implements Theme { } + @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 65ead97598..5d33eb37ec 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 abstract class AbstractBindingResult extends AbstractErrors implements Bi // 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 abstract class AbstractBindingResult extends AbstractErrors implements Bi 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 abstract class AbstractBindingResult extends AbstractErrors implements Bi 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 abstract class AbstractBindingResult extends AbstractErrors implements Bi return Collections.unmodifiableList(this.errors); } + @Override public List getGlobalErrors() { List result = new LinkedList(); for (ObjectError objectError : this.errors) { @@ -166,6 +174,7 @@ public abstract class AbstractBindingResult extends AbstractErrors implements Bi return null; } + @Override public List getFieldErrors() { List result = new LinkedList(); for (ObjectError objectError : this.errors) { @@ -212,6 +221,7 @@ public abstract class AbstractBindingResult extends AbstractErrors implements Bi 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 abstract class AbstractBindingResult extends AbstractErrors implements Bi * @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 abstract class AbstractBindingResult extends AbstractErrors implements Bi return model; } + @Override public Object getRawFieldValue(String field) { return getActualFieldValue(fixedField(field)); } @@ -280,6 +292,7 @@ public abstract class AbstractBindingResult extends AbstractErrors implements Bi * {@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 abstract class AbstractBindingResult extends AbstractErrors implements Bi /** * This implementation returns {@code null}. */ + @Override public PropertyEditorRegistry getPropertyEditorRegistry() { return null; } @@ -307,6 +321,7 @@ public abstract class AbstractBindingResult extends AbstractErrors implements Bi * detected to target a disallowed field. * @see DataBinder#setAllowedFields */ + @Override public void recordSuppressedField(String field) { this.suppressedFields.add(field); } @@ -317,6 +332,7 @@ public abstract class AbstractBindingResult extends AbstractErrors implements Bi * disallowed fields. * @see DataBinder#setAllowedFields */ + @Override public String[] getSuppressedFields() { return StringUtils.toStringArray(this.suppressedFields); } @@ -349,6 +365,7 @@ public abstract class AbstractBindingResult extends AbstractErrors implements Bi /** * 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 3ab515bc89..18c566644c 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 @@ public abstract class AbstractErrors implements Errors, Serializable { } + @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 abstract class AbstractErrors implements Errors, Serializable { 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 abstract class AbstractErrors implements Errors, Serializable { 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 e7896996b3..fc3e8e00fa 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 class BindException extends Exception implements BindingResult { } + @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 a9d5d83587..791668470a 100644 --- a/spring-context/src/main/java/org/springframework/validation/DataBinder.java +++ b/spring-context/src/main/java/org/springframework/validation/DataBinder.java @@ -532,28 +532,34 @@ public class DataBinder implements PropertyEditorRegistry, TypeConverter { 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 08fc3b97e5..e1ae7d4b5d 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 class DefaultBindingErrorProcessor implements BindingErrorProcessor { 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 4dc62f449f..4973f1e480 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 @@ public class DefaultMessageCodesResolver implements MessageCodesResolver, Serial } + @Override public String[] resolveMessageCodes(String errorCode, String objectName) { return resolveMessageCodes(errorCode, objectName, "", null); } @@ -144,6 +145,7 @@ public class DefaultMessageCodesResolver implements MessageCodesResolver, Serial * 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 class DefaultMessageCodesResolver implements MessageCodesResolver, Serial * {@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 class DefaultMessageCodesResolver implements MessageCodesResolver, Serial * {@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 899207cb5a..d88ab54298 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 class BeanValidationPostProcessor implements BeanPostProcessor, Initializ this.afterInitialization = afterInitialization; } + @Override public void afterPropertiesSet() { if (this.validator == null) { this.validator = Validation.buildDefaultValidatorFactory().getValidator(); @@ -79,6 +80,7 @@ public class BeanValidationPostProcessor implements BeanPostProcessor, Initializ } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (!this.afterInitialization) { doValidate(bean); @@ -86,6 +88,7 @@ public class BeanValidationPostProcessor implements BeanPostProcessor, Initializ 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 2001e78aee..1648ebc340 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 class CustomValidatorBean extends SpringValidatorAdapter implements Valid } + @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 1cc392278f..48e3372dd3 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 @@ -171,11 +171,13 @@ public class LocalValidatorFactoryBean extends SpringValidatorAdapter return this.validationPropertyMap; } + @Override public void setApplicationContext(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } + @Override @SuppressWarnings("unchecked") public void afterPropertiesSet() { @SuppressWarnings("rawtypes") @@ -222,22 +224,27 @@ public class LocalValidatorFactoryBean extends SpringValidatorAdapter } + @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(); } 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 06c897fc16..afaf2d047a 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 class LocaleContextMessageInterpolator implements MessageInterpolator { } + @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 83c538e38c..9f17fab589 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 class MessageSourceResourceBundleLocator implements ResourceBundleLocator 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 58cd161175..b2e06ed05c 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 @@ -83,6 +83,7 @@ public class MethodValidationInterceptor implements MethodInterceptor { } + @Override public Object invoke(MethodInvocation invocation) throws Throwable { Class[] groups = determineValidationGroups(invocation); Set> result = this.validator.validateAllParameters( 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 c8d909bd42..de7450ed6f 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 class MethodValidationPostProcessor extends AbstractAdvisingBeanPostProce 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 e619287cff..878e7bb6d0 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 class SpringConstraintValidatorFactory implements ConstraintValidatorFact } + @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 1a51c37bb9..99e9802234 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 @@ public class SpringValidatorAdapter implements SmartValidator, javax.validation. // 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(); @@ -191,24 +194,29 @@ public class SpringValidatorAdapter implements SmartValidator, javax.validation. // 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-core/src/main/java/org/springframework/core/AttributeAccessorSupport.java b/spring-core/src/main/java/org/springframework/core/AttributeAccessorSupport.java index cf351f42cf..dbbe1aff51 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 abstract class AttributeAccessorSupport implements AttributeAccessor, Ser } } + @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 6430ff7fb2..e47f72eaeb 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 abstract class ControlFlowFactory { /** * 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 abstract class ControlFlowFactory { * 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 abstract class ControlFlowFactory { * 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 53e3425f36..ffe9c45cce 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 class ExceptionDepthComparator implements Comparator 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 588472532c..6732f58b52 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) { Class declaringClass = method.getDeclaringClass(); Map map = this.parameterNamesCache.get(declaringClass); @@ -78,6 +79,7 @@ public class LocalVariableTableParameterNameDiscoverer implements ParameterNameD 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 16158ca1ad..51408c7441 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 e65e88cd21..8d883eddd3 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 class PrioritizedParameterNameDiscoverer implements ParameterNameDiscover } + @Override public String[] getParameterNames(Method method) { for (ParameterNameDiscoverer pnd : this.parameterNameDiscoverers) { String[] result = pnd.getParameterNames(method); @@ -58,6 +59,7 @@ public class PrioritizedParameterNameDiscoverer implements ParameterNameDiscover 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 24b33f7683..82fe66159b 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 @@ public class SimpleAliasRegistry implements AliasRegistry { return true; } + @Override public void removeAlias(String alias) { String name = this.aliasMap.remove(alias); if (name == null) { @@ -75,10 +77,12 @@ public class SimpleAliasRegistry implements AliasRegistry { } } + @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/convert/converter/ConvertingComparator.java b/spring-core/src/main/java/org/springframework/core/convert/converter/ConvertingComparator.java index 3e2d741523..31c511282f 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 class ConvertingComparator implements 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 class ConvertingComparator implements Comparator { 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 class ConvertingComparator implements Comparator { 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 class ConvertingComparator implements Comparator { 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 2b52d25b17..0fb2f4de17 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 @@ final class ArrayToArrayConverter implements ConditionalGenericConverter { 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 4e028b49a9..9ee37f783d 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 @@ final class ArrayToCollectionConverter implements ConditionalGenericConverter { 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 1db3b2ec7f..5f69e0e638 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 @@ final class ArrayToObjectConverter implements ConditionalGenericConverter { 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 15e9e608ed..548872c0a6 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 @@ final class ArrayToStringConverter implements ConditionalGenericConverter { 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 8f9642b0fb..f698500020 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 @@ import org.springframework.util.NumberUtils; */ final class CharacterToNumberFactory implements ConverterFactory { + @Override public Converter getConverter(Class targetType) { return new CharacterToNumber(targetType); } @@ -52,6 +53,7 @@ final class CharacterToNumberFactory implements ConverterFactory 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 42ad1e8c39..6fcd271feb 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 @@ final class CollectionToCollectionConverter implements ConditionalGenericConvert 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 b9913ef6b4..bf4b591922 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 @@ final class CollectionToObjectConverter implements ConditionalGenericConverter { 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 02b9d0eb77..428f399051 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 @@ final class CollectionToStringConverter implements ConditionalGenericConverter { 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 e391b75bb3..bfd1762d96 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 @@ final class EnumToStringConverter implements Converter, String>, Conditi 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 @@ final class EnumToStringConverter implements Converter, String>, Conditi 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 071ad3b647..767a0acb46 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 @@ import org.springframework.core.convert.converter.ConditionalGenericConverter; */ 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 @@ final class FallbackObjectToStringConverter implements ConditionalGenericConvert 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 148dbee97d..c20f852af7 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 class GenericConversionService implements ConfigurableConversionService { 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 class GenericConversionService implements ConfigurableConversionService { addConverter(new ConverterFactoryAdapter(typeInfo, converterFactory)); } + @Override public void removeConvertible(Class sourceType, Class targetType) { this.converters.remove(sourceType, targetType); invalidateCache(); @@ -113,6 +118,7 @@ public class GenericConversionService implements ConfigurableConversionService { // 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 class GenericConversionService implements ConfigurableConversionService { 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 class GenericConversionService implements ConfigurableConversionService { 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) { @@ -308,10 +317,12 @@ public class GenericConversionService implements ConfigurableConversionService { } + @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 +333,7 @@ public class GenericConversionService implements ConfigurableConversionService { return true; } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { return convertNullSource(sourceType, targetType); @@ -354,10 +366,12 @@ public class GenericConversionService implements ConfigurableConversionService { } + @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 +386,7 @@ public class GenericConversionService implements ConfigurableConversionService { return matches; } + @Override public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { if (source == null) { return convertNullSource(sourceType, targetType); @@ -617,10 +632,12 @@ public class GenericConversionService implements ConfigurableConversionService { } + @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 653712660b..e80bd599cd 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 @@ final class IdToEntityConverter implements ConditionalGenericConverter { 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 c2dc4bfc20..eadacf3071 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 @@ final class MapToMapConverter implements ConditionalGenericConverter { 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 b272abc6fa..11090a0d11 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 @@ import org.springframework.core.convert.converter.Converter; */ 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 240880d67f..b98af70e31 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 @@ import org.springframework.util.NumberUtils; 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 @@ final class NumberToNumberConverterFactory implements ConverterFactory 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 7741128b53..63a348ecb2 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 @@ final class ObjectToCollectionConverter implements ConditionalGenericConverter { 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 0448e5824f..e1273221b8 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 @@ import org.springframework.util.ReflectionUtils; */ 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 @@ final class ObjectToObjectConverter implements ConditionalGenericConverter { 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 37be40401e..4b3604ed5d 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 @@ import org.springframework.core.convert.converter.Converter; */ 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 8902d0e9d3..4ccb387a9b 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 @@ import org.springframework.core.convert.converter.Converter; */ 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 4bf32af3e8..0fa7696dd6 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 @@ final class StringToArrayConverter implements ConditionalGenericConverter { 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 1e23ee61bb..d5dc90cf70 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 3e3791642a..83477f5d78 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 @@ import org.springframework.core.convert.converter.Converter; */ 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 553425f377..35d6083c92 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 @@ final class StringToCollectionConverter implements ConditionalGenericConverter { 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 @@ final class StringToCollectionConverter implements ConditionalGenericConverter { } } + @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 62cf4748ea..e47748942b 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 @@ -28,6 +28,7 @@ import org.springframework.core.convert.converter.ConverterFactory; @SuppressWarnings({ "unchecked", "rawtypes" }) final class StringToEnumConverterFactory implements ConverterFactory { + @Override public Converter getConverter(Class targetType) { return new StringToEnum(targetType); } @@ -40,6 +41,7 @@ final class StringToEnumConverterFactory implements ConverterFactory { + @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 8bb0d6460b..17fc6975ed 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 @@ import org.springframework.util.NumberUtils; */ final class StringToNumberConverterFactory implements ConverterFactory { + @Override public Converter getConverter(Class targetType) { return new StringToNumber(targetType); } @@ -52,6 +53,7 @@ final class StringToNumberConverterFactory implements ConverterFactory { + @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 6478d47845..b97335a83b 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 @@ import org.springframework.util.StringUtils; */ 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/enums/AbstractCachingLabeledEnumResolver.java b/spring-core/src/main/java/org/springframework/core/enums/AbstractCachingLabeledEnumResolver.java index 4a278f92eb..94c3e969b9 100644 --- a/spring-core/src/main/java/org/springframework/core/enums/AbstractCachingLabeledEnumResolver.java +++ b/spring-core/src/main/java/org/springframework/core/enums/AbstractCachingLabeledEnumResolver.java @@ -50,15 +50,18 @@ public abstract class AbstractCachingLabeledEnumResolver implements LabeledEnumR private final LabeledEnumCache labeledEnumCache = new LabeledEnumCache(); + @Override public Set getLabeledEnumSet(Class type) throws IllegalArgumentException { return new TreeSet(getLabeledEnumMap(type).values()); } + @Override public Map getLabeledEnumMap(Class type) throws IllegalArgumentException { Assert.notNull(type, "No type specified"); return this.labeledEnumCache.get(type); } + @Override public LabeledEnum getLabeledEnumByCode(Class type, Comparable code) throws IllegalArgumentException { Assert.notNull(code, "No enum code specified"); Map typeEnums = getLabeledEnumMap(type); @@ -72,6 +75,7 @@ public abstract class AbstractCachingLabeledEnumResolver implements LabeledEnumR return codedEnum; } + @Override public LabeledEnum getLabeledEnumByLabel(Class type, String label) throws IllegalArgumentException { Map typeEnums = getLabeledEnumMap(type); for (LabeledEnum value : typeEnums.values()) { diff --git a/spring-core/src/main/java/org/springframework/core/enums/AbstractGenericLabeledEnum.java b/spring-core/src/main/java/org/springframework/core/enums/AbstractGenericLabeledEnum.java index cee9535cee..329d01721a 100644 --- a/spring-core/src/main/java/org/springframework/core/enums/AbstractGenericLabeledEnum.java +++ b/spring-core/src/main/java/org/springframework/core/enums/AbstractGenericLabeledEnum.java @@ -43,6 +43,7 @@ public abstract class AbstractGenericLabeledEnum extends AbstractLabeledEnum { } + @Override public String getLabel() { if (this.label != null) { return label; diff --git a/spring-core/src/main/java/org/springframework/core/enums/AbstractLabeledEnum.java b/spring-core/src/main/java/org/springframework/core/enums/AbstractLabeledEnum.java index 3c2860f74b..dedc90eaef 100644 --- a/spring-core/src/main/java/org/springframework/core/enums/AbstractLabeledEnum.java +++ b/spring-core/src/main/java/org/springframework/core/enums/AbstractLabeledEnum.java @@ -35,12 +35,14 @@ public abstract class AbstractLabeledEnum implements LabeledEnum { protected AbstractLabeledEnum() { } + @Override public Class getType() { // Could be coded as getClass().isAnonymousClass() on JDK 1.5 boolean isAnonymous = (getClass().getDeclaringClass() == null && getClass().getName().indexOf('$') != -1); return (isAnonymous ? getClass().getSuperclass() : getClass()); } + @Override public int compareTo(Object obj) { if (!(obj instanceof LabeledEnum)) { throw new ClassCastException("You may only compare LabeledEnums"); diff --git a/spring-core/src/main/java/org/springframework/core/enums/LabeledEnum.java b/spring-core/src/main/java/org/springframework/core/enums/LabeledEnum.java index dc2325bfac..4e45ee35e2 100644 --- a/spring-core/src/main/java/org/springframework/core/enums/LabeledEnum.java +++ b/spring-core/src/main/java/org/springframework/core/enums/LabeledEnum.java @@ -67,6 +67,7 @@ public interface LabeledEnum extends Comparable, Serializable { * Shared Comparator instance that sorts enumerations by {@code CODE_ORDER}. */ Comparator CODE_ORDER = new Comparator() { + @Override public int compare(Object o1, Object o2) { Comparable c1 = ((LabeledEnum) o1).getCode(); Comparable c2 = ((LabeledEnum) o2).getCode(); @@ -78,6 +79,7 @@ public interface LabeledEnum extends Comparable, Serializable { * Shared Comparator instance that sorts enumerations by {@code LABEL_ORDER}. */ Comparator LABEL_ORDER = new Comparator() { + @Override public int compare(Object o1, Object o2) { LabeledEnum e1 = (LabeledEnum) o1; LabeledEnum e2 = (LabeledEnum) o2; diff --git a/spring-core/src/main/java/org/springframework/core/enums/LetterCodedLabeledEnum.java b/spring-core/src/main/java/org/springframework/core/enums/LetterCodedLabeledEnum.java index cb70971aab..5cee8e480b 100644 --- a/spring-core/src/main/java/org/springframework/core/enums/LetterCodedLabeledEnum.java +++ b/spring-core/src/main/java/org/springframework/core/enums/LetterCodedLabeledEnum.java @@ -52,6 +52,7 @@ public class LetterCodedLabeledEnum extends AbstractGenericLabeledEnum { } + @Override public Comparable getCode() { return code; } diff --git a/spring-core/src/main/java/org/springframework/core/enums/ShortCodedLabeledEnum.java b/spring-core/src/main/java/org/springframework/core/enums/ShortCodedLabeledEnum.java index 27a78d1c66..1e1fd291cd 100644 --- a/spring-core/src/main/java/org/springframework/core/enums/ShortCodedLabeledEnum.java +++ b/spring-core/src/main/java/org/springframework/core/enums/ShortCodedLabeledEnum.java @@ -49,6 +49,7 @@ public class ShortCodedLabeledEnum extends AbstractGenericLabeledEnum { } + @Override public Comparable getCode() { return code; } diff --git a/spring-core/src/main/java/org/springframework/core/enums/StaticLabeledEnum.java b/spring-core/src/main/java/org/springframework/core/enums/StaticLabeledEnum.java index e6440cc3b6..85d04f7276 100644 --- a/spring-core/src/main/java/org/springframework/core/enums/StaticLabeledEnum.java +++ b/spring-core/src/main/java/org/springframework/core/enums/StaticLabeledEnum.java @@ -73,10 +73,12 @@ public abstract class StaticLabeledEnum extends AbstractLabeledEnum { } } + @Override public Comparable getCode() { return code; } + @Override public String getLabel() { return label; } diff --git a/spring-core/src/main/java/org/springframework/core/enums/StringCodedLabeledEnum.java b/spring-core/src/main/java/org/springframework/core/enums/StringCodedLabeledEnum.java index d0a936effd..296c8e8054 100644 --- a/spring-core/src/main/java/org/springframework/core/enums/StringCodedLabeledEnum.java +++ b/spring-core/src/main/java/org/springframework/core/enums/StringCodedLabeledEnum.java @@ -53,6 +53,7 @@ public class StringCodedLabeledEnum extends AbstractGenericLabeledEnum { } + @Override public Comparable getCode() { return this.code; } 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 f8741fb6ea..1079167915 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 @@ public abstract class AbstractEnvironment implements ConfigurableEnvironment { // Implementation of ConfigurableEnvironment interface //--------------------------------------------------------------------- + @Override public String[] getActiveProfiles() { return StringUtils.toStringArray(doGetActiveProfiles()); } @@ -236,6 +237,7 @@ public abstract class AbstractEnvironment implements ConfigurableEnvironment { 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 abstract class AbstractEnvironment implements ConfigurableEnvironment { } } + @Override public void addActiveProfile(String profile) { if (this.logger.isDebugEnabled()) { this.logger.debug(format("Activating profile '%s'", profile)); @@ -255,6 +258,7 @@ public abstract class AbstractEnvironment implements ConfigurableEnvironment { } + @Override public String[] getDefaultProfiles() { return StringUtils.toStringArray(doGetDefaultProfiles()); } @@ -288,6 +292,7 @@ public abstract class AbstractEnvironment implements ConfigurableEnvironment { * @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 abstract class AbstractEnvironment implements ConfigurableEnvironment { } } + @Override public boolean acceptsProfiles(String... profiles) { Assert.notEmpty(profiles, "Must specify at least one profile"); for (String profile : profiles) { @@ -337,10 +343,12 @@ public abstract class AbstractEnvironment implements ConfigurableEnvironment { "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 @@ public abstract class AbstractEnvironment implements ConfigurableEnvironment { return (Map) systemEnvironment; } + @Override @SuppressWarnings({"unchecked", "rawtypes"}) public Map getSystemProperties() { Map systemProperties; @@ -397,6 +406,7 @@ public abstract class AbstractEnvironment implements ConfigurableEnvironment { return systemProperties; } + @Override public void merge(ConfigurableEnvironment parent) { for (PropertySource ps : parent.getPropertySources()) { if (!this.propertySources.contains(ps.getName())) { @@ -419,74 +429,92 @@ public abstract class AbstractEnvironment implements ConfigurableEnvironment { // 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 9d61649648..77bf33ab21 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 abstract class AbstractPropertyResolver implements ConfigurablePropertyRe } } + @Override public String getRequiredProperty(String key) throws IllegalStateException { String value = getProperty(key); if (value == null) { @@ -97,6 +104,7 @@ public abstract class AbstractPropertyResolver implements ConfigurablePropertyRe 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 abstract class AbstractPropertyResolver implements ConfigurablePropertyRe * {@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 abstract class AbstractPropertyResolver implements ConfigurablePropertyRe * {@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 abstract class AbstractPropertyResolver implements ConfigurablePropertyRe * {@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 abstract class AbstractPropertyResolver implements ConfigurablePropertyRe return doResolvePlaceholders(text, nonStrictHelper); } + @Override public String resolveRequiredPlaceholders(String text) throws IllegalArgumentException { if (strictHelper == null) { strictHelper = createPlaceholderHelper(false); @@ -148,6 +161,7 @@ public abstract class AbstractPropertyResolver implements ConfigurablePropertyRe *

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 @@ public abstract class AbstractPropertyResolver implements ConfigurablePropertyRe 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 a8767da54e..117b3f12d9 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 abstract class EnumerablePropertySource extends PropertySource { * 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 b085d09afd..0a7c14120f 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 class MutablePropertySources implements 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 f761527437..08d482ba03 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 class PropertySourcesPropertyResolver extends AbstractPropertyResolver { this.propertySources = propertySources; } + @Override public boolean containsProperty(String key) { for (PropertySource propertySource : this.propertySources) { if (propertySource.containsProperty(key)) { @@ -52,6 +53,7 @@ public class PropertySourcesPropertyResolver extends AbstractPropertyResolver { 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 class PropertySourcesPropertyResolver extends AbstractPropertyResolver { 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 class PropertySourcesPropertyResolver extends AbstractPropertyResolver { 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 df310c6002..f4f99c930c 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 @@ -35,6 +35,7 @@ import org.springframework.util.Assert; */ abstract class ReadOnlySystemAttributesMap implements Map { + @Override public boolean containsKey(Object key) { return get(key) != null; } @@ -43,6 +44,7 @@ abstract class ReadOnlySystemAttributesMap implements Map { * @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", @@ -51,6 +53,7 @@ abstract class ReadOnlySystemAttributesMap implements Map { return this.getSystemAttribute((String) key); } + @Override public boolean isEmpty() { return false; } @@ -64,38 +67,47 @@ abstract class ReadOnlySystemAttributesMap implements Map { // 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() { throw new UnsupportedOperationException(); } + @Override public void putAll(Map m) { throw new UnsupportedOperationException(); } + @Override public Collection values() { throw new UnsupportedOperationException(); } + @Override public Set> entrySet() { throw new UnsupportedOperationException(); } 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 b035c9ef53..8dd0e7d57a 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 abstract class AbstractResource implements Resource { /** * This implementation always returns {@code true}. */ + @Override public boolean isReadable() { return true; } @@ -74,6 +76,7 @@ public abstract class AbstractResource implements Resource { /** * This implementation always returns {@code false}. */ + @Override public boolean isOpen() { return false; } @@ -82,6 +85,7 @@ public abstract class AbstractResource implements Resource { * 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 abstract class AbstractResource implements Resource { * 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 abstract class AbstractResource implements Resource { * 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 abstract class AbstractResource implements Resource { * @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 abstract class AbstractResource implements Resource { * if available. * @see #getFileForLastModifiedCheck() */ + @Override public long lastModified() throws IOException { long lastModified = getFileForLastModifiedCheck().lastModified(); if (lastModified == 0L) { @@ -165,6 +173,7 @@ public abstract class AbstractResource implements Resource { * 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 abstract class AbstractResource implements Resource { * 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 d195def969..b9709e3808 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 class ByteArrayResource extends AbstractResource { * underlying byte array. * @see java.io.ByteArrayInputStream */ + @Override public InputStream getInputStream() throws IOException { return new ByteArrayInputStream(this.byteArray); } @@ -100,6 +101,7 @@ public class ByteArrayResource extends AbstractResource { /** * 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 e881d4034c..f14f22613a 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 class ClassPathResource extends AbstractFileResolvingResource { * @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 class ClassPathResource extends AbstractFileResolvingResource { /** * This implementation returns a description that includes the class path location. */ + @Override public String getDescription() { StringBuilder builder = new StringBuilder("class path resource ["); 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 00f267e443..bcf88fa127 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 class ClassRelativeResourceLoader extends DefaultResourceLoader { setClassLoader(clazz.getClassLoader()); } + @Override protected Resource getResourceByPath(String path) { return new ClassRelativeContextResource(path, this.clazz); } @@ -61,6 +62,7 @@ public class ClassRelativeResourceLoader extends DefaultResourceLoader { 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 1a390f04ec..09e5e908b0 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 class DefaultResourceLoader implements ResourceLoader { * 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 class DefaultResourceLoader implements ResourceLoader { 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 8385891ea3..7202147922 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 class DescriptiveResource extends AbstractResource { 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 57da655a5d..e47ee5390f 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 class FileSystemResource extends AbstractResource implements WritableReso * 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 class FileSystemResource extends AbstractResource implements WritableReso * path of the file. * @see java.io.File#getAbsolutePath() */ + @Override public String getDescription() { return "file [" + this.file.getAbsolutePath() + "]"; } @@ -185,6 +187,7 @@ public class FileSystemResource extends AbstractResource implements WritableReso * @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 class FileSystemResource extends AbstractResource implements WritableReso * 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 d811d91f80..f1ef298c26 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 class FileSystemResourceLoader extends DefaultResourceLoader { 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 d9b2405c99..3a37cac97a 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 class InputStreamResource extends AbstractResource { * 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 class InputStreamResource extends AbstractResource { /** * 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 5c37b0b448..0a94c76ba5 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 @@ -118,6 +118,7 @@ public class UrlResource extends AbstractFileResolvingResource { * @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); @@ -196,6 +197,7 @@ public class UrlResource extends AbstractFileResolvingResource { /** * 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 4877d0ad7b..2b492ab0b9 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 class VfsResource extends AbstractResource { } + @Override public InputStream getInputStream() throws IOException { return VfsUtils.getInputStream(this.resource); } @@ -114,6 +115,7 @@ public class VfsResource extends AbstractResource { 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 9b2f8493b6..3b5238da86 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 class PathMatchingResourcePatternResolver implements ResourcePatternResol * Return the ClassLoader that this pattern resolver works with * (never {@code null}). */ + @Override public ClassLoader getClassLoader() { return getResourceLoader().getClassLoader(); } @@ -253,10 +254,12 @@ public class PathMatchingResourcePatternResolver implements ResourcePatternResol } + @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)) { @@ -674,6 +677,7 @@ public class PathMatchingResourcePatternResolver implements ResourcePatternResol 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())) { 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 f61f697d2f..66a91b3836 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 04fe8bed5a..6146ee018c 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 200206113d..49cb0c9627 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 class DeserializingConverter implements Converter { } + @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 3ae7ca3b12..042bf74390 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 class SerializingConverter implements Converter { /** * 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 f81cb4a82e..97a6ce23ce 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 @@ public class DefaultToStringStyler implements ToStringStyler { } + @Override public void styleStart(StringBuilder buffer, Object obj) { if (!obj.getClass().isArray()) { buffer.append('[').append(ClassUtils.getShortName(obj.getClass())); @@ -70,10 +71,12 @@ public class DefaultToStringStyler implements ToStringStyler { 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 @@ public class DefaultToStringStyler implements ToStringStyler { 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 2e6251c0f5..a0063b2374 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 f6b714007e..21622a29cc 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 class SimpleAsyncTaskExecutor extends CustomizableThreadCreator implement * 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 class SimpleAsyncTaskExecutor extends CustomizableThreadCreator implement * @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 class SimpleAsyncTaskExecutor extends CustomizableThreadCreator implement } } + @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 class SimpleAsyncTaskExecutor extends CustomizableThreadCreator implement 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 47bebf4676..64f8c7934e 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 fea960e3c6..bf8b9f910e 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 2acf1a281f..0ed48c4f67 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 class ConcurrentExecutorAdapter implements Executor { } + @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 0c594b93a1..393ecee66d 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 class ExecutorServiceAdapter extends AbstractExecutorService { } + @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 bd2df283d7..9247995065 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 class TaskExecutorAdapter implements AsyncTaskExecutor { * 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 class TaskExecutorAdapter implements AsyncTaskExecutor { } } + @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 class TaskExecutorAdapter implements AsyncTaskExecutor { } } + @Override public Future submit(Callable task) { try { if (this.concurrentExecutor instanceof ExecutorService) { 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 1e5d00a9ca..a0f5c2a46b 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 @@ -64,6 +64,7 @@ public class StandardAnnotationMetadata extends StandardClassMetadata implements } + @Override public Set getAnnotationTypes() { Set types = new LinkedHashSet(); Annotation[] anns = getIntrospectedClass().getAnnotations(); @@ -73,6 +74,7 @@ public class StandardAnnotationMetadata extends StandardClassMetadata implements return types; } + @Override public Set getMetaAnnotationTypes(String annotationType) { Annotation[] anns = getIntrospectedClass().getAnnotations(); for (Annotation ann : anns) { @@ -91,6 +93,7 @@ public class StandardAnnotationMetadata extends StandardClassMetadata implements return null; } + @Override public boolean hasAnnotation(String annotationType) { Annotation[] anns = getIntrospectedClass().getAnnotations(); for (Annotation ann : anns) { @@ -101,6 +104,7 @@ public class StandardAnnotationMetadata extends StandardClassMetadata implements return false; } + @Override public boolean hasMetaAnnotation(String annotationType) { Annotation[] anns = getIntrospectedClass().getAnnotations(); for (Annotation ann : anns) { @@ -119,6 +123,7 @@ public class StandardAnnotationMetadata extends StandardClassMetadata implements return false; } + @Override public boolean isAnnotated(String annotationType) { Annotation[] anns = getIntrospectedClass().getAnnotations(); for (Annotation ann : anns) { @@ -134,10 +139,12 @@ public class StandardAnnotationMetadata extends StandardClassMetadata implements return false; } + @Override public Map getAnnotationAttributes(String annotationType) { return this.getAnnotationAttributes(annotationType, false); } + @Override public Map getAnnotationAttributes(String annotationType, boolean classValuesAsString) { Annotation[] anns = getIntrospectedClass().getAnnotations(); for (Annotation ann : anns) { @@ -155,6 +162,7 @@ public class StandardAnnotationMetadata extends StandardClassMetadata implements return null; } + @Override public boolean hasAnnotatedMethods(String annotationType) { Method[] methods = getIntrospectedClass().getDeclaredMethods(); for (Method method : methods) { @@ -174,6 +182,7 @@ public class StandardAnnotationMetadata extends StandardClassMetadata implements 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 4ac99d4d4d..1b62d91c46 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 class StandardClassMetadata implements ClassMetadata { } + @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 class StandardClassMetadata implements ClassMetadata { 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 c6564c643f..4ba2beed94 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,26 +68,32 @@ public class StandardMethodMetadata implements MethodMetadata { } + @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) { Annotation[] anns = this.introspectedMethod.getAnnotations(); for (Annotation ann : anns) { @@ -103,6 +109,7 @@ public class StandardMethodMetadata implements MethodMetadata { return false; } + @Override public Map getAnnotationAttributes(String annotationType) { Annotation[] anns = this.introspectedMethod.getAnnotations(); for (Annotation ann : anns) { 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 cdf49fd6b6..a90f8e30ee 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 @@ -58,10 +58,12 @@ abstract class AbstractRecursiveAnnotationVisitor extends AnnotationVisitor { } + @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(); @@ -69,10 +71,12 @@ abstract class AbstractRecursiveAnnotationVisitor extends AnnotationVisitor { 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 valueToUse = attributeValue; try { @@ -134,6 +138,7 @@ final class RecursiveAnnotationArrayVisitor extends AbstractRecursiveAnnotationV return new RecursiveAnnotationAttributesVisitor(annotationType, nestedAttributes, this.classLoader); } + @Override public void visitEnd() { if (!this.allNestedAttributes.isEmpty()) { this.attributes.put(this.attributeName, this.allNestedAttributes.toArray( @@ -160,6 +165,7 @@ class RecursiveAnnotationAttributesVisitor extends AbstractRecursiveAnnotationVi } + @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 97a4897f81..bcc982f96e 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 @@ -74,18 +74,22 @@ final class AnnotationMetadataReadingVisitor extends ClassMetadataReadingVisitor } + @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) { @@ -96,14 +100,17 @@ final class AnnotationMetadataReadingVisitor extends ClassMetadataReadingVisitor 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) { return getAnnotationAttributes(annotationType, classValuesAsString, false); } @@ -169,10 +176,12 @@ final class AnnotationMetadataReadingVisitor extends ClassMetadataReadingVisitor return result; } + @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 45785bc8a3..0d78fc2737 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 @@ class ClassMetadataReadingVisitor extends ClassVisitor implements ClassMetadata } + @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 @@ class ClassMetadataReadingVisitor extends ClassVisitor implements ClassMetadata } } + @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 @@ class ClassMetadataReadingVisitor extends ClassVisitor implements ClassMetadata } } + @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 4cae5b5829..450dabb604 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 @@ -70,30 +70,37 @@ final class MethodMetadataReadingVisitor extends MethodVisitor implements Method 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 AnnotationAttributes getAnnotationAttributes(String annotationType) { return this.attributeMap.get(annotationType); } + @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 b2bf4405da..17964636ef 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 @@ -64,14 +64,17 @@ final class SimpleMetadataReader implements MetadataReader { this.resource = resource; } + @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 2d8b40b524..9719ddd57e 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 class SimpleMetadataReaderFactory implements MetadataReaderFactory { } + @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 3d4bbdd744..9ddf225895 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 @@ import org.springframework.core.type.classreading.MetadataReader; */ 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 82362b5670..1ae2eef2ee 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 @@ public abstract class AbstractTypeHierarchyTraversingFilter implements TypeFilte } + @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 262338d912..dc584ea443 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 class AspectJTypeFilter implements TypeFilter { } + @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 bbceda14dc..2953f306fe 100644 --- a/spring-core/src/main/java/org/springframework/util/AntPathMatcher.java +++ b/spring-core/src/main/java/org/springframework/util/AntPathMatcher.java @@ -67,14 +67,17 @@ public class AntPathMatcher implements PathMatcher { } + @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); } @@ -245,6 +248,7 @@ public class AntPathMatcher implements PathMatcher { *

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); String[] pathParts = StringUtils.tokenizeToStringArray(path, this.pathSeparator); @@ -275,6 +279,7 @@ public class AntPathMatcher implements PathMatcher { return builder.toString(); } + @Override public Map extractUriTemplateVariables(String pattern, String path) { Map variables = new LinkedHashMap(); boolean result = doMatch(pattern, path, true, variables); @@ -301,6 +306,7 @@ public class AntPathMatcher implements PathMatcher { * @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 ""; @@ -379,6 +385,7 @@ public class AntPathMatcher implements PathMatcher { * @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); } @@ -392,6 +399,7 @@ public class AntPathMatcher implements PathMatcher { 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 7a2135fb65..d58e0acd81 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 class AutoPopulatingList implements List, Serializable { } + @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 class AutoPopulatingList implements List, Serializable { * 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 class AutoPopulatingList implements List, Serializable { 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 class AutoPopulatingList implements List, Serializable { 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/CachingMapDecorator.java b/spring-core/src/main/java/org/springframework/util/CachingMapDecorator.java index d1290588fd..963babc1e0 100644 --- a/spring-core/src/main/java/org/springframework/util/CachingMapDecorator.java +++ b/spring-core/src/main/java/org/springframework/util/CachingMapDecorator.java @@ -117,18 +117,22 @@ public abstract class CachingMapDecorator implements Map, Serializab } + @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) { Object valueToCheck = (value != null ? value : NULL_VALUE); if (this.synchronize) { @@ -153,6 +157,7 @@ public abstract class CachingMapDecorator implements Map, Serializab return false; } + @Override public V remove(Object key) { return unwrapReturnValue(this.targetMap.remove(key)); } @@ -166,14 +171,17 @@ public abstract class CachingMapDecorator implements Map, Serializab return (returnValue == NULL_VALUE ? null : (V) returnValue); } + @Override public void putAll(Map map) { this.targetMap.putAll(map); } + @Override public void clear() { this.targetMap.clear(); } + @Override public Set keySet() { if (this.synchronize) { synchronized (this.targetMap) { @@ -185,6 +193,7 @@ public abstract class CachingMapDecorator implements Map, Serializab } } + @Override public Collection values() { if (this.synchronize) { synchronized (this.targetMap) { @@ -213,6 +222,7 @@ public abstract class CachingMapDecorator implements Map, Serializab return values; } + @Override public Set> entrySet() { if (this.synchronize) { synchronized (this.targetMap) { @@ -248,6 +258,7 @@ public abstract class CachingMapDecorator implements Map, Serializab * reference. * @see #useWeakValue(Object, Object) */ + @Override public V put(K key, V value) { Object newValue = value; if (value == null) { @@ -280,6 +291,7 @@ public abstract class CachingMapDecorator implements Map, Serializab * Consider overriding this method to synchronize it, if desired. * @see #create(Object) */ + @Override @SuppressWarnings("unchecked") public V get(Object key) { Object value = this.targetMap.get(key); 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 5e74473fa9..a16d5fecd4 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 abstract class CollectionUtils { 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 abstract class CollectionUtils { 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 abstract class CollectionUtils { 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 abstract class CollectionUtils { 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 1e70018f5c..7279368496 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 class CompositeIterator implements Iterator { iterators.add(iterator); } + @Override public boolean hasNext() { inUse = true; for (Iterator> it = iterators.iterator(); it.hasNext();) { @@ -58,6 +59,7 @@ public class CompositeIterator implements Iterator { return false; } + @Override public E next() { inUse = true; for (Iterator> it = iterators.iterator(); it.hasNext();) { @@ -69,6 +71,7 @@ public class CompositeIterator implements Iterator { 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 3da70f602b..c638f14a5d 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 class ConcurrentReferenceHashMap extends AbstractMap implemen return put(key, value, true); } + @Override public V putIfAbsent(K key, V value) { return put(key, value, false); } @@ -284,6 +285,7 @@ public class ConcurrentReferenceHashMap extends AbstractMap implemen }); } + @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 @@ public class ConcurrentReferenceHashMap extends AbstractMap implemen }); } + @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 @@ public class ConcurrentReferenceHashMap extends AbstractMap implemen }); } + @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 class ConcurrentReferenceHashMap extends AbstractMap implemen 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 class ConcurrentReferenceHashMap extends AbstractMap implemen moveToNextSegment(); } + @Override public boolean hasNext() { getNextIfNecessary(); return this.next != null; } + @Override public Entry next() { getNextIfNecessary(); if (this.next == null) { @@ -886,6 +895,7 @@ public class ConcurrentReferenceHashMap extends AbstractMap implemen } } + @Override public void remove() { Assert.state(this.last != null); ConcurrentReferenceHashMap.this.remove(this.last.getKey()); @@ -955,14 +965,17 @@ public class ConcurrentReferenceHashMap extends AbstractMap implemen 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 class ConcurrentReferenceHashMap extends AbstractMap implemen 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 19f2698c36..3cceeeace7 100644 --- a/spring-core/src/main/java/org/springframework/util/DefaultPropertiesPersister.java +++ b/spring-core/src/main/java/org/springframework/util/DefaultPropertiesPersister.java @@ -75,10 +75,12 @@ public class DefaultPropertiesPersister implements PropertiesPersister { ClassUtils.hasMethod(Properties.class, "store", new Class[] {Writer.class, String.class}); + @Override public void load(Properties props, InputStream is) throws IOException { props.load(is); } + @Override public void load(Properties props, Reader reader) throws IOException { if (loadFromReaderAvailable) { // On JDK 1.6+ @@ -157,10 +159,12 @@ public class DefaultPropertiesPersister implements PropertiesPersister { } + @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 { if (storeToWriterAvailable) { // On JDK 1.6+ @@ -227,6 +231,7 @@ public class DefaultPropertiesPersister implements PropertiesPersister { } + @Override public void loadFromXml(Properties props, InputStream is) throws IOException { try { props.loadFromXML(is); @@ -236,6 +241,7 @@ public class DefaultPropertiesPersister implements PropertiesPersister { } } + @Override public void storeToXml(Properties props, OutputStream os, String header) throws IOException { try { props.storeToXML(os, header); @@ -245,6 +251,7 @@ public class DefaultPropertiesPersister implements PropertiesPersister { } } + @Override public void storeToXml(Properties props, OutputStream os, String header, String encoding) throws IOException { try { 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 730047f7d1..5ba90a2d62 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 class LinkedMultiValueMap implements MultiValueMap, Serializa // MultiValueMap implementation + @Override public void add(K key, V value) { List values = this.targetMap.get(key); if (values == null) { @@ -79,23 +80,27 @@ public class LinkedMultiValueMap implements MultiValueMap, Serializa 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 class LinkedMultiValueMap implements MultiValueMap, Serializa // 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 5728b28604..99d666e5a5 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 class PropertyPlaceholderHelper { 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 87ba421141..0edaeca2d3 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 @@ public abstract class ReflectionUtils { 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 abstract class ReflectionUtils { 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 abstract class ReflectionUtils { + "] 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 abstract class ReflectionUtils { */ 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 abstract class ReflectionUtils { */ public static MethodFilter NON_BRIDGED_METHODS = new MethodFilter() { + @Override public boolean matches(Method method) { return !method.isBridge(); } @@ -686,6 +691,7 @@ public abstract class ReflectionUtils { */ 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 19ee4478e7..72f8712ff0 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 abstract class SystemPropertyUtils { 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 ad2e01c5ef..bf6accc6ae 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 @@ public class WeakReferenceMonitor { */ 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 6fd0c2294b..ec68351e79 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 final class BooleanComparator implements Comparator, Serializabl } + @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 40e4e7af93..b8b27418cb 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 ba56bd54d1..20652a3288 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 class CompoundComparator implements Comparator, Serializable { 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 80b8b9b369..b9c6161038 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 class InstanceComparator implements Comparator { } + @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 f78e56ff5d..9a9f5f9c19 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 class InvertibleComparator implements Comparator, Serializable { } + @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 1171bdc1d3..ebff3488c2 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 class NullSafeComparator implements Comparator { } + @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 46f4d98ebe..f494b88592 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 @@ abstract class AbstractStaxContentHandler implements ContentHandler { protected abstract void startDocumentInternal() throws XMLStreamException; + @Override public final void endDocument() throws SAXException { namespaceContext.clear(); namespaceContextChanged = false; @@ -68,6 +70,7 @@ abstract class AbstractStaxContentHandler implements ContentHandler { * * @see SimpleNamespaceContext#bindNamespaceUri(String,String) */ + @Override public final void startPrefixMapping(String prefix, String uri) { namespaceContext.bindNamespaceUri(prefix, uri); namespaceContextChanged = true; @@ -78,11 +81,13 @@ abstract class AbstractStaxContentHandler implements ContentHandler { * * @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 @@ abstract class AbstractStaxContentHandler implements ContentHandler { 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 @@ abstract class AbstractStaxContentHandler implements ContentHandler { 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 @@ abstract class AbstractStaxContentHandler implements ContentHandler { 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 @@ abstract class AbstractStaxContentHandler implements ContentHandler { 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 @@ abstract class AbstractStaxContentHandler implements ContentHandler { 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 feeefd6e8e..25dc97b299 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 @@ abstract class AbstractStaxXMLReader extends AbstractXMLReader { * @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 @@ abstract class AbstractStaxXMLReader extends AbstractXMLReader { * @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 @@ abstract class AbstractStaxXMLReader extends AbstractXMLReader { 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 300f9ff2fc..7b24a3c1c2 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 @@ abstract class AbstractXMLReader implements XMLReader { * @throws org.xml.sax.SAXNotRecognizedException * always */ + @Override public boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotSupportedException { throw new SAXNotRecognizedException(name); } @@ -99,6 +108,7 @@ abstract class AbstractXMLReader implements XMLReader { * * @throws SAXNotRecognizedException always */ + @Override public void setFeature(String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException { throw new SAXNotRecognizedException(name); } @@ -107,6 +117,7 @@ abstract class AbstractXMLReader implements XMLReader { * 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 @@ abstract class AbstractXMLReader implements XMLReader { * 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 e8c8a64348..6335ea156f 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 @@ import org.springframework.util.Assert; */ 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 @@ abstract class AbstractXMLStreamReader implements XMLStreamReader { 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 @@ abstract class AbstractXMLStreamReader implements XMLStreamReader { } } + @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 @@ abstract class AbstractXMLStreamReader implements XMLStreamReader { eventType == XMLStreamConstants.ENTITY_REFERENCE; } + @Override public String getPrefix() { int eventType = getEventType(); if (eventType == XMLStreamConstants.START_ELEMENT || eventType == XMLStreamConstants.END_ELEMENT) { @@ -105,27 +113,33 @@ abstract class AbstractXMLStreamReader implements XMLStreamReader { } } + @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 @@ abstract class AbstractXMLStreamReader implements XMLStreamReader { return eventType; } + @Override public void require(int expectedType, String namespaceURI, String localName) throws XMLStreamException { int eventType = getEventType(); if (eventType != expectedType) { @@ -146,6 +161,7 @@ abstract class AbstractXMLStreamReader implements XMLStreamReader { } } + @Override public String getAttributeValue(String namespaceURI, String localName) { for (int i = 0; i < getAttributeCount(); i++) { QName name = getAttributeName(i); @@ -157,18 +173,22 @@ abstract class AbstractXMLStreamReader implements XMLStreamReader { 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 @@ abstract class AbstractXMLStreamReader implements XMLStreamReader { 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 534cb0077b..5a8d92aa85 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 @@ class DomContentHandler implements ContentHandler { } } + @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 @@ class DomContentHandler implements ContentHandler { 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 @@ class DomContentHandler implements ContentHandler { } } + @Override public void processingInstruction(String target, String data) throws SAXException { Node parent = getParent(); ProcessingInstruction pi = document.createProcessingInstruction(target, data); @@ -114,24 +118,31 @@ class DomContentHandler implements ContentHandler { * 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 c0d966d6eb..2908fa9148 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 @@ public class SimpleNamespaceContext implements NamespaceContext { 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 ed06ed8c05..3d0227db1c 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 class SimpleSaxErrorHandler implements ErrorHandler { } + @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 7fd5dffa10..cab7670a92 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 class SimpleTransformErrorListener implements ErrorListener { } + @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 686ff1a634..54505a587c 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 @@ class StaxEventContentHandler extends AbstractStaxContentHandler { 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 0d32a3fc08..9607d29f23 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 @@ class StaxEventXMLReader extends AbstractStaxXMLReader { 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 2241e2f2a9..284f69d0ac 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 bca48d1cdb..4bba7a6974 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 @@ class StaxStreamXMLReader extends AbstractStaxXMLReader { 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 d3a11a736b..59ce5f0091 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 @@ class XMLEventStreamReader extends AbstractXMLStreamReader { } } + @Override public String getVersion() { if (event.isStartDocument()) { return ((StartDocument) event).getVersion(); @@ -67,10 +69,12 @@ class XMLEventStreamReader extends AbstractXMLStreamReader { } } + @Override public int getTextStart() { return 0; } + @Override public String getText() { if (event.isCharacters()) { return event.asCharacters().getData(); @@ -83,6 +87,7 @@ class XMLEventStreamReader extends AbstractXMLStreamReader { } } + @Override public String getPITarget() { if (event.isProcessingInstruction()) { return ((ProcessingInstruction) event).getTarget(); @@ -92,6 +97,7 @@ class XMLEventStreamReader extends AbstractXMLStreamReader { } } + @Override public String getPIData() { if (event.isProcessingInstruction()) { return ((ProcessingInstruction) event).getData(); @@ -101,6 +107,7 @@ class XMLEventStreamReader extends AbstractXMLStreamReader { } } + @Override public int getNamespaceCount() { Iterator namespaces; if (event.isStartElement()) { @@ -115,6 +122,7 @@ class XMLEventStreamReader extends AbstractXMLStreamReader { return countIterator(namespaces); } + @Override public NamespaceContext getNamespaceContext() { if (event.isStartElement()) { return event.asStartElement().getNamespaceContext(); @@ -124,6 +132,7 @@ class XMLEventStreamReader extends AbstractXMLStreamReader { } } + @Override public QName getName() { if (event.isStartElement()) { return event.asStartElement().getName(); @@ -136,22 +145,27 @@ class XMLEventStreamReader extends AbstractXMLStreamReader { } } + @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 @@ class XMLEventStreamReader extends AbstractXMLStreamReader { 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 37dff4fb81..8c9e3ad0fb 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 @@ class XMLEventStreamWriter implements XMLStreamWriter { 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 @@ class XMLEventStreamWriter implements XMLStreamWriter { 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-expression/src/main/java/org/springframework/expression/ParserContext.java b/spring-expression/src/main/java/org/springframework/expression/ParserContext.java index a1ae657bc3..1b69a293d7 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 840ad1b854..a24a545479 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 class CompositeStringExpression implements Expression { } + @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 class CompositeStringExpression implements Expression { 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 class CompositeStringExpression implements Expression { 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 class CompositeStringExpression implements Expression { 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 class CompositeStringExpression implements Expression { 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 class CompositeStringExpression implements Expression { } + @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 ae7713c50f..ea6742ae07 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 class LiteralExpression implements Expression { } + @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 5c2752d6fd..8f2620aec9 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 046ed6a901..768e567b5a 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 class TemplateParserContext implements ParserContext { } + @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 8a09bf2b92..5a712417eb 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 class InternalParseException extends RuntimeException { 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 f061326251..a2b166ab8f 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 @@ -105,16 +105,19 @@ public class Indexer extends SpelNodeImpl { 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; } @@ -139,11 +142,13 @@ public class Indexer extends SpelNodeImpl { 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), @@ -152,6 +157,7 @@ public class Indexer extends SpelNodeImpl { this.map.put(this.key, newValue); } + @Override public boolean isWritable() { return true; } @@ -176,6 +182,7 @@ public class Indexer extends SpelNodeImpl { this.td = targetObjectTypeDescriptor; } + @Override public TypedValue getValue() { Class targetObjectRuntimeClass = getObjectClass(targetObject); try { @@ -209,6 +216,7 @@ public class Indexer extends SpelNodeImpl { this.td.toString()); } + @Override public void setValue(Object newValue) { Class contextObjectClass = getObjectClass(targetObject); try { @@ -238,6 +246,7 @@ public class Indexer extends SpelNodeImpl { } } + @Override public boolean isWritable() { return true; } @@ -266,6 +275,7 @@ public class Indexer extends SpelNodeImpl { this.growCollection = growCollection; } + @Override public TypedValue getValue() { if (this.index >= this.collection.size()) { if (this.growCollection) { @@ -290,6 +300,7 @@ public class Indexer extends SpelNodeImpl { throw new IllegalStateException("Failed to find indexed element " + this.index + ": " + this.collection); } + @Override public void setValue(Object newValue) { if (this.index >= this.collection.size()) { if (this.growCollection) { @@ -314,6 +325,7 @@ public class Indexer extends SpelNodeImpl { } } + @Override public boolean isWritable() { return true; } @@ -334,6 +346,7 @@ public class Indexer extends SpelNodeImpl { this.td = td; } + @Override public TypedValue getValue() { if (this.index >= this.target.length()) { throw new SpelEvaluationException(getStartPosition(), SpelMessage.STRING_INDEX_OUT_OF_BOUNDS, @@ -342,11 +355,13 @@ public class Indexer extends SpelNodeImpl { 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 9c74b9c564..e1cfa078e2 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 @@ -66,6 +66,7 @@ public class MethodReference extends SpelNodeImpl { this.arguments = arguments; } + @Override public TypedValue getValue() { MethodExecutor executorToUse = cachedExecutor; if (executorToUse != null) { @@ -103,10 +104,12 @@ public class MethodReference extends SpelNodeImpl { } } + @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 c8eeb2b0f7..1afb3b28c4 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 class OpMinus extends Operator { } 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 99e79ff504..043a57e6fd 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 class PropertyOrFieldReference extends SpelNodeImpl { 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 109de5fdc1..46229f646e 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 @@ public abstract class SpelNodeImpl implements SpelNode { return false; } + @Override public final Object getValue(ExpressionState expressionState) throws EvaluationException { if (expressionState != null) { return getValueInternal(expressionState).getValue(); @@ -97,6 +98,7 @@ public abstract class SpelNodeImpl implements SpelNode { } } + @Override public final TypedValue getTypedValue(ExpressionState expressionState) throws EvaluationException { if (expressionState != null) { return getValueInternal(expressionState); @@ -107,22 +109,27 @@ public abstract class SpelNodeImpl implements SpelNode { } // 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 @@ public abstract class SpelNodeImpl implements SpelNode { 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 a373ed3868..c4fa571b85 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 @@ public interface 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 interface ValueRef { throw new SpelEvaluationException(0,SpelMessage.NOT_ASSIGNABLE,"null"); } + @Override public boolean isWritable() { return false; } @@ -70,15 +73,18 @@ public interface ValueRef { 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 785d317cac..3c33992070 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 class VariableReference extends SpelNodeImpl { 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 ac52f98a55..dfefb5516d 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 class SpelExpression implements Expression { // 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 SpelExpression implements Expression { 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/support/ReflectiveConstructorExecutor.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorExecutor.java index 6c1d3c5a17..b6bd630f4b 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 @@ class ReflectiveConstructorExecutor implements ConstructorExecutor { 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 4342941af8..36d48cbf87 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 class ReflectiveConstructorResolver implements ConstructorResolver { 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 a54dbac7bc..96defb2687 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 @@ class ReflectiveMethodExecutor implements MethodExecutor { } + @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 c086771cbe..2d0ac51a2b 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 @@ -86,6 +86,7 @@ public class ReflectiveMethodResolver implements MethodResolver { * according to the registered type converter. * */ + @Override public MethodExecutor resolve(EvaluationContext context, Object targetObject, String name, List argumentTypes) throws AccessException { @@ -111,6 +112,7 @@ public class ReflectiveMethodResolver implements MethodResolver { } Arrays.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 6e112b0e01..013959bf95 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 @@ -56,10 +56,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; @@ -94,6 +96,7 @@ public class ReflectivePropertyAccessor implements PropertyAccessor { 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"); @@ -160,6 +163,7 @@ public class ReflectivePropertyAccessor implements PropertyAccessor { 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; @@ -189,6 +193,7 @@ public class ReflectivePropertyAccessor implements PropertyAccessor { 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"); @@ -497,10 +502,12 @@ public class ReflectivePropertyAccessor 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; @@ -524,6 +531,7 @@ public class ReflectivePropertyAccessor implements PropertyAccessor { } } + @Override public TypedValue read(EvaluationContext context, Object target, String name) throws AccessException { if (this.member instanceof Method) { try { @@ -552,10 +560,12 @@ public class ReflectivePropertyAccessor implements PropertyAccessor { 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 c4a4425bed..ce03b4927c 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 class StandardEvaluationContext implements EvaluationContext { this.rootObject = (rootObject != null ? new TypedValue(rootObject) : TypedValue.NULL); } + @Override public TypedValue getRootObject() { return this.rootObject; } @@ -103,6 +104,7 @@ public class StandardEvaluationContext implements EvaluationContext { return this.constructorResolvers.remove(resolver); } + @Override public List getConstructorResolvers() { ensureConstructorResolversInitialized(); return this.constructorResolvers; @@ -123,6 +125,7 @@ public class StandardEvaluationContext implements EvaluationContext { return this.methodResolvers.remove(methodResolver); } + @Override public List getMethodResolvers() { ensureMethodResolversInitialized(); return this.methodResolvers; @@ -132,6 +135,7 @@ public class StandardEvaluationContext implements EvaluationContext { this.beanResolver = beanResolver; } + @Override public BeanResolver getBeanResolver() { return this.beanResolver; } @@ -150,6 +154,7 @@ public class StandardEvaluationContext implements EvaluationContext { return this.propertyAccessors.remove(accessor); } + @Override public List getPropertyAccessors() { ensurePropertyAccessorsInitialized(); return this.propertyAccessors; @@ -165,6 +170,7 @@ public class StandardEvaluationContext implements EvaluationContext { this.typeLocator = typeLocator; } + @Override public TypeLocator getTypeLocator() { if (this.typeLocator == null) { this.typeLocator = new StandardTypeLocator(); @@ -177,6 +183,7 @@ public class StandardEvaluationContext implements EvaluationContext { this.typeConverter = typeConverter; } + @Override public TypeConverter getTypeConverter() { if (this.typeConverter == null) { this.typeConverter = new StandardTypeConverter(); @@ -189,6 +196,7 @@ public class StandardEvaluationContext implements EvaluationContext { this.typeComparator = typeComparator; } + @Override public TypeComparator getTypeComparator() { return this.typeComparator; } @@ -198,10 +206,12 @@ public class StandardEvaluationContext implements EvaluationContext { 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 class StandardEvaluationContext implements EvaluationContext { 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 5b42d0a010..322f7ab422 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 @@ import org.springframework.expression.OperatorOverloader; */ 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 18f29d148b..92aafb28bc 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 @@ import org.springframework.expression.spel.SpelMessage; */ 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 class StandardTypeComparator implements TypeComparator { 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 483dade31e..0500dde5d5 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 class StandardTypeConverter implements TypeConverter { } + @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 2a210e3fda..319985fe8a 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 class StandardTypeLocator implements TypeLocator { * @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-jdbc/src/main/java/org/springframework/jdbc/config/JdbcNamespaceHandler.java b/spring-jdbc/src/main/java/org/springframework/jdbc/config/JdbcNamespaceHandler.java index 3674dfbaa7..663d8d7ff0 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 @@ import org.springframework.beans.factory.xml.NamespaceHandlerSupport; */ 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 6569ba893f..6f20b20a9e 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 class SortedResourcesFactoryBean extends AbstractFactoryBean } + @Override public void setResourceLoader(ResourceLoader resourceLoader) { this.resourcePatternResolver = ResourcePatternUtils.getResourcePatternResolver(resourceLoader); } @@ -76,6 +77,7 @@ public class SortedResourcesFactoryBean extends AbstractFactoryBean 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/ArgPreparedStatementSetter.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgPreparedStatementSetter.java index 19b5ec0d49..236cdb9f71 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgPreparedStatementSetter.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgPreparedStatementSetter.java @@ -39,6 +39,7 @@ class ArgPreparedStatementSetter implements PreparedStatementSetter, ParameterDi } + @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 @@ class ArgPreparedStatementSetter implements PreparedStatementSetter, ParameterDi } } + @Override public void cleanupParameters() { StatementCreatorUtils.cleanupParameters(this.args); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgTypePreparedStatementSetter.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgTypePreparedStatementSetter.java index 235ed6b0f5..d0e3daab21 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgTypePreparedStatementSetter.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgTypePreparedStatementSetter.java @@ -52,6 +52,7 @@ class ArgTypePreparedStatementSetter implements PreparedStatementSetter, Paramet } + @Override public void setValues(PreparedStatement ps) throws SQLException { int parameterPosition = 1; if (this.args != null) { @@ -97,6 +98,7 @@ class ArgTypePreparedStatementSetter implements PreparedStatementSetter, Paramet 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 2785e6a1b7..85e044d19a 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 abstract class BatchUpdateUtils { 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 dde8067753..74dbd6ce7f 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 class BeanPropertyRowMapper implements RowMapper { *

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 279ab5a587..c4cdb8ab26 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 class CallableStatementCreatorFactory { 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 class CallableStatementCreatorFactory { 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 103333fe98..1a0ac8277f 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 @@ import org.springframework.util.LinkedCaseInsensitiveMap; */ 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 3f0085cebf..713b723728 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 class JdbcTemplate extends JdbcAccessor implements JdbcOperations { // 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 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { // 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 class JdbcTemplate extends JdbcAccessor implements JdbcOperations { } } + @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 class JdbcTemplate extends JdbcAccessor implements JdbcOperations { 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 class JdbcTemplate extends JdbcAccessor implements JdbcOperations { 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 class JdbcTemplate extends JdbcAccessor implements JdbcOperations { JdbcUtils.closeResultSet(rs); } } + @Override public String getSql() { return sql; } @@ -456,55 +464,67 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { 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 public long queryForLong(String sql) throws DataAccessException { Number number = queryForObject(sql, Long.class); return (number != null ? number.longValue() : 0); } + @Override 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()) { @@ -512,6 +532,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { } return rows; } + @Override public String getSql() { return sql; } @@ -519,6 +540,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { 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()) { @@ -526,6 +548,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { } 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())) { @@ -548,6 +571,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { } return rowsAffected; } + @Override public String getSql() { return this.currSql; } @@ -560,6 +584,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { // Methods dealing with prepared statements //------------------------------------------------------------------------- + @Override public T execute(PreparedStatementCreator psc, PreparedStatementCallback action) throws DataAccessException { @@ -611,6 +636,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { } } + @Override public T execute(String sql, PreparedStatementCallback action) throws DataAccessException { return execute(new SimplePreparedStatementCreator(sql), action); } @@ -635,6 +661,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { logger.debug("Executing prepared SQL query"); return execute(psc, new PreparedStatementCallback() { + @Override public T doInPreparedStatement(PreparedStatement ps) throws SQLException { ResultSet rs = null; try { @@ -658,66 +685,82 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { }); } + @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 { @@ -725,82 +768,100 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { 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 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 public long queryForLong(String sql, Object... args) throws DataAccessException { Number number = queryForObject(sql, args, Long.class); return (number != null ? number.longValue() : 0); } + @Override 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 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()); } @@ -810,6 +871,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { logger.debug("Executing prepared SQL update"); return execute(psc, new PreparedStatementCallback() { + @Override public Integer doInPreparedStatement(PreparedStatement ps) throws SQLException { try { if (pss != null) { @@ -830,10 +892,12 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { }); } + @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 { @@ -841,6 +905,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { 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(); @@ -864,24 +929,29 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { }); } + @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(); @@ -923,10 +993,12 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { }); } + @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); } @@ -937,11 +1009,13 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { * * 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 { @@ -988,6 +1062,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { // Methods dealing with callable statements //------------------------------------------------------------------------- + @Override public T execute(CallableStatementCreator csc, CallableStatementCallback action) throws DataAccessException { @@ -1038,10 +1113,12 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { } } + @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 { @@ -1062,6 +1139,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { } } return execute(csc, new CallableStatementCallback>() { + @Override public Map doInCallableStatement(CallableStatement cs) throws SQLException { boolean retVal = cs.execute(); int updateCount = cs.getUpdateCount(); @@ -1369,6 +1447,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { this.target = target; } + @Override @SuppressWarnings("rawtypes") public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on ConnectionProxy interface coming in... @@ -1434,10 +1513,12 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { this.sql = sql; } + @Override public PreparedStatement createPreparedStatement(Connection con) throws SQLException { return con.prepareStatement(this.sql); } + @Override public String getSql() { return this.sql; } @@ -1456,10 +1537,12 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { this.callString = callString; } + @Override public CallableStatement createCallableStatement(Connection con) throws SQLException { return con.prepareCall(this.callString); } + @Override public String getSql() { return this.callString; } @@ -1479,6 +1562,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { 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 7efe962c64..d8cda78e1d 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 class PreparedStatementCreatorFactory { } } + @Override public PreparedStatement createPreparedStatement(Connection con) throws SQLException { PreparedStatement ps = null; if (generatedKeysColumnNames != null || returnGeneratedKeys) { @@ -252,6 +253,7 @@ public class PreparedStatementCreatorFactory { 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 class PreparedStatementCreatorFactory { } } + @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 7aeb9ee31f..376810bf26 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 8ce9453622..98043f57b8 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 class RowMapperResultSetExtractor implements ResultSetExtractor 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 9583ec752c..2597b09743 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 class SingleColumnRowMapper implements RowMapper { * @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 38efce95b6..a0db5625a4 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 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider { } } + @Override public String catalogNameToUse(String catalogName) { if (catalogName == null) { return null; @@ -136,6 +141,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider { } } + @Override public String schemaNameToUse(String schemaName) { if (schemaName == null) { return null; @@ -151,6 +157,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider { } } + @Override public String metaDataCatalogNameToUse(String catalogName) { if (isSupportsCatalogsInProcedureCalls()) { return catalogNameToUse(catalogName); @@ -160,6 +167,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider { } } + @Override public String metaDataSchemaNameToUse(String schemaName) { if (isSupportsSchemasInProcedureCalls()) { return schemaNameToUse(schemaName); @@ -169,6 +177,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider { } } + @Override public String parameterNameToUse(String parameterName) { if (parameterName == null) { return null; @@ -184,38 +193,47 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider { } } + @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 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider { /** * Does the database support the use of catalog name in procedure calls */ + @Override public boolean isSupportsCatalogsInProcedureCalls() { return this.supportsCatalogsInProcedureCalls; } @@ -245,6 +264,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider { /** * 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 138518660a..009eacc47c 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 class GenericTableMetaDataProvider implements TableMetaDataProvider { 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 class GenericTableMetaDataProvider implements TableMetaDataProvider { this.generatedKeysColumnNameArraySupported = generatedKeysColumnNameArraySupported; } + @Override public boolean isGeneratedKeysColumnNameArraySupported() { return this.generatedKeysColumnNameArraySupported; } + @Override public void setNativeJdbcExtractor(NativeJdbcExtractor nativeJdbcExtractor) { this.nativeJdbcExtractor = nativeJdbcExtractor; } @@ -160,6 +167,7 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider { } + @Override public void initializeWithMetaData(DatabaseMetaData databaseMetaData) throws SQLException { try { if (databaseMetaData.supportsGetGeneratedKeys()) { @@ -214,6 +222,7 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider { } + @Override public void initializeWithTableColumnMetaData(DatabaseMetaData databaseMetaData, String catalogName, String schemaName, String tableName) throws SQLException { @@ -221,6 +230,7 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider { locateTableAndProcessMetaData(databaseMetaData, catalogName, schemaName, tableName); } + @Override public String tableNameToUse(String tableName) { if (tableName == null) { return null; @@ -236,6 +246,7 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider { } } + @Override public String catalogNameToUse(String catalogName) { if (catalogName == null) { return null; @@ -251,6 +262,7 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider { } } + @Override public String schemaNameToUse(String schemaName) { if (schemaName == null) { return null; @@ -266,10 +278,12 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider { } } + @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 15421a998a..b6f67e2394 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 class TableMetaDataProviderFactory { 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 f8ff89e479..79526492fb 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 abstract class AbstractSqlParameterSource implements SqlParameterSource { * @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 abstract class AbstractSqlParameterSource implements SqlParameterSource { * @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 76062a8c6b..8c54ebac4d 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 class BeanPropertySqlParameterSource extends AbstractSqlParameterSource { } + @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/MapSqlParameterSource.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/MapSqlParameterSource.java index fc7b32f4ef..1212c42c24 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 class MapSqlParameterSource extends AbstractSqlParameterSource { } + @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 8f43da6bb8..64dcdc2630 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 class NamedParameterBatchUpdateUtils extends BatchUpdateUtils { 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 1abfdea3c2..882b965134 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 class NamedParameterJdbcTemplate implements NamedParameterJdbcOperations * Expose the classic Spring JdbcTemplate to allow invocation of * less commonly used methods. */ + @Override public JdbcOperations getJdbcOperations() { return this.classicJdbcTemplate; } @@ -125,54 +126,63 @@ public class NamedParameterJdbcTemplate implements NamedParameterJdbcOperations } + @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 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 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 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 T queryForObject(String sql, SqlParameterSource paramSource, RowMapper rowMapper) throws DataAccessException { @@ -180,97 +190,116 @@ public class NamedParameterJdbcTemplate implements NamedParameterJdbcOperations 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 public long queryForLong(String sql, SqlParameterSource paramSource) throws DataAccessException { Number number = queryForObject(sql, paramSource, Long.class); return (number != null ? number.longValue() : 0); } + @Override public long queryForLong(String sql, Map paramMap) throws DataAccessException { return queryForLong(sql, new MapSqlParameterSource(paramMap)); } + @Override public int queryForInt(String sql, SqlParameterSource paramSource) throws DataAccessException { Number number = queryForObject(sql, paramSource, Integer.class); return (number != null ? number.intValue() : 0); } + @Override 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 { @@ -289,6 +318,7 @@ public class NamedParameterJdbcTemplate implements NamedParameterJdbcOperations return getJdbcOperations().update(pscf.newPreparedStatementCreator(params), generatedKeyHolder); } + @Override public int[] batchUpdate(String sql, Map[] batchValues) { SqlParameterSource[] batchArgs = new SqlParameterSource[batchValues.length]; int i = 0; @@ -299,6 +329,7 @@ public class NamedParameterJdbcTemplate implements NamedParameterJdbcOperations 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 98f0e5991e..730a11e5f1 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 @@ -444,6 +444,7 @@ public abstract class AbstractJdbcInsert { if (this.tableMetaDataContext.isGetGeneratedKeysSupported()) { jdbcTemplate.update( new PreparedStatementCreator() { + @Override public PreparedStatement createPreparedStatement(Connection con) throws SQLException { PreparedStatement ps = prepareStatementForGeneratedKeys(con); setParameterValues(ps, values, getInsertTypes()); @@ -483,6 +484,7 @@ public abstract class AbstractJdbcInsert { } else { jdbcTemplate.execute(new ConnectionCallback() { + @Override public Object doInConnection(Connection con) throws SQLException, DataAccessException { // Do the insert PreparedStatement ps = null; @@ -592,11 +594,13 @@ public abstract class AbstractJdbcInsert { 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 d687dbc2f6..a05e16e5cb 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 class SimpleJdbcCall extends AbstractJdbcCall implements SimpleJdbcCallOp } + @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,11 +121,13 @@ public class SimpleJdbcCall extends AbstractJdbcCall implements SimpleJdbcCallOp 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; @@ -128,55 +136,66 @@ public class SimpleJdbcCall extends AbstractJdbcCall implements SimpleJdbcCallOp /** * @deprecated in favor of {@link #returningResultSet(String, org.springframework.jdbc.core.RowMapper)} */ + @Override @Deprecated public SimpleJdbcCall returningResultSet(String parameterName, ParameterizedRowMapper 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 7d29df8301..e83f25ff92 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 class SimpleJdbcInsert extends AbstractJdbcInsert implements SimpleJdbcIn } + @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 a4ec41fc06..78e85682bd 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 class SimpleJdbcTemplate implements SimpleJdbcOperations { * 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 class SimpleJdbcTemplate implements SimpleJdbcOperations { * 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 83d37435ec..7fb5e6d1c2 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 abstract class AbstractInterruptibleBatchPreparedStatementSetter /** * This implementation return this instance's current exhaustion flag. */ + @Override public final boolean isBatchExhausted(int i) { return this.exhausted; } @@ -55,6 +57,7 @@ public abstract class AbstractInterruptibleBatchPreparedStatementSetter * 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 7ef0b32583..4b511bc735 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 @@ -66,6 +66,7 @@ public abstract class AbstractLobCreatingPreparedStatementCallback implements Pr } + @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 83a9aedffc..4a15e97fd4 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 d751933913..67f325c8d5 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 @@ import org.springframework.jdbc.core.SqlTypeValue; */ 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 7039eeacc8..bdcd1c3073 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 class JdbcBeanDefinitionReader { 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 2cc5f9f909..8e46d42b75 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 class SqlLobValue implements DisposableSqlTypeValue { /** * 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 @@ public class SqlLobValue implements DisposableSqlTypeValue { /** * 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 0674c79b47..63d9ddff38 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 abstract class AbstractDataSource implements DataSource { /** * Setting a login timeout is not supported. */ + @Override public void setLoginTimeout(int timeout) throws SQLException { throw new UnsupportedOperationException("setLoginTimeout"); } @@ -59,6 +61,7 @@ public abstract class AbstractDataSource implements DataSource { /** * LogWriter methods are not supported. */ + @Override public PrintWriter getLogWriter() { throw new UnsupportedOperationException("getLogWriter"); } @@ -66,6 +69,7 @@ public abstract class AbstractDataSource implements DataSource { /** * LogWriter methods are not supported. */ + @Override public void setLogWriter(PrintWriter pw) throws SQLException { throw new UnsupportedOperationException("setLogWriter"); } @@ -75,6 +79,7 @@ public abstract class AbstractDataSource implements DataSource { // 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 abstract class AbstractDataSource implements DataSource { "] cannot be unwrapped as [" + iface.getName() + "]"); } + @Override public boolean isWrapperFor(Class iface) throws SQLException { return iface.isInstance(this); } @@ -93,6 +99,7 @@ public abstract class AbstractDataSource implements DataSource { // 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 00aedb4c22..6cb804406e 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 abstract class AbstractDriverBasedDataSource extends AbstractDataSource { * @see #setUsername * @see #setPassword */ + @Override public Connection getConnection() throws SQLException { return getConnectionFromDriver(getUsername(), getPassword()); } @@ -124,6 +125,7 @@ public abstract class AbstractDriverBasedDataSource extends AbstractDataSource { * 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 9c6ebcfde2..8b54f1b66f 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 class DataSourceTransactionManager extends AbstractPlatformTransactionMan return this.dataSource; } + @Override public void afterPropertiesSet() { if (getDataSource() == null) { throw new IllegalArgumentException("Property 'dataSource' is required"); @@ -169,6 +170,7 @@ public class DataSourceTransactionManager extends AbstractPlatformTransactionMan } + @Override public Object getResourceFactory() { return getDataSource(); } @@ -364,6 +366,7 @@ public class DataSourceTransactionManager extends AbstractPlatformTransactionMan 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 a4c162dde8..3adef83c81 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 class DelegatingDataSource implements DataSource, InitializingBean { return this.targetDataSource; } + @Override public void afterPropertiesSet() { if (getTargetDataSource() == null) { throw new IllegalArgumentException("Property 'targetDataSource' is required"); @@ -80,26 +81,32 @@ public class DelegatingDataSource implements DataSource, InitializingBean { } + @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 class DelegatingDataSource implements DataSource, InitializingBean { // 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 class DelegatingDataSource implements DataSource, InitializingBean { return getTargetDataSource().unwrap(iface); } + @Override public boolean isWrapperFor(Class iface) throws SQLException { return (iface.isInstance(this) || getTargetDataSource().isWrapperFor(iface)); } @@ -126,6 +135,7 @@ public class DelegatingDataSource implements DataSource, InitializingBean { // 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 57cd94160b..d2f6e55ae9 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 abstract class JdbcTransactionObjectSupport implements SavepointManager, return this.savepointAllowed; } + @Override public void flush() { // no-op } @@ -100,6 +101,7 @@ public abstract class JdbcTransactionObjectSupport implements SavepointManager, * 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 abstract class JdbcTransactionObjectSupport implements SavepointManager, * 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 abstract class JdbcTransactionObjectSupport implements SavepointManager, * 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 f6ddc15b34..c4a82f071c 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 @@ -274,6 +274,7 @@ public class LazyConnectionDataSourceProxy extends DelegatingDataSource { 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 ed37136a92..4172971e4a 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 class SimpleConnectionHandle implements ConnectionHandle { /** * Return the specified Connection as-is. */ + @Override public Connection getConnection() { return this.connection; } @@ -52,6 +53,7 @@ public class SimpleConnectionHandle implements ConnectionHandle { * 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 9d2b41f54e..c8a72e95e6 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 @@ -213,6 +213,7 @@ public class SingleConnectionDataSource extends DriverManagerDataSource /** * 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); @@ -225,6 +226,7 @@ public class SingleConnectionDataSource extends DriverManagerDataSource *

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(); @@ -314,6 +316,7 @@ public class SingleConnectionDataSource extends DriverManagerDataSource 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 1321c81662..8fc76ea690 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 class TransactionAwareDataSourceProxy extends DelegatingDataSource { 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 634eb57cde..3516d4b164 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 05fad27124..962b2dff6e 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 @@ final class DerbyEmbeddedDatabaseConfigurer implements EmbeddedDatabaseConfigure 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 @@ final class DerbyEmbeddedDatabaseConfigurer implements EmbeddedDatabaseConfigure 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 5e3db7cff4..5254361ea1 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,44 +172,54 @@ public class EmbeddedDatabaseFactory { 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 @SuppressWarnings("unused") 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 a58d84a75d..f04758765a 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 class EmbeddedDatabaseFactoryBean extends EmbeddedDatabaseFactory 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 class EmbeddedDatabaseFactoryBean extends EmbeddedDatabaseFactory } + @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 d7fc50bf7a..d5775369c4 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 @@ final class H2EmbeddedDatabaseConfigurer extends AbstractEmbeddedDatabaseConfigu 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 298cf37db0..e65fe30e78 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 @@ final class HsqlEmbeddedDatabaseConfigurer extends AbstractEmbeddedDatabaseConfi 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 848501e7e4..8aaaad91f5 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 58b176721b..309d776534 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 143317b694..740065ce32 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 class CompositeDatabasePopulator implements DatabasePopulator { } + @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 96f795ca76..aa2a104a47 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 class DataSourceInitializer implements InitializingBean, DisposableBean { /** * 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 class DataSourceInitializer implements InitializingBean, DisposableBean { /** * 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 e2f6eafe36..1f615026cb 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 class ResourceDatabasePopulator implements DatabasePopulator { } + @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 f42cbb72f8..610c9e6309 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 abstract class AbstractRoutingDataSource extends AbstractDataSource imple } + @Override public void afterPropertiesSet() { if (this.targetDataSources == null) { throw new IllegalArgumentException("Property 'targetDataSources' is required"); @@ -158,10 +159,12 @@ public abstract class AbstractRoutingDataSource extends AbstractDataSource imple } + @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 915b327153..f4dbbaf5a2 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 class BeanFactoryDataSourceLookup implements DataSourceLookup, BeanFactor } + @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 2a48efaaf5..96677aa2e7 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 class JndiDataSourceLookup extends JndiLocatorSupport implements DataSour 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 0a4eb32b4b..e392303e79 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 class MapDataSourceLookup implements DataSourceLookup { 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 3443a713a8..10acc19b77 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 class SingleDataSourceLookup implements DataSourceLookup { } + @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 039e5c34f5..6372990866 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 class BatchSqlUpdate extends SqlUpdate { 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 1cf222e002..3b0b7342bf 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 class GenericSqlQuery extends SqlQuery { "'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 6e8355e639..37db4a54ce 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 abstract class MappingSqlQueryWithParameters extends SqlQuery { 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 f2d0bb58a0..6067251bac 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 @@ public abstract class RdbmsOperation implements InitializingBean { /** * 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 90603687a1..3ceb131d7f 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 abstract class UpdatableSqlQuery extends SqlQuery { 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 7b6d91814c..6e4c548eab 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 abstract class AbstractFallbackSQLExceptionTranslator implements SQLExcep * 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 668022162d..2faaaba18e 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 class CustomSQLExceptionTranslatorRegistrar implements InitializingBean { 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 acc95ccac7..836501d418 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 class DatabaseStartupValidator implements InitializingBean { * 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 a624e3fa3d..dd6a311505 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 class GeneratedKeyHolder implements KeyHolder { } + @Override public Number getKey() throws InvalidDataAccessApiUsageException, DataRetrievalFailureException { if (this.keyList.size() == 0) { return null; @@ -83,6 +84,7 @@ public class GeneratedKeyHolder implements KeyHolder { } } + @Override public Map getKeys() throws InvalidDataAccessApiUsageException { if (this.keyList.size() == 0) { return null; @@ -94,6 +96,7 @@ public class GeneratedKeyHolder implements KeyHolder { 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 89940f0cf2..f383a4d833 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 abstract class JdbcAccessor implements InitializingBean { * 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 95f2ee3643..8e682e1315 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 abstract class JdbcUtils { 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 3fd0d80f68..933c166a62 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 abstract class AbstractDataFieldMaxValueIncrementer implements DataFieldM return this.paddingLength; } + @Override public void afterPropertiesSet() { if (this.dataSource == null) { throw new IllegalArgumentException("Property 'dataSource' is required"); @@ -117,14 +118,17 @@ public abstract class AbstractDataFieldMaxValueIncrementer implements DataFieldM } + @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 737a582459..efd9824bcb 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 @@ import java.sql.SQLException; */ 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 6964172e96..f95b5492f9 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 @@ -113,6 +113,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } + @Override public byte[] getBlobAsBytes(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning BLOB as bytes"); if (this.wrapAsLob) { @@ -124,6 +125,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } } + @Override public InputStream getBlobAsBinaryStream(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning BLOB as binary stream"); if (this.wrapAsLob) { @@ -135,6 +137,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } } + @Override public String getClobAsString(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning CLOB as string"); if (this.wrapAsLob) { @@ -146,6 +149,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } } + @Override public InputStream getClobAsAsciiStream(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning CLOB as ASCII stream"); if (this.wrapAsLob) { @@ -157,6 +161,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } } + @Override public Reader getClobAsCharacterStream(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning CLOB as character stream"); if (this.wrapAsLob) { @@ -168,6 +173,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } } + @Override public LobCreator getLobCreator() { return new DefaultLobCreator(); } @@ -179,6 +185,7 @@ public class DefaultLobHandler extends AbstractLobHandler { */ protected class DefaultLobCreator implements LobCreator { + @Override public void setBlobAsBytes(PreparedStatement ps, int paramIndex, byte[] content) throws SQLException { @@ -207,6 +214,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } } + @Override public void setBlobAsBinaryStream( PreparedStatement ps, int paramIndex, InputStream binaryStream, int contentLength) throws SQLException { @@ -236,6 +244,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } } + @Override public void setClobAsString(PreparedStatement ps, int paramIndex, String content) throws SQLException { @@ -264,6 +273,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } } + @Override public void setClobAsAsciiStream( PreparedStatement ps, int paramIndex, InputStream asciiStream, int contentLength) throws SQLException { @@ -295,6 +305,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } } + @Override public void setClobAsCharacterStream( PreparedStatement ps, int paramIndex, Reader characterStream, int contentLength) throws SQLException { @@ -324,6 +335,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } } + @Override public void close() { // nothing to do here } 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 19c85608c3..80ae5d1ea6 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 class JtaLobCreatorSynchronization implements Synchronization { 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 class JtaLobCreatorSynchronization implements Synchronization { 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 ad0e3719e3..8bee169c79 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 @@ public interface LobCreator extends Closeable { * 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 5399cf9c91..d67f00685a 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 @@ -211,6 +211,7 @@ public class OracleLobHandler extends AbstractLobHandler { } + @Override public byte[] getBlobAsBytes(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning Oracle BLOB as bytes"); Blob blob = rs.getBlob(columnIndex); @@ -220,6 +221,7 @@ public class OracleLobHandler extends AbstractLobHandler { 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); @@ -229,6 +231,7 @@ public class OracleLobHandler extends AbstractLobHandler { return retVal; } + @Override public String getClobAsString(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning Oracle CLOB as string"); Clob clob = rs.getClob(columnIndex); @@ -238,6 +241,7 @@ public class OracleLobHandler extends AbstractLobHandler { 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); @@ -247,6 +251,7 @@ public class OracleLobHandler extends AbstractLobHandler { 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); @@ -256,6 +261,7 @@ public class OracleLobHandler extends AbstractLobHandler { return retVal; } + @Override public LobCreator getLobCreator() { return new OracleLobCreator(); } @@ -368,11 +374,13 @@ public class OracleLobHandler extends AbstractLobHandler { private final List createdLobs = 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); @@ -390,12 +398,14 @@ public class OracleLobHandler extends AbstractLobHandler { } } + @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); @@ -413,11 +423,13 @@ public class OracleLobHandler extends AbstractLobHandler { } } + @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); @@ -435,12 +447,14 @@ public class OracleLobHandler extends AbstractLobHandler { } } + @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); @@ -458,12 +472,14 @@ public class OracleLobHandler extends AbstractLobHandler { } } + @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); @@ -554,6 +570,7 @@ public class OracleLobHandler extends AbstractLobHandler { /** * Free all temporary BLOBs and CLOBs created by this creator. */ + @Override public void close() { try { for (Iterator it = this.createdLobs.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 822b3e48cd..8a6bdbccd5 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 @@ class PassThroughBlob implements Blob { } + @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 1effc342b0..be2d61bcd2 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 @@ class PassThroughClob implements Clob { } + @Override public long length() throws SQLException { return this.contentLength; } + @Override public Reader getCharacterStream() throws SQLException { try { if (this.content != null) { @@ -85,6 +87,7 @@ class PassThroughClob implements Clob { } } + @Override public InputStream getAsciiStream() throws SQLException { try { if (this.content != null) { @@ -107,42 +110,52 @@ class PassThroughClob implements Clob { } + @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/nativejdbc/NativeJdbcExtractorAdapter.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/nativejdbc/NativeJdbcExtractorAdapter.java index 2614338bec..60d859b715 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 abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor /** * Return {@code false} by default. */ + @Override public boolean isNativeConnectionNecessaryForNativePreparedStatements() { return false; } @@ -75,6 +77,7 @@ public abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor /** * Return {@code false} by default. */ + @Override public boolean isNativeConnectionNecessaryForNativeCallableStatements() { return false; } @@ -91,6 +94,7 @@ public abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor * @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 @@ public abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor * @see #getNativeConnection * @see Statement#getConnection */ + @Override public Connection getNativeConnectionFromStatement(Statement stmt) throws SQLException { if (stmt == null) { return null; @@ -138,6 +143,7 @@ public abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor /** * Not able to unwrap: return passed-in Statement. */ + @Override public Statement getNativeStatement(Statement stmt) throws SQLException { return stmt; } @@ -145,6 +151,7 @@ public abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor /** * Not able to unwrap: return passed-in PreparedStatement. */ + @Override public PreparedStatement getNativePreparedStatement(PreparedStatement ps) throws SQLException { return ps; } @@ -152,6 +159,7 @@ public abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor /** * Not able to unwrap: return passed-in CallableStatement. */ + @Override public CallableStatement getNativeCallableStatement(CallableStatement cs) throws SQLException { return cs; } @@ -159,6 +167,7 @@ public abstract class NativeJdbcExtractorAdapter implements NativeJdbcExtractor /** * 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 69f10432e4..96d66dfbfd 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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSetMetaData#getCatalogName(int) */ + @Override public final SqlRowSetMetaData getMetaData() { return this.rowSetMetaData; } @@ -132,6 +133,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#getBigDecimal(String) */ + @Override public BigDecimal getBigDecimal(String columnLabel) throws InvalidResultSetAccessException { return getBigDecimal(findColumn(columnLabel)); } @@ -172,6 +176,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#getBoolean(String) */ + @Override public boolean getBoolean(String columnLabel) throws InvalidResultSetAccessException { return getBoolean(findColumn(columnLabel)); } @@ -191,6 +197,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#getByte(String) */ + @Override public byte getByte(String columnLabel) throws InvalidResultSetAccessException { return getByte(findColumn(columnLabel)); } @@ -210,6 +218,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#getDate(String) */ + @Override public Date getDate(String columnLabel) throws InvalidResultSetAccessException { return getDate(findColumn(columnLabel)); } @@ -247,6 +259,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#getDouble(String) */ + @Override public double getDouble(String columnLabel) throws InvalidResultSetAccessException { return getDouble(findColumn(columnLabel)); } @@ -266,6 +280,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#getInt(String) */ + @Override public int getInt(String columnLabel) throws InvalidResultSetAccessException { return getInt(findColumn(columnLabel)); } @@ -303,6 +321,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#getLong(String) */ + @Override public long getLong(String columnLabel) throws InvalidResultSetAccessException { return getLong(findColumn(columnLabel)); } @@ -322,6 +342,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#getObject(String) */ + @Override public Object getObject(String columnLabel) throws InvalidResultSetAccessException { return getObject(findColumn(columnLabel)); } @@ -360,6 +384,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#getShort(String) */ + @Override public short getShort(String columnLabel) throws InvalidResultSetAccessException { return getShort(findColumn(columnLabel)); } @@ -379,6 +405,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#getString(String) */ + @Override public String getString(String columnLabel) throws InvalidResultSetAccessException { return getString(findColumn(columnLabel)); } @@ -398,6 +426,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#getTime(String) */ + @Override public Time getTime(String columnLabel) throws InvalidResultSetAccessException { return getTime(findColumn(columnLabel)); } @@ -436,6 +468,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#getTimestamp(String) */ + @Override public Timestamp getTimestamp(String columnLabel) throws InvalidResultSetAccessException { return getTimestamp(findColumn(columnLabel)); } @@ -477,6 +513,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#afterLast() */ + @Override public void afterLast() throws InvalidResultSetAccessException { try { this.resultSet.afterLast(); @@ -501,6 +539,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#beforeFirst() */ + @Override public void beforeFirst() throws InvalidResultSetAccessException { try { this.resultSet.beforeFirst(); @@ -513,6 +552,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#first() */ + @Override public boolean first() throws InvalidResultSetAccessException { try { return this.resultSet.first(); @@ -525,6 +565,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#getRow() */ + @Override public int getRow() throws InvalidResultSetAccessException { try { return this.resultSet.getRow(); @@ -537,6 +578,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#isAfterLast() */ + @Override public boolean isAfterLast() throws InvalidResultSetAccessException { try { return this.resultSet.isAfterLast(); @@ -549,6 +591,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#isBeforeFirst() */ + @Override public boolean isBeforeFirst() throws InvalidResultSetAccessException { try { return this.resultSet.isBeforeFirst(); @@ -561,6 +604,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#isFirst() */ + @Override public boolean isFirst() throws InvalidResultSetAccessException { try { return this.resultSet.isFirst(); @@ -573,6 +617,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#isLast() */ + @Override public boolean isLast() throws InvalidResultSetAccessException { try { return this.resultSet.isLast(); @@ -585,6 +630,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#last() */ + @Override public boolean last() throws InvalidResultSetAccessException { try { return this.resultSet.last(); @@ -597,6 +643,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#next() */ + @Override public boolean next() throws InvalidResultSetAccessException { try { return this.resultSet.next(); @@ -609,6 +656,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @see java.sql.ResultSet#previous() */ + @Override public boolean previous() throws InvalidResultSetAccessException { try { return this.resultSet.previous(); @@ -621,6 +669,7 @@ public class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 class ResultSetWrappingSqlRowSet implements SqlRowSet { /** * @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 31d9d9e14e..cf5f83dac5 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 class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData { } + @Override public String getCatalogName(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getCatalogName(column); @@ -64,6 +65,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData { } } + @Override public String getColumnClassName(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getColumnClassName(column); @@ -73,6 +75,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData { } } + @Override public int getColumnCount() throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getColumnCount(); @@ -82,6 +85,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData { } } + @Override public String[] getColumnNames() throws InvalidResultSetAccessException { if (this.columnNames == null) { this.columnNames = new String[getColumnCount()]; @@ -92,6 +96,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData { return this.columnNames; } + @Override public int getColumnDisplaySize(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getColumnDisplaySize(column); @@ -101,6 +106,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData { } } + @Override public String getColumnLabel(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getColumnLabel(column); @@ -110,6 +116,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData { } } + @Override public String getColumnName(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getColumnName(column); @@ -119,6 +126,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData { } } + @Override public int getColumnType(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getColumnType(column); @@ -128,6 +136,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData { } } + @Override public String getColumnTypeName(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getColumnTypeName(column); @@ -137,6 +146,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData { } } + @Override public int getPrecision(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getPrecision(column); @@ -146,6 +156,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData { } } + @Override public int getScale(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getScale(column); @@ -155,6 +166,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData { } } + @Override public String getSchemaName(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getSchemaName(column); @@ -164,6 +176,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData { } } + @Override public String getTableName(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.getTableName(column); @@ -173,6 +186,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData { } } + @Override public boolean isCaseSensitive(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.isCaseSensitive(column); @@ -182,6 +196,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData { } } + @Override public boolean isCurrency(int column) throws InvalidResultSetAccessException { try { return this.resultSetMetaData.isCurrency(column); @@ -191,6 +206,7 @@ public class ResultSetWrappingSqlRowSetMetaData implements SqlRowSetMetaData { } } + @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 13f0363377..ed9d66190c 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 class Jdbc4SqlXmlHandler implements SqlXmlHandler { // Convenience methods for building XML content //------------------------------------------------------------------------- + @Override public SqlXmlValue newSqlXmlValue(final String value) { return new AbstractJdbc4SqlXmlValue() { @Override @@ -98,6 +107,7 @@ public class Jdbc4SqlXmlHandler implements SqlXmlHandler { }; } + @Override public SqlXmlValue newSqlXmlValue(final XmlBinaryStreamProvider provider) { return new AbstractJdbc4SqlXmlValue() { @Override @@ -107,6 +117,7 @@ public class Jdbc4SqlXmlHandler implements SqlXmlHandler { }; } + @Override public SqlXmlValue newSqlXmlValue(final XmlCharacterStreamProvider provider) { return new AbstractJdbc4SqlXmlValue() { @Override @@ -116,6 +127,7 @@ public class Jdbc4SqlXmlHandler implements SqlXmlHandler { }; } + @Override public SqlXmlValue newSqlXmlValue(final Class resultClass, final XmlResultProvider provider) { return new AbstractJdbc4SqlXmlValue() { @Override @@ -126,6 +138,7 @@ public class Jdbc4SqlXmlHandler implements SqlXmlHandler { }; } + @Override public SqlXmlValue newSqlXmlValue(final Document document) { return new AbstractJdbc4SqlXmlValue() { @Override @@ -143,6 +156,7 @@ public class Jdbc4SqlXmlHandler implements SqlXmlHandler { private SQLXML xmlObject; + @Override public void setValue(PreparedStatement ps, int paramIndex) throws SQLException { this.xmlObject = ps.getConnection().createSQLXML(); try { @@ -154,6 +168,7 @@ public class Jdbc4SqlXmlHandler implements SqlXmlHandler { ps.setSQLXML(paramIndex, this.xmlObject); } + @Override public void cleanup() { try { this.xmlObject.free(); 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 9da83d02ec..b2d3a6f442 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 abstract class JmsException extends NestedRuntimeException { * 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 9407db27f4..a69e172348 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 @@ -88,6 +88,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 4c34748211..327c15b3e9 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 05ecd8b5de..68787b5f05 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 d4642a6bda..7b78bd093b 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 @@ import org.springframework.beans.factory.xml.NamespaceHandlerSupport; */ 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 83393ec5af..7d138c7cdd 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,42 +42,52 @@ class CachedMessageConsumer implements MessageConsumer, QueueReceiver, TopicSubs } + @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... } 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 34726e78bb..d879e587c7 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 @@ -55,6 +55,7 @@ class CachedMessageProducer implements MessageProducer, QueueSender, TopicPublis } + @Override public void setDisableMessageID(boolean disableMessageID) throws JMSException { if (this.originalDisableMessageID == null) { this.originalDisableMessageID = Boolean.valueOf(this.target.getDisableMessageID()); @@ -62,10 +63,12 @@ class CachedMessageProducer implements MessageProducer, QueueSender, TopicPublis 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 = Boolean.valueOf(this.target.getDisableMessageTimestamp()); @@ -73,86 +76,107 @@ class CachedMessageProducer implements MessageProducer, QueueSender, TopicPublis this.target.setDisableMessageTimestamp(disableMessageTimestamp); } + @Override public boolean getDisableMessageTimestamp() throws JMSException { return this.target.getDisableMessageTimestamp(); } + @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) { 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 367d8b804a..9e0229c58e 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 @@ -176,6 +176,7 @@ public class CachingConnectionFactory extends SingleConnectionFactory { /** * Resets the Session cache as well. */ + @Override public void resetConnection() { this.active = false; synchronized (this.cachedSessions) { @@ -202,6 +203,7 @@ public class CachingConnectionFactory extends SingleConnectionFactory { /** * Checks for a cached Session for the given mode. */ + @Override protected Session getSession(Connection con, Integer mode) throws JMSException { LinkedList sessionList; synchronized (this.cachedSessions) { @@ -279,6 +281,7 @@ public class CachingConnectionFactory extends SingleConnectionFactory { this.sessionList = sessionList; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String methodName = method.getName(); if (methodName.equals("equals")) { 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 fc8f481e4b..d94cdadb63 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 class ChainedExceptionListener implements ExceptionListener { } + @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 a668a1d62e..72f0497453 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 abstract class ConnectionFactoryUtils { 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 abstract class ConnectionFactoryUtils { 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 abstract class ConnectionFactoryUtils { 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 abstract class ConnectionFactoryUtils { this.transacted = transacted; } + @Override protected boolean shouldReleaseBeforeCompletion() { return !this.transacted; } + @Override protected void processResourceAfterCommit(JmsResourceHolder resourceHolder) { try { resourceHolder.commitAll(); @@ -408,6 +425,7 @@ public abstract class ConnectionFactoryUtils { } } + @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 e01bfec1f0..85a1a589de 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 class DelegatingConnectionFactory this.shouldStopConnections = shouldStopConnections; } + @Override public void afterPropertiesSet() { if (getTargetConnectionFactory() == null) { throw new IllegalArgumentException("'targetConnectionFactory' is required"); @@ -92,14 +93,17 @@ public class DelegatingConnectionFactory } + @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 class DelegatingConnectionFactory } } + @Override public QueueConnection createQueueConnection(String username, String password) throws JMSException { ConnectionFactory cf = getTargetConnectionFactory(); if (cf instanceof QueueConnectionFactory) { @@ -128,6 +133,7 @@ public class DelegatingConnectionFactory } } + @Override public TopicConnection createTopicConnection() throws JMSException { ConnectionFactory cf = getTargetConnectionFactory(); if (cf instanceof TopicConnectionFactory) { @@ -142,6 +148,7 @@ public class DelegatingConnectionFactory } } + @Override public TopicConnection createTopicConnection(String username, String password) throws JMSException { ConnectionFactory cf = getTargetConnectionFactory(); if (cf instanceof TopicConnectionFactory) { @@ -156,6 +163,7 @@ public class DelegatingConnectionFactory } } + @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 28a683c8f5..3587b13582 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 class JmsTransactionManager extends AbstractPlatformTransactionManager /** * 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 class JmsTransactionManager extends AbstractPlatformTransactionManager } + @Override public Object getResourceFactory() { return getConnectionFactory(); } + @Override protected Object doGetTransaction() { JmsTransactionObject txObject = new JmsTransactionObject(); txObject.setResourceHolder( @@ -164,11 +167,13 @@ public class JmsTransactionManager extends AbstractPlatformTransactionManager 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 @@ public class JmsTransactionManager extends AbstractPlatformTransactionManager } } + @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 @@ public class JmsTransactionManager extends AbstractPlatformTransactionManager } } + @Override protected void doRollback(DefaultTransactionStatus status) { JmsTransactionObject txObject = (JmsTransactionObject) status.getTransaction(); Session session = txObject.getResourceHolder().getSession(); @@ -246,11 +255,13 @@ public class JmsTransactionManager extends AbstractPlatformTransactionManager } } + @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 class JmsTransactionManager extends AbstractPlatformTransactionManager 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/JmsTransactionManager102.java b/spring-jms/src/main/java/org/springframework/jms/connection/JmsTransactionManager102.java index 5d73a3497c..0ba0243708 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/JmsTransactionManager102.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/JmsTransactionManager102.java @@ -100,6 +100,7 @@ public class JmsTransactionManager102 extends JmsTransactionManager { * the specified destination type: QueueConnectionFactory for queues, * and TopicConnectionFactory for topics. */ + @Override public void afterPropertiesSet() { super.afterPropertiesSet(); @@ -127,6 +128,7 @@ public class JmsTransactionManager102 extends JmsTransactionManager { /** * This implementation overrides the superclass method to use JMS 1.0.2 API. */ + @Override protected Connection createConnection() throws JMSException { if (isPubSubDomain()) { return ((TopicConnectionFactory) getConnectionFactory()).createTopicConnection(); @@ -139,6 +141,7 @@ public class JmsTransactionManager102 extends JmsTransactionManager { /** * This implementation overrides the superclass method to use JMS 1.0.2 API. */ + @Override protected Session createSession(Connection con) throws JMSException { if (isPubSubDomain()) { return ((TopicConnection) con).createTopicSession(true, Session.AUTO_ACKNOWLEDGE); 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 ed298a1c29..974c2923fd 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 @@ public class SingleConnectionFactory /** * 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 class SingleConnectionFactory } + @Override public Connection createConnection() throws JMSException { synchronized (this.connectionMonitor) { if (this.connection == null) { @@ -228,11 +230,13 @@ public class SingleConnectionFactory } } + @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 class SingleConnectionFactory 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 class SingleConnectionFactory 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 class SingleConnectionFactory /** * 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 class SingleConnectionFactory *

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 class SingleConnectionFactory 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/SingleConnectionFactory102.java b/spring-jms/src/main/java/org/springframework/jms/connection/SingleConnectionFactory102.java index b9097d06a1..e832baa960 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/SingleConnectionFactory102.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/SingleConnectionFactory102.java @@ -93,6 +93,7 @@ public class SingleConnectionFactory102 extends SingleConnectionFactory { * the specified destination type: QueueConnectionFactory for queues, * TopicConnectionFactory for topics. */ + @Override public void afterPropertiesSet() { super.afterPropertiesSet(); @@ -119,6 +120,7 @@ public class SingleConnectionFactory102 extends SingleConnectionFactory { /** * This implementation overrides the superclass method to use JMS 1.0.2 API. */ + @Override protected Connection doCreateConnection() throws JMSException { if (isPubSubDomain()) { return ((TopicConnectionFactory) getTargetConnectionFactory()).createTopicConnection(); 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 ccacc0df0b..de2b64c1fa 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 @@ public class TransactionAwareConnectionFactoryProxy } + @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 class TransactionAwareConnectionFactoryProxy 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 class TransactionAwareConnectionFactoryProxy 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 class TransactionAwareConnectionFactoryProxy 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 class TransactionAwareConnectionFactoryProxy 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 class TransactionAwareConnectionFactoryProxy 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 2d1cc49b27..83ec1aa55e 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 class UserCredentialsConnectionFactoryAdapter this.password = password; } + @Override public void afterPropertiesSet() { if (this.targetConnectionFactory == null) { throw new IllegalArgumentException("Property 'targetConnectionFactory' is required"); @@ -141,6 +142,7 @@ public class UserCredentialsConnectionFactoryAdapter * 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 class UserCredentialsConnectionFactoryAdapter /** * 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 @@ public class UserCredentialsConnectionFactoryAdapter * 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 class UserCredentialsConnectionFactoryAdapter /** * 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 @@ public class UserCredentialsConnectionFactoryAdapter * 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 class UserCredentialsConnectionFactoryAdapter /** * Delegate the call straight to the target TopicConnectionFactory. */ + @Override public TopicConnection createTopicConnection(String username, String password) throws JMSException { return doCreateTopicConnection(username, 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 c2b7ca8a77..4f8d0e17af 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 @@ -427,6 +427,7 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations // JmsOperations execute methods //------------------------------------------------------------------------- + @Override public T execute(SessionCallback action) throws JmsException { return execute(action, false); } @@ -474,6 +475,7 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations } } + @Override public T execute(ProducerCallback action) throws JmsException { String defaultDestinationName = getDefaultDestinationName(); if (defaultDestinationName != null) { @@ -484,9 +486,11 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations } } + @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 { @@ -499,9 +503,11 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations }, 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); @@ -520,6 +526,7 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations // Convenience methods for sending messages //------------------------------------------------------------------------- + @Override public void send(MessageCreator messageCreator) throws JmsException { Destination defaultDestination = getDefaultDestination(); if (defaultDestination != null) { @@ -530,8 +537,10 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations } } + @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; @@ -539,8 +548,10 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations }, 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); @@ -598,6 +609,7 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations // Convenience methods for sending auto-converted messages //------------------------------------------------------------------------- + @Override public void convertAndSend(Object message) throws JmsException { Destination defaultDestination = getDefaultDestination(); if (defaultDestination != null) { @@ -608,22 +620,27 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations } } + @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) { @@ -634,11 +651,13 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations } } + @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); @@ -646,11 +665,13 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations }); } + @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); @@ -663,6 +684,7 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations // Convenience methods for receiving messages //------------------------------------------------------------------------- + @Override public Message receive() throws JmsException { Destination defaultDestination = getDefaultDestination(); if (defaultDestination != null) { @@ -673,14 +695,17 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations } } + @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) { @@ -691,16 +716,20 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations } } + @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); @@ -783,26 +812,32 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations // 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)); } @@ -829,6 +864,7 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations // Convenience methods for browsing messages //------------------------------------------------------------------------- + @Override public T browse(BrowserCallback action) throws JmsException { Queue defaultQueue = getDefaultQueue(); if (defaultQueue != null) { @@ -839,14 +875,17 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations } } + @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) { @@ -857,11 +896,13 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations } } + @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 { @@ -874,11 +915,13 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations }, 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); @@ -1019,22 +1062,27 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations */ 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/JmsTemplate102.java b/spring-jms/src/main/java/org/springframework/jms/core/JmsTemplate102.java index 0aa7fbc49f..57062933e5 100644 --- a/spring-jms/src/main/java/org/springframework/jms/core/JmsTemplate102.java +++ b/spring-jms/src/main/java/org/springframework/jms/core/JmsTemplate102.java @@ -111,6 +111,7 @@ public class JmsTemplate102 extends JmsTemplate { * @see org.springframework.jms.support.destination.DynamicDestinationResolver * @see org.springframework.jms.support.converter.SimpleMessageConverter102 */ + @Override protected void initDefaultStrategies() { setMessageConverter(new SimpleMessageConverter102()); } @@ -121,6 +122,7 @@ public class JmsTemplate102 extends JmsTemplate { * the specified destination type: QueueConnectionFactory for queues, * and TopicConnectionFactory for topics. */ + @Override public void afterPropertiesSet() { super.afterPropertiesSet(); @@ -149,6 +151,7 @@ public class JmsTemplate102 extends JmsTemplate { * This implementation overrides the superclass method to accept either * a QueueConnection or a TopicConnection, depending on the domain. */ + @Override protected Connection getConnection(JmsResourceHolder holder) { return holder.getConnection(isPubSubDomain() ? (Class) TopicConnection.class : QueueConnection.class); } @@ -157,6 +160,7 @@ public class JmsTemplate102 extends JmsTemplate { * This implementation overrides the superclass method to accept either * a QueueSession or a TopicSession, depending on the domain. */ + @Override protected Session getSession(JmsResourceHolder holder) { return holder.getSession(isPubSubDomain() ? (Class) TopicSession.class : QueueSession.class); } @@ -164,6 +168,7 @@ public class JmsTemplate102 extends JmsTemplate { /** * This implementation overrides the superclass method to use JMS 1.0.2 API. */ + @Override protected Connection createConnection() throws JMSException { if (isPubSubDomain()) { return ((TopicConnectionFactory) getConnectionFactory()).createTopicConnection(); @@ -176,6 +181,7 @@ public class JmsTemplate102 extends JmsTemplate { /** * This implementation overrides the superclass method to use JMS 1.0.2 API. */ + @Override protected Session createSession(Connection con) throws JMSException { if (isPubSubDomain()) { return ((TopicConnection) con).createTopicSession(isSessionTransacted(), getSessionAcknowledgeMode()); @@ -188,6 +194,7 @@ public class JmsTemplate102 extends JmsTemplate { /** * This implementation overrides the superclass method to use JMS 1.0.2 API. */ + @Override protected MessageProducer doCreateProducer(Session session, Destination destination) throws JMSException { if (isPubSubDomain()) { return ((TopicSession) session).createPublisher((Topic) destination); @@ -200,6 +207,7 @@ public class JmsTemplate102 extends JmsTemplate { /** * This implementation overrides the superclass method to use JMS 1.0.2 API. */ + @Override protected MessageConsumer createConsumer(Session session, Destination destination, String messageSelector) throws JMSException { @@ -211,6 +219,7 @@ public class JmsTemplate102 extends JmsTemplate { } } + @Override protected QueueBrowser createBrowser(Session session, Queue queue, String messageSelector) throws JMSException { @@ -225,6 +234,7 @@ public class JmsTemplate102 extends JmsTemplate { /** * This implementation overrides the superclass method to use JMS 1.0.2 API. */ + @Override protected void doSend(MessageProducer producer, Message message) throws JMSException { if (isPubSubDomain()) { if (isExplicitQosEnabled()) { @@ -250,6 +260,7 @@ public class JmsTemplate102 extends JmsTemplate { * The best we can do here is to check the setting on the template. * @see #getSessionAcknowledgeMode() */ + @Override protected boolean isClientAcknowledge(Session session) throws JMSException { return (getSessionAcknowledgeMode() == Session.CLIENT_ACKNOWLEDGE); } 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 95314fd3b2..277e7ed893 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 abstract class JmsGatewaySupport implements InitializingBean { 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 87507c28b7..f7170925bb 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 abstract class AbstractJmsListeningContainer extends JmsDestinationAccess this.autoStartup = autoStartup; } + @Override public boolean isAutoStartup() { return this.autoStartup; } @@ -131,10 +132,12 @@ public abstract class AbstractJmsListeningContainer extends JmsDestinationAccess /** * 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 @@ public abstract class AbstractJmsListeningContainer extends JmsDestinationAccess * Calls {@link #shutdown()} when the BeanFactory destroys the container instance. * @see #shutdown() */ + @Override public void destroy() { shutdown(); } @@ -260,6 +264,7 @@ public abstract class AbstractJmsListeningContainer extends JmsDestinationAccess * @throws JmsException if starting failed * @see #doStart */ + @Override public void start() throws JmsException { try { doStart(); @@ -298,6 +303,7 @@ public abstract class AbstractJmsListeningContainer extends JmsDestinationAccess * @throws JmsException if stopping failed * @see #doStop */ + @Override public void stop() throws JmsException { try { doStop(); @@ -307,6 +313,7 @@ public abstract class AbstractJmsListeningContainer extends JmsDestinationAccess } } + @Override public void stop(Runnable callback) { this.stop(); callback.run(); @@ -335,6 +342,7 @@ public abstract class AbstractJmsListeningContainer extends JmsDestinationAccess * @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 e899ca12cd..e5db170e73 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 @@ public abstract class AbstractPollingMessageListenerContainer extends AbstractMe */ 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 abstract class AbstractPollingMessageListenerContainer extends AbstractMe } } + @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 91b15c319d..e192103d42 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 @@ -947,6 +947,7 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe private volatile boolean idle = true; + @Override public void run() { synchronized (lifecycleMonitor) { activeInvokerCount++; @@ -1123,6 +1124,7 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe this.session = null; } + @Override public boolean isLongLived() { return (maxMessagesPerTask < 0); } diff --git a/spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer102.java b/spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer102.java index f15fb92323..e8d350ef4d 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer102.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer102.java @@ -50,6 +50,7 @@ public class DefaultMessageListenerContainer102 extends DefaultMessageListenerCo * This implementation overrides the superclass method to accept either * a QueueConnection or a TopicConnection, depending on the domain. */ + @Override protected Connection getConnection(JmsResourceHolder holder) { return holder.getConnection(isPubSubDomain() ? TopicConnection.class : QueueConnection.class); } @@ -58,6 +59,7 @@ public class DefaultMessageListenerContainer102 extends DefaultMessageListenerCo * This implementation overrides the superclass method to accept either * a QueueSession or a TopicSession, depending on the domain. */ + @Override protected Session getSession(JmsResourceHolder holder) { return holder.getSession(isPubSubDomain() ? TopicSession.class : QueueSession.class); } @@ -65,6 +67,7 @@ public class DefaultMessageListenerContainer102 extends DefaultMessageListenerCo /** * This implementation overrides the superclass method to use JMS 1.0.2 API. */ + @Override protected Connection createConnection() throws JMSException { if (isPubSubDomain()) { return ((TopicConnectionFactory) getConnectionFactory()).createTopicConnection(); @@ -77,6 +80,7 @@ public class DefaultMessageListenerContainer102 extends DefaultMessageListenerCo /** * This implementation overrides the superclass method to use JMS 1.0.2 API. */ + @Override protected Session createSession(Connection con) throws JMSException { if (isPubSubDomain()) { return ((TopicConnection) con).createTopicSession(isSessionTransacted(), getSessionAcknowledgeMode()); @@ -89,6 +93,7 @@ public class DefaultMessageListenerContainer102 extends DefaultMessageListenerCo /** * This implementation overrides the superclass method to use JMS 1.0.2 API. */ + @Override protected MessageConsumer createConsumer(Session session, Destination destination) throws JMSException { if (isPubSubDomain()) { if (isSubscriptionDurable()) { @@ -110,6 +115,7 @@ public class DefaultMessageListenerContainer102 extends DefaultMessageListenerCo * JMS 1.1's Session {@code getAcknowledgeMode()} method. * The best we can do here is to check the setting on the listener container. */ + @Override protected boolean isClientAcknowledge(Session session) throws JMSException { return (getSessionAcknowledgeMode() == Session.CLIENT_ACKNOWLEDGE); } 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 c3f0f22e59..2a503cc754 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 @@ public class SimpleMessageListenerContainer extends AbstractMessageListenerConta * 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 @@ public class SimpleMessageListenerContainer extends AbstractMessageListenerConta 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 class SimpleMessageListenerContainer extends AbstractMessageListenerConta } 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/SimpleMessageListenerContainer102.java b/spring-jms/src/main/java/org/springframework/jms/listener/SimpleMessageListenerContainer102.java index 758301eb40..5e19ab4c29 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/SimpleMessageListenerContainer102.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/SimpleMessageListenerContainer102.java @@ -47,6 +47,7 @@ public class SimpleMessageListenerContainer102 extends SimpleMessageListenerCont /** * This implementation overrides the superclass method to use JMS 1.0.2 API. */ + @Override protected Connection createConnection() throws JMSException { if (isPubSubDomain()) { return ((TopicConnectionFactory) getConnectionFactory()).createTopicConnection(); @@ -59,6 +60,7 @@ public class SimpleMessageListenerContainer102 extends SimpleMessageListenerCont /** * This implementation overrides the superclass method to use JMS 1.0.2 API. */ + @Override protected Session createSession(Connection con) throws JMSException { if (isPubSubDomain()) { return ((TopicConnection) con).createTopicSession(isSessionTransacted(), getSessionAcknowledgeMode()); @@ -71,6 +73,7 @@ public class SimpleMessageListenerContainer102 extends SimpleMessageListenerCont /** * This implementation overrides the superclass method to use JMS 1.0.2 API. */ + @Override protected MessageConsumer createConsumer(Session session, Destination destination) throws JMSException { if (isPubSubDomain()) { if (isSubscriptionDurable()) { @@ -92,6 +95,7 @@ public class SimpleMessageListenerContainer102 extends SimpleMessageListenerCont * JMS 1.1's Session {@code getAcknowledgeMode()} method. * The best we can do here is to check the setting on the listener container. */ + @Override protected boolean isClientAcknowledge(Session session) throws JMSException { return (getSessionAcknowledgeMode() == Session.CLIENT_ACKNOWLEDGE); } 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 3aa313c925..23ead10e33 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 @@ public class MessageListenerAdapter * @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 class MessageListenerAdapter * @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 @@ public class MessageListenerAdapter } } + @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/adapter/MessageListenerAdapter102.java b/spring-jms/src/main/java/org/springframework/jms/listener/adapter/MessageListenerAdapter102.java index 8d15d9b640..50f25c1eb6 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/adapter/MessageListenerAdapter102.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/adapter/MessageListenerAdapter102.java @@ -69,6 +69,7 @@ public class MessageListenerAdapter102 extends MessageListenerAdapter { * @see #setMessageConverter * @see org.springframework.jms.support.converter.SimpleMessageConverter102 */ + @Override protected void initDefaultStrategies() { setMessageConverter(new SimpleMessageConverter102()); } @@ -78,6 +79,7 @@ public class MessageListenerAdapter102 extends MessageListenerAdapter { *

Uses the JMS pub-sub API if the given destination is a topic, * else uses the JMS queue API. */ + @Override protected void sendResponse(Session session, Destination destination, Message response) throws JMSException { MessageProducer producer = null; try { 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 0f11609876..c0e008f560 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 @@ public class DefaultJmsActivationSpecFactory extends StandardJmsActivationSpecFa * "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 @@ public class DefaultJmsActivationSpecFactory extends StandardJmsActivationSpecFa * 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 392d02b1fa..3441aacf2b 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 class JmsMessageEndpointFactory extends AbstractMessageEndpointFactory { /** * Creates a concrete JMS message endpoint, internal to this factory. */ + @Override protected AbstractMessageEndpoint createEndpointInternal() throws UnavailableException { return new JmsMessageEndpoint(); } @@ -69,6 +70,7 @@ public class JmsMessageEndpointFactory extends AbstractMessageEndpointFactory { */ private class JmsMessageEndpoint extends AbstractMessageEndpoint implements MessageListener { + @Override public void onMessage(Message message) { boolean applyDeliveryCalls = !hasBeforeDeliveryBeenCalled(); if (applyDeliveryCalls) { @@ -102,6 +104,7 @@ public class JmsMessageEndpointFactory extends AbstractMessageEndpointFactory { } } + @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 052fe9ec61..2bf01afad5 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 class JmsMessageEndpointManager extends GenericMessageEndpointManager { } + @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 7263a4c993..62ac11d7d2 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 class StandardJmsActivationSpecFactory implements JmsActivationSpecFactor } + @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 dfc481c0e4..66c1d79490 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 @@ public class JmsInvokerClientInterceptor implements MethodInterceptor, Initializ } + @Override public void afterPropertiesSet() { if (getConnectionFactory() == null) { throw new IllegalArgumentException("Property 'connectionFactory' is required"); @@ -190,6 +191,7 @@ public class JmsInvokerClientInterceptor implements MethodInterceptor, Initializ } + @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 1b4cce84d7..0bfe3407af 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 class JmsInvokerProxyFactoryBean extends JmsInvokerClientInterceptor 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 class JmsInvokerProxyFactoryBean extends JmsInvokerClientInterceptor } + @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 38dbfe53cf..8d5ba01cea 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 class JmsInvokerServiceExporter extends RemoteInvocationBasedExporter 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 80023bc3d0..70b06ad033 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 abstract class JmsAccessor implements InitializingBean { 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/MappingJacksonMessageConverter.java b/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJacksonMessageConverter.java index 091e5fc4a3..976daf69c1 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 @@ -146,6 +146,7 @@ public class MappingJacksonMessageConverter implements MessageConverter { } + @Override public Message toMessage(Object object, Session session) throws JMSException, MessageConversionException { Message message; try { @@ -167,6 +168,7 @@ public class MappingJacksonMessageConverter implements MessageConverter { 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 9378d21c47..9cdaaae362 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 class MarshallingMessageConverter implements MessageConverter, Initializi 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 class MarshallingMessageConverter implements MessageConverter, Initializi * @see #marshalToTextMessage * @see #marshalToBytesMessage */ + @Override public Message toMessage(Object object, Session session) throws JMSException, MessageConversionException { try { switch (this.targetType) { @@ -169,6 +171,7 @@ public class MarshallingMessageConverter implements MessageConverter, Initializi * @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 939bd0f211..fd5e4be5a0 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 @@ public class SimpleMessageConverter implements MessageConverter { * @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/converter/SimpleMessageConverter102.java b/spring-jms/src/main/java/org/springframework/jms/support/converter/SimpleMessageConverter102.java index 569b9cbedf..a8d7d2f5c9 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/converter/SimpleMessageConverter102.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/converter/SimpleMessageConverter102.java @@ -50,6 +50,7 @@ public class SimpleMessageConverter102 extends SimpleMessageConverter { * JMS 1.1 and is therefore not available on a JMS 1.0.2 provider. * @see javax.jms.BytesMessage#getBodyLength() */ + @Override protected byte[] extractByteArrayFromMessage(BytesMessage message) throws JMSException { ByteArrayOutputStream baos = new ByteArrayOutputStream(BUFFER_SIZE); byte[] buffer = new byte[BUFFER_SIZE]; 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 e3105c223d..73591a51eb 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 class BeanFactoryDestinationResolver implements DestinationResolver, Bean } + @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 f3d39361f8..7f6450fffe 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 b9bf560e8e..5ed8476495 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 class JndiDestinationResolver extends JndiLocatorSupport implements Cachi } + @Override public Destination resolveDestinationName(Session session, String destinationName, boolean pubSubDomain) throws JMSException { @@ -150,10 +151,12 @@ public class JndiDestinationResolver extends JndiLocatorSupport implements Cachi } + @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 4801a5afbc..7223e8d7da 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 @@ import org.springframework.dao.support.PersistenceExceptionTranslator; */ 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 ddde103c1d..f0bc322e26 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 @@ -242,6 +242,7 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana this.hibernateManagedSession = hibernateManagedSession; } + @Override public void afterPropertiesSet() { if (getSessionFactory() == null) { throw new IllegalArgumentException("Property 'sessionFactory' is required"); @@ -262,6 +263,7 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana } + @Override public Object getResourceFactory() { return getSessionFactory(); } @@ -652,6 +654,7 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana } } + @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 dea7f1a139..ab24c96150 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 @@ -268,11 +268,13 @@ public class LocalSessionFactoryBean extends HibernateExceptionTranslator 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); @@ -385,19 +387,23 @@ public class LocalSessionFactoryBean extends HibernateExceptionTranslator } + @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 1a5c4bd678..1dfd5aa866 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 class SpringSessionContext implements CurrentSessionContext { /** * 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 a831617d9c..9f48f5f010 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 @@ class SpringSessionSynchronization implements TransactionSynchronization, Ordere } + @Override public int getOrder() { return SessionFactoryUtils.SESSION_SYNCHRONIZATION_ORDER; } + @Override public void suspend() { if (this.holderActive) { TransactionSynchronizationManager.unbindResource(this.sessionFactory); @@ -64,12 +66,14 @@ class SpringSessionSynchronization implements TransactionSynchronization, Ordere } } + @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 @@ class SpringSessionSynchronization implements TransactionSynchronization, Ordere } } + @Override public void beforeCommit(boolean readOnly) throws DataAccessException { if (!readOnly) { Session session = getCurrentSession(); @@ -97,6 +102,7 @@ class SpringSessionSynchronization implements TransactionSynchronization, Ordere } } + @Override public void beforeCompletion() { Session session = this.sessionHolder.getSession(); if (this.sessionHolder.getPreviousFlushMode() != null) { @@ -107,9 +113,11 @@ class SpringSessionSynchronization implements TransactionSynchronization, Ordere 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 8994255e75..4d82160eb7 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 class OpenSessionInViewInterceptor implements AsyncWebRequestInterceptor * {@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 class OpenSessionInViewInterceptor implements AsyncWebRequestInterceptor } } + @Override public void postHandle(WebRequest request, ModelMap model) { } @@ -130,6 +132,7 @@ public class OpenSessionInViewInterceptor implements AsyncWebRequestInterceptor * 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 @@ public class OpenSessionInViewInterceptor implements AsyncWebRequestInterceptor 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 4475af596a..2a53432f81 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 @@ public abstract class AbstractSessionFactoryBean extends HibernateExceptionTrans * @see #buildSessionFactory() * @see #wrapSessionFactoryIfNecessary */ + @Override public void afterPropertiesSet() throws Exception { SessionFactory rawSf = buildSessionFactory(); this.sessionFactory = wrapSessionFactoryIfNecessary(rawSf); @@ -219,6 +220,7 @@ public abstract class AbstractSessionFactoryBean extends HibernateExceptionTrans /** * Close the SessionFactory on bean factory shutdown. */ + @Override public void destroy() throws HibernateException { logger.info("Closing Hibernate SessionFactory"); try { @@ -233,14 +235,17 @@ public abstract class AbstractSessionFactoryBean extends HibernateExceptionTrans /** * 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 54bc662c7d..0f401001db 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 @@ -137,26 +137,31 @@ public class FilterDefinitionFactoryBean implements FactoryBean 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 ddc08aed8b..fb0dc74444 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 abstract class HibernateAccessor implements InitializingBean, BeanFactory * 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 60e298cccf..0c54690470 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 class HibernateExceptionTranslator implements PersistenceExceptionTransla } + @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 79339de558..a5ca4902a7 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 class HibernateInterceptor extends HibernateAccessor implements MethodInt } + @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 1edc733d3b..f833ab890e 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 class HibernateTemplate extends HibernateAccessor implements HibernateOpe } + @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 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe // 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 class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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 class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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 class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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 class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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 class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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 class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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 class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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 class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @Override public void initialize(Object proxy) throws DataAccessException { try { Hibernate.initialize(proxy); @@ -645,6 +671,7 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe } } + @Override public Filter enableFilter(String filterName) throws IllegalStateException { Session session = SessionFactoryUtils.getSession(getSessionFactory(), false); Filter filter = session.getEnabledFilter(filterName); @@ -659,8 +686,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe // 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 class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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 class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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 class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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 class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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 class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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 class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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 class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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,8 +798,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @Override public void saveOrUpdateAll(final Collection entities) throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { checkWriteOperationAllowed(session); for (Object entity : entities) { @@ -765,10 +812,12 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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); @@ -777,10 +826,12 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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); @@ -789,8 +840,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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); @@ -799,8 +852,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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); @@ -809,8 +864,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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); @@ -819,8 +876,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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); @@ -829,12 +888,15 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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) { @@ -846,14 +908,17 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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) { @@ -865,8 +930,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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) { @@ -877,8 +944,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @Override public void flush() throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException { session.flush(); return null; @@ -886,8 +955,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @Override public void clear() throws DataAccessException { executeWithNativeSession(new HibernateCallback() { + @Override public Object doInHibernate(Session session) { session.clear(); return null; @@ -900,16 +971,20 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe // 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); @@ -923,12 +998,14 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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 { @@ -936,6 +1013,7 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe 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); @@ -949,10 +1027,12 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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); @@ -967,16 +1047,20 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe // 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); @@ -990,12 +1074,14 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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 { @@ -1004,6 +1090,7 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe 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); @@ -1017,10 +1104,12 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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); @@ -1035,15 +1124,18 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe // 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); @@ -1058,24 +1150,29 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @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())); @@ -1097,16 +1194,20 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe // 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); @@ -1120,6 +1221,7 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @Override public void closeIterator(Iterator it) throws DataAccessException { try { Hibernate.close(it); @@ -1129,16 +1231,20 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe } } + @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); @@ -1261,6 +1367,7 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe 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 d3d1e13733..813d5ea2f4 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 class HibernateTransactionManager extends AbstractPlatformTransactionMana * 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 class HibernateTransactionManager extends AbstractPlatformTransactionMana } + @Override public Object getResourceFactory() { return getSessionFactory(); } @@ -882,11 +885,13 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana } } + @Override public boolean isRollbackOnly() { return this.sessionHolder.isRollbackOnly() || (hasConnectionHolder() && getConnectionHolder().isRollbackOnly()); } + @Override public void flush() { try { this.sessionHolder.getSession().flush(); diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalCacheProviderProxy.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalCacheProviderProxy.java index dcf15059d3..ed1f18d1d5 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalCacheProviderProxy.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalCacheProviderProxy.java @@ -47,22 +47,27 @@ public class LocalCacheProviderProxy implements CacheProvider { } + @Override public Cache buildCache(String regionName, Properties properties) throws CacheException { return this.cacheProvider.buildCache(regionName, properties); } + @Override public long nextTimestamp() { return this.cacheProvider.nextTimestamp(); } + @Override public void start(Properties properties) throws CacheException { this.cacheProvider.start(properties); } + @Override public void stop() { this.cacheProvider.stop(); } + @Override public boolean isMinimalPutsEnabledByDefault() { return this.cacheProvider.isMinimalPutsEnabledByDefault(); } 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 43d4264ff8..17c2312b1d 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 class LocalDataSourceConnectionProvider implements ConnectionProvider { * 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 class LocalDataSourceConnectionProvider implements ConnectionProvider { * 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 class LocalDataSourceConnectionProvider implements ConnectionProvider { * This implementation does nothing: * We're dealing with an externally managed DataSource. */ + @Override public void close() { } @@ -114,6 +118,7 @@ public class LocalDataSourceConnectionProvider implements ConnectionProvider { * 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 06ab8f3b26..b517807708 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 @@ -70,14 +70,17 @@ public class LocalRegionFactoryProxy implements RegionFactory { } + @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(); } @@ -92,28 +95,33 @@ public class LocalRegionFactoryProxy implements RegionFactory { } } + @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 9310853b6e..ae924eecba 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 @@ -540,6 +540,7 @@ public class LocalSessionFactoryBean extends AbstractSessionFactoryBean implemen this.schemaUpdate = schemaUpdate; } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } @@ -939,6 +940,7 @@ public class LocalSessionFactoryBean extends AbstractSessionFactoryBean implemen hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_NEVER); hibernateTemplate.execute( new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException, SQLException { @SuppressWarnings("deprecation") Connection con = session.connection(); @@ -984,6 +986,7 @@ public class LocalSessionFactoryBean extends AbstractSessionFactoryBean implemen hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_NEVER); hibernateTemplate.execute( new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException, SQLException { @SuppressWarnings("deprecation") Connection con = session.connection(); @@ -1021,6 +1024,7 @@ public class LocalSessionFactoryBean extends AbstractSessionFactoryBean implemen HibernateTemplate hibernateTemplate = new HibernateTemplate(sessionFactory); hibernateTemplate.execute( new HibernateCallback() { + @Override public Object doInHibernate(Session session) throws HibernateException, SQLException { @SuppressWarnings("deprecation") Connection con = session.connection(); @@ -1058,6 +1062,7 @@ public class LocalSessionFactoryBean extends AbstractSessionFactoryBean implemen 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 2b46f7ef84..37781de5a0 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 class LocalTransactionManagerLookup implements TransactionManagerLookup { 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 0254d3cce5..0e33b32458 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 class SpringSessionContext implements CurrentSessionContext { /** * 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 240ebcbcc9..eeb7c2c7c1 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 @@ class SpringSessionSynchronization implements TransactionSynchronization, Ordere } + @Override public int getOrder() { return SessionFactoryUtils.SESSION_SYNCHRONIZATION_ORDER; } + @Override public void suspend() { if (this.holderActive) { TransactionSynchronizationManager.unbindResource(this.sessionFactory); @@ -118,12 +120,14 @@ class SpringSessionSynchronization implements TransactionSynchronization, Ordere } } + @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 @@ class SpringSessionSynchronization implements TransactionSynchronization, Ordere } } + @Override public void beforeCommit(boolean readOnly) throws DataAccessException { if (!readOnly) { Session session = getCurrentSession(); @@ -160,6 +165,7 @@ class SpringSessionSynchronization implements TransactionSynchronization, Ordere return SessionFactoryUtils.convertHibernateAccessException(ex); } + @Override public void beforeCompletion() { if (this.jtaTransaction != null) { // Typically in case of a suspended JTA transaction: @@ -214,9 +220,11 @@ class SpringSessionSynchronization implements TransactionSynchronization, Ordere } } + @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 068d1f9e6b..e5e41eecb2 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 68140afdf8..aac6fadc59 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 class TypeDefinitionBean implements BeanNameAware, InitializingBean { * 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 d944ef497d..4b7e8859d1 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 @@ -150,6 +150,7 @@ public class AnnotationSessionFactoryBean extends LocalSessionFactoryBean implem 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 e30f1e1f1c..58bea92d6a 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 @@ public abstract class AbstractLobType implements UserType { /** * This implementation returns false. */ + @Override public boolean isMutable() { return false; } @@ -95,6 +96,7 @@ public abstract class AbstractLobType implements UserType { * 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 abstract class AbstractLobType implements UserType { /** * 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 abstract class AbstractLobType implements UserType { /** * This implementation returns the passed-in value as-is. */ + @Override public Object deepCopy(Object value) throws HibernateException { return value; } @@ -116,6 +120,7 @@ public abstract class AbstractLobType implements UserType { /** * 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 abstract class AbstractLobType implements UserType { /** * 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 abstract class AbstractLobType implements UserType { /** * 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 abstract class AbstractLobType implements UserType { * 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 abstract class AbstractLobType implements UserType { * 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 bdfaf07bd7..a29ddc8068 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 @@ public class BlobByteArrayType extends AbstractLobType { 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 ddcf4f5108..3b560b94f3 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 @@ public class BlobSerializableType extends AbstractLobType { 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 3066382286..5f00c63ba4 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 @@ public class BlobStringType extends AbstractLobType { 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 bef035c6f7..97814b3fd7 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 @@ public class ClobStringType extends AbstractLobType { 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 692db0ba20..9daf211d50 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 @@ public class OpenSessionInViewInterceptor extends HibernateAccessor implements A * {@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 class OpenSessionInViewInterceptor extends HibernateAccessor implements A * 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 class OpenSessionInViewInterceptor extends HibernateAccessor implements A * 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 class OpenSessionInViewInterceptor extends HibernateAccessor implements A } } + @Override public void afterConcurrentHandlingStarted(WebRequest request) { if (!decrementParticipateCount(request)) { if (isSingleSession()) { diff --git a/spring-orm/src/main/java/org/springframework/orm/ibatis/SqlMapClientFactoryBean.java b/spring-orm/src/main/java/org/springframework/orm/ibatis/SqlMapClientFactoryBean.java index 8d10aadf8f..6af4d7e500 100644 --- a/spring-orm/src/main/java/org/springframework/orm/ibatis/SqlMapClientFactoryBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/ibatis/SqlMapClientFactoryBean.java @@ -282,6 +282,7 @@ public class SqlMapClientFactoryBean implements FactoryBean, Initi } + @Override public void afterPropertiesSet() throws Exception { if (this.lobHandler != null) { // Make given LobHandler available for SqlMapClient configuration. @@ -382,14 +383,17 @@ public class SqlMapClientFactoryBean implements FactoryBean, Initi } + @Override public SqlMapClient getObject() { return this.sqlMapClient; } + @Override public Class getObjectType() { return (this.sqlMapClient != null ? this.sqlMapClient.getClass() : SqlMapClient.class); } + @Override public boolean isSingleton() { return true; } diff --git a/spring-orm/src/main/java/org/springframework/orm/ibatis/SqlMapClientTemplate.java b/spring-orm/src/main/java/org/springframework/orm/ibatis/SqlMapClientTemplate.java index fce0f2ad19..ddcf1f198a 100644 --- a/spring-orm/src/main/java/org/springframework/orm/ibatis/SqlMapClientTemplate.java +++ b/spring-orm/src/main/java/org/springframework/orm/ibatis/SqlMapClientTemplate.java @@ -261,73 +261,87 @@ public class SqlMapClientTemplate extends JdbcAccessor implements SqlMapClientOp } + @Override public Object queryForObject(String statementName) throws DataAccessException { return queryForObject(statementName, null); } + @Override public Object queryForObject(final String statementName, final Object parameterObject) throws DataAccessException { return execute(new SqlMapClientCallback() { + @Override public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException { return executor.queryForObject(statementName, parameterObject); } }); } + @Override public Object queryForObject( final String statementName, final Object parameterObject, final Object resultObject) throws DataAccessException { return execute(new SqlMapClientCallback() { + @Override public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException { return executor.queryForObject(statementName, parameterObject, resultObject); } }); } + @Override public List queryForList(String statementName) throws DataAccessException { return queryForList(statementName, null); } + @Override public List queryForList(final String statementName, final Object parameterObject) throws DataAccessException { return execute(new SqlMapClientCallback() { + @Override public List doInSqlMapClient(SqlMapExecutor executor) throws SQLException { return executor.queryForList(statementName, parameterObject); } }); } + @Override public List queryForList(String statementName, int skipResults, int maxResults) throws DataAccessException { return queryForList(statementName, null, skipResults, maxResults); } + @Override public List queryForList( final String statementName, final Object parameterObject, final int skipResults, final int maxResults) throws DataAccessException { return execute(new SqlMapClientCallback() { + @Override public List doInSqlMapClient(SqlMapExecutor executor) throws SQLException { return executor.queryForList(statementName, parameterObject, skipResults, maxResults); } }); } + @Override public void queryWithRowHandler(String statementName, RowHandler rowHandler) throws DataAccessException { queryWithRowHandler(statementName, null, rowHandler); } + @Override public void queryWithRowHandler( final String statementName, final Object parameterObject, final RowHandler rowHandler) throws DataAccessException { execute(new SqlMapClientCallback() { + @Override public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException { executor.queryWithRowHandler(statementName, parameterObject, rowHandler); return null; @@ -335,56 +349,67 @@ public class SqlMapClientTemplate extends JdbcAccessor implements SqlMapClientOp }); } + @Override public Map queryForMap( final String statementName, final Object parameterObject, final String keyProperty) throws DataAccessException { return execute(new SqlMapClientCallback() { + @Override public Map doInSqlMapClient(SqlMapExecutor executor) throws SQLException { return executor.queryForMap(statementName, parameterObject, keyProperty); } }); } + @Override public Map queryForMap( final String statementName, final Object parameterObject, final String keyProperty, final String valueProperty) throws DataAccessException { return execute(new SqlMapClientCallback() { + @Override public Map doInSqlMapClient(SqlMapExecutor executor) throws SQLException { return executor.queryForMap(statementName, parameterObject, keyProperty, valueProperty); } }); } + @Override public Object insert(String statementName) throws DataAccessException { return insert(statementName, null); } + @Override public Object insert(final String statementName, final Object parameterObject) throws DataAccessException { return execute(new SqlMapClientCallback() { + @Override public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException { return executor.insert(statementName, parameterObject); } }); } + @Override public int update(String statementName) throws DataAccessException { return update(statementName, null); } + @Override public int update(final String statementName, final Object parameterObject) throws DataAccessException { return execute(new SqlMapClientCallback() { + @Override public Integer doInSqlMapClient(SqlMapExecutor executor) throws SQLException { return executor.update(statementName, parameterObject); } }); } + @Override public void update(String statementName, Object parameterObject, int requiredRowsAffected) throws DataAccessException { @@ -395,20 +420,24 @@ public class SqlMapClientTemplate extends JdbcAccessor implements SqlMapClientOp } } + @Override public int delete(String statementName) throws DataAccessException { return delete(statementName, null); } + @Override public int delete(final String statementName, final Object parameterObject) throws DataAccessException { return execute(new SqlMapClientCallback() { + @Override public Integer doInSqlMapClient(SqlMapExecutor executor) throws SQLException { return executor.delete(statementName, parameterObject); } }); } + @Override public void delete(String statementName, Object parameterObject, int requiredRowsAffected) throws DataAccessException { diff --git a/spring-orm/src/main/java/org/springframework/orm/ibatis/support/AbstractLobTypeHandler.java b/spring-orm/src/main/java/org/springframework/orm/ibatis/support/AbstractLobTypeHandler.java index 77189f9de7..5f2a3600d1 100644 --- a/spring-orm/src/main/java/org/springframework/orm/ibatis/support/AbstractLobTypeHandler.java +++ b/spring-orm/src/main/java/org/springframework/orm/ibatis/support/AbstractLobTypeHandler.java @@ -91,6 +91,7 @@ public abstract class AbstractLobTypeHandler extends BaseTypeHandler { * LobHandler of this type. * @see #setParameterInternal */ + @Override public final void setParameter(PreparedStatement ps, int i, Object parameter, String jdbcType) throws SQLException { @@ -116,6 +117,7 @@ public abstract class AbstractLobTypeHandler extends BaseTypeHandler { * @see #getResult(java.sql.ResultSet, String) * @see java.sql.ResultSet#findColumn */ + @Override public final Object getResult(ResultSet rs, String columnName) throws SQLException { return getResult(rs, rs.findColumn(columnName)); } @@ -125,6 +127,7 @@ public abstract class AbstractLobTypeHandler extends BaseTypeHandler { * passing in the LobHandler of this type. * @see #getResultInternal */ + @Override public final Object getResult(ResultSet rs, int columnIndex) throws SQLException { try { return getResultInternal(rs, columnIndex, this.lobHandler); @@ -139,6 +142,7 @@ public abstract class AbstractLobTypeHandler extends BaseTypeHandler { * This implementation always throws a SQLException: * retrieving LOBs from a CallableStatement is not supported. */ + @Override public Object getResult(CallableStatement cs, int columnIndex) throws SQLException { throw new SQLException("Retrieving LOBs from a CallableStatement is not supported"); } diff --git a/spring-orm/src/main/java/org/springframework/orm/ibatis/support/BlobByteArrayTypeHandler.java b/spring-orm/src/main/java/org/springframework/orm/ibatis/support/BlobByteArrayTypeHandler.java index 5d90a2249a..7c2b79c966 100644 --- a/spring-orm/src/main/java/org/springframework/orm/ibatis/support/BlobByteArrayTypeHandler.java +++ b/spring-orm/src/main/java/org/springframework/orm/ibatis/support/BlobByteArrayTypeHandler.java @@ -70,6 +70,7 @@ public class BlobByteArrayTypeHandler extends AbstractLobTypeHandler { return lobHandler.getBlobAsBytes(rs, index); } + @Override public Object valueOf(String s) { return s.getBytes(); } diff --git a/spring-orm/src/main/java/org/springframework/orm/ibatis/support/BlobSerializableTypeHandler.java b/spring-orm/src/main/java/org/springframework/orm/ibatis/support/BlobSerializableTypeHandler.java index 509670dc03..0f38e310a5 100644 --- a/spring-orm/src/main/java/org/springframework/orm/ibatis/support/BlobSerializableTypeHandler.java +++ b/spring-orm/src/main/java/org/springframework/orm/ibatis/support/BlobSerializableTypeHandler.java @@ -106,6 +106,7 @@ public class BlobSerializableTypeHandler extends AbstractLobTypeHandler { } } + @Override public Object valueOf(String s) { return s; } diff --git a/spring-orm/src/main/java/org/springframework/orm/ibatis/support/ClobStringTypeHandler.java b/spring-orm/src/main/java/org/springframework/orm/ibatis/support/ClobStringTypeHandler.java index aad5ac0174..aed761462b 100644 --- a/spring-orm/src/main/java/org/springframework/orm/ibatis/support/ClobStringTypeHandler.java +++ b/spring-orm/src/main/java/org/springframework/orm/ibatis/support/ClobStringTypeHandler.java @@ -73,6 +73,7 @@ public class ClobStringTypeHandler extends AbstractLobTypeHandler { return lobHandler.getClobAsString(rs, index); } + @Override public Object valueOf(String s) { return s; } 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 38d0f7263a..348ca0811d 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 @@ -128,6 +128,7 @@ public class DefaultJdoDialect implements JdoDialect, PersistenceExceptionTransl * @see javax.jdo.Transaction#begin * @see org.springframework.transaction.InvalidIsolationLevelException */ + @Override public Object beginTransaction(Transaction transaction, TransactionDefinition definition) throws JDOException, SQLException, TransactionException { @@ -145,6 +146,7 @@ public class DefaultJdoDialect implements JdoDialect, PersistenceExceptionTransl * does not require any cleanup. * @see #beginTransaction */ + @Override public void cleanupTransaction(Object transactionData) { } @@ -169,6 +171,7 @@ public class DefaultJdoDialect implements JdoDialect, PersistenceExceptionTransl * @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 { @@ -183,6 +186,7 @@ public class DefaultJdoDialect implements JdoDialect, PersistenceExceptionTransl * {@code Connection.close} here. * @see java.sql.Connection#close() */ + @Override public void releaseJdbcConnection(ConnectionHandle conHandle, PersistenceManager pm) throws JDOException, SQLException { } @@ -193,6 +197,7 @@ public class DefaultJdoDialect implements JdoDialect, PersistenceExceptionTransl * "javax.persistence.query.timeout", assuming that JDO providers are often * JPA providers as well. */ + @Override public void applyQueryTimeout(Query query, int remainingTimeInSeconds) throws JDOException { if (setTimeoutMillisMethod != null) { ReflectionUtils.invokeMethod(setTimeoutMillisMethod, query, remainingTimeInSeconds); @@ -216,6 +221,7 @@ public class DefaultJdoDialect implements JdoDialect, PersistenceExceptionTransl * @see org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor * @see #translateException */ + @Override public DataAccessException translateExceptionIfPossible(RuntimeException ex) { if (ex instanceof JDOException) { return translateException((JDOException) ex); @@ -227,6 +233,7 @@ public class DefaultJdoDialect implements JdoDialect, PersistenceExceptionTransl * 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(), @@ -262,10 +269,12 @@ public class DefaultJdoDialect implements JdoDialect, PersistenceExceptionTransl 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/JdoAccessor.java b/spring-orm/src/main/java/org/springframework/orm/jdo/JdoAccessor.java index 25d466f612..00e35acded 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jdo/JdoAccessor.java +++ b/spring-orm/src/main/java/org/springframework/orm/jdo/JdoAccessor.java @@ -131,6 +131,7 @@ public abstract class JdoAccessor implements InitializingBean { * Eagerly initialize the JDO dialect, creating a default one * for the specified PersistenceManagerFactory if none set. */ + @Override public void afterPropertiesSet() { if (getPersistenceManagerFactory() == null) { throw new IllegalArgumentException("Property 'persistenceManagerFactory' is required"); diff --git a/spring-orm/src/main/java/org/springframework/orm/jdo/JdoInterceptor.java b/spring-orm/src/main/java/org/springframework/orm/jdo/JdoInterceptor.java index ff105e48ab..1c7229d79b 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jdo/JdoInterceptor.java +++ b/spring-orm/src/main/java/org/springframework/orm/jdo/JdoInterceptor.java @@ -90,6 +90,7 @@ public class JdoInterceptor extends JdoAccessor implements MethodInterceptor { } + @Override public Object invoke(MethodInvocation methodInvocation) throws Throwable { boolean existingTransaction = false; PersistenceManager pm = PersistenceManagerFactoryUtils.getPersistenceManager(getPersistenceManagerFactory(), true); diff --git a/spring-orm/src/main/java/org/springframework/orm/jdo/JdoTemplate.java b/spring-orm/src/main/java/org/springframework/orm/jdo/JdoTemplate.java index ce0f61aefc..c2d5ddf405 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jdo/JdoTemplate.java +++ b/spring-orm/src/main/java/org/springframework/orm/jdo/JdoTemplate.java @@ -175,10 +175,12 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { } + @Override public T execute(JdoCallback action) throws DataAccessException { return execute(action, isExposeNativePersistenceManager()); } + @Override public Collection executeFind(JdoCallback action) throws DataAccessException { Object result = execute(action, isExposeNativePersistenceManager()); if (result != null && !(result instanceof Collection)) { @@ -262,24 +264,30 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { // Convenience methods for load, save, delete //------------------------------------------------------------------------- + @Override public Object getObjectById(final Object objectId) throws DataAccessException { return execute(new JdoCallback() { + @Override public Object doInJdo(PersistenceManager pm) throws JDOException { return pm.getObjectById(objectId, true); } }, true); } + @Override public T getObjectById(final Class entityClass, final Object idValue) throws DataAccessException { return execute(new JdoCallback() { + @Override public T doInJdo(PersistenceManager pm) throws JDOException { return pm.getObjectById(entityClass, idValue); } }, true); } + @Override public void evict(final Object entity) throws DataAccessException { execute(new JdoCallback() { + @Override public Object doInJdo(PersistenceManager pm) throws JDOException { pm.evict(entity); return null; @@ -287,8 +295,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { }, true); } + @Override public void evictAll(final Collection entities) throws DataAccessException { execute(new JdoCallback() { + @Override public Object doInJdo(PersistenceManager pm) throws JDOException { pm.evictAll(entities); return null; @@ -296,8 +306,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { }, true); } + @Override public void evictAll() throws DataAccessException { execute(new JdoCallback() { + @Override public Object doInJdo(PersistenceManager pm) throws JDOException { pm.evictAll(); return null; @@ -305,8 +317,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { }, true); } + @Override public void refresh(final Object entity) throws DataAccessException { execute(new JdoCallback() { + @Override public Object doInJdo(PersistenceManager pm) throws JDOException { pm.refresh(entity); return null; @@ -314,8 +328,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { }, true); } + @Override public void refreshAll(final Collection entities) throws DataAccessException { execute(new JdoCallback() { + @Override public Object doInJdo(PersistenceManager pm) throws JDOException { pm.refreshAll(entities); return null; @@ -323,8 +339,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { }, true); } + @Override public void refreshAll() throws DataAccessException { execute(new JdoCallback() { + @Override public Object doInJdo(PersistenceManager pm) throws JDOException { pm.refreshAll(); return null; @@ -332,24 +350,30 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { }, true); } + @Override public T makePersistent(final T entity) throws DataAccessException { return execute(new JdoCallback() { + @Override public T doInJdo(PersistenceManager pm) throws JDOException { return pm.makePersistent(entity); } }, true); } + @Override public Collection makePersistentAll(final Collection entities) throws DataAccessException { return execute(new JdoCallback>() { + @Override public Collection doInJdo(PersistenceManager pm) throws JDOException { return pm.makePersistentAll(entities); } }, true); } + @Override public void deletePersistent(final Object entity) throws DataAccessException { execute(new JdoCallback() { + @Override public Object doInJdo(PersistenceManager pm) throws JDOException { pm.deletePersistent(entity); return null; @@ -357,8 +381,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { }, true); } + @Override public void deletePersistentAll(final Collection entities) throws DataAccessException { execute(new JdoCallback() { + @Override public Object doInJdo(PersistenceManager pm) throws JDOException { pm.deletePersistentAll(entities); return null; @@ -366,24 +392,30 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { }, true); } + @Override public T detachCopy(final T entity) { return execute(new JdoCallback() { + @Override public T doInJdo(PersistenceManager pm) throws JDOException { return pm.detachCopy(entity); } }, true); } + @Override public Collection detachCopyAll(final Collection entities) { return execute(new JdoCallback>() { + @Override public Collection doInJdo(PersistenceManager pm) throws JDOException { return pm.detachCopyAll(entities); } }, true); } + @Override public void flush() throws DataAccessException { execute(new JdoCallback() { + @Override public Object doInJdo(PersistenceManager pm) throws JDOException { pm.flush(); return null; @@ -396,18 +428,22 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { // Convenience finder methods //------------------------------------------------------------------------- + @Override public Collection find(Class entityClass) throws DataAccessException { return find(entityClass, null, null); } + @Override public Collection find(Class entityClass, String filter) throws DataAccessException { return find(entityClass, filter, null); } + @Override public Collection find(final Class entityClass, final String filter, final String ordering) throws DataAccessException { return execute(new JdoCallback>() { + @Override @SuppressWarnings("unchecked") public Collection doInJdo(PersistenceManager pm) throws JDOException { Query query = (filter != null ? pm.newQuery(entityClass, filter) : pm.newQuery(entityClass)); @@ -420,17 +456,20 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { }, true); } + @Override public Collection find(Class entityClass, String filter, String parameters, Object... values) throws DataAccessException { return find(entityClass, filter, parameters, values, null); } + @Override public Collection find( final Class entityClass, final String filter, final String parameters, final Object[] values, final String ordering) throws DataAccessException { return execute(new JdoCallback>() { + @Override @SuppressWarnings("unchecked") public Collection doInJdo(PersistenceManager pm) throws JDOException { Query query = pm.newQuery(entityClass, filter); @@ -444,6 +483,7 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { }, true); } + @Override public Collection find( Class entityClass, String filter, String parameters, Map values) throws DataAccessException { @@ -451,11 +491,13 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { return find(entityClass, filter, parameters, values, null); } + @Override public Collection find( final Class entityClass, final String filter, final String parameters, final Map values, final String ordering) throws DataAccessException { return execute(new JdoCallback>() { + @Override @SuppressWarnings("unchecked") public Collection doInJdo(PersistenceManager pm) throws JDOException { Query query = pm.newQuery(entityClass, filter); @@ -469,8 +511,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { }, true); } + @Override public Collection find(final String language, final Object queryObject) throws DataAccessException { return execute(new JdoCallback() { + @Override public Collection doInJdo(PersistenceManager pm) throws JDOException { Query query = pm.newQuery(language, queryObject); prepareQuery(query); @@ -479,8 +523,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { }, true); } + @Override public Collection find(final String queryString) throws DataAccessException { return execute(new JdoCallback() { + @Override @SuppressWarnings("unchecked") public Collection doInJdo(PersistenceManager pm) throws JDOException { Query query = pm.newQuery(queryString); @@ -490,8 +536,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { }, true); } + @Override public Collection find(final String queryString, final Object... values) throws DataAccessException { return execute(new JdoCallback() { + @Override public Collection doInJdo(PersistenceManager pm) throws JDOException { Query query = pm.newQuery(queryString); prepareQuery(query); @@ -500,8 +548,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { }, true); } + @Override public Collection find(final String queryString, final Map values) throws DataAccessException { return execute(new JdoCallback() { + @Override public Collection doInJdo(PersistenceManager pm) throws JDOException { Query query = pm.newQuery(queryString); prepareQuery(query); @@ -510,10 +560,12 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { }, true); } + @Override public Collection findByNamedQuery(final Class entityClass, final String queryName) throws DataAccessException { return execute(new JdoCallback>() { + @Override @SuppressWarnings("unchecked") public Collection doInJdo(PersistenceManager pm) throws JDOException { Query query = pm.newNamedQuery(entityClass, queryName); @@ -523,10 +575,12 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { }, true); } + @Override public Collection findByNamedQuery(final Class entityClass, final String queryName, final Object... values) throws DataAccessException { return execute(new JdoCallback>() { + @Override @SuppressWarnings("unchecked") public Collection doInJdo(PersistenceManager pm) throws JDOException { Query query = pm.newNamedQuery(entityClass, queryName); @@ -536,11 +590,13 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { }, true); } + @Override public Collection findByNamedQuery( final Class entityClass, final String queryName, final Map values) throws DataAccessException { return execute(new JdoCallback>() { + @Override @SuppressWarnings("unchecked") public Collection doInJdo(PersistenceManager pm) throws JDOException { Query query = pm.newNamedQuery(entityClass, queryName); @@ -585,6 +641,7 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations { this.target = target; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on PersistenceManager interface (or provider-specific extension) coming in... 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 412a12087a..52876dfab1 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 @@ -232,6 +232,7 @@ public class JdoTransactionManager extends AbstractPlatformTransactionManager * 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"); @@ -256,6 +257,7 @@ public class JdoTransactionManager extends AbstractPlatformTransactionManager } + @Override public Object getResourceFactory() { return getPersistenceManagerFactory(); } @@ -571,11 +573,13 @@ public class JdoTransactionManager extends AbstractPlatformTransactionManager } } + @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 112a1c5758..a1e63ca4a2 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 @@ -196,6 +196,7 @@ public class LocalPersistenceManagerFactoryBean implements FactoryBean getObjectType() { return (this.persistenceManagerFactory != null ? this.persistenceManagerFactory.getClass() : PersistenceManagerFactory.class); } + @Override public boolean isSingleton() { return true; } @@ -298,6 +303,7 @@ public class LocalPersistenceManagerFactoryBean implements FactoryBean getObjectType() { return PersistenceManagerFactory.class; } + @Override public boolean isSingleton() { return true; } @@ -142,6 +145,7 @@ public class TransactionAwarePersistenceManagerFactoryProxy implements FactoryBe */ private class PersistenceManagerFactoryInvocationHandler implements InvocationHandler { + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on PersistenceManagerFactory interface coming in... @@ -188,6 +192,7 @@ public class TransactionAwarePersistenceManagerFactoryProxy implements FactoryBe 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 021b272152..0275567792 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 @@ -89,6 +89,7 @@ public class OpenPersistenceManagerInViewInterceptor implements WebRequestInterc } + @Override public void preHandle(WebRequest request) throws DataAccessException { if (TransactionSynchronizationManager.hasResource(getPersistenceManagerFactory())) { // Do not modify the PersistenceManager: just mark the request accordingly. @@ -106,9 +107,11 @@ public class OpenPersistenceManagerInViewInterceptor implements WebRequestInterc } } + @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 9176c63791..1923d01efa 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 @@ -144,6 +144,7 @@ public class SpringPersistenceManagerProxyBean implements FactoryBean getObjectType() { return getPersistenceManagerInterface(); } + @Override public boolean isSingleton() { return true; } @@ -177,6 +181,7 @@ public class SpringPersistenceManagerProxyBean implements FactoryBean 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 6d20ec34d9..aa4bd5ef93 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 @@ -142,6 +142,7 @@ public abstract class AbstractEntityManagerFactoryBean implements this.persistenceProvider = persistenceProvider; } + @Override public PersistenceProvider getPersistenceProvider() { return this.persistenceProvider; } @@ -157,6 +158,7 @@ public abstract class AbstractEntityManagerFactoryBean implements this.persistenceUnitName = persistenceUnitName; } + @Override public String getPersistenceUnitName() { return this.persistenceUnitName; } @@ -223,6 +225,7 @@ public abstract class AbstractEntityManagerFactoryBean implements this.entityManagerInterface = emInterface; } + @Override public Class getEntityManagerInterface() { return this.entityManagerInterface; } @@ -238,6 +241,7 @@ public abstract class AbstractEntityManagerFactoryBean implements this.jpaDialect = jpaDialect; } + @Override public JpaDialect getJpaDialect() { return this.jpaDialect; } @@ -260,23 +264,28 @@ public abstract class AbstractEntityManagerFactoryBean implements 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) { @@ -399,19 +408,23 @@ public abstract class AbstractEntityManagerFactoryBean implements * @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; } @@ -420,14 +433,17 @@ public abstract class AbstractEntityManagerFactoryBean implements /** * 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; } @@ -436,6 +452,7 @@ public abstract class AbstractEntityManagerFactoryBean implements /** * Close the EntityManagerFactory on bean factory shutdown. */ + @Override public void destroy() { if (logger.isInfoEnabled()) { logger.info("Closing JPA EntityManagerFactory for persistence unit '" + getPersistenceUnitName() + "'"); @@ -499,6 +516,7 @@ public abstract class AbstractEntityManagerFactoryBean implements 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 63df63e531..5e211a011f 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 @@ -60,6 +60,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 { @@ -72,6 +73,7 @@ public class DefaultJpaDialect implements JpaDialect, Serializable { return null; } + @Override public Object prepareTransaction(EntityManager entityManager, boolean readOnly, String name) throws PersistenceException { @@ -83,6 +85,7 @@ public class DefaultJpaDialect implements JpaDialect, Serializable { * implementation does not require any cleanup. * @see #beginTransaction */ + @Override public void cleanupTransaction(Object transactionData) { } @@ -90,6 +93,7 @@ public class DefaultJpaDialect implements JpaDialect, Serializable { * 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 { @@ -104,6 +108,7 @@ public class DefaultJpaDialect implements JpaDialect, Serializable { * {@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 { } @@ -117,23 +122,28 @@ public class DefaultJpaDialect implements JpaDialect, Serializable { * This implementation delegates to EntityManagerFactoryUtils. * @see EntityManagerFactoryUtils#convertJpaAccessExceptionIfPossible */ + @Override public DataAccessException translateExceptionIfPossible(RuntimeException ex) { return EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(ex); } + @Override public boolean supportsEntityManagerFactoryPlusOperations() { return false; } + @Override public boolean supportsEntityManagerPlusOperations() { return false; } + @Override public EntityManagerFactoryPlusOperations getEntityManagerFactoryPlusOperations(EntityManagerFactory rawEntityManager) { throw new UnsupportedOperationException(getClass().getName() + " does not support EntityManagerFactoryPlusOperations"); } + @Override public EntityManagerPlusOperations getEntityManagerPlusOperations(EntityManager rawEntityManager) { throw new UnsupportedOperationException(getClass().getName() + " does not support EntityManagerPlusOperations"); } 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 3d7c0041be..a7bba4d678 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 @@ -129,6 +129,7 @@ public abstract class EntityManagerFactoryAccessor implements BeanFactoryAware { * 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 9419950001..4b36277563 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 @@ -372,6 +372,7 @@ public abstract class EntityManagerFactoryUtils { this.newEntityManager = newEm; } + @Override public int getOrder() { return ENTITY_MANAGER_SYNCHRONIZATION_ORDER; } 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 5f9783d2a1..5612eedf81 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 @@ -309,6 +309,7 @@ public abstract class ExtendedEntityManagerCreator { } } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on EntityManager interface coming in... @@ -452,6 +453,7 @@ public abstract class ExtendedEntityManagerCreator { 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/JpaAccessor.java b/spring-orm/src/main/java/org/springframework/orm/jpa/JpaAccessor.java index cb4b282a84..a749dd0de8 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/JpaAccessor.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/JpaAccessor.java @@ -112,6 +112,7 @@ public abstract class JpaAccessor extends EntityManagerFactoryAccessor implement * Eagerly initialize the JPA dialect, creating a default one * for the specified EntityManagerFactory if none set. */ + @Override public void afterPropertiesSet() { EntityManagerFactory emf = getEntityManagerFactory(); if (emf == null && getEntityManager() == null) { diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/JpaInterceptor.java b/spring-orm/src/main/java/org/springframework/orm/jpa/JpaInterceptor.java index cdb4830d3d..4cf05816e6 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/JpaInterceptor.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/JpaInterceptor.java @@ -85,6 +85,7 @@ public class JpaInterceptor extends JpaAccessor implements MethodInterceptor { } + @Override public Object invoke(MethodInvocation methodInvocation) throws Throwable { // Determine current EntityManager: either the transactional one // managed by the factory or a temporary one for the given invocation. diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/JpaTemplate.java b/spring-orm/src/main/java/org/springframework/orm/jpa/JpaTemplate.java index 1b039f6573..1773402303 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/JpaTemplate.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/JpaTemplate.java @@ -146,10 +146,12 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations { } + @Override public T execute(JpaCallback action) throws DataAccessException { return execute(action, isExposeNativeEntityManager()); } + @Override public List executeFind(JpaCallback action) throws DataAccessException { Object result = execute(action, isExposeNativeEntityManager()); if (!(result instanceof List)) { @@ -229,32 +231,40 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations { // Convenience methods for load, save, delete //------------------------------------------------------------------------- + @Override public T find(final Class entityClass, final Object id) throws DataAccessException { return execute(new JpaCallback() { + @Override public T doInJpa(EntityManager em) throws PersistenceException { return em.find(entityClass, id); } }, true); } + @Override public T getReference(final Class entityClass, final Object id) throws DataAccessException { return execute(new JpaCallback() { + @Override public T doInJpa(EntityManager em) throws PersistenceException { return em.getReference(entityClass, id); } }, true); } + @Override public boolean contains(final Object entity) throws DataAccessException { return execute(new JpaCallback() { + @Override public Boolean doInJpa(EntityManager em) throws PersistenceException { return em.contains(entity); } }, true); } + @Override public void refresh(final Object entity) throws DataAccessException { execute(new JpaCallback() { + @Override public Object doInJpa(EntityManager em) throws PersistenceException { em.refresh(entity); return null; @@ -262,8 +272,10 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations { }, true); } + @Override public void persist(final Object entity) throws DataAccessException { execute(new JpaCallback() { + @Override public Object doInJpa(EntityManager em) throws PersistenceException { em.persist(entity); return null; @@ -271,16 +283,20 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations { }, true); } + @Override public T merge(final T entity) throws DataAccessException { return execute(new JpaCallback() { + @Override public T doInJpa(EntityManager em) throws PersistenceException { return em.merge(entity); } }, true); } + @Override public void remove(final Object entity) throws DataAccessException { execute(new JpaCallback() { + @Override public Object doInJpa(EntityManager em) throws PersistenceException { em.remove(entity); return null; @@ -288,8 +304,10 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations { }, true); } + @Override public void flush() throws DataAccessException { execute(new JpaCallback() { + @Override public Object doInJpa(EntityManager em) throws PersistenceException { em.flush(); return null; @@ -302,12 +320,15 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations { // Convenience finder methods //------------------------------------------------------------------------- + @Override public List find(String queryString) throws DataAccessException { return find(queryString, (Object[]) null); } + @Override public List find(final String queryString, final Object... values) throws DataAccessException { return execute(new JpaCallback() { + @Override public List doInJpa(EntityManager em) throws PersistenceException { Query queryObject = em.createQuery(queryString); prepareQuery(queryObject); @@ -321,8 +342,10 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations { }); } + @Override public List findByNamedParams(final String queryString, final Map params) throws DataAccessException { return execute(new JpaCallback() { + @Override public List doInJpa(EntityManager em) throws PersistenceException { Query queryObject = em.createQuery(queryString); prepareQuery(queryObject); @@ -336,12 +359,15 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations { }); } + @Override public List findByNamedQuery(String queryName) throws DataAccessException { return findByNamedQuery(queryName, (Object[]) null); } + @Override public List findByNamedQuery(final String queryName, final Object... values) throws DataAccessException { return execute(new JpaCallback() { + @Override public List doInJpa(EntityManager em) throws PersistenceException { Query queryObject = em.createNamedQuery(queryName); prepareQuery(queryObject); @@ -355,10 +381,12 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations { }); } + @Override public List findByNamedQueryAndNamedParams(final String queryName, final Map params) throws DataAccessException { return execute(new JpaCallback() { + @Override public List doInJpa(EntityManager em) throws PersistenceException { Query queryObject = em.createNamedQuery(queryName); prepareQuery(queryObject); @@ -408,6 +436,7 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations { this.target = target; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on EntityManager interface (or provider-specific extension) coming in... 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 259c6e3756..05de1ea092 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 @@ -282,6 +282,7 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager * 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)) { @@ -298,6 +299,7 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager * 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"); @@ -316,6 +318,7 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager } + @Override public Object getResourceFactory() { return getEntityManagerFactory(); } @@ -653,11 +656,13 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager } } + @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 7cef875f28..284f443b0d 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 @@ -240,10 +240,12 @@ public class LocalContainerEntityManagerFactoryBean extends AbstractEntityManage * @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 00f15cfa4c..2075ffe256 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 @@ -152,6 +152,7 @@ public abstract class SharedEntityManagerCreator { } } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on EntityManager interface coming in... @@ -287,6 +288,7 @@ public abstract class SharedEntityManagerCreator { 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 b96413c512..f75450d8c3 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 @@ class ClassFileTransformerAdapter implements ClassFileTransformer { } + @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 233ae1fbf5..48b90436d7 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 @@ -322,6 +322,7 @@ public class DefaultPersistenceUnitManager * @see org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver * @see org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader */ + @Override public void setLoadTimeWeaver(LoadTimeWeaver loadTimeWeaver) { this.loadTimeWeaver = loadTimeWeaver; } @@ -334,11 +335,13 @@ public class DefaultPersistenceUnitManager 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()); @@ -542,6 +545,7 @@ public class DefaultPersistenceUnitManager } + @Override public PersistenceUnitInfo obtainDefaultPersistenceUnitInfo() { if (this.persistenceUnitInfoNames.isEmpty()) { throw new IllegalStateException("No persistence units parsed from " + @@ -559,6 +563,7 @@ public class DefaultPersistenceUnitManager return pui; } + @Override public PersistenceUnitInfo obtainPersistenceUnitInfo(String persistenceUnitName) { PersistenceUnitInfo pui = this.persistenceUnitInfos.remove(persistenceUnitName); if (pui == null) { @@ -606,6 +611,7 @@ public class DefaultPersistenceUnitManager return this.target; } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (method.getName().equals("getSharedCacheMode")) { return Enum.valueOf(this.sharedCacheModeEnum, this.target.getSharedCacheModeName()); 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 dd2da772a9..7c774be110 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 @@ -72,6 +72,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.persistenceUnitName = persistenceUnitName; } + @Override public String getPersistenceUnitName() { return this.persistenceUnitName; } @@ -80,6 +81,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.persistenceProviderClassName = persistenceProviderClassName; } + @Override public String getPersistenceProviderClassName() { return this.persistenceProviderClassName; } @@ -88,6 +90,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.transactionType = transactionType; } + @Override public PersistenceUnitTransactionType getTransactionType() { if (this.transactionType != null) { return this.transactionType; @@ -102,6 +105,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.jtaDataSource = jtaDataSource; } + @Override public DataSource getJtaDataSource() { return this.jtaDataSource; } @@ -110,6 +114,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.nonJtaDataSource = nonJtaDataSource; } + @Override public DataSource getNonJtaDataSource() { return this.nonJtaDataSource; } @@ -118,6 +123,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.mappingFileNames.add(mappingFileName); } + @Override public List getMappingFileNames() { return this.mappingFileNames; } @@ -126,6 +132,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.jarFileUrls.add(jarFileUrl); } + @Override public List getJarFileUrls() { return this.jarFileUrls; } @@ -134,6 +141,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.persistenceUnitRootUrl = persistenceUnitRootUrl; } + @Override public URL getPersistenceUnitRootUrl() { return this.persistenceUnitRootUrl; } @@ -142,6 +150,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.managedClassNames.add(managedClassName); } + @Override public List getManagedClassNames() { return this.managedClassNames; } @@ -150,6 +159,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.excludeUnlistedClasses = excludeUnlistedClasses; } + @Override public boolean excludeUnlistedClasses() { return this.excludeUnlistedClasses; } @@ -165,6 +175,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.properties = properties; } + @Override public Properties getProperties() { return this.properties; } @@ -177,6 +188,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { return this.persistenceXMLSchemaVersion; } + @Override public void setPersistenceProviderPackageName(String persistenceProviderPackageName) { this.persistenceProviderPackageName = persistenceProviderPackageName; } @@ -190,6 +202,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { * This implementation returns the default ClassLoader. * @see org.springframework.util.ClassUtils#getDefaultClassLoader() */ + @Override public ClassLoader getClassLoader() { return ClassUtils.getDefaultClassLoader(); } @@ -197,6 +210,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { /** * This implementation throws an UnsupportedOperationException. */ + @Override public void addTransformer(ClassTransformer classTransformer) { throw new UnsupportedOperationException("addTransformer not supported"); } @@ -204,6 +218,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { /** * 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 8c9cf595ca..80a0581561 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 @@ -73,6 +73,7 @@ public class OpenEntityManagerInViewInterceptor extends EntityManagerFactoryAcce public static final String PARTICIPATE_SUFFIX = ".PARTICIPATE"; + @Override public void preHandle(WebRequest request) throws DataAccessException { String participateAttributeName = getParticipateAttributeName(); @@ -106,9 +107,11 @@ public class OpenEntityManagerInViewInterceptor extends EntityManagerFactoryAcce } } + @Override public void postHandle(WebRequest request, ModelMap model) { } + @Override public void afterCompletion(WebRequest request, Exception ex) throws DataAccessException { if (!decrementParticipateCount(request)) { EntityManagerHolder emHolder = (EntityManagerHolder) @@ -134,6 +137,7 @@ public class OpenEntityManagerInViewInterceptor extends EntityManagerFactoryAcce 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 ac9c408f02..9927ac7a2f 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 @@ -306,10 +306,12 @@ public class PersistenceAnnotationBeanPostProcessor this.order = order; } + @Override public int getOrder() { return this.order; } + @Override public void setBeanFactory(BeanFactory beanFactory) { if (beanFactory instanceof ListableBeanFactory) { this.beanFactory = (ListableBeanFactory) beanFactory; @@ -317,6 +319,7 @@ public class PersistenceAnnotationBeanPostProcessor } + @Override public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, Class beanType, String beanName) { if (beanType != null) { InjectionMetadata metadata = findPersistenceMetadata(beanType); @@ -324,14 +327,17 @@ public class PersistenceAnnotationBeanPostProcessor } } + @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 { @@ -345,14 +351,17 @@ public class PersistenceAnnotationBeanPostProcessor 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 14864f4d0d..7b2cf600df 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 @@ -73,6 +73,7 @@ public class SharedEntityManagerBean extends EntityManagerFactoryAccessor } + @Override public final void afterPropertiesSet() { EntityManagerFactory emf = getEntityManagerFactory(); if (emf == null) { @@ -105,14 +106,17 @@ public class SharedEntityManagerBean extends EntityManagerFactoryAccessor } + @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 18499e412d..99041f2dc9 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 @@ public abstract class AbstractJpaVendorAdapter implements JpaVendorAdapter { } + @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 abstract class AbstractJpaVendorAdapter implements JpaVendorAdapter { * 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 1dd5764059..6bfc37c0a8 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 @@ -56,6 +56,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 1293b335d4..cfb86f8fcc 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 @@ -153,6 +153,7 @@ public class HibernateJpaDialect extends DefaultJpaDialect { this.session = session; } + @Override public Connection getConnection() { try { if (connectionMethod == null) { @@ -166,6 +167,7 @@ public class HibernateJpaDialect extends DefaultJpaDialect { } } + @Override public void releaseConnection(Connection con) { JdbcUtils.closeConnection(con); } 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 065cf759a7..511cd91c58 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 @@ import org.springframework.util.Assert; */ 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 d48a7b762e..37c636c363 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 e7db382d0e..45f572716a 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 class OpenJpaDialect extends DefaultJpaDialect { this.entityManager = entityManager; } + @Override public Object createSavepoint() throws TransactionException { this.savepointCounter++; String savepointName = ConnectionHolder.SAVEPOINT_NAME_PREFIX + this.savepointCounter; @@ -95,10 +96,12 @@ public class OpenJpaDialect extends DefaultJpaDialect { 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 class OpenJpaDialect extends DefaultJpaDialect { 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 34fc0d4a1c..17cda4d8a1 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-orm/src/main/java/org/springframework/orm/jpa/vendor/TopLinkJpaVendorAdapter.java b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/TopLinkJpaVendorAdapter.java index 36e18be4ef..6b6572c0b5 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/TopLinkJpaVendorAdapter.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/TopLinkJpaVendorAdapter.java @@ -51,6 +51,7 @@ public class TopLinkJpaVendorAdapter extends AbstractJpaVendorAdapter { private final JpaDialect jpaDialect = new TopLinkJpaDialect(); + @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 0405e8272e..dd3e82dfab 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 @@ -380,10 +380,12 @@ public class CastorMarshaller extends AbstractMarshaller implements Initializing this.clearCollections = clearCollections; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.classLoader = classLoader; } + @Override public final void afterPropertiesSet() throws CastorMappingException, IOException { if (logger.isInfoEnabled()) { if (!ObjectUtils.isEmpty(this.mappingLocations)) { @@ -448,6 +450,7 @@ public class CastorMarshaller extends AbstractMarshaller implements Initializing /** * 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 19bf683cae..c11bc0bdd5 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 @@ import org.springframework.beans.factory.xml.NamespaceHandlerSupport; */ 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 956c003233..a210bc582b 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 @@ -376,14 +376,17 @@ public class Jaxb2Marshaller this.checkForXmlRootElement = checkForXmlRootElement; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public void setResourceLoader(ResourceLoader resourceLoader) { this.resourceLoader = resourceLoader; } + @Override public final void afterPropertiesSet() throws Exception { boolean hasContextPath = StringUtils.hasLength(this.contextPath); boolean hasClassesToBeBound = !ObjectUtils.isEmpty(this.classesToBeBound); @@ -513,6 +516,7 @@ public class Jaxb2Marshaller } + @Override public boolean supports(Class clazz) { if (this.supportJaxbElementClass && JAXBElement.class.isAssignableFrom(clazz)) { return true; @@ -520,6 +524,7 @@ public class Jaxb2Marshaller return supportsInternal(clazz, this.checkForXmlRootElement); } + @Override public boolean supports(Type genericType) { if (genericType instanceof ParameterizedType) { ParameterizedType parameterizedType = (ParameterizedType) genericType; @@ -609,10 +614,12 @@ public class Jaxb2Marshaller // 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(); @@ -694,10 +701,12 @@ public class Jaxb2Marshaller // 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(); @@ -915,18 +924,22 @@ public class Jaxb2Marshaller 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 2ded691c8b..b374b52f09 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 class JibxMarshaller extends AbstractMarshaller implements InitializingBe this.docTypeInternalSubset = docTypeInternalSubset; } + @Override public void afterPropertiesSet() throws JiBXException { if (this.targetClass != null) { if (StringUtils.hasLength(this.bindingName)) { @@ -228,6 +229,7 @@ public class JibxMarshaller extends AbstractMarshaller implements InitializingBe } + @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 cf584efa88..d42cb72a49 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 @@ public abstract class AbstractMarshaller implements Marshaller, Unmarshaller { * @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 7fbe4b4745..24e239c733 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 @@ public class MarshallingSource extends SAXSource { 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 @@ public class MarshallingSource extends SAXSource { 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 class MarshallingSource extends SAXSource { } } + @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 class MarshallingSource extends SAXSource { } } + @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 991d262645..83a4639363 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 class XmlBeansMarshaller extends AbstractMarshaller { /** * 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 d5d668bac6..ca092b2172 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 class XmlOptionsFactoryBean implements FactoryBean { } + @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 b53c20a5b9..b2717b0411 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 @@ -357,11 +357,13 @@ public class XStreamMarshaller extends AbstractMarshaller implements Initializin this.supportedClasses = supportedClasses; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.classLoader = classLoader; } + @Override public final void afterPropertiesSet() throws Exception { customizeXStream(getXStream()); } @@ -375,6 +377,7 @@ public class XStreamMarshaller extends AbstractMarshaller implements Initializin } + @Override public boolean supports(Class clazz) { if (ObjectUtils.isEmpty(this.supportedClasses)) { return true; diff --git a/spring-struts/src/main/java/org/springframework/web/servlet/view/tiles/TilesConfigurer.java b/spring-struts/src/main/java/org/springframework/web/servlet/view/tiles/TilesConfigurer.java index 4905e411f0..184d4195e5 100644 --- a/spring-struts/src/main/java/org/springframework/web/servlet/view/tiles/TilesConfigurer.java +++ b/spring-struts/src/main/java/org/springframework/web/servlet/view/tiles/TilesConfigurer.java @@ -111,6 +111,7 @@ public class TilesConfigurer extends WebApplicationObjectSupport implements Init * @throws DefinitionsFactoryException if an error occurs * @see #createDefinitionsFactory */ + @Override public void afterPropertiesSet() throws DefinitionsFactoryException { logger.debug("TilesConfigurer: initializion started"); diff --git a/spring-struts/src/main/java/org/springframework/web/struts/ActionServletAwareProcessor.java b/spring-struts/src/main/java/org/springframework/web/struts/ActionServletAwareProcessor.java index 54c46c76a2..320a17a7d9 100644 --- a/spring-struts/src/main/java/org/springframework/web/struts/ActionServletAwareProcessor.java +++ b/spring-struts/src/main/java/org/springframework/web/struts/ActionServletAwareProcessor.java @@ -52,6 +52,7 @@ class ActionServletAwareProcessor implements DestructionAwareBeanPostProcessor { } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) { if (bean instanceof Action) { ((Action) bean).setServlet(this.actionServlet); @@ -59,10 +60,12 @@ class ActionServletAwareProcessor implements DestructionAwareBeanPostProcessor { return bean; } + @Override public Object postProcessAfterInitialization(Object bean, String beanName) { return bean; } + @Override public void postProcessBeforeDestruction(Object bean, String beanName) { if (bean instanceof Action) { ((Action) bean).setServlet(null); diff --git a/spring-struts/src/main/java/org/springframework/web/struts/ContextLoaderPlugIn.java b/spring-struts/src/main/java/org/springframework/web/struts/ContextLoaderPlugIn.java index d1d68e6995..3b6912b51e 100644 --- a/spring-struts/src/main/java/org/springframework/web/struts/ContextLoaderPlugIn.java +++ b/spring-struts/src/main/java/org/springframework/web/struts/ContextLoaderPlugIn.java @@ -213,6 +213,7 @@ public class ContextLoaderPlugIn implements PlugIn { /** * Create the ActionServlet's WebApplicationContext. */ + @Override public final void init(ActionServlet actionServlet, ModuleConfig moduleConfig) throws ServletException { long startTime = System.currentTimeMillis(); if (logger.isInfoEnabled()) { @@ -345,6 +346,7 @@ public class ContextLoaderPlugIn implements PlugIn { } wac.addBeanFactoryPostProcessor( new BeanFactoryPostProcessor() { + @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) { beanFactory.addBeanPostProcessor(new ActionServletAwareProcessor(getActionServlet())); beanFactory.ignoreDependencyType(ActionServlet.class); @@ -385,6 +387,7 @@ public class ContextLoaderPlugIn implements PlugIn { * Close the WebApplicationContext of the ActionServlet. * @see org.springframework.context.ConfigurableApplicationContext#close() */ + @Override public void destroy() { getServletContext().log("Closing WebApplicationContext of Struts ActionServlet '" + getServletName() + "', module '" + getModulePrefix() + "'"); 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 914f949d0c..bad3d49090 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 class MockMvcClientHttpRequestFactory implements ClientHttpRequestFactory 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 4d708ddd18..bb821063df 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 @@ public class MockRestServiceServer { 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 a0553cfd8d..aa923c7b66 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 @@ class RequestMatcherClientHttpRequest extends MockClientHttpRequest implements R 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 5b89cef1a7..dcb5576bab 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 class ContentRequestMatchers { */ 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); @@ -77,6 +78,7 @@ public class ContentRequestMatchers { */ 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); @@ -89,6 +91,7 @@ public class ContentRequestMatchers { */ 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()); @@ -101,6 +104,7 @@ public class ContentRequestMatchers { */ 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()); @@ -157,6 +161,7 @@ public class ContentRequestMatchers { */ 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 d4da756185..14be640a32 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 @@ public class JsonPathRequestMatchers { */ 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 ce3c7fb80d..4f7df08790 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 @@ public abstract class MockRestRequestMatchers { */ public static RequestMatcher anything() { return new RequestMatcher() { + @Override public void match(ClientHttpRequest request) throws AssertionError { } }; @@ -73,6 +74,7 @@ public abstract class MockRestRequestMatchers { 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 abstract class MockRestRequestMatchers { 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 abstract class MockRestRequestMatchers { 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 abstract class MockRestRequestMatchers { 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 abstract class MockRestRequestMatchers { */ 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 abstract class MockRestRequestMatchers { */ 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 9c3ac04c41..f983235be9 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 @@ public class XpathRequestMatchers { */ 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 7518f14f64..3f2be1ae4c 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 @@ public class DefaultResponseCreator implements ResponseCreator { 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 117a95c2bf..e9951189be 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 @@ class DefaultMvcResult implements MvcResult { 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 @@ class DefaultMvcResult implements MvcResult { this.handler = handler; } + @Override public HandlerInterceptor[] getInterceptors() { return this.interceptors; } @@ -85,6 +89,7 @@ class DefaultMvcResult implements MvcResult { this.interceptors = interceptors; } + @Override public Exception getResolvedException() { return this.resolvedException; } @@ -93,6 +98,7 @@ class DefaultMvcResult implements MvcResult { this.resolvedException = resolvedException; } + @Override public ModelAndView getModelAndView() { return this.modelAndView; } @@ -101,6 +107,7 @@ class DefaultMvcResult implements MvcResult { this.modelAndView = mav; } + @Override public FlashMap getFlashMap() { return RequestContextUtils.getOutputFlashMap(mockRequest); } @@ -109,10 +116,12 @@ class DefaultMvcResult implements MvcResult { 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 a074ff6d14..bf700fecfb 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 final class MockMvc { 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 8c57fae247..96389241c0 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 @@ final class TestDispatcherServlet extends DispatcherServlet { 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 e6d97658c7..753d63db5b 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 @@ class MockAsyncContext implements AsyncContext { 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 @@ class MockAsyncContext implements AsyncContext { 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 @@ class MockAsyncContext implements AsyncContext { } } + @Override public void start(Runnable runnable) { runnable.run(); } @@ -109,22 +117,27 @@ class MockAsyncContext implements AsyncContext { 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 dbd9ac1d88..bf00e3271d 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 @@ -432,6 +432,7 @@ public class MockHttpServletRequestBuilder implements RequestBuilder, Mergeable * {@inheritDoc} * @return always returns {@code true}. */ + @Override public boolean isMergeEnabled() { return true; } @@ -443,6 +444,7 @@ public class MockHttpServletRequestBuilder implements RequestBuilder, Mergeable * @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; @@ -546,6 +548,7 @@ public class MockHttpServletRequestBuilder implements RequestBuilder, Mergeable /** * 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 da96fd9cd2..0ded2474cb 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 @@ -124,6 +124,7 @@ public abstract class MockMvcRequestBuilders { */ 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 ec4fafd59a..4a8a5c48cb 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 @@ class Servlet3MockHttpServletRequest extends MockHttpServletRequest { 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,10 +76,12 @@ class Servlet3MockHttpServletRequest extends MockHttpServletRequest { this.asyncContext = asyncContext; } + @Override public DispatcherType getDispatcherType() { return DispatcherType.REQUEST; } + @Override public boolean isAsyncStarted() { return this.asyncStarted; } @@ -88,14 +94,17 @@ class Servlet3MockHttpServletRequest extends MockHttpServletRequest { 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 ef27070151..ed09b572ae 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,10 +71,12 @@ class Servlet3MockMultipartHttpServletRequest extends MockMultipartHttpServletRe this.asyncContext = asyncContext; } + @Override public DispatcherType getDispatcherType() { return DispatcherType.REQUEST; } + @Override public boolean isAsyncStarted() { return this.asyncStarted; } @@ -83,14 +89,17 @@ class Servlet3MockMultipartHttpServletRequest extends MockMultipartHttpServletRe 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 b39875baaa..33b65a90f8 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 @@ -65,6 +65,7 @@ public class ContentResultMatchers { */ 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); @@ -79,6 +80,7 @@ public class ContentResultMatchers { */ 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); @@ -95,6 +97,7 @@ public class ContentResultMatchers { */ public ResultMatcher string(final Matcher matcher) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { assertThat("Response content", result.getResponse().getContentAsString(), matcher); } @@ -106,6 +109,7 @@ public class ContentResultMatchers { */ public ResultMatcher string(final String expectedContent) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { assertEquals("Response content", expectedContent, result.getResponse().getContentAsString()); } @@ -117,6 +121,7 @@ public class ContentResultMatchers { */ public ResultMatcher bytes(final byte[] expectedContent) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { assertEquals("Response content", expectedContent, result.getResponse().getContentAsByteArray()); } @@ -137,6 +142,7 @@ public class ContentResultMatchers { */ 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); @@ -150,6 +156,7 @@ public class ContentResultMatchers { */ 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); @@ -165,6 +172,7 @@ public class ContentResultMatchers { */ 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 338777882a..967a361c20 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 @@ public class 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 class CookieResultMatchers { */ 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 class CookieResultMatchers { */ 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 class CookieResultMatchers { */ 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 class CookieResultMatchers { */ 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 class CookieResultMatchers { */ 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 class CookieResultMatchers { */ 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 class CookieResultMatchers { 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 class CookieResultMatchers { */ 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 class CookieResultMatchers { */ 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 class CookieResultMatchers { */ 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 class CookieResultMatchers { */ 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 class CookieResultMatchers { */ 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 class CookieResultMatchers { */ 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 class CookieResultMatchers { */ 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 61c2f37df6..f591a18307 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 @@ public class 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 class FlashAttributeResultMatchers { */ public ResultMatcher attribute(final String name, final Object value) { return new ResultMatcher() { + @Override @SuppressWarnings("unchecked") public void match(MvcResult result) throws Exception { assertEquals("Flash attribute", value, result.getFlashMap().get(name)); @@ -69,6 +71,7 @@ public class FlashAttributeResultMatchers { */ 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); @@ -82,6 +85,7 @@ public class FlashAttributeResultMatchers { */ 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 bcd5ea75ae..502199fbd5 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 @@ public class 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 class HandlerResultMatchers { */ 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 class HandlerResultMatchers { */ 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 class HandlerResultMatchers { */ 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 5acee2dbd7..5e0f5b2a1d 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 @@ public class 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 class HeaderResultMatchers { */ 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 class HeaderResultMatchers { */ 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 0d68d365ac..17e9803808 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 @@ public class JsonPathResultMatchers { */ 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 class JsonPathResultMatchers { */ 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 class JsonPathResultMatchers { */ 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 class JsonPathResultMatchers { */ 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 class JsonPathResultMatchers { */ 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 cb491c9537..cfe96ca518 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 @@ public abstract class MockMvcResultHandlers { 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 fb34c36ffd..1549719598 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 abstract class MockMvcResultMatchers { */ 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 abstract class MockMvcResultMatchers { */ 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 6ec1d9346b..012812f74c 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 @@ public class 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 class ModelResultMatchers { */ 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 class ModelResultMatchers { */ 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 class ModelResultMatchers { */ 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 class ModelResultMatchers { */ 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 class ModelResultMatchers { */ 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 class ModelResultMatchers { */ 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 class ModelResultMatchers { */ 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 class ModelResultMatchers { */ 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 class ModelResultMatchers { */ 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 class ModelResultMatchers { */ 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 1a5f07f6e9..3796841d6a 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 @@ public class PrintingResultHandler implements ResultHandler { /** * 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 15990939ee..cf929d5efe 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 @@ public class 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 class RequestResultMatchers { */ 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 class RequestResultMatchers { */ 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 class RequestResultMatchers { */ 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 class RequestResultMatchers { */ 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 class RequestResultMatchers { */ 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 class RequestResultMatchers { */ 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 class RequestResultMatchers { */ 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 88c4083b6c..b8549bca3b 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 @@ public class 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 class StatusResultMatchers { */ 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 class StatusResultMatchers { */ 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 class StatusResultMatchers { */ 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 class StatusResultMatchers { */ 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 f2f5217dfa..c665d7a1d0 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 @@ public class 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 class ViewResultMatchers { */ 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 5e7a75368e..36cdf5fc86 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 @@ public class XpathResultMatchers { */ 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 class XpathResultMatchers { */ 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 class XpathResultMatchers { */ 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 class XpathResultMatchers { */ 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 class XpathResultMatchers { */ 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 class XpathResultMatchers { */ 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 class XpathResultMatchers { */ 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 class XpathResultMatchers { */ 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 class XpathResultMatchers { */ 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 class XpathResultMatchers { */ 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 a97b38aeee..57c7d019d0 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 @@ -181,6 +181,7 @@ public class DefaultMockMvcBuilder extends MockMvcB /** * 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 b582b3b68c..29e2845be3 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 @@ final class PatternMappingFilterProxy implements Filter { } } + @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { @@ -119,10 +120,12 @@ final class PatternMappingFilterProxy implements Filter { 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 b9597c196e..c7035767e8 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 @@ -267,6 +267,7 @@ public class StandaloneMockMvcBuilder extends DefaultMockMvcBuilder 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); } @@ -184,42 +202,51 @@ class StubWebApplicationContext implements WebApplicationContext { // 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); } @@ -228,10 +255,12 @@ class StubWebApplicationContext implements WebApplicationContext { // Implementation of HierarchicalBeanFactory interface //--------------------------------------------------------------------- + @Override public BeanFactory getParentBeanFactory() { return null; } + @Override public boolean containsLocalBean(String name) { return this.beanFactory.containsBean(name); } @@ -240,14 +269,17 @@ class StubWebApplicationContext implements WebApplicationContext { // 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); } @@ -256,10 +288,12 @@ class StubWebApplicationContext implements WebApplicationContext { // Implementation of ResourceLoader interface //--------------------------------------------------------------------- + @Override public ClassLoader getClassLoader() { return null; } + @Override public Resource getResource(String location) { return this.resourcePatternResolver.getResource(location); } @@ -268,9 +302,11 @@ class StubWebApplicationContext implements WebApplicationContext { // Other //--------------------------------------------------------------------- + @Override public void publishEvent(ApplicationEvent event) { } + @Override public Resource[] getResources(String locationPattern) throws IOException { return this.resourcePatternResolver.getResources(locationPattern); } @@ -283,6 +319,7 @@ class StubWebApplicationContext implements WebApplicationContext { */ 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); @@ -290,50 +327,61 @@ class StubWebApplicationContext implements WebApplicationContext { return existingBean; } + @Override public T createBean(Class beanClass) throws BeansException { throw new UnsupportedOperationException("Bean creation is not supported"); } + @Override @SuppressWarnings("rawtypes") public Object createBean(Class beanClass, int autowireMode, boolean dependencyCheck) throws BeansException { throw new UnsupportedOperationException("Bean creation is not supported"); } + @Override @SuppressWarnings("rawtypes") public Object autowire(Class beanClass, int autowireMode, boolean dependencyCheck) throws BeansException { return null; } + @Override public void autowireBean(Object existingBean) throws BeansException { throw new UnsupportedOperationException("Autowiring is not supported"); } + @Override public void autowireBeanProperties(Object existingBean, int autowireMode, boolean dependencyCheck) throws BeansException { throw new UnsupportedOperationException("Autowiring is not supported"); } + @Override public Object configureBean(Object existingBean, String beanName) throws BeansException { throw new UnsupportedOperationException("Configuring a bean is not supported"); } + @Override public Object resolveDependency(DependencyDescriptor descriptor, String beanName) throws BeansException { throw new UnsupportedOperationException("Dependency resolution is not supported"); } + @Override public Object resolveDependency(DependencyDescriptor descriptor, String beanName, Set autowiredBeanNames, TypeConverter typeConverter) throws BeansException { throw new UnsupportedOperationException("Dependency resolution is not supported"); } + @Override public void applyBeanPropertyValues(Object existingBean, String beanName) throws BeansException { throw new UnsupportedOperationException("Bean property initialization is not supported"); } + @Override public Object applyBeanPostProcessorsBeforeInitialization(Object existingBean, String beanName) throws BeansException { throw new UnsupportedOperationException("Post processing is not supported"); } + @Override public Object applyBeanPostProcessorsAfterInitialization(Object existingBean, String beanName) throws BeansException { throw new UnsupportedOperationException("Post processing is not supported"); 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 5de14e9954..7e62e827fe 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 @@ -45,10 +45,12 @@ public class MockHttpInputMessage implements HttpInputMessage { 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 43fa1b3e7e..8f31f553bb 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 @@ -42,6 +42,7 @@ public class MockHttpOutputMessage implements HttpOutputMessage { /** * Return the headers. */ + @Override public HttpHeaders getHeaders() { return this.headers; } @@ -49,6 +50,7 @@ public class MockHttpOutputMessage implements HttpOutputMessage { /** * 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 0f46bbbcf3..c6896d277c 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 class MockClientHttpRequest extends MockHttpOutputMessage implements Clie this.uri = uri; } + @Override public URI getURI() { return this.uri; } @@ -64,6 +65,7 @@ public class MockClientHttpRequest extends MockHttpOutputMessage implements Clie this.uri = uri; } + @Override public HttpMethod getMethod() { return this.httpMethod; } @@ -85,6 +87,7 @@ public class MockClientHttpRequest extends MockHttpOutputMessage implements Clie * 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 9ed40774f1..64b229e558 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 class MockClientHttpResponse extends MockHttpInputMessage implements Clie 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 b19aaf5c54..7bffe4de13 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 class ExpectedLookupTemplate extends JndiTemplate { * 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 d35fbdc865..4e1641b2cd 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 class SimpleNamingContext implements Context { // 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 class SimpleNamingContext implements Context { 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 class SimpleNamingContext implements Context { * 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 class SimpleNamingContext implements Context { return found; } + @Override public Object lookupLink(String name) throws NameNotFoundException { return lookup(name); } @@ -147,6 +151,7 @@ public class SimpleNamingContext implements Context { * 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 class SimpleNamingContext implements Context { 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 class SimpleNamingContext implements Context { 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 class SimpleNamingContext implements Context { 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 @@ public class SimpleNamingContext implements Context { 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 @@ public class SimpleNamingContext implements Context { super(context, root); } + @Override protected NameClassPair createObject(String strippedName, Object obj) { return new NameClassPair(strippedName, obj.getClass().getName()); } @@ -337,6 +372,7 @@ public class SimpleNamingContext implements Context { 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 449c45faca..883db7bfd3 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 @@ -192,6 +192,7 @@ public class SimpleNamingContextBuilder implements InitialContextFactoryBuilder * 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); @@ -225,6 +226,7 @@ public class SimpleNamingContextBuilder implements InitialContextFactoryBuilder // 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 f97e60e2eb..1b8cf3eeba 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 class DelegatingServletInputStream extends ServletInputStream { } + @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 2369417030..d580974a60 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 class DelegatingServletOutputStream extends ServletOutputStream { } + @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/MockBodyContent.java b/spring-test/src/main/java/org/springframework/mock/web/MockBodyContent.java index 3fb6ca7703..61aa61c0e8 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 @@ public class MockBodyContent extends BodyContent { } + @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 class MockBodyContent extends BodyContent { // 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 6b69fdb704..f1c08e2774 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 class MockExpressionEvaluator extends ExpressionEvaluator { 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 a80a2fb454..503c51f901 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 class MockFilterChain implements FilterChain { * 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 @@ public class MockFilterChain implements FilterChain { 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 34cafd55fc..2de79f09c2 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 class MockFilterConfig implements FilterConfig { } + @Override public String getFilterName() { return filterName; } + @Override public ServletContext getServletContext() { return servletContext; } @@ -92,11 +94,13 @@ public class MockFilterConfig implements FilterConfig { 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 441a53e4ce..044d382d45 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 @@ -283,20 +283,24 @@ public class MockHttpServletRequest implements HttpServletRequest { // ServletRequest interface // --------------------------------------------------------------------- + @Override public Object getAttribute(String name) { checkActive(); return this.attributes.get(name); } + @Override public Enumeration getAttributeNames() { checkActive(); return Collections.enumeration(this.attributes.keySet()); } + @Override public String getCharacterEncoding() { return this.characterEncoding; } + @Override public void setCharacterEncoding(String characterEncoding) { this.characterEncoding = characterEncoding; updateContentTypeHeader(); @@ -316,6 +320,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.content = content; } + @Override public int getContentLength() { return (this.content != null ? this.content.length : -1); } @@ -332,10 +337,12 @@ public class MockHttpServletRequest implements HttpServletRequest { } } + @Override public String getContentType() { return this.contentType; } + @Override public ServletInputStream getInputStream() { if (this.content != null) { return new DelegatingServletInputStream(new ByteArrayInputStream(this.content)); @@ -455,21 +462,25 @@ public class MockHttpServletRequest implements HttpServletRequest { this.parameters.clear(); } + @Override public String getParameter(String name) { Assert.notNull(name, "Parameter name must not be null"); 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) { Assert.notNull(name, "Parameter name must not be null"); return this.parameters.get(name); } + @Override public Map getParameterMap() { return Collections.unmodifiableMap(this.parameters); } @@ -478,6 +489,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.protocol = protocol; } + @Override public String getProtocol() { return this.protocol; } @@ -486,6 +498,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.scheme = scheme; } + @Override public String getScheme() { return this.scheme; } @@ -494,6 +507,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.serverName = serverName; } + @Override public String getServerName() { return this.serverName; } @@ -502,10 +516,12 @@ public class MockHttpServletRequest implements HttpServletRequest { 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); @@ -522,6 +538,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.remoteAddr = remoteAddr; } + @Override public String getRemoteAddr() { return this.remoteAddr; } @@ -530,10 +547,12 @@ public class MockHttpServletRequest implements HttpServletRequest { 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"); @@ -545,6 +564,7 @@ public class MockHttpServletRequest implements HttpServletRequest { } } + @Override public void removeAttribute(String name) { checkActive(); Assert.notNull(name, "Attribute name must not be null"); @@ -579,10 +599,12 @@ public class MockHttpServletRequest implements HttpServletRequest { this.locales.addAll(locales); } + @Override public Locale getLocale() { return this.locales.get(0); } + @Override public Enumeration getLocales() { return Collections.enumeration(this.locales); } @@ -591,14 +613,17 @@ public class MockHttpServletRequest implements HttpServletRequest { 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); } @@ -607,6 +632,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.remotePort = remotePort; } + @Override public int getRemotePort() { return this.remotePort; } @@ -615,6 +641,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.localName = localName; } + @Override public String getLocalName() { return this.localName; } @@ -623,6 +650,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.localAddr = localAddr; } + @Override public String getLocalAddr() { return this.localAddr; } @@ -631,6 +659,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.localPort = localPort; } + @Override public int getLocalPort() { return this.localPort; } @@ -643,6 +672,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.authType = authType; } + @Override public String getAuthType() { return this.authType; } @@ -651,6 +681,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.cookies = cookies; } + @Override public Cookie[] getCookies() { return this.cookies; } @@ -699,6 +730,7 @@ public class MockHttpServletRequest implements HttpServletRequest { } } + @Override public long getDateHeader(String name) { HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name); Object value = (header != null ? header.getValue() : null); @@ -717,20 +749,24 @@ public class MockHttpServletRequest implements HttpServletRequest { } } + @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); @@ -752,6 +788,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.method = method; } + @Override public String getMethod() { return this.method; } @@ -760,10 +797,12 @@ public class MockHttpServletRequest implements HttpServletRequest { this.pathInfo = pathInfo; } + @Override public String getPathInfo() { return this.pathInfo; } + @Override public String getPathTranslated() { return (this.pathInfo != null ? getRealPath(this.pathInfo) : null); } @@ -772,6 +811,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.contextPath = contextPath; } + @Override public String getContextPath() { return this.contextPath; } @@ -780,6 +820,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.queryString = queryString; } + @Override public String getQueryString() { return this.queryString; } @@ -788,6 +829,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.remoteUser = remoteUser; } + @Override public String getRemoteUser() { return this.remoteUser; } @@ -796,6 +838,7 @@ public class MockHttpServletRequest implements HttpServletRequest { 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))); @@ -805,6 +848,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.userPrincipal = userPrincipal; } + @Override public Principal getUserPrincipal() { return this.userPrincipal; } @@ -813,6 +857,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.requestedSessionId = requestedSessionId; } + @Override public String getRequestedSessionId() { return this.requestedSessionId; } @@ -821,10 +866,12 @@ public class MockHttpServletRequest implements HttpServletRequest { 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); @@ -836,6 +883,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.servletPath = servletPath; } + @Override public String getServletPath() { return this.servletPath; } @@ -848,6 +896,7 @@ public class MockHttpServletRequest implements HttpServletRequest { } } + @Override public HttpSession getSession(boolean create) { checkActive(); // Reset session if invalidated. @@ -861,6 +910,7 @@ public class MockHttpServletRequest implements HttpServletRequest { return this.session; } + @Override public HttpSession getSession() { return getSession(true); } @@ -869,6 +919,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.requestedSessionIdValid = requestedSessionIdValid; } + @Override public boolean isRequestedSessionIdValid() { return this.requestedSessionIdValid; } @@ -877,6 +928,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.requestedSessionIdFromCookie = requestedSessionIdFromCookie; } + @Override public boolean isRequestedSessionIdFromCookie() { return this.requestedSessionIdFromCookie; } @@ -885,10 +937,12 @@ public class MockHttpServletRequest implements HttpServletRequest { this.requestedSessionIdFromURL = requestedSessionIdFromURL; } + @Override public boolean isRequestedSessionIdFromURL() { return this.requestedSessionIdFromURL; } + @Override public boolean isRequestedSessionIdFromUrl() { return isRequestedSessionIdFromURL(); } 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 c86e95a93a..5a2b7fd1aa 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 @@ -136,6 +136,7 @@ public class MockHttpServletResponse implements HttpServletResponse { return this.writerAccessAllowed; } + @Override public void setCharacterEncoding(String characterEncoding) { this.characterEncoding = characterEncoding; this.charset = true; @@ -152,10 +153,12 @@ public class MockHttpServletResponse implements HttpServletResponse { } } + @Override public String getCharacterEncoding() { return this.characterEncoding; } + @Override public ServletOutputStream getOutputStream() { if (!this.outputStreamAccessAllowed) { throw new IllegalStateException("OutputStream access not allowed"); @@ -163,6 +166,7 @@ public class MockHttpServletResponse implements HttpServletResponse { return this.outputStream; } + @Override public PrintWriter getWriter() throws UnsupportedEncodingException { if (!this.writerAccessAllowed) { throw new IllegalStateException("Writer access not allowed"); @@ -186,6 +190,7 @@ public class MockHttpServletResponse implements HttpServletResponse { this.content.toString(this.characterEncoding) : this.content.toString(); } + @Override public void setContentLength(int contentLength) { this.contentLength = contentLength; doAddHeaderValue(CONTENT_LENGTH_HEADER, contentLength, true); @@ -195,6 +200,7 @@ public class MockHttpServletResponse implements HttpServletResponse { return this.contentLength; } + @Override public void setContentType(String contentType) { this.contentType = contentType; if (contentType != null) { @@ -208,22 +214,27 @@ public class MockHttpServletResponse implements HttpServletResponse { } } + @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"); @@ -242,10 +253,12 @@ public class MockHttpServletResponse implements HttpServletResponse { this.committed = committed; } + @Override public boolean isCommitted() { return this.committed; } + @Override public void reset() { resetBuffer(); this.characterEncoding = null; @@ -258,10 +271,12 @@ public class MockHttpServletResponse implements HttpServletResponse { this.errorMessage = null; } + @Override public void setLocale(Locale locale) { this.locale = locale; } + @Override public Locale getLocale() { return this.locale; } @@ -271,6 +286,7 @@ public class MockHttpServletResponse implements HttpServletResponse { // HttpServletResponse interface //--------------------------------------------------------------------- + @Override public void addCookie(Cookie cookie) { Assert.notNull(cookie, "Cookie must not be null"); this.cookies.add(cookie); @@ -290,6 +306,7 @@ public class MockHttpServletResponse implements HttpServletResponse { return null; } + @Override public boolean containsHeader(String name) { return (HeaderValueHolder.getByName(this.headers, name) != null); } @@ -365,6 +382,7 @@ public class MockHttpServletResponse implements HttpServletResponse { * 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; } @@ -377,18 +395,22 @@ public class MockHttpServletResponse implements HttpServletResponse { * 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"); @@ -398,6 +420,7 @@ public class MockHttpServletResponse implements HttpServletResponse { setCommitted(true); } + @Override public void sendError(int status) throws IOException { if (isCommitted()) { throw new IllegalStateException("Cannot set error status - response is already committed"); @@ -406,6 +429,7 @@ public class MockHttpServletResponse implements HttpServletResponse { setCommitted(true); } + @Override public void sendRedirect(String url) throws IOException { if (isCommitted()) { throw new IllegalStateException("Cannot send redirect - response is already committed"); @@ -420,26 +444,32 @@ public class MockHttpServletResponse implements HttpServletResponse { 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); } @@ -487,10 +517,12 @@ public class MockHttpServletResponse implements HttpServletResponse { } } + @Override public void setStatus(int status) { this.status = status; } + @Override public void setStatus(int status, String errorMessage) { this.status = status; this.errorMessage = errorMessage; @@ -553,12 +585,14 @@ public class MockHttpServletResponse implements HttpServletResponse { 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); @@ -576,24 +610,28 @@ public class MockHttpServletResponse implements HttpServletResponse { 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 1855230d2c..82a89b61a3 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 @@ -98,10 +98,12 @@ public class MockHttpSession implements HttpSession { this.id = (id != null ? id : Integer.toString(nextId++)); } + @Override public long getCreationTime() { return this.creationTime; } + @Override public String getId() { return this.id; } @@ -111,43 +113,53 @@ public class MockHttpSession implements HttpSession { 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(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) { @@ -161,10 +173,12 @@ public class MockHttpSession implements HttpSession { } } + @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); @@ -173,6 +187,7 @@ public class MockHttpSession implements HttpSession { } } + @Override public void removeValue(String name) { removeAttribute(name); } @@ -197,6 +212,7 @@ public class MockHttpSession implements HttpSession { * * @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"); @@ -215,6 +231,7 @@ public class MockHttpSession implements HttpSession { 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 1d5bf928bf..4dfb1e7971 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 @@ public class MockJspWriter extends JspWriter { } + @Override public void clear() throws IOException { if (this.response.isCommitted()) { throw new IOException("Response already committed"); @@ -89,101 +90,126 @@ public class MockJspWriter extends JspWriter { 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 fb57d1f1fc..7cff3fd2bd 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 class MockMultipartFile implements MultipartFile { 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 b01c4fdcf8..0d3f64f0c6 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 @@ -66,14 +66,17 @@ public class MockMultipartHttpServletRequest extends MockHttpServletRequest impl 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) { @@ -84,14 +87,17 @@ public class MockMultipartHttpServletRequest extends MockHttpServletRequest impl } } + @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) { @@ -102,10 +108,12 @@ public class MockMultipartHttpServletRequest extends MockHttpServletRequest impl } } + @Override public HttpMethod getRequestMethod() { return HttpMethod.valueOf(getMethod()); } + @Override public HttpHeaders getRequestHeaders() { HttpHeaders headers = new HttpHeaders(); Enumeration headerNames = getHeaderNames(); @@ -116,6 +124,7 @@ public class MockMultipartHttpServletRequest extends MockHttpServletRequest impl 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 b492c1fa98..72202495b7 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 @@ -126,6 +126,7 @@ public class MockPageContext extends PageContext { } + @Override public void initialize( Servlet servlet, ServletRequest request, ServletResponse response, String errorPageURL, boolean needsSession, int bufferSize, boolean autoFlush) { @@ -133,9 +134,11 @@ public class MockPageContext extends PageContext { 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) { @@ -146,6 +149,7 @@ public class MockPageContext extends PageContext { } } + @Override public void setAttribute(String name, Object value, int scope) { Assert.notNull(name, "Attribute name must not be null"); switch (scope) { @@ -166,11 +170,13 @@ public class MockPageContext extends PageContext { } } + @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) { @@ -188,6 +194,7 @@ public class MockPageContext extends PageContext { } } + @Override public Object findAttribute(String name) { Object value = getAttribute(name); if (value == null) { @@ -202,6 +209,7 @@ public class MockPageContext extends PageContext { return value; } + @Override public void removeAttribute(String name) { Assert.notNull(name, "Attribute name must not be null"); this.removeAttribute(name, PageContext.PAGE_SCOPE); @@ -210,6 +218,7 @@ public class MockPageContext extends PageContext { 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) { @@ -230,6 +239,7 @@ public class MockPageContext extends PageContext { } } + @Override public int getAttributesScope(String name) { if (getAttribute(name) != null) { return PAGE_SCOPE; @@ -252,6 +262,7 @@ public class MockPageContext extends PageContext { return Collections.enumeration(this.attributes.keySet()); } + @Override @SuppressWarnings("unchecked") public Enumeration getAttributeNamesInScope(int scope) { switch (scope) { @@ -269,6 +280,7 @@ public class MockPageContext extends PageContext { } } + @Override public JspWriter getOut() { if (this.out == null) { this.out = new MockJspWriter(this.response); @@ -276,54 +288,67 @@ public class MockPageContext extends PageContext { 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 class MockPageContext extends PageContext { 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 88660bb3ae..e43172c198 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 class MockRequestDispatcher implements RequestDispatcher { } + @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 class MockRequestDispatcher implements RequestDispatcher { } } + @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 c62ec1520d..d8e8abdf5e 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 class MockServletConfig implements ServletConfig { } + @Override public String getServletName() { return this.servletName; } + @Override public ServletContext getServletContext() { return this.servletContext; } @@ -91,11 +93,13 @@ public class MockServletConfig implements ServletConfig { 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 562179ceac..3b4fea3217 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 @@ -195,6 +195,7 @@ public class MockServletContext implements ServletContext { } /* This is a Servlet API 2.5 method. */ + @Override public String getContextPath() { return this.contextPath; } @@ -203,6 +204,7 @@ public class MockServletContext implements ServletContext { this.contexts.put(contextPath, context); } + @Override public ServletContext getContext(String contextPath) { if (this.contextPath.equals(contextPath)) { return this; @@ -214,6 +216,7 @@ public class MockServletContext implements ServletContext { this.majorVersion = majorVersion; } + @Override public int getMajorVersion() { return this.majorVersion; } @@ -222,6 +225,7 @@ public class MockServletContext implements ServletContext { this.minorVersion = minorVersion; } + @Override public int getMinorVersion() { return this.minorVersion; } @@ -242,10 +246,12 @@ public class MockServletContext implements ServletContext { return this.effectiveMinorVersion; } + @Override public String getMimeType(String filePath) { return MimeTypeResolver.getMimeType(filePath); } + @Override public Set getResourcePaths(String path) { String actualPath = (path.endsWith("/") ? path : path + "/"); Resource resource = this.resourceLoader.getResource(getResourceLocation(actualPath)); @@ -271,6 +277,7 @@ public class MockServletContext implements ServletContext { } } + @Override public URL getResource(String path) throws MalformedURLException { Resource resource = this.resourceLoader.getResource(getResourceLocation(path)); if (!resource.exists()) { @@ -288,6 +295,7 @@ public class MockServletContext implements ServletContext { } } + @Override public InputStream getResourceAsStream(String path) { Resource resource = this.resourceLoader.getResource(getResourceLocation(path)); if (!resource.exists()) { @@ -302,6 +310,7 @@ public class MockServletContext implements ServletContext { } } + @Override public RequestDispatcher getRequestDispatcher(String path) { if (!path.startsWith("/")) { throw new IllegalArgumentException("RequestDispatcher path at ServletContext level must start with '/'"); @@ -309,6 +318,7 @@ public class MockServletContext implements ServletContext { return new MockRequestDispatcher(path); } + @Override public RequestDispatcher getNamedDispatcher(String path) { return this.namedRequestDispatchers.get(path); } @@ -366,30 +376,37 @@ public class MockServletContext implements ServletContext { 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 { @@ -401,15 +418,18 @@ public class MockServletContext implements ServletContext { } } + @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()); } @@ -428,15 +448,18 @@ public class MockServletContext implements ServletContext { 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(this.attributes.keySet()); } + @Override public void setAttribute(String name, Object value) { Assert.notNull(name, "Attribute name must not be null"); if (value != null) { @@ -447,6 +470,7 @@ public class MockServletContext implements ServletContext { } } + @Override public void removeAttribute(String name) { Assert.notNull(name, "Attribute name must not be null"); this.attributes.remove(name); @@ -456,6 +480,7 @@ public class MockServletContext implements ServletContext { this.servletContextName = servletContextName; } + @Override public String getServletContextName() { return this.servletContextName; } 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 b3484a0a83..1a98d4c657 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 class PassThroughFilterChain implements FilterChain { /** * 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 bec6687887..2f5c773e0c 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 class MockActionResponse extends MockStateAwareResponse implements Action } + @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 class MockActionResponse extends MockStateAwareResponse implements Action 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 class MockActionResponse extends MockStateAwareResponse implements Action 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 class MockActionResponse extends MockStateAwareResponse implements Action 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 class MockActionResponse extends MockStateAwareResponse implements Action 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 class MockActionResponse extends MockStateAwareResponse implements Action this.redirectAllowed = false; } + @Override public void sendRedirect(String location) throws IOException { if (!this.redirectAllowed) { throw new IllegalStateException( @@ -108,6 +114,7 @@ public class MockActionResponse extends MockStateAwareResponse implements Action 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 aad992058b..fcdc50acdc 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 abstract class MockBaseURL implements BaseURL { 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 abstract class MockBaseURL implements BaseURL { 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 abstract class MockBaseURL implements BaseURL { } } + @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 0ee9fbeb7c..cac1a83d5f 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 8f36c3a764..8fa396de4d 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 class MockClientDataRequest extends MockPortletRequest implements ClientD this.content = content; } + @Override public InputStream getPortletInputStream() throws IOException { if (this.content != null) { return new ByteArrayInputStream(this.content); @@ -85,10 +86,12 @@ public class MockClientDataRequest extends MockPortletRequest implements ClientD } } + @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 class MockClientDataRequest extends MockPortletRequest implements ClientD } } + @Override public String getCharacterEncoding() { return this.characterEncoding; } @@ -109,10 +113,12 @@ public class MockClientDataRequest extends MockPortletRequest implements ClientD 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 class MockClientDataRequest extends MockPortletRequest implements ClientD 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 0dc7efaba8..c2c82febae 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 class MockEvent implements Event { } + @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 2406f18d01..af4725dea7 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 @@ public class MockEventRequest extends MockPortletRequest implements EventRequest return EVENT_PHASE; } + @Override public Event getEvent() { return this.event; } @@ -81,6 +82,7 @@ public class MockEventRequest extends MockPortletRequest implements EventRequest 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 1a00e8b2d5..f7c846e028 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 @@ import javax.portlet.EventResponse; */ 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 e606fc808d..cbfb70bca1 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 class MockMimeResponse extends MockPortletResponse implements MimeRespons // RenderResponse methods //--------------------------------------------------------------------- + @Override public void setContentType(String contentType) { if (this.request != null) { Enumeration supportedTypes = this.request.getResponseContentTypes(); @@ -112,6 +113,7 @@ public class MockMimeResponse extends MockPortletResponse implements MimeRespons this.contentType = contentType; } + @Override public String getContentType() { return this.contentType; } @@ -120,10 +122,12 @@ public class MockMimeResponse extends MockPortletResponse implements MimeRespons 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 class MockMimeResponse extends MockPortletResponse implements MimeRespons 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 class MockMimeResponse extends MockPortletResponse implements MimeRespons 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 class MockMimeResponse extends MockPortletResponse implements MimeRespons this.committed = committed; } + @Override public boolean isCommitted() { return this.committed; } + @Override public void reset() { resetBuffer(); this.characterEncoding = null; @@ -199,22 +210,27 @@ public class MockMimeResponse extends MockPortletResponse implements MimeRespons 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 7df8b547b0..54201b8ec8 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 class MockMultipartActionRequest extends MockActionRequest implements Mul 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 class MockMultipartActionRequest extends MockActionRequest implements Mul } } + @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 949d077b9a..8731438d70 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 class MockPortalContext implements PortalContext { } + @Override public String getPortalInfo() { return "MockPortal/1.0"; } @@ -82,18 +83,22 @@ public class MockPortalContext implements PortalContext { this.properties.put(name, value); } + @Override public String getProperty(String name) { return this.properties.get(name); } + @Override public Enumeration 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 9d3a878026..cf7f48bb17 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 class MockPortletConfig implements PortletConfig { } + @Override public String getPortletName() { return this.portletName; } + @Override public PortletContext getPortletContext() { return this.portletContext; } @@ -109,6 +111,7 @@ public class MockPortletConfig implements PortletConfig { 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 class MockPortletConfig implements PortletConfig { 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 class MockPortletConfig implements PortletConfig { this.publicRenderParameterNames.add(name); } + @Override public Enumeration getPublicRenderParameterNames() { return Collections.enumeration(this.publicRenderParameterNames); } @@ -140,6 +146,7 @@ public class MockPortletConfig implements PortletConfig { this.defaultNamespace = defaultNamespace; } + @Override public String getDefaultNamespace() { return this.defaultNamespace; } @@ -148,6 +155,7 @@ public class MockPortletConfig implements PortletConfig { this.publishingEventQNames.add(name); } + @Override public Enumeration getPublishingEventQNames() { return Collections.enumeration(this.publishingEventQNames); } @@ -156,6 +164,7 @@ public class MockPortletConfig implements PortletConfig { this.processingEventQNames.add(name); } + @Override public Enumeration getProcessingEventQNames() { return Collections.enumeration(this.processingEventQNames); } @@ -164,6 +173,7 @@ public class MockPortletConfig implements PortletConfig { this.supportedLocales.add(locale); } + @Override public Enumeration getSupportedLocales() { return Collections.enumeration(this.supportedLocales); } @@ -176,6 +186,7 @@ public class MockPortletConfig implements PortletConfig { 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 b1193ff5e1..7d4ec1c904 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 @@ -126,10 +126,12 @@ public class MockPortletContext implements PortletContext { } + @Override public String getServerInfo() { return "MockPortal/1.0"; } + @Override public PortletRequestDispatcher getRequestDispatcher(String path) { if (!path.startsWith("/")) { throw new IllegalArgumentException( @@ -138,10 +140,12 @@ public class MockPortletContext implements PortletContext { 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 { @@ -153,18 +157,22 @@ public class MockPortletContext implements PortletContext { } } + @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 { @@ -176,6 +184,7 @@ public class MockPortletContext implements PortletContext { } } + @Override public Set getResourcePaths(String path) { Resource resource = this.resourceLoader.getResource(getResourceLocation(path)); try { @@ -194,6 +203,7 @@ public class MockPortletContext implements PortletContext { } } + @Override public URL getResource(String path) throws MalformedURLException { Resource resource = this.resourceLoader.getResource(getResourceLocation(path)); try { @@ -205,14 +215,17 @@ public class MockPortletContext implements PortletContext { } } + @Override public Object getAttribute(String name) { return this.attributes.get(name); } + @Override public Enumeration getAttributeNames() { return new Vector(this.attributes.keySet()).elements(); } + @Override public void setAttribute(String name, Object value) { if (value != null) { this.attributes.put(name, value); @@ -222,6 +235,7 @@ public class MockPortletContext implements PortletContext { } } + @Override public void removeAttribute(String name) { this.attributes.remove(name); } @@ -231,19 +245,23 @@ public class MockPortletContext implements PortletContext { 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); } @@ -252,6 +270,7 @@ public class MockPortletContext implements PortletContext { this.portletContextName = portletContextName; } + @Override public String getPortletContextName() { return this.portletContextName; } @@ -260,6 +279,7 @@ public class MockPortletContext implements PortletContext { 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 92ee6c0a46..fc281fc16b 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 class MockPortletPreferences implements PortletPreferences { } } + @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 class MockPortletPreferences implements PortletPreferences { 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 class MockPortletPreferences implements PortletPreferences { 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 70e90567b0..921510b3c5 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 @@ -174,10 +174,12 @@ public class MockPortletRequest implements PortletRequest { // 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); } @@ -187,6 +189,7 @@ public class MockPortletRequest implements PortletRequest { this.portletMode = portletMode; } + @Override public PortletMode getPortletMode() { return this.portletMode; } @@ -196,6 +199,7 @@ public class MockPortletRequest implements PortletRequest { this.windowState = windowState; } + @Override public WindowState getWindowState() { return this.windowState; } @@ -205,6 +209,7 @@ public class MockPortletRequest implements PortletRequest { this.portletPreferences = preferences; } + @Override public PortletPreferences getPreferences() { return this.portletPreferences; } @@ -217,10 +222,12 @@ public class MockPortletRequest implements PortletRequest { } } + @Override public PortletSession getPortletSession() { return getPortletSession(true); } + @Override public PortletSession getPortletSession(boolean create) { checkActive(); // Reset session if invalidated. @@ -266,21 +273,25 @@ public class MockPortletRequest implements PortletRequest { } } + @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; } @@ -289,6 +300,7 @@ public class MockPortletRequest implements PortletRequest { this.authType = authType; } + @Override public String getAuthType() { return this.authType; } @@ -297,6 +309,7 @@ public class MockPortletRequest implements PortletRequest { this.contextPath = contextPath; } + @Override public String getContextPath() { return this.contextPath; } @@ -305,6 +318,7 @@ public class MockPortletRequest implements PortletRequest { this.remoteUser = remoteUser; } + @Override public String getRemoteUser() { return this.remoteUser; } @@ -313,6 +327,7 @@ public class MockPortletRequest implements PortletRequest { this.userPrincipal = userPrincipal; } + @Override public Principal getUserPrincipal() { return this.userPrincipal; } @@ -321,15 +336,18 @@ public class MockPortletRequest implements PortletRequest { 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 new Vector(this.attributes.keySet()).elements(); @@ -370,19 +388,23 @@ public class MockPortletRequest implements PortletRequest { } } + @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); } @@ -391,10 +413,12 @@ public class MockPortletRequest implements PortletRequest { this.secure = secure; } + @Override public boolean isSecure() { return this.secure; } + @Override public void setAttribute(String name, Object value) { checkActive(); if (value != null) { @@ -405,11 +429,13 @@ public class MockPortletRequest implements PortletRequest { } } + @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); @@ -419,6 +445,7 @@ public class MockPortletRequest implements PortletRequest { this.requestedSessionIdValid = requestedSessionIdValid; } + @Override public boolean isRequestedSessionIdValid() { return this.requestedSessionIdValid; } @@ -431,10 +458,12 @@ public class MockPortletRequest implements PortletRequest { this.responseContentTypes.add(0, responseContentType); } + @Override public String getResponseContentType() { return this.responseContentTypes.get(0); } + @Override public Enumeration getResponseContentTypes() { return Collections.enumeration(this.responseContentTypes); } @@ -447,10 +476,12 @@ public class MockPortletRequest implements PortletRequest { this.locales.add(0, locale); } + @Override public Locale getLocale() { return this.locales.get(0); } + @Override public Enumeration getLocales() { return Collections.enumeration(this.locales); } @@ -459,6 +490,7 @@ public class MockPortletRequest implements PortletRequest { this.scheme = scheme; } + @Override public String getScheme() { return this.scheme; } @@ -467,6 +499,7 @@ public class MockPortletRequest implements PortletRequest { this.serverName = serverName; } + @Override public String getServerName() { return this.serverName; } @@ -475,6 +508,7 @@ public class MockPortletRequest implements PortletRequest { this.serverPort = serverPort; } + @Override public int getServerPort() { return this.serverPort; } @@ -483,6 +517,7 @@ public class MockPortletRequest implements PortletRequest { this.windowID = windowID; } + @Override public String getWindowID() { return this.windowID; } @@ -491,10 +526,12 @@ public class MockPortletRequest implements PortletRequest { this.cookies = cookies; } + @Override public Cookie[] getCookies() { return this.cookies; } + @Override public Map getPrivateParameterMap() { if (!this.publicParameterNames.isEmpty()) { Map filtered = new LinkedHashMap(); @@ -510,6 +547,7 @@ public class MockPortletRequest implements PortletRequest { } } + @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 ca8695f90e..5ba423ed0e 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 class MockPortletRequestDispatcher implements PortletRequestDispatcher { } + @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 class MockPortletRequestDispatcher implements PortletRequestDispatcher { } } + @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 b556209fcd..9fe6d6315f 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 class MockPortletResponse implements PortletResponse { // 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 class MockPortletResponse implements PortletResponse { } } + @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 class MockPortletResponse implements PortletResponse { return this.properties.get(key); } + @Override public String encodeURL(String path) { return path; } @@ -127,10 +130,12 @@ public class MockPortletResponse implements PortletResponse { 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 class MockPortletResponse implements PortletResponse { 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 class MockPortletResponse implements PortletResponse { 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 93800340b8..431ad08ce3 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 class MockPortletSession implements PortletSession { } + @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 @@ public class MockPortletSession implements PortletSession { return null; } + @Override public Enumeration getAttributeNames() { return new Vector(this.portletAttributes.keySet()).elements(); } + @Override public Enumeration getAttributeNames(int scope) { if (scope == PortletSession.PORTLET_SCOPE) { return new Vector(this.portletAttributes.keySet()).elements(); @@ -105,10 +109,12 @@ public class MockPortletSession implements PortletSession { return null; } + @Override public long getCreationTime() { return this.creationTime; } + @Override public String getId() { return this.id; } @@ -118,10 +124,12 @@ public class MockPortletSession implements PortletSession { setNew(false); } + @Override public long getLastAccessedTime() { return this.lastAccessedTime; } + @Override public int getMaxInactiveInterval() { return this.maxInactiveInterval; } @@ -147,6 +155,7 @@ public class MockPortletSession implements PortletSession { } } + @Override public void invalidate() { this.invalid = true; clearAttributes(); @@ -160,14 +169,17 @@ public class MockPortletSession implements PortletSession { 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 @@ public class MockPortletSession implements PortletSession { } } + @Override public void setAttribute(String name, Object value) { if (value != null) { this.portletAttributes.put(name, value); @@ -186,6 +199,7 @@ public class MockPortletSession implements PortletSession { } } + @Override public void setAttribute(String name, Object value, int scope) { if (scope == PortletSession.PORTLET_SCOPE) { if (value != null) { @@ -205,18 +219,22 @@ public class MockPortletSession implements PortletSession { } } + @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 12abdf57c9..53deff0916 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 class MockPortletURL extends MockBaseURL implements PortletURL { // 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 class MockPortletURL extends MockBaseURL implements PortletURL { 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,10 +90,12 @@ public class MockPortletURL extends MockBaseURL implements PortletURL { this.portletMode = portletMode; } + @Override public PortletMode getPortletMode() { return this.portletMode; } + @Override public void removePublicRenderParameter(String name) { this.parameters.remove(name); } 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 d86ba7f2ad..672a51dcb7 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 @@ public class MockRenderRequest extends MockPortletRequest implements RenderReque 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 a2feeb3726..7f70be9a05 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 class MockRenderResponse extends MockMimeResponse implements RenderRespon // RenderResponse methods //--------------------------------------------------------------------- + @Override public void setTitle(String title) { this.title = title; } @@ -77,6 +78,7 @@ public class MockRenderResponse extends MockMimeResponse implements RenderRespon 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 7cce4ba3c6..e889d92314 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 class MockResourceRequest extends MockClientDataRequest implements Resour this.resourceID = resourceID; } + @Override public String getResourceID() { return this.resourceID; } @@ -105,10 +106,12 @@ public class MockResourceRequest extends MockClientDataRequest implements Resour this.cacheability = cacheLevel; } + @Override public String getCacheability() { return this.cacheability; } + @Override public String getETag() { return getProperty(RenderRequest.ETAG); } @@ -121,6 +124,7 @@ public class MockResourceRequest extends MockClientDataRequest implements Resour 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 297a19682e..00a267b1d8 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 cce36b18d5..12b7fd4a39 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,10 +45,12 @@ public class MockResourceURL extends MockBaseURL implements ResourceURL { return this.resourceID; } + @Override public void setCacheability(String cacheLevel) { this.cacheability = cacheLevel; } + @Override public String getCacheability() { return this.cacheability; } 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 6853658447..6d2f6d74fa 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 class MockStateAwareResponse extends MockPortletResponse implements State } + @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 class MockStateAwareResponse extends MockPortletResponse implements State 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 class MockStateAwareResponse extends MockPortletResponse implements State 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 class MockStateAwareResponse extends MockPortletResponse implements State 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 8a88066c93..924188660a 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,85 +59,105 @@ public class ServletWrappingPortletContext implements PortletContext { } + @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 @SuppressWarnings("unchecked") 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 @SuppressWarnings("unchecked") public Enumeration getAttributeNames() { return this.servletContext.getAttributeNames(); } + @Override public String getInitParameter(String name) { return this.servletContext.getInitParameter(name); } + @Override @SuppressWarnings("unchecked") 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/AbstractDependencyInjectionSpringContextTests.java b/spring-test/src/main/java/org/springframework/test/AbstractDependencyInjectionSpringContextTests.java index 0ef706abe1..502bcc7892 100644 --- a/spring-test/src/main/java/org/springframework/test/AbstractDependencyInjectionSpringContextTests.java +++ b/spring-test/src/main/java/org/springframework/test/AbstractDependencyInjectionSpringContextTests.java @@ -173,6 +173,7 @@ public abstract class AbstractDependencyInjectionSpringContextTests extends Abst * message will be written to the log. * @see #injectDependencies() */ + @Override protected void prepareTestInstance() throws Exception { if (getApplicationContext() == null) { if (this.logger.isInfoEnabled()) { diff --git a/spring-test/src/main/java/org/springframework/test/AbstractSingleSpringContextTests.java b/spring-test/src/main/java/org/springframework/test/AbstractSingleSpringContextTests.java index 0d5d078480..c565383da3 100644 --- a/spring-test/src/main/java/org/springframework/test/AbstractSingleSpringContextTests.java +++ b/spring-test/src/main/java/org/springframework/test/AbstractSingleSpringContextTests.java @@ -95,6 +95,7 @@ public abstract class AbstractSingleSpringContextTests extends AbstractSpringCon * This implementation is final. Override {@code onSetUp} for custom behavior. * @see #onSetUp() */ + @Override protected final void setUp() throws Exception { // lazy load, in case getApplicationContext() has not yet been called. if (this.applicationContext == null) { @@ -136,6 +137,7 @@ public abstract class AbstractSingleSpringContextTests extends AbstractSpringCon * custom behavior. * @see #onTearDown() */ + @Override protected final void tearDown() throws Exception { onTearDown(); } @@ -168,6 +170,7 @@ public abstract class AbstractSingleSpringContextTests extends AbstractSpringCon * {@code contextKey()} returns. * @see #getConfigLocations() */ + @Override protected ConfigurableApplicationContext loadContext(Object key) throws Exception { return loadContextLocations((String[]) key); } diff --git a/spring-test/src/main/java/org/springframework/test/AbstractTransactionalDataSourceSpringContextTests.java b/spring-test/src/main/java/org/springframework/test/AbstractTransactionalDataSourceSpringContextTests.java index 0f697d115f..73c9f14560 100644 --- a/spring-test/src/main/java/org/springframework/test/AbstractTransactionalDataSourceSpringContextTests.java +++ b/spring-test/src/main/java/org/springframework/test/AbstractTransactionalDataSourceSpringContextTests.java @@ -121,6 +121,7 @@ public abstract class AbstractTransactionalDataSourceSpringContextTests * cleared, as a defensive measure against accidental permanent wiping of a database. * @see org.springframework.test.AbstractTransactionalSpringContextTests#setComplete() */ + @Override protected final void setComplete() { if (this.zappedTables) { throw new IllegalStateException("Cannot set complete after deleting tables"); diff --git a/spring-test/src/main/java/org/springframework/test/AbstractTransactionalSpringContextTests.java b/spring-test/src/main/java/org/springframework/test/AbstractTransactionalSpringContextTests.java index af3c68663e..ea0784db7e 100644 --- a/spring-test/src/main/java/org/springframework/test/AbstractTransactionalSpringContextTests.java +++ b/spring-test/src/main/java/org/springframework/test/AbstractTransactionalSpringContextTests.java @@ -187,6 +187,7 @@ public abstract class AbstractTransactionalSpringContextTests extends AbstractDe * @throws Exception simply let any exception propagate * @see #onTearDown() */ + @Override protected void onSetUp() throws Exception { this.complete = !this.isRollback(); @@ -250,6 +251,7 @@ public abstract class AbstractTransactionalSpringContextTests extends AbstractDe * @throws Exception simply let any exception propagate * @see #onSetUp() */ + @Override protected void onTearDown() throws Exception { // Call onTearDownInTransaction and end transaction if the transaction // is still active. diff --git a/spring-test/src/main/java/org/springframework/test/ConditionalTestCase.java b/spring-test/src/main/java/org/springframework/test/ConditionalTestCase.java index a8448f228c..223d3e629c 100644 --- a/spring-test/src/main/java/org/springframework/test/ConditionalTestCase.java +++ b/spring-test/src/main/java/org/springframework/test/ConditionalTestCase.java @@ -66,6 +66,7 @@ public abstract class ConditionalTestCase extends TestCase { super(name); } + @Override public void runBare() throws Throwable { // getName will return the name of the method being run if (isDisabledInThisEnvironment(getName())) { diff --git a/spring-test/src/main/java/org/springframework/test/annotation/AbstractAnnotationAwareTransactionalTests.java b/spring-test/src/main/java/org/springframework/test/annotation/AbstractAnnotationAwareTransactionalTests.java index 30c08a22cb..00e59c8226 100644 --- a/spring-test/src/main/java/org/springframework/test/annotation/AbstractAnnotationAwareTransactionalTests.java +++ b/spring-test/src/main/java/org/springframework/test/annotation/AbstractAnnotationAwareTransactionalTests.java @@ -174,6 +174,7 @@ public abstract class AbstractAnnotationAwareTransactionalTests extends // Let JUnit handle execution. We're just changing the state of the test class first. runTestTimed(new TestExecutionCallback() { + @Override public void run() throws Throwable { try { AbstractAnnotationAwareTransactionalTests.super.runBare(); 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 f806acc1ff..7bd17b9bd5 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 @@ public class SystemProfileValueSource implements ProfileValueSource { * 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/junit38/AbstractJUnit38SpringContextTests.java b/spring-test/src/main/java/org/springframework/test/context/junit38/AbstractJUnit38SpringContextTests.java index 732c1e0bf5..ccafb33693 100644 --- a/spring-test/src/main/java/org/springframework/test/context/junit38/AbstractJUnit38SpringContextTests.java +++ b/spring-test/src/main/java/org/springframework/test/context/junit38/AbstractJUnit38SpringContextTests.java @@ -177,6 +177,7 @@ public abstract class AbstractJUnit38SpringContextTests extends TestCase impleme * Sets 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; } @@ -215,6 +216,7 @@ public abstract class AbstractJUnit38SpringContextTests extends TestCase impleme runTestTimed(new TestExecutionCallback() { + @Override public void run() throws Throwable { runManaged(testMethod); } 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 555892901e..6b99c6a108 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 0928ff4c9e..9bd7032351 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 @@ public abstract class AbstractContextLoader implements SmartContextLoader { * @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 284e80acf0..f0dc37fe67 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 @@ public abstract class AbstractDelegatingSmartContextLoader implements SmartConte * 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 abstract class AbstractDelegatingSmartContextLoader implements SmartConte * @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 abstract class AbstractDelegatingSmartContextLoader implements SmartConte * {@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 abstract class AbstractDelegatingSmartContextLoader implements SmartConte * {@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 c4b9b4dca7..eb42b471a0 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 @@ -90,6 +90,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].", @@ -142,6 +143,7 @@ public abstract class AbstractGenericContextLoader extends AbstractContextLoader * @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 34dfe47ec7..2f349cbc96 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 abstract class AbstractTestExecutionListener implements TestExecutionList * 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 abstract class AbstractTestExecutionListener implements TestExecutionList * 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 abstract class AbstractTestExecutionListener implements TestExecutionList * 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 abstract class AbstractTestExecutionListener implements TestExecutionList * 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 39e76f6e1a..29a26c5e25 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 32442fe3ec..108c66f014 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 e7964d1eaa..e8cbecc271 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 abstract class AbstractTestNGSpringContextTests implements IHookable, App * * @param applicationContext the applicationContext to set */ + @Override public final void setApplicationContext(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } @@ -151,6 +152,7 @@ public abstract class AbstractTestNGSpringContextTests implements IHookable, App * @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 5535fa974f..eab92252fb 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 @@ -153,6 +153,7 @@ public class TransactionalTestExecutionListener extends AbstractTestExecutionLis 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 f344ae2eee..4cb8897f87 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 @@ -92,6 +92,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)) { @@ -216,6 +217,7 @@ public abstract class AbstractGenericWebContextLoader extends AbstractContextLoa * @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 05acb46366..e82a63807d 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 0bf295e054..d172fed883 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 @@ public class GenericXmlWebContextLoader extends AbstractGenericWebContextLoader /** * 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 01302bb110..215b363ae2 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 public void prepareTestInstance(TestContext testContext) throws Exception { setUpRequestContextIfNecessary(testContext); } @@ -80,6 +81,7 @@ public class ServletTestExecutionListener extends AbstractTestExecutionListener * @see TestExecutionListener#beforeTestMethod(TestContext) * @see #setUpRequestContextIfNecessary(TestContext) */ + @Override public void beforeTestMethod(TestContext testContext) throws Exception { setUpRequestContextIfNecessary(testContext); } @@ -91,6 +93,7 @@ public class ServletTestExecutionListener extends AbstractTestExecutionListener * * @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 fa561c00a7..9dc43968aa 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/main/java/org/springframework/test/jpa/AbstractJpaTests.java b/spring-test/src/main/java/org/springframework/test/jpa/AbstractJpaTests.java index ba959d162f..4e27b65b4c 100644 --- a/spring-test/src/main/java/org/springframework/test/jpa/AbstractJpaTests.java +++ b/spring-test/src/main/java/org/springframework/test/jpa/AbstractJpaTests.java @@ -330,6 +330,7 @@ public abstract class AbstractJpaTests extends AbstractAnnotationAwareTransactio this.ltw = ltw; } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof LocalContainerEntityManagerFactoryBean) { ((LocalContainerEntityManagerFactoryBean) bean).setLoadTimeWeaver(this.ltw); @@ -350,6 +351,7 @@ public abstract class AbstractJpaTests extends AbstractAnnotationAwareTransactio this.shadowingClassLoader = shadowingClassLoader; } + @Override public void addTransformer(ClassFileTransformer transformer) { try { Method addClassFileTransformer = @@ -362,10 +364,12 @@ public abstract class AbstractJpaTests extends AbstractAnnotationAwareTransactio } } + @Override public ClassLoader getInstrumentableClassLoader() { return this.shadowingClassLoader; } + @Override public ClassLoader getThrowawayClassLoader() { // Be sure to copy the same resource overrides and same class file transformers: // We want the throwaway class loader to behave like the instrumentable class loader. 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 2b8358d678..4aaab8b137 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 class PersistenceExceptionTranslationAdvisor extends AbstractPointcutAdvi } + @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 e60638b20f..b8588a878b 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 class PersistenceExceptionTranslationPostProcessor extends AbstractAdvisi 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 bdaddb8c55..d86c5aeb11 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 class ChainedPersistenceExceptionTranslator implements PersistenceExcepti } + @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 4b5f6865c7..91e29d1113 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 9cf7432c43..b486dccdfa 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 class PersistenceExceptionTranslationInterceptor 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 class PersistenceExceptionTranslationInterceptor } } + @Override public void afterPropertiesSet() { if (this.persistenceExceptionTranslator == null) { throw new IllegalArgumentException("Property 'persistenceExceptionTranslator' is required"); @@ -150,6 +152,7 @@ public class PersistenceExceptionTranslationInterceptor } + @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 aa7d38943d..93404bd98e 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 class CciLocalTransactionManager extends AbstractPlatformTransactionManag return this.connectionFactory; } + @Override public void afterPropertiesSet() { if (getConnectionFactory() == null) { throw new IllegalArgumentException("Property 'connectionFactory' is required"); @@ -116,6 +117,7 @@ public class CciLocalTransactionManager extends AbstractPlatformTransactionManag } + @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 f01ac83100..5bc218d461 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 class DelegatingConnectionFactory implements ConnectionFactory, Initializ } + @Override public void afterPropertiesSet() { if (getTargetConnectionFactory() == null) { throw new IllegalArgumentException("Property 'targetConnectionFactory' is required"); @@ -67,26 +68,32 @@ public class DelegatingConnectionFactory implements ConnectionFactory, Initializ } + @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 bf1808db81..ed843edeed 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 @@ import javax.resource.cci.RecordFactory; */ 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 fe391c8805..40a50b80dd 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 class SingleConnectionFactory extends DelegatingConnectionFactory impleme *

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 @@ public class SingleConnectionFactory extends DelegatingConnectionFactory impleme 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 f5b2b5d0ec..7fd30b3a9b 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 class TransactionAwareConnectionFactoryProxy extends DelegatingConnection 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 d55909ebe0..4bd46036ca 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 class CciTemplate implements CciOperations { } + @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 class CciTemplate implements CciOperations { } } + @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 class CciTemplate implements CciOperations { }); } + @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 @@ public class CciTemplate implements CciOperations { 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 @@ public class CciTemplate implements CciOperations { 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 982b43064b..b9989c945a 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 class CommAreaRecord implements Record, Streamable { } + @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 9602e9a625..36c8810c23 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 abstract class EisOperation implements InitializingBean { } + @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 413a034ae7..c792c2af1f 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 abstract class MappingRecordOperation extends EisOperation { this.inputObject = inObject; } + @Override public Record createRecord(RecordFactory recordFactory) throws ResourceException, DataAccessException { return createInputRecord(recordFactory, this.inputObject); } @@ -141,6 +142,7 @@ public abstract class MappingRecordOperation extends EisOperation { */ 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 5fa12422f5..97ff0bdfb6 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 @@ class BootstrapContextAwareProcessor implements BeanPostProcessor { } + @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 @@ class BootstrapContextAwareProcessor implements BeanPostProcessor { 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 72303b4c32..60c3861729 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 @@ public class ResourceAdapterApplicationContext extends GenericApplicationContext // 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 25bac95668..82d317b4ae 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 @@ -156,6 +156,7 @@ public class SpringContextResourceAdapter implements ResourceAdapter { * 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); @@ -200,6 +201,7 @@ public class SpringContextResourceAdapter implements ResourceAdapter { /** * This implementation closes the Spring ApplicationContext. */ + @Override public void stop() { logger.info("Stopping SpringContextResourceAdapter"); this.applicationContext.close(); @@ -209,6 +211,7 @@ public class SpringContextResourceAdapter implements ResourceAdapter { /** * This implementation always throws a NotSupportedException. */ + @Override public void endpointActivation(MessageEndpointFactory messageEndpointFactory, ActivationSpec activationSpec) throws ResourceException { @@ -218,12 +221,14 @@ public class SpringContextResourceAdapter implements ResourceAdapter { /** * 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 01f27f23ff..208a1f85bf 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 abstract class AbstractMessageEndpointFactory implements MessageEndpointF * @see #setTransactionManager * @see #setTransactionFactory */ + @Override public boolean isDeliveryTransacted(Method method) throws NoSuchMethodException { return (this.transactionFactory != null); } @@ -132,6 +133,7 @@ public abstract class AbstractMessageEndpointFactory implements MessageEndpointF *

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 @@ public abstract class AbstractMessageEndpointFactory implements MessageEndpointF * 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 @@ public abstract class AbstractMessageEndpointFactory implements MessageEndpointF * 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 abstract class AbstractMessageEndpointFactory implements MessageEndpointF } } + @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 fac5eba990..575e3e6e8c 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 @@ public class GenericMessageEndpointFactory extends AbstractMessageEndpointFactor */ 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 56682b49fd..3d85df8936 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 class GenericMessageEndpointManager implements SmartLifecycle, Initializi * 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 class GenericMessageEndpointManager implements SmartLifecycle, Initializi /** * 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 class GenericMessageEndpointManager implements SmartLifecycle, Initializi * 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 @@ public class GenericMessageEndpointManager implements SmartLifecycle, Initializi /** * Activates the configured message endpoint. */ + @Override public void start() { synchronized (this.lifecycleMonitor) { if (!this.running) { @@ -291,6 +295,7 @@ public class GenericMessageEndpointManager implements SmartLifecycle, Initializi /** * Deactivates the configured message endpoint. */ + @Override public void stop() { synchronized (this.lifecycleMonitor) { if (this.running) { @@ -300,6 +305,7 @@ public class GenericMessageEndpointManager implements SmartLifecycle, Initializi } } + @Override public void stop(Runnable callback) { synchronized (this.lifecycleMonitor) { this.stop(); @@ -310,6 +316,7 @@ public class GenericMessageEndpointManager implements SmartLifecycle, Initializi /** * Return whether the configured message endpoint is currently active. */ + @Override public boolean isRunning() { synchronized (this.lifecycleMonitor) { return this.running; @@ -319,6 +326,7 @@ public class GenericMessageEndpointManager implements SmartLifecycle, Initializi /** * 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 bf7f6920d7..cf7393bdaa 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 class LocalConnectionFactoryBean implements FactoryBean, Initiali 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 class LocalConnectionFactoryBean implements FactoryBean, Initiali } + @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 ed1c3372f4..ac24240aaf 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 class ResourceAdapterFactoryBean implements FactoryBean, * 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 class ResourceAdapterFactoryBean implements FactoryBean, } + @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 class ResourceAdapterFactoryBean implements FactoryBean, * 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 d26fea7332..be54bddd5c 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 class SimpleBootstrapContext implements BootstrapContext { } + @Override public WorkManager getWorkManager() { if (this.workManager == null) { throw new IllegalStateException("No WorkManager available"); @@ -69,10 +70,12 @@ public class SimpleBootstrapContext implements BootstrapContext { 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 9f3ee639b1..d3601d2791 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 class DelegatingWork implements Work { /** * Delegates execution to the underlying Runnable. */ + @Override public void run() { this.delegate.run(); } @@ -61,6 +62,7 @@ public class DelegatingWork implements Work { * 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 63c8564f37..702a26dd4e 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 class SimpleTaskWorkManager implements WorkManager { } + @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 class SimpleTaskWorkManager implements WorkManager { 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 class SimpleTaskWorkManager implements WorkManager { 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 class SimpleTaskWorkManager implements WorkManager { 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 class SimpleTaskWorkManager implements WorkManager { 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 c6f4cb4c4e..de8f4da2cf 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 class WorkManagerTaskExecutor extends JndiLocatorSupport * 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 class WorkManagerTaskExecutor extends JndiLocatorSupport this.workListener = workListener; } + @Override public void afterPropertiesSet() throws NamingException { if (this.workManager == null) { if (this.workManagerName != null) { @@ -186,10 +188,12 @@ public class WorkManagerTaskExecutor extends JndiLocatorSupport // 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 @@ public class WorkManagerTaskExecutor extends JndiLocatorSupport } } + @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 class WorkManagerTaskExecutor extends JndiLocatorSupport /** * This task executor prefers short-lived work units. */ + @Override public boolean prefersShortLivedTasks() { return true; } @@ -256,30 +263,36 @@ public class WorkManagerTaskExecutor extends JndiLocatorSupport // 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 d5ea077155..4aba8ee705 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 f7122b3742..c7e20cf1dc 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 @@ import org.springframework.transaction.interceptor.TransactionAttribute; @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/SpringTransactionAnnotationParser.java b/spring-tx/src/main/java/org/springframework/transaction/annotation/SpringTransactionAnnotationParser.java index d9024f1a1f..514548d9ce 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 @@ import org.springframework.transaction.interceptor.TransactionAttribute; @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 07bea12ee5..6821c78e6b 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 28736d0177..228ffdbc90 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 @@ public class TxNamespaceHandler extends NamespaceHandlerSupport { } + @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 a8762beeb5..a1dcc33b39 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 551eb287da..49da42fb87 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 class BeanFactoryTransactionAttributeSourceAdvisor extends AbstractBeanFa 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 1deed0c720..a0f1a193b5 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 class CompositeTransactionAttributeSource implements TransactionAttribute } + @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 f505b8bf5c..8e016f2533 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 class DefaultTransactionAttribute extends DefaultTransactionDefinition im /** * Return a qualifier value associated with this transaction attribute. */ + @Override public String getQualifier() { return this.qualifier; } @@ -91,6 +92,7 @@ public class DefaultTransactionAttribute extends DefaultTransactionDefinition im * 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 32c66e68dd..84db321374 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 abstract class DelegatingTransactionAttribute extends DelegatingTransacti } + @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 b67ed6982b..e27ee94bf5 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 class MatchAlwaysTransactionAttributeSource implements TransactionAttribu } + @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 c71f01d681..77b26a5f25 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 class MethodMapTransactionAttributeSource this.methodMap = methodMap; } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } @@ -91,6 +92,7 @@ public class MethodMapTransactionAttributeSource * {@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 @@ public class MethodMapTransactionAttributeSource } + @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 8fa8be22a3..9d2b5debc8 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 class NameMatchTransactionAttributeSource implements TransactionAttribute } + @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 8d15342c02..b9e6784298 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 @@ -206,6 +206,7 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init /** * Set the BeanFactory to use for retrieving PlatformTransactionManager beans. */ + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } @@ -220,6 +221,7 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init /** * Check that required properties were set. */ + @Override public void afterPropertiesSet() { if (this.transactionManager == null && this.beanFactory == null) { throw new IllegalStateException( 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 a5a632411d..3795ec8234 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 class TransactionAttributeSourceAdvisor extends AbstractPointcutAdvisor { } + @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 4b9314edf7..13b23dfcfd 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 @@ import org.springframework.util.ObjectUtils; @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 11f72759a7..8fd9004b6d 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 @@ -88,6 +88,7 @@ public class TransactionInterceptor extends TransactionAspectSupport implements } + @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 @@ -126,6 +127,7 @@ public class TransactionInterceptor extends TransactionAspectSupport implements 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/TransactionProxyFactoryBean.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionProxyFactoryBean.java index eaf963cc39..611e44400d 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 class TransactionProxyFactoryBean extends AbstractSingletonProxyFactoryBe * @see org.springframework.beans.factory.BeanFactoryUtils#beanOfTypeIncludingAncestors * @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 fded50e167..4a4e70cb8e 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 class JtaAfterCompletionSynchronization implements Synchronization { } + @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 35f30be7f7..f60295ab07 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 @@ -410,6 +410,7 @@ public class JtaTransactionManager extends AbstractPlatformTransactionManager * Initialize the UserTransaction as well as the TransactionManager handle. * @see #initUserTransactionAndTransactionManager() */ + @Override public void afterPropertiesSet() throws TransactionSystemException { initUserTransactionAndTransactionManager(); checkUserTransactionAndTransactionManager(); @@ -1164,6 +1165,7 @@ public class JtaTransactionManager extends AbstractPlatformTransactionManager // 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"); @@ -1174,6 +1176,7 @@ public class JtaTransactionManager extends AbstractPlatformTransactionManager 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 356dd4819b..3f697ee16a 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 class JtaTransactionObject implements SmartTransactionObject { /** * This implementation checks the UserTransaction's rollback-only flag. */ + @Override public boolean isRollbackOnly() { if (this.userTransaction == null) { return false; @@ -78,6 +79,7 @@ public class JtaTransactionObject implements SmartTransactionObject { * 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 d3310106ca..d07eb8f688 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 class ManagedTransactionAdapter implements Transaction { } + @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 679e15060b..055bafcff4 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 class SimpleTransactionFactory implements TransactionFactory { } + @Override public Transaction createTransaction(String name, int timeout) throws NotSupportedException, SystemException { if (timeout >= 0) { this.transactionManager.setTransactionTimeout(timeout); @@ -58,6 +59,7 @@ public class SimpleTransactionFactory implements TransactionFactory { 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 e4ecffce74..421f8c86ad 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 class SpringJtaSynchronizationAdapter implements Synchronization { *

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 @@ public class SpringJtaSynchronizationAdapter implements Synchronization { * @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 9472928761..67e1c7efa9 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 class UserTransactionAdapter implements UserTransaction { } + @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 de51a5425c..3480a11741 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 class WebSphereUowTransactionManager extends JtaTransactionManager } + @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 class WebSphereUowTransactionManager extends JtaTransactionManager 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 ef30ce0af4..ad6fe26042 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 abstract class AbstractPlatformTransactionManager implements PlatformTran * @see #isExistingTransaction * @see #doBegin */ + @Override public final TransactionStatus getTransaction(TransactionDefinition definition) throws TransactionException { Object transaction = doGetTransaction(); @@ -693,6 +694,7 @@ public abstract class AbstractPlatformTransactionManager implements PlatformTran * @see #doCommit * @see #rollback */ + @Override public final void commit(TransactionStatus status) throws TransactionException { if (status.isCompleted()) { throw new IllegalTransactionStateException( @@ -813,6 +815,7 @@ public abstract class AbstractPlatformTransactionManager implements PlatformTran * @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 1e2f4455c9..840d7dbc49 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 abstract class AbstractTransactionStatus implements TransactionStatus { * @see #isLocalRollbackOnly() * @see #isGlobalRollbackOnly() */ + @Override public boolean isRollbackOnly() { return (isLocalRollbackOnly() || isGlobalRollbackOnly()); } @@ -92,6 +94,7 @@ public abstract class AbstractTransactionStatus implements TransactionStatus { /** * This implementations is empty, considering flush as a no-op. */ + @Override public void flush() { } @@ -102,6 +105,7 @@ public abstract class AbstractTransactionStatus implements TransactionStatus { this.completed = true; } + @Override public boolean isCompleted() { return this.completed; } @@ -126,6 +130,7 @@ public abstract class AbstractTransactionStatus implements TransactionStatus { return this.savepoint; } + @Override public boolean hasSavepoint() { return (this.savepoint != null); } @@ -172,6 +177,7 @@ public abstract class AbstractTransactionStatus implements TransactionStatus { * @see #getSavepointManager() * @see org.springframework.transaction.SavepointManager */ + @Override public Object createSavepoint() throws TransactionException { return getSavepointManager().createSavepoint(); } @@ -183,6 +189,7 @@ public abstract class AbstractTransactionStatus implements TransactionStatus { * @see #getSavepointManager() * @see org.springframework.transaction.SavepointManager */ + @Override public void rollbackToSavepoint(Object savepoint) throws TransactionException { getSavepointManager().rollbackToSavepoint(savepoint); } @@ -193,6 +200,7 @@ public abstract class AbstractTransactionStatus implements TransactionStatus { * @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 f1a63abc11..b83b01698b 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 class DefaultTransactionDefinition implements TransactionDefinition, Seri this.propagationBehavior = propagationBehavior; } + @Override public final int getPropagationBehavior() { return this.propagationBehavior; } @@ -168,6 +169,7 @@ public class DefaultTransactionDefinition implements TransactionDefinition, Seri this.isolationLevel = isolationLevel; } + @Override public final int getIsolationLevel() { return this.isolationLevel; } @@ -184,6 +186,7 @@ public class DefaultTransactionDefinition implements TransactionDefinition, Seri this.timeout = timeout; } + @Override public final int getTimeout() { return this.timeout; } @@ -196,6 +199,7 @@ public class DefaultTransactionDefinition implements TransactionDefinition, Seri this.readOnly = readOnly; } + @Override public final boolean isReadOnly() { return this.readOnly; } @@ -209,6 +213,7 @@ public class DefaultTransactionDefinition implements TransactionDefinition, Seri 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 9569dc1098..22f6f46acc 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 class DefaultTransactionStatus extends AbstractTransactionStatus { 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 4bc84fb392..e05c4e2784 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 abstract class DelegatingTransactionDefinition implements TransactionDefi } + @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 4120e5b0b3..e8ab7707b2 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 abstract class ResourceHolderSupport implements ResourceHolder { /** * 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 b9e668fc57..3c94f20efa 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 abstract class ResourceHolderSynchronization } + @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 abstract class ResourceHolderSynchronization } } + @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 fd6f184304..2788b8f728 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 class SimpleTransactionStatus extends AbstractTransactionStatus { } + @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 e3168e1b7b..a4b57b3b0b 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 @@ import org.springframework.transaction.TransactionStatus; */ 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 8ccdb53623..c1b22136c2 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 @@ import org.springframework.core.Ordered; */ 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 47d8319af6..7515148694 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 class TransactionTemplate extends DefaultTransactionDefinition return this.transactionManager; } + @Override public void afterPropertiesSet() { if (this.transactionManager == null) { throw new IllegalArgumentException("Property 'transactionManager' is required"); @@ -120,6 +121,7 @@ public class TransactionTemplate extends DefaultTransactionDefinition } + @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/HttpHeaders.java b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java index 5d480d5e4b..fb0f203bf8 100644 --- a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java +++ b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java @@ -507,6 +507,7 @@ public class HttpHeaders implements MultiValueMap, Serializable * @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; @@ -520,6 +521,7 @@ public class HttpHeaders implements MultiValueMap, Serializable * @see #put(String, List) * @see #set(String, String) */ + @Override public void add(String headerName, String headerValue) { List headerValues = headers.get(headerName); if (headerValues == null) { @@ -537,18 +539,21 @@ public class HttpHeaders implements MultiValueMap, Serializable * @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()) { @@ -559,50 +564,62 @@ public class HttpHeaders implements MultiValueMap, Serializable // 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 99e1b2d124..d7a5903bf2 100644 --- a/spring-web/src/main/java/org/springframework/http/MediaType.java +++ b/spring-web/src/main/java/org/springframework/http/MediaType.java @@ -583,6 +583,7 @@ public class MediaType implements Comparable { * @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) { @@ -841,6 +842,7 @@ public class MediaType implements Comparable { */ public static final Comparator SPECIFICITY_COMPARATOR = new Comparator() { + @Override public int compare(MediaType mediaType1, MediaType mediaType2) { if (mediaType1.isWildcardType() && !mediaType2.isWildcardType()) { // */* < audio/* return 1; @@ -884,6 +886,7 @@ public class MediaType implements Comparable { */ 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 bf73ff61ef..bb713e336b 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 @@ -35,15 +35,18 @@ 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 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 8c493d312d..8e34c1ca3d 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 @@ public abstract class AbstractClientHttpRequestFactoryWrapper implements ClientH * 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 cd6166575b..84a6d9322b 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 @@ -28,6 +28,7 @@ import org.springframework.http.HttpStatus; */ public abstract class AbstractClientHttpResponse implements ClientHttpResponse { + @Override public HttpStatus getStatusCode() throws IOException { return HttpStatus.valueOf(getRawStatusCode()); } 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 813f98cfad..0d66c7c711 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 f280790fec..d076ef8f25 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 @@ -43,22 +43,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 = FileCopyUtils.copyToByteArray(this.response.getBody()); @@ -66,6 +71,7 @@ final class BufferingClientHttpResponseWrapper implements ClientHttpResponse { return new ByteArrayInputStream(this.body); } + @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 438f8035bd..26fa24a44c 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/CommonsClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpRequest.java index 65ecf35a17..59dca8c119 100644 --- a/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpRequest.java @@ -56,10 +56,12 @@ final class CommonsClientHttpRequest extends AbstractBufferingClientHttpRequest } + @Override public HttpMethod getMethod() { return HttpMethod.valueOf(this.httpMethod.getName()); } + @Override public URI getURI() { try { return URI.create(this.httpMethod.getURI().getEscapedURI()); diff --git a/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpRequestFactory.java b/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpRequestFactory.java index 429b383442..d985d95ad4 100644 --- a/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpRequestFactory.java +++ b/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpRequestFactory.java @@ -112,6 +112,7 @@ public class CommonsClientHttpRequestFactory implements ClientHttpRequestFactory } + @Override public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException { HttpMethodBase commonsHttpMethod = createCommonsHttpMethod(httpMethod, uri.toString()); postProcessCommonsHttpMethod(commonsHttpMethod); @@ -162,6 +163,7 @@ public class CommonsClientHttpRequestFactory implements ClientHttpRequestFactory * Shutdown hook that closes the underlying {@link HttpConnectionManager}'s * connection pool, if any. */ + @Override public void destroy() { HttpConnectionManager connectionManager = getHttpClient().getHttpConnectionManager(); if (connectionManager instanceof MultiThreadedHttpConnectionManager) { diff --git a/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpResponse.java b/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpResponse.java index 7cc8cec6e9..ed0daaf8c9 100644 --- a/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpResponse.java +++ b/spring-web/src/main/java/org/springframework/http/client/CommonsClientHttpResponse.java @@ -48,14 +48,17 @@ final class CommonsClientHttpResponse extends AbstractClientHttpResponse { } + @Override public int getRawStatusCode() { return this.httpMethod.getStatusCode(); } + @Override public String getStatusText() { return this.httpMethod.getStatusText(); } + @Override public HttpHeaders getHeaders() { if (this.headers == null) { this.headers = new HttpHeaders(); @@ -66,10 +69,12 @@ final class CommonsClientHttpResponse extends AbstractClientHttpResponse { return this.headers; } + @Override public InputStream getBody() throws IOException { return this.httpMethod.getResponseBodyAsStream(); } + @Override public void close() { this.httpMethod.releaseConnection(); } 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 3e833d4459..f829f25ff0 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 @@ final class HttpComponentsClientHttpRequest extends AbstractBufferingClientHttpR } + @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 0131cfa50f..f16d1fd54d 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 class HttpComponentsClientHttpRequestFactory implements ClientHttpRequest 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 @@ public class HttpComponentsClientHttpRequestFactory implements ClientHttpRequest * {@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 d4033e4216..121f413df4 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 @@ final class HttpComponentsClientHttpResponse extends AbstractClientHttpResponse 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 9d39760479..2b6b2c521e 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 @@ class InterceptingClientHttpRequest extends AbstractBufferingClientHttpRequest { this.uri = uri; } + @Override public HttpMethod getMethod() { return method; } + @Override public URI getURI() { return uri; } @@ -75,6 +77,7 @@ class InterceptingClientHttpRequest extends AbstractBufferingClientHttpRequest { 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 989d9e4d28..930a2df1e1 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 @@ -45,10 +45,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 22d17b50f0..a64f9f8622 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 @@ -105,6 +105,7 @@ public class SimpleClientHttpRequestFactory implements ClientHttpRequestFactory } + @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 1fc33f0b69..986a9202f6 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 @@ final class SimpleClientHttpResponse extends AbstractClientHttpResponse { 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 a5e831102c..02b5f42658 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 @@ -50,10 +50,12 @@ final class SimpleStreamingClientHttpRequest extends AbstractClientHttpRequest { this.chunkSize = chunkSize; } + @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 969feefda5..67e2ecbb69 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 @@ -55,6 +55,7 @@ public class HttpRequestWrapper implements HttpRequest { /** * Returns the method of the wrapped request. */ + @Override public HttpMethod getMethod() { return this.request.getMethod(); } @@ -62,6 +63,7 @@ public class HttpRequestWrapper implements HttpRequest { /** * Returns the URI of the wrapped request. */ + @Override public URI getURI() { return this.request.getURI(); } @@ -69,6 +71,7 @@ public class HttpRequestWrapper implements HttpRequest { /** * Returns the headers of the wrapped request. */ + @Override public HttpHeaders getHeaders() { return this.request.getHeaders(); } 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 b769c38453..6ff8d581f3 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 class ProxyFactoryBean implements FactoryBean, InitializingBean { 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 class ProxyFactoryBean implements FactoryBean, InitializingBean { } + @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 680225e928..b5caa76c3f 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 abstract class AbstractHttpMessageConverter implements HttpMessageConv this.supportedMediaTypes = new ArrayList(supportedMediaTypes); } + @Override public List getSupportedMediaTypes() { return Collections.unmodifiableList(this.supportedMediaTypes); } @@ -92,6 +93,7 @@ public abstract class AbstractHttpMessageConverter implements HttpMessageConv * 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 @@ public abstract class AbstractHttpMessageConverter implements HttpMessageConv * 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 @@ public abstract class AbstractHttpMessageConverter implements HttpMessageConv * 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 abstract class AbstractHttpMessageConverter implements HttpMessageConv * 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 b9392d0d95..25e16be1b3 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 class BufferedImageHttpMessageConverter implements HttpMessageConverter clazz, MediaType mediaType) { return (BufferedImage.class.equals(clazz) && isReadable(mediaType)); } @@ -127,6 +128,7 @@ public class BufferedImageHttpMessageConverter implements HttpMessageConverter clazz, MediaType mediaType) { return (BufferedImage.class.equals(clazz) && isWritable(mediaType)); } @@ -139,10 +141,12 @@ public class BufferedImageHttpMessageConverter implements HttpMessageConverter getSupportedMediaTypes() { return Collections.unmodifiableList(this.readableMediaTypes); } + @Override public BufferedImage read(Class clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException { @@ -188,6 +192,7 @@ public class BufferedImageHttpMessageConverter implements HttpMessageConverter clazz, MediaType mediaType) { if (!MultiValueMap.class.isAssignableFrom(clazz)) { return false; @@ -139,6 +140,7 @@ public class FormHttpMessageConverter implements HttpMessageConverter clazz, MediaType mediaType) { if (!MultiValueMap.class.isAssignableFrom(clazz)) { return false; @@ -161,10 +163,12 @@ public class FormHttpMessageConverter implements HttpMessageConverter getSupportedMediaTypes() { return Collections.unmodifiableList(this.supportedMediaTypes); } + @Override public MultiValueMap read(Class> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException { @@ -190,6 +194,7 @@ public class FormHttpMessageConverter implements HttpMessageConverter map, MediaType contentType, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException { @@ -373,10 +378,12 @@ public class FormHttpMessageConverter implements HttpMessageConverter 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 42c9bc122d..48ddfec469 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 @@ -191,6 +191,7 @@ public class JacksonObjectMapperFactoryBean implements FactoryBean } } + @Override public void afterPropertiesSet() { if (this.objectMapper == null) { this.objectMapper = new ObjectMapper(); @@ -229,14 +230,17 @@ public class JacksonObjectMapperFactoryBean implements FactoryBean /** * 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 a0b0a2a5b5..3a9e4f8320 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 @@ -132,6 +132,7 @@ public class MappingJackson2HttpMessageConverter extends AbstractHttpMessageConv 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)); @@ -156,6 +157,7 @@ public class MappingJackson2HttpMessageConverter extends AbstractHttpMessageConv 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 448b3be8e8..4b546cea0a 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 @@ -130,6 +130,7 @@ public class MappingJacksonHttpMessageConverter extends AbstractHttpMessageConve 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)); @@ -154,6 +155,7 @@ public class MappingJacksonHttpMessageConverter extends AbstractHttpMessageConve 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 af65ee275c..d2e0e9b53d 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 class Jaxb2CollectionHttpMessageConverter * {@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 @@ public class Jaxb2CollectionHttpMessageConverter 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/ServerHttpResponse.java b/spring-web/src/main/java/org/springframework/http/server/ServerHttpResponse.java index 8ce306271f..90cb72ffd5 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 @@ -38,6 +38,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 5dd0dbd424..9a150b5e92 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 @@ -76,10 +76,12 @@ public class ServletServerHttpRequest implements ServerHttpRequest { 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(), @@ -91,6 +93,7 @@ public class ServletServerHttpRequest implements ServerHttpRequest { } } + @Override public HttpHeaders getHeaders() { if (this.headers == null) { this.headers = new HttpHeaders(); @@ -123,6 +126,7 @@ public class ServletServerHttpRequest implements ServerHttpRequest { return this.headers; } + @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 985085e51e..4133a9c229 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 @@ -58,19 +58,23 @@ public class ServletServerHttpResponse implements ServerHttpResponse { 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 OutputStream getBody() throws IOException { writeHeaders(); return this.servletResponse.getOutputStream(); } + @Override public void close() { 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 28b6bd5087..c7a74297bf 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 @@ -137,6 +137,7 @@ public class BurlapClientInterceptor extends UrlBasedRemoteAccessor implements M } + @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 27d4ba86d2..9c0cd99a21 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 @@ -47,6 +47,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 7e06907e61..633ccf14e8 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 @@ -52,14 +52,17 @@ public class BurlapProxyFactoryBean extends BurlapClientInterceptor implements F } + @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 34c28129a4..188905afe5 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 @@ -54,6 +54,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 ff89f1bb86..81dcdf7a76 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 @@ -211,6 +211,7 @@ public class HessianClientInterceptor extends UrlBasedRemoteAccessor implements } + @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 5aba1cb154..9548d6b3e8 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 @@ -93,6 +93,7 @@ public class HessianExporter extends RemoteExporter implements InitializingBean } + @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 f14ad7b2e6..a9a2397292 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 class HessianProxyFactoryBean extends HessianClientInterceptor implements } + @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 9f83c31bec..8e75fba47a 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 @@ -53,6 +53,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 aed4137c5a..399bcc1224 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 @@ -50,6 +50,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 d0e49e94a4..3a509a9cea 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 @@ -50,6 +50,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 5a024973ea..8b6c47b339 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 abstract class AbstractHttpInvokerRequestExecutor return this.acceptGzipEncoding; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -125,6 +126,7 @@ public abstract class AbstractHttpInvokerRequestExecutor } + @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 18668f5300..ccc1f704f6 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 class HttpInvokerClientInterceptor extends RemoteInvocationBasedAccessor /** * Return the codebase URL to download classes from if not found locally. */ + @Override public String getCodebaseUrl() { return this.codebaseUrl; } @@ -131,6 +132,7 @@ public class HttpInvokerClientInterceptor extends RemoteInvocationBasedAccessor } + @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 d8a2be4d0f..969825b0c6 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 class HttpInvokerProxyFactoryBean extends HttpInvokerClientInterceptor } + @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 67d35cae79..7c643a2810 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 084a4e6596..1b122a70cc 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/jaxrpc/JaxRpcPortClientInterceptor.java b/spring-web/src/main/java/org/springframework/remoting/jaxrpc/JaxRpcPortClientInterceptor.java index 373b301dc7..bb19449254 100644 --- a/spring-web/src/main/java/org/springframework/remoting/jaxrpc/JaxRpcPortClientInterceptor.java +++ b/spring-web/src/main/java/org/springframework/remoting/jaxrpc/JaxRpcPortClientInterceptor.java @@ -344,6 +344,7 @@ public class JaxRpcPortClientInterceptor extends LocalJaxRpcServiceFactory * Prepares the JAX-RPC service and port if the "lookupServiceOnStartup" * is turned on (which it is by default). */ + @Override public void afterPropertiesSet() { if (this.lookupServiceOnStartup) { prepare(); @@ -542,6 +543,7 @@ public class JaxRpcPortClientInterceptor extends LocalJaxRpcServiceFactory * @see #prepare() * @see #doInvoke */ + @Override public Object invoke(MethodInvocation invocation) throws Throwable { if (AopUtils.isToStringMethod(invocation.getMethod())) { return "JAX-RPC proxy for port [" + getPortName() + "] of service [" + getServiceName() + "]"; diff --git a/spring-web/src/main/java/org/springframework/remoting/jaxrpc/JaxRpcPortProxyFactoryBean.java b/spring-web/src/main/java/org/springframework/remoting/jaxrpc/JaxRpcPortProxyFactoryBean.java index 610168c678..65abc2807c 100644 --- a/spring-web/src/main/java/org/springframework/remoting/jaxrpc/JaxRpcPortProxyFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/remoting/jaxrpc/JaxRpcPortProxyFactoryBean.java @@ -54,6 +54,7 @@ public class JaxRpcPortProxyFactoryBean extends JaxRpcPortClientInterceptor private Object serviceProxy; + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -75,14 +76,17 @@ public class JaxRpcPortProxyFactoryBean extends JaxRpcPortClientInterceptor } + @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/jaxrpc/LocalJaxRpcServiceFactoryBean.java b/spring-web/src/main/java/org/springframework/remoting/jaxrpc/LocalJaxRpcServiceFactoryBean.java index 35d8afa8c5..efdd96bcee 100644 --- a/spring-web/src/main/java/org/springframework/remoting/jaxrpc/LocalJaxRpcServiceFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/remoting/jaxrpc/LocalJaxRpcServiceFactoryBean.java @@ -44,19 +44,23 @@ public class LocalJaxRpcServiceFactoryBean extends LocalJaxRpcServiceFactory private Service service; + @Override public void afterPropertiesSet() throws ServiceException { this.service = createJaxRpcService(); } + @Override public Service getObject() throws Exception { 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/remoting/jaxrpc/ServletEndpointSupport.java b/spring-web/src/main/java/org/springframework/remoting/jaxrpc/ServletEndpointSupport.java index 4a3d34185b..04d52e6ae4 100644 --- a/spring-web/src/main/java/org/springframework/remoting/jaxrpc/ServletEndpointSupport.java +++ b/spring-web/src/main/java/org/springframework/remoting/jaxrpc/ServletEndpointSupport.java @@ -77,6 +77,7 @@ public abstract class ServletEndpointSupport implements ServiceLifecycle { * @throws ServiceException if the context is not a ServletEndpointContext * @see #onInit */ + @Override public final void init(Object context) throws ServiceException { if (!(context instanceof ServletEndpointContext)) { throw new ServiceException("ServletEndpointSupport needs ServletEndpointContext, not [" + context + "]"); @@ -145,6 +146,7 @@ public abstract class ServletEndpointSupport implements ServiceLifecycle { * This implementation of destroy is empty. * Can be overridden in subclasses. */ + @Override public void destroy() { } 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 5a2f3ba7c4..dfe833dc97 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 abstract class AbstractJaxWsServiceExporter implements BeanFactoryAware, /** * 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 abstract class AbstractJaxWsServiceExporter implements BeanFactoryAware, * Immediately publish all endpoints when fully configured. * @see #publishEndpoints() */ + @Override public void afterPropertiesSet() throws Exception { publishEndpoints(); } @@ -201,6 +203,7 @@ public abstract class AbstractJaxWsServiceExporter implements BeanFactoryAware, /** * 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 9efd206e5f..4139a926d5 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 @@ -299,6 +299,7 @@ public class JaxWsPortClientInterceptor extends LocalJaxWsServiceFactory * {@link #setWebServiceFeatures}, and also for building a client * proxy in the {@link JaxWsPortProxyFactoryBean} subclass. */ + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -311,6 +312,7 @@ public class JaxWsPortClientInterceptor extends LocalJaxWsServiceFactory } + @Override public void afterPropertiesSet() { if (this.lookupServiceOnStartup) { prepare(); @@ -474,6 +476,7 @@ public class JaxWsPortClientInterceptor extends LocalJaxWsServiceFactory } + @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 85ddbef62e..a9511b6864 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 class JaxWsPortProxyFactoryBean extends JaxWsPortClientInterceptor } + @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 91dc2902b6..c98ee83876 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 2c579172c1..717f4ec3f9 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 edd0b8e22b..a85e4b19b6 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 abstract class AbstractMappingContentNegotiationStrategy extends MappingM 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 961ffdcc72..6a7d17c35a 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 @@ -97,6 +97,7 @@ public class ContentNegotiationManager implements ContentNegotiationStrategy, Me * @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); @@ -111,6 +112,7 @@ public class ContentNegotiationManager implements ContentNegotiationStrategy, Me * 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) { @@ -123,6 +125,7 @@ public class ContentNegotiationManager implements ContentNegotiationStrategy, Me * 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 8b805802d2..f230f1c7f0 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 @@ -150,10 +150,12 @@ public class ContentNegotiationManagerFactoryBean this.defaultContentType = defaultContentType; } + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } + @Override public void afterPropertiesSet() throws Exception { List strategies = new ArrayList(); @@ -192,14 +194,17 @@ public class ContentNegotiationManagerFactoryBean this.contentNegotiationManager = new ContentNegotiationManager(array); } + @Override public Class getObjectType() { return ContentNegotiationManager.class; } + @Override public boolean isSingleton() { return true; } + @Override public ContentNegotiationManager getObject() throws Exception { return this.contentNegotiationManager; } 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 84ac58cfee..5180154dd2 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 class FixedContentNegotiationStrategy implements ContentNegotiationStrate 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 ef84fb179d..1cfcd67e5d 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 293f26ce7a..71e670d0fd 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 class MappingMediaTypeFileExtensionResolver implements MediaTypeFileExten * 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 67144395e2..3cb0b96b89 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 class EscapedErrors implements Errors { } + @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 699f2aa8a2..caada588f0 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 class HandlerMethodResolver { 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 8b0d4ffb27..3056ad0311 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 class ConfigurableWebBindingInitializer implements WebBindingInitializer } + @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 bab588d5a4..d673f17b2c 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 class DefaultDataBinderFactory implements WebDataBinderFactory { * 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 6f0e512a1a..17507c88ba 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 class DefaultSessionAttributeStore implements SessionAttributeStore { } + @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 class DefaultSessionAttributeStore implements SessionAttributeStore { 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 class DefaultSessionAttributeStore implements SessionAttributeStore { 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 f9d1d7c102..7f20bf4e8f 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 bdb8e616d6..45eb677ea9 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 @@ public class DefaultResponseErrorHandler implements ResponseErrorHandler { * 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 b4232ff47c..4fc24562a2 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 class HttpMessageConverterExtractor implements ResponseExtractor { this.logger = logger; } + @Override @SuppressWarnings("unchecked") public T extractData(ClientHttpResponse response) throws IOException { if (!hasMessageBody(response)) { diff --git a/spring-web/src/main/java/org/springframework/web/client/RestTemplate.java b/spring-web/src/main/java/org/springframework/web/client/RestTemplate.java index cd729964f4..91cdfabb44 100644 --- a/spring-web/src/main/java/org/springframework/web/client/RestTemplate.java +++ b/spring-web/src/main/java/org/springframework/web/client/RestTemplate.java @@ -207,6 +207,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat // GET + @Override public T getForObject(String url, Class responseType, Object... urlVariables) throws RestClientException { AcceptHeaderRequestCallback requestCallback = new AcceptHeaderRequestCallback(responseType); HttpMessageConverterExtractor responseExtractor = @@ -214,6 +215,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat 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 = @@ -221,6 +223,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat 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 = @@ -228,6 +231,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat return execute(url, HttpMethod.GET, requestCallback, responseExtractor); } + @Override public ResponseEntity getForEntity(String url, Class responseType, Object... urlVariables) throws RestClientException { AcceptHeaderRequestCallback requestCallback = new AcceptHeaderRequestCallback(responseType); @@ -236,6 +240,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat 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); @@ -244,6 +249,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat 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 = @@ -253,26 +259,31 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat // 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); @@ -280,12 +291,14 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat 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); @@ -294,6 +307,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat 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); @@ -302,6 +316,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat 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 = @@ -309,6 +324,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat return execute(url, HttpMethod.POST, requestCallback, responseExtractor); } + @Override public ResponseEntity postForEntity(String url, Object request, Class responseType, Object... uriVariables) throws RestClientException { HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request, responseType); @@ -317,6 +333,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat return execute(url, HttpMethod.POST, requestCallback, responseExtractor, uriVariables); } + @Override public ResponseEntity postForEntity(String url, Object request, Class responseType, @@ -328,6 +345,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat 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 = @@ -337,16 +355,19 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat // 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); @@ -354,30 +375,36 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat // 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(); @@ -385,6 +412,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat // exchange + @Override public ResponseEntity exchange(String url, HttpMethod method, HttpEntity requestEntity, Class responseType, Object... uriVariables) throws RestClientException { @@ -393,6 +421,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat return execute(url, method, requestCallback, responseExtractor, uriVariables); } + @Override public ResponseEntity exchange(String url, HttpMethod method, HttpEntity requestEntity, Class responseType, Map uriVariables) throws RestClientException { @@ -401,6 +430,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat return execute(url, method, requestCallback, responseExtractor, uriVariables); } + @Override public ResponseEntity exchange(URI url, HttpMethod method, HttpEntity requestEntity, Class responseType) throws RestClientException { @@ -409,6 +439,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat return execute(url, method, requestCallback, responseExtractor); } + @Override public ResponseEntity exchange(String url, HttpMethod method, HttpEntity requestEntity, ParameterizedTypeReference responseType, Object... uriVariables) throws RestClientException { @@ -418,6 +449,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat return execute(url, method, requestCallback, responseExtractor, uriVariables); } + @Override public ResponseEntity exchange(String url, HttpMethod method, HttpEntity requestEntity, ParameterizedTypeReference responseType, Map uriVariables) throws RestClientException { @@ -427,6 +459,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat return execute(url, method, requestCallback, responseExtractor, uriVariables); } + @Override public ResponseEntity exchange(URI url, HttpMethod method, HttpEntity requestEntity, ParameterizedTypeReference responseType) throws RestClientException { @@ -438,6 +471,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat // general execution + @Override public T execute(String url, HttpMethod method, RequestCallback requestCallback, ResponseExtractor responseExtractor, Object... urlVariables) throws RestClientException { @@ -446,6 +480,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat return doExecute(expanded, method, requestCallback, responseExtractor); } + @Override public T execute(String url, HttpMethod method, RequestCallback requestCallback, ResponseExtractor responseExtractor, Map urlVariables) throws RestClientException { @@ -454,6 +489,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat return doExecute(expanded, method, requestCallback, responseExtractor); } + @Override public T execute(URI url, HttpMethod method, RequestCallback requestCallback, ResponseExtractor responseExtractor) throws RestClientException { @@ -544,6 +580,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat this.responseType = responseType; } + @Override @SuppressWarnings("unchecked") public void doWithRequest(ClientHttpRequest request) throws IOException { if (responseType != null) { @@ -682,6 +719,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat } } + @Override public ResponseEntity extractData(ClientHttpResponse response) throws IOException { if (delegate != null) { T body = delegate.extractData(response); @@ -699,6 +737,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat */ 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 54defc908f..486da7952a 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/ConfigurableWebApplicationContext.java b/spring-web/src/main/java/org/springframework/web/context/ConfigurableWebApplicationContext.java index a6185a81e8..1712408562 100644 --- a/spring-web/src/main/java/org/springframework/web/context/ConfigurableWebApplicationContext.java +++ b/spring-web/src/main/java/org/springframework/web/context/ConfigurableWebApplicationContext.java @@ -74,6 +74,7 @@ public interface ConfigurableWebApplicationContext extends WebApplicationContext /** * Return the {@link ConfigurableWebEnvironment} used by this web application context. */ + @Override ConfigurableWebEnvironment getEnvironment(); /** 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 4dc269a1b4..db3b5b3f53 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 279fd71636..1e03001c99 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 @@ -104,6 +104,7 @@ public class ContextLoaderListener extends ContextLoader implements ServletConte /** * Initialize the root web application context. */ + @Override public void contextInitialized(ServletContextEvent event) { this.contextLoader = createContextLoader(); if (this.contextLoader == null) { @@ -138,6 +139,7 @@ public class ContextLoaderListener extends ContextLoader implements ServletConte /** * Close the root web application context. */ + @Override public void contextDestroyed(ServletContextEvent event) { if (this.contextLoader != null) { this.contextLoader.closeWebApplicationContext(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 155eadeb7e..0132583726 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 @@ import org.springframework.beans.factory.config.Scope; */ 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 abstract class AbstractRequestAttributesScope implements Scope { return scopedObject; } + @Override public Object remove(String name) { RequestAttributes attributes = RequestContextHolder.currentRequestAttributes(); Object scopedObject = attributes.getAttribute(name, getScope()); @@ -58,11 +60,13 @@ public abstract class AbstractRequestAttributesScope implements Scope { } } + @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 27202c36be..f1467553b8 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 class DestructionCallbackBindingListener implements HttpSessionBindingLis } + @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 8570211fa3..32f4585234 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 @@ public class FacesRequestAttributes implements RequestAttributes { } + @Override public Object getAttribute(String name, int scope) { if (scope == SCOPE_GLOBAL_SESSION && portletApiPresent) { return PortletSessionAccessor.getAttribute(name, getExternalContext()); @@ -115,6 +116,7 @@ public class FacesRequestAttributes implements RequestAttributes { } } + @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 class FacesRequestAttributes implements RequestAttributes { } } + @Override public void removeAttribute(String name, int scope) { if (scope == SCOPE_GLOBAL_SESSION && portletApiPresent) { PortletSessionAccessor.removeAttribute(name, getExternalContext()); @@ -133,6 +136,7 @@ public class FacesRequestAttributes implements RequestAttributes { } } + @Override public String[] getAttributeNames(int scope) { if (scope == SCOPE_GLOBAL_SESSION && portletApiPresent) { return PortletSessionAccessor.getAttributeNames(getExternalContext()); @@ -142,6 +146,7 @@ public class FacesRequestAttributes implements RequestAttributes { } } + @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 class FacesRequestAttributes implements RequestAttributes { } } + @Override public Object resolveReference(String key) { if (REFERENCE_REQUEST.equals(key)) { return getExternalContext().getRequest(); @@ -221,6 +227,7 @@ public class FacesRequestAttributes implements RequestAttributes { } } + @Override public String getSessionId() { Object session = getExternalContext().getSession(true); try { @@ -233,6 +240,7 @@ public class FacesRequestAttributes implements RequestAttributes { } } + @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 f921d2a541..940e0c9d0a 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 class FacesWebRequest extends FacesRequestAttributes implements NativeWeb } + @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 class FacesWebRequest extends FacesRequestAttributes implements NativeWeb return null; } + @Override @SuppressWarnings("unchecked") public T getNativeResponse(Class requiredType) { if (requiredType != null) { @@ -74,66 +78,82 @@ public class FacesWebRequest extends FacesRequestAttributes implements NativeWeb } + @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 c369abbcaa..cfc25e82f7 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 @@ public class Log4jNestedDiagnosticContextInterceptor implements AsyncWebRequestI /** * 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 @@ public class Log4jNestedDiagnosticContextInterceptor implements AsyncWebRequestI 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 class Log4jNestedDiagnosticContextInterceptor implements AsyncWebRequestI * 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 6c8ff6de88..1316d29694 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 class RequestContextListener implements ServletRequestListener { 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 b95814a00e..370a3ee841 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 @@ public class RequestScope extends AbstractRequestAttributesScope { * 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 6f8331f05f..35c06593f1 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 @@ public class ServletRequestAttributes extends AbstractRequestAttributes { } + @Override public Object getAttribute(String name, int scope) { if (scope == SCOPE_REQUEST) { if (!isRequestActive()) { @@ -117,6 +118,7 @@ public class ServletRequestAttributes extends AbstractRequestAttributes { } } + @Override public void setAttribute(String name, Object value, int scope) { if (scope == SCOPE_REQUEST) { if (!isRequestActive()) { @@ -134,6 +136,7 @@ public class ServletRequestAttributes extends AbstractRequestAttributes { } } + @Override public void removeAttribute(String name, int scope) { if (scope == SCOPE_REQUEST) { if (isRequestActive()) { @@ -159,6 +162,7 @@ public class ServletRequestAttributes extends AbstractRequestAttributes { } } + @Override public String[] getAttributeNames(int scope) { if (scope == SCOPE_REQUEST) { if (!isRequestActive()) { @@ -181,6 +185,7 @@ public class ServletRequestAttributes extends AbstractRequestAttributes { } } + @Override public void registerDestructionCallback(String name, Runnable callback, int scope) { if (scope == SCOPE_REQUEST) { registerRequestDestructionCallback(name, callback); @@ -190,6 +195,7 @@ public class ServletRequestAttributes extends AbstractRequestAttributes { } } + @Override public Object resolveReference(String key) { if (REFERENCE_REQUEST.equals(key)) { return this.request; @@ -202,10 +208,12 @@ public class ServletRequestAttributes extends AbstractRequestAttributes { } } + @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 ca6318f344..12ef426339 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 class ServletWebRequest extends ServletRequestAttributes implements Nativ 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 class ServletWebRequest extends ServletRequestAttributes implements Nativ 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 class ServletWebRequest extends ServletRequestAttributes implements Nativ 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 19bcb0d772..1696c1fcf4 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 @@ public class SessionScope extends AbstractRequestAttributesScope { 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 264e44237f..36689b1e42 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 abstract class CallableProcessingInterceptorAdapter implements CallablePr * 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 abstract class CallableProcessingInterceptorAdapter implements CallablePr /** * 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 774761bdb6..42409c6fe2 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 abstract class DeferredResultProcessingInterceptorAdapter implements Defe /** * This implementation returns {@code true} by default. */ + @Override public boolean handleTimeout(NativeWebRequest request, DeferredResult deferredResult) throws Exception { return true; } @@ -56,6 +60,7 @@ public abstract class DeferredResultProcessingInterceptorAdapter implements Defe /** * 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 6158a82931..5fa0f94a79 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 class NoSupportAsyncWebRequest extends ServletWebRequest implements Async 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 8e5e6d4d6b..abb8329dce 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 class StandardServletAsyncWebRequest extends ServletWebRequest implements *

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 class StandardServletAsyncWebRequest extends ServletWebRequest implements *

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 class StandardServletAsyncWebRequest extends ServletWebRequest implements } } + @Override public void dispatch() { Assert.notNull(this.asyncContext, "Cannot dispatch without an AsyncContext"); this.asyncContext.dispatch(); @@ -120,18 +127,22 @@ public class StandardServletAsyncWebRequest extends ServletWebRequest implements // 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 2e104d8e75..d0582e931c 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 final class WebAsyncManager { 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 final class WebAsyncManager { 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 final class WebAsyncManager { }); this.asyncWebRequest.addCompletionHandler(new Runnable() { + @Override public void run() { interceptorChain.triggerAfterCompletion(asyncWebRequest, callable); } @@ -311,6 +314,7 @@ public final class WebAsyncManager { startAsyncProcessing(processingContext); this.taskExecutor.submit(new Runnable() { + @Override public void run() { Object result = null; try { @@ -382,6 +386,7 @@ public final class WebAsyncManager { 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 final class WebAsyncManager { }); this.asyncWebRequest.addCompletionHandler(new Runnable() { + @Override public void run() { interceptorChain.triggerAfterCompletion(asyncWebRequest, deferredResult); } @@ -405,6 +411,7 @@ public final class WebAsyncManager { 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 f36bddc316..2583bb7a0f 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 @@ -98,14 +98,17 @@ public abstract class AbstractRefreshableWebApplicationContext extends AbstractR } + @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) { @@ -113,10 +116,12 @@ public abstract class AbstractRefreshableWebApplicationContext extends AbstractR } } + @Override public ServletConfig getServletConfig() { return this.servletConfig; } + @Override public void setNamespace(String namespace) { this.namespace = namespace; if (namespace != null) { @@ -124,6 +129,7 @@ public abstract class AbstractRefreshableWebApplicationContext extends AbstractR } } + @Override public String getNamespace() { return this.namespace; } @@ -215,6 +221,7 @@ public abstract class AbstractRefreshableWebApplicationContext extends AbstractR this.getEnvironment().initPropertySources(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/GenericWebApplicationContext.java b/spring-web/src/main/java/org/springframework/web/context/support/GenericWebApplicationContext.java index ac87960cd0..cd376fd6d1 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 class GenericWebApplicationContext extends GenericApplicationContext /** * Set the ServletContext that this WebApplicationContext runs in. */ + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } + @Override public ServletContext getServletContext() { return this.servletContext; } @@ -205,6 +207,7 @@ public class GenericWebApplicationContext extends GenericApplicationContext this.getEnvironment().initPropertySources(this.servletContext, null); } + @Override public Theme getTheme(String themeName) { return this.themeSource.getTheme(themeName); } @@ -214,24 +217,29 @@ public class GenericWebApplicationContext extends GenericApplicationContext // 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( @@ -240,6 +248,7 @@ public class GenericWebApplicationContext extends GenericApplicationContext } } + @Override public void setConfigLocations(String[] configLocations) { if (!ObjectUtils.isEmpty(configLocations)) { throw new UnsupportedOperationException( @@ -248,6 +257,7 @@ public class GenericWebApplicationContext extends GenericApplicationContext } } + @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 26bcfb4498..722a5aec6f 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 class ServletContextAttributeExporter implements ServletContextAware { 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 da3ca2419c..144dc562d3 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 class ServletContextAttributeFactoryBean implements FactoryBean, 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 class ServletContextAttributeFactoryBean implements FactoryBean, } + @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 3e19b43f57..7cfa4641d8 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 @@ -70,6 +70,7 @@ public class ServletContextAwareProcessor implements BeanPostProcessor { } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (this.servletContext != null && bean instanceof ServletContextAware) { ((ServletContextAware) bean).setServletContext(this.servletContext); @@ -80,6 +81,7 @@ public class ServletContextAwareProcessor implements BeanPostProcessor { 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/ServletContextFactoryBean.java b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextFactoryBean.java index f5af556658..9389942026 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextFactoryBean.java @@ -49,19 +49,23 @@ public class ServletContextFactoryBean implements FactoryBean, S private ServletContext servletContext; + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } + @Override public ServletContext getObject() { return this.servletContext; } + @Override public Class getObjectType() { return (this.servletContext != null ? this.servletContext.getClass() : ServletContext.class); } + @Override public boolean isSingleton() { return true; } 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 6af3d80863..27f30651ea 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 class ServletContextParameterFactoryBean implements FactoryBean, this.initParamName = initParamName; } + @Override public void setServletContext(ServletContext servletContext) { if (this.initParamName == null) { throw new IllegalArgumentException("initParamName is required"); @@ -61,14 +62,17 @@ public class ServletContextParameterFactoryBean implements FactoryBean, } + @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 ea6cda9767..e2a8f1f2f2 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 class ServletContextPropertyPlaceholderConfigurer extends PropertyPlaceho * 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 673c39c9a1..a05b782f8c 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 class ServletContextResource extends AbstractFileResolvingResource implem * 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 class ServletContextResource extends AbstractFileResolvingResource implem * 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 180645580f..d16a99d3f3 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 class ServletContextScope implements Scope, DisposableBean { } + @Override public Object get(String name, ObjectFactory objectFactory) { Object scopedObject = this.servletContext.getAttribute(name); if (scopedObject == null) { @@ -71,6 +72,7 @@ public class ServletContextScope implements Scope, DisposableBean { return scopedObject; } + @Override public Object remove(String name) { Object scopedObject = this.servletContext.getAttribute(name); if (scopedObject != null) { @@ -83,14 +85,17 @@ public class ServletContextScope implements Scope, DisposableBean { } } + @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 class ServletContextScope implements Scope, DisposableBean { * 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 b929c4bbe3..6704b261aa 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 @@ public class StandardServletEnvironment extends StandardEnvironment 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 5de71bda60..98f21c2e45 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 @@ -75,14 +75,17 @@ public class StaticWebApplicationContext extends StaticApplicationContext /** * 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) { @@ -90,10 +93,12 @@ public class StaticWebApplicationContext extends StaticApplicationContext } } + @Override public ServletConfig getServletConfig() { return this.servletConfig; } + @Override public void setNamespace(String namespace) { this.namespace = namespace; if (namespace != null) { @@ -101,6 +106,7 @@ public class StaticWebApplicationContext extends StaticApplicationContext } } + @Override public String getNamespace() { return this.namespace; } @@ -109,6 +115,7 @@ public class StaticWebApplicationContext extends StaticApplicationContext * 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"); @@ -119,12 +126,14 @@ public class StaticWebApplicationContext extends StaticApplicationContext * 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; } @@ -193,6 +202,7 @@ public class StaticWebApplicationContext extends StaticApplicationContext 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 9091e337a4..f7a5f81daa 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 @@ public abstract class WebApplicationContextUtils { @SuppressWarnings("serial") private static class RequestObjectFactory implements ObjectFactory, Serializable { + @Override public ServletRequest getObject() { return currentRequestAttributes().getRequest(); } @@ -309,6 +310,7 @@ public abstract class WebApplicationContextUtils { @SuppressWarnings("serial") private static class SessionObjectFactory implements ObjectFactory, Serializable { + @Override public HttpSession getObject() { return currentRequestAttributes().getRequest().getSession(); } @@ -326,6 +328,7 @@ public abstract class WebApplicationContextUtils { @SuppressWarnings("serial") private static class WebRequestObjectFactory implements ObjectFactory, Serializable { + @Override public WebRequest getObject() { return new ServletWebRequest(currentRequestAttributes().getRequest()); } @@ -344,6 +347,7 @@ public abstract class WebApplicationContextUtils { public static void registerFacesDependencies(ConfigurableListableBeanFactory beanFactory) { beanFactory.registerResolvableDependency(FacesContext.class, new ObjectFactory() { + @Override public FacesContext getObject() { return FacesContext.getCurrentInstance(); } @@ -353,6 +357,7 @@ public abstract class WebApplicationContextUtils { } }); 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 9aa2547d62..b333d59279 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 a3551ff767..37e9c015ff 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 class CompositeFilter implements Filter { * * @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 class CompositeFilter implements Filter { * * @see Filter#init(FilterConfig) */ + @Override public void init(FilterConfig config) throws ServletException { for (Filter filter : filters) { filter.init(config); @@ -77,6 +79,7 @@ public class CompositeFilter implements Filter { * * @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 @@ public class CompositeFilter implements Filter { 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 dcebb69937..6933acd166 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 @@ public class DelegatingFilterProxy extends GenericFilterBean { } } + @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 816a52c3c1..1491a2b861 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 abstract class GenericFilterBean implements * 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 abstract class GenericFilterBean implements * @see org.springframework.web.context.ServletContextAware * @see #getServletContext() */ + @Override public final void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } @@ -139,6 +142,7 @@ public abstract class GenericFilterBean implements * @see #initFilterBean() * @see #init(javax.servlet.FilterConfig) */ + @Override public void afterPropertiesSet() throws ServletException { initFilterBean(); } @@ -166,6 +170,7 @@ public abstract class GenericFilterBean implements * 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 @@ public abstract class GenericFilterBean implements * 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 d422184207..cdb1c05182 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 d554e05cf5..eeea3a8cc9 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 @@ import org.springframework.web.context.WebApplicationContext; @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 d1aa1a36d0..eeefa75044 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 class ControllerAdviceBean implements Ordered { * 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 4d93eff7f2..d948f0bfa7 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 abstract class HandlerMethodSelector { 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 07c44b32a8..6b1fe43392 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 abstract class AbstractCookieValueMethodArgumentResolver extends Abstract 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/AbstractNamedValueMethodArgumentResolver.java b/spring-web/src/main/java/org/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver.java index 9e35288687..e2e3af023d 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/AbstractNamedValueMethodArgumentResolver.java @@ -74,6 +74,7 @@ public abstract class AbstractNamedValueMethodArgumentResolver implements Handle this.expressionContext = (beanFactory != null) ? new BeanExpressionContext(beanFactory, new RequestScope()) : null; } + @Override public final Object resolveArgument( MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) 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 76e1630318..3a8740026d 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 abstract class AbstractWebArgumentResolverAdapter implements HandlerMetho * 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 abstract class AbstractWebArgumentResolverAdapter implements HandlerMetho * @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 63e713685b..bb2b31f6b1 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 @@ import org.springframework.web.method.support.ModelAndViewContainer; */ 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 626b0fe218..7db05ab78c 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 @@ public class ExceptionHandlerMethodResolver { */ 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 92a2aa88d1..91c41c0927 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 class ExpressionValueMethodArgumentResolver extends AbstractNamedValueMet 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 df430b5f0d..ed8a0c025e 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 @@ import org.springframework.web.method.support.ModelAndViewContainer; */ 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 class MapMethodProcessor implements HandlerMethodArgumentResolver, Handle 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 d2e2529360..aee03bef14 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 class ModelAttributeMethodProcessor implements HandlerMethodArgumentResol * @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 @@ public class ModelAttributeMethodProcessor implements HandlerMethodArgumentResol * 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 @@ public class ModelAttributeMethodProcessor implements HandlerMethodArgumentResol * 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 @@ public class ModelAttributeMethodProcessor implements HandlerMethodArgumentResol /** * 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 c529efd8a3..c1bc413851 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 @@ import org.springframework.web.method.support.ModelAndViewContainer; */ 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 class ModelMethodProcessor implements HandlerMethodArgumentResolver, Hand 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 4843782efb..e335b9dbf5 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 @@ import org.springframework.web.method.support.ModelAndViewContainer; */ 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 e7b46bdb6a..e5596839f5 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 class RequestHeaderMethodArgumentResolver extends AbstractNamedValueMetho 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 befe7178d9..8708e5a5a0 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 @@ import org.springframework.web.method.support.ModelAndViewContainer; */ 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 class RequestParamMapMethodArgumentResolver implements HandlerMethodArgum 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 3f351595ec..30cb121e3e 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 class RequestParamMethodArgumentResolver extends AbstractNamedValueMethod * 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 f19ae73727..c9ae58b647 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 @@ import org.springframework.web.method.support.ModelAndViewContainer; */ 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 21c88153fb..6fa290d05d 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 class HandlerMethodArgumentResolverComposite implements HandlerMethodArgu * 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 class HandlerMethodArgumentResolverComposite implements HandlerMethodArgu * 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 fb364be2b3..991c5ef73e 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 class HandlerMethodReturnValueHandlerComposite implements HandlerMethodRe * 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 class HandlerMethodReturnValueHandlerComposite implements HandlerMethodRe * 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 ae9ae6ecf1..b649e587e0 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 class CommonsMultipartFile implements MultipartFile, Serializable { } + @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 class CommonsMultipartFile implements MultipartFile, Serializable { } } + @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 class CommonsMultipartFile implements MultipartFile, Serializable { 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 class CommonsMultipartFile implements MultipartFile, Serializable { 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 25f743befc..977042863d 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 @@ public class CommonsMultipartResolver extends CommonsFileUploadSupport return new ServletFileUpload(fileItemFactory); } + @Override public void setServletContext(ServletContext servletContext) { if (!isUploadTempDirSpecified()) { getFileItemFactory().setRepository(WebUtils.getTempDir(servletContext)); @@ -118,10 +119,12 @@ public class CommonsMultipartResolver extends CommonsFileUploadSupport } + @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 @@ public class CommonsMultipartResolver extends CommonsFileUploadSupport 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 4dd8c14b01..9de0d6aeed 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 abstract class AbstractMultipartHttpServletRequest extends HttpServletReq 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 abstract class AbstractMultipartHttpServletRequest extends HttpServletReq 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 abstract class AbstractMultipartHttpServletRequest extends HttpServletReq } } + @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 ee0a9b7f65..33c9925ea7 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 class DefaultMultipartHttpServletRequest extends AbstractMultipartHttpSer return paramMap; } + @Override public String getMultipartContentType(String paramOrFileName) { MultipartFile file = getFile(paramOrFileName); if (file != null) { @@ -120,6 +121,7 @@ public class DefaultMultipartHttpServletRequest extends AbstractMultipartHttpSer } } + @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 38287b4f95..46a9886fe2 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 @@ public class StandardMultipartHttpServletRequest extends AbstractMultipartHttpSe } + @Override public String getMultipartContentType(String paramOrFileName) { try { Part part = getPart(paramOrFileName); @@ -105,6 +106,7 @@ public class StandardMultipartHttpServletRequest extends AbstractMultipartHttpSe } } + @Override public HttpHeaders getMultipartHeaders(String paramOrFileName) { try { Part part = getPart(paramOrFileName); @@ -139,34 +141,42 @@ public class StandardMultipartHttpServletRequest extends AbstractMultipartHttpSe 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 f2b564e1c6..25cc39510a 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 @@ import org.springframework.web.multipart.MultipartResolver; */ 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 class StandardServletMultipartResolver implements MultipartResolver { 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 f3a5ec9013..9591e80cf5 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 @@ -639,25 +639,30 @@ final class HierarchicalUriComponents extends UriComponents { 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); @@ -686,6 +691,7 @@ final class HierarchicalUriComponents extends UriComponents { this.pathSegments = Collections.unmodifiableList(pathSegments); } + @Override public String getPath() { StringBuilder pathBuilder = new StringBuilder(); pathBuilder.append(PATH_DELIMITER); @@ -699,10 +705,12 @@ final class HierarchicalUriComponents extends UriComponents { 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()); @@ -713,12 +721,14 @@ final class HierarchicalUriComponents extends UriComponents { 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()); @@ -753,6 +763,7 @@ final class HierarchicalUriComponents extends UriComponents { this.pathComponents = pathComponents; } + @Override public String getPath() { StringBuilder pathBuilder = new StringBuilder(); for (PathComponent pathComponent : this.pathComponents) { @@ -761,6 +772,7 @@ final class HierarchicalUriComponents extends UriComponents { return pathBuilder.toString(); } + @Override public List getPathSegments() { List result = new ArrayList(); for (PathComponent pathComponent : this.pathComponents) { @@ -769,6 +781,7 @@ final class HierarchicalUriComponents extends UriComponents { return result; } + @Override public PathComponent encode(String encoding) throws UnsupportedEncodingException { List encodedComponents = new ArrayList(pathComponents.size()); for (PathComponent pathComponent : pathComponents) { @@ -777,12 +790,14 @@ final class HierarchicalUriComponents extends UriComponents { return new PathComponentComposite(encodedComponents); } + @Override public void verify() { for (PathComponent pathComponent : pathComponents) { pathComponent.verify(); } } + @Override public PathComponent expand(UriTemplateVariables uriVariables) { List expandedComponents = new ArrayList(this.pathComponents.size()); for (PathComponent pathComponent : this.pathComponents) { @@ -799,21 +814,26 @@ final class HierarchicalUriComponents extends UriComponents { */ final static 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 ab7a710147..c0a7f344e6 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 @@ import javax.servlet.http.HttpSessionListener; */ 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 bf0ed911b4..8a96df095a 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 @@ import org.springframework.beans.CachedIntrospectionResults; */ 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 0ca9e35d32..ad38baa0df 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 @@ import javax.servlet.ServletContextListener; */ 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/UriComponents.java b/spring-web/src/main/java/org/springframework/web/util/UriComponents.java index f04c5f695b..7c5bd604a2 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 @@ -246,6 +246,7 @@ public abstract class UriComponents { this.uriVariables = uriVariables; } + @Override public Object getValue(String name) { if (!this.uriVariables.containsKey(name)) { throw new IllegalArgumentException("Map has no value for '" + name + "'"); @@ -266,6 +267,7 @@ public abstract class UriComponents { this.valueIterator = Arrays.asList(uriVariableValues).iterator(); } + @Override public Object getValue(String name) { if (!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 141cd7b86e..975d3f5c4b 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 @@ -611,15 +611,18 @@ public class UriComponentsBuilder { this.path = new StringBuilder(path); } + @Override public HierarchicalUriComponents.PathComponent build() { return new HierarchicalUriComponents.FullPathComponent(path.toString()); } + @Override public PathComponentBuilder appendPath(String path) { this.path.append(path); return this; } + @Override public PathComponentBuilder appendPathSegments(String... pathSegments) { PathComponentCompositeBuilder builder = new PathComponentCompositeBuilder(this); builder.appendPathSegments(pathSegments); @@ -648,16 +651,19 @@ public class UriComponentsBuilder { return result; } + @Override public HierarchicalUriComponents.PathComponent build() { return new HierarchicalUriComponents.PathSegmentComponent(pathSegments); } + @Override public PathComponentBuilder appendPath(String path) { PathComponentCompositeBuilder builder = new PathComponentCompositeBuilder(this); builder.appendPath(path); return builder; } + @Override public PathComponentBuilder appendPathSegments(String... pathSegments) { this.pathSegments.addAll(removeEmptyPathSegments(pathSegments)); return this; @@ -675,6 +681,7 @@ public class UriComponentsBuilder { pathComponentBuilders.add(builder); } + @Override public HierarchicalUriComponents.PathComponent build() { List pathComponents = new ArrayList(pathComponentBuilders.size()); @@ -685,11 +692,13 @@ public class UriComponentsBuilder { return new HierarchicalUriComponents.PathComponentComposite(pathComponents); } + @Override public PathComponentBuilder appendPath(String path) { this.pathComponentBuilders.add(new FullPathComponentBuilder(path)); return this; } + @Override public PathComponentBuilder appendPathSegments(String... pathSegments) { this.pathComponentBuilders.add(new PathSegmentComponentBuilder(pathSegments)); return this; @@ -702,14 +711,17 @@ public class UriComponentsBuilder { */ private static PathComponentBuilder NULL_PATH_COMPONENT_BUILDER = new PathComponentBuilder() { + @Override public HierarchicalUriComponents.PathComponent build() { return HierarchicalUriComponents.NULL_PATH_COMPONENT; } + @Override public PathComponentBuilder appendPath(String path) { return new FullPathComponentBuilder(path); } + @Override public PathComponentBuilder appendPathSegments(String... pathSegments) { return new PathSegmentComponentBuilder(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 832ea24d31..36078f7b63 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 @@ import javax.servlet.ServletContextListener; */ 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-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 b876da36b7..d67899df6a 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 abstract class FrameworkPortlet extends GenericPortletBean * 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 13b981b941..4febdfc9e8 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 @@ public abstract class GenericPortletBean extends GenericPortlet * @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 abstract class GenericPortletBean extends GenericPortlet *

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 c61dd503ed..1df9110d19 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 abstract class AbstractRefreshablePortletApplicationContext extends Abstr } } + @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 abstract class AbstractRefreshablePortletApplicationContext extends Abstr } } + @Override public PortletConfig getPortletConfig() { return this.portletConfig; } + @Override public void setNamespace(String namespace) { this.namespace = namespace; if (namespace != null) { @@ -134,6 +140,7 @@ public abstract class AbstractRefreshablePortletApplicationContext extends Abstr } } + @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 40d39905e1..e218e2938e 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 @@ public abstract class PortletApplicationContextUtils { @SuppressWarnings("serial") private static class RequestObjectFactory implements ObjectFactory, Serializable { + @Override public PortletRequest getObject() { return currentRequestAttributes().getRequest(); } @@ -261,6 +262,7 @@ public abstract class PortletApplicationContextUtils { @SuppressWarnings("serial") private static class SessionObjectFactory implements ObjectFactory, Serializable { + @Override public PortletSession getObject() { return currentRequestAttributes().getRequest().getPortletSession(); } @@ -278,6 +280,7 @@ public abstract class PortletApplicationContextUtils { @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 0007c187e4..d780573c15 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 b9df018158..c941c6a187 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 class PortletContextAwareProcessor implements BeanPostProcessor { } + @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 class PortletContextAwareProcessor implements BeanPostProcessor { 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 22fe3c7dd8..492d1432e8 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 class PortletContextResource extends AbstractFileResolvingResource implem * 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 class PortletContextResource extends AbstractFileResolvingResource implem 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 5dd52cfd49..e2c42a09bb 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 class PortletContextScope implements Scope, DisposableBean { } + @Override public Object get(String name, ObjectFactory objectFactory) { Object scopedObject = this.portletContext.getAttribute(name); if (scopedObject == null) { @@ -71,6 +72,7 @@ public class PortletContextScope implements Scope, DisposableBean { return scopedObject; } + @Override public Object remove(String name) { Object scopedObject = this.portletContext.getAttribute(name); if (scopedObject != null) { @@ -83,14 +85,17 @@ public class PortletContextScope implements Scope, DisposableBean { } } + @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 class PortletContextScope implements Scope, DisposableBean { * 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 6a7e1c83db..9c21f505fd 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 @@ public class PortletRequestAttributes extends AbstractRequestAttributes { } + @Override public Object getAttribute(String name, int scope) { if (scope == SCOPE_REQUEST) { if (!isRequestActive()) { @@ -136,6 +137,7 @@ public class PortletRequestAttributes extends AbstractRequestAttributes { } } + @Override public void setAttribute(String name, Object value, int scope) { if (scope == SCOPE_REQUEST) { if (!isRequestActive()) { @@ -161,6 +163,7 @@ public class PortletRequestAttributes extends AbstractRequestAttributes { } } + @Override public void removeAttribute(String name, int scope) { if (scope == SCOPE_REQUEST) { if (isRequestActive()) { @@ -187,6 +190,7 @@ public class PortletRequestAttributes extends AbstractRequestAttributes { } } + @Override public String[] getAttributeNames(int scope) { if (scope == SCOPE_REQUEST) { if (!isRequestActive()) { @@ -211,6 +215,7 @@ public class PortletRequestAttributes extends AbstractRequestAttributes { } } + @Override public void registerDestructionCallback(String name, Runnable callback, int scope) { if (scope == SCOPE_REQUEST) { registerRequestDestructionCallback(name, callback); @@ -220,6 +225,7 @@ public class PortletRequestAttributes extends AbstractRequestAttributes { } } + @Override public Object resolveReference(String key) { if (REFERENCE_REQUEST.equals(key)) { return this.request; @@ -232,10 +238,12 @@ public class PortletRequestAttributes extends AbstractRequestAttributes { } } + @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 fe6348dd6d..76c41e96d1 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 class PortletWebRequest extends PortletRequestAttributes implements Nativ 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 class PortletWebRequest extends PortletRequestAttributes implements Nativ * 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 class PortletWebRequest extends PortletRequestAttributes implements Nativ * 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 d1c1b2ad2a..fdd23d92c5 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 class StaticPortletApplicationContext extends StaticApplicationContext } } + @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 class StaticPortletApplicationContext extends StaticApplicationContext } } + @Override public PortletConfig getPortletConfig() { return this.portletConfig; } + @Override public void setNamespace(String namespace) { this.namespace = namespace; if (namespace != null) { @@ -131,6 +137,7 @@ public class StaticPortletApplicationContext extends StaticApplicationContext } } + @Override public String getNamespace() { return this.namespace; } @@ -139,6 +146,7 @@ public class StaticPortletApplicationContext extends StaticApplicationContext * 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 class StaticPortletApplicationContext extends StaticApplicationContext * 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 64365dfa48..32a7299557 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 abstract class AbstractHandlerExceptionResolver implements HandlerExcepti this.order = order; } + @Override public int getOrder() { return this.order; } @@ -124,6 +125,7 @@ public abstract class AbstractHandlerExceptionResolver implements HandlerExcepti * 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 abstract class AbstractHandlerExceptionResolver implements HandlerExcepti } } + @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 8e3cb90f3f..c648433cc1 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 abstract class AbstractHandlerMapping extends ApplicationObjectSupport im this.order = order; } + @Override public final int getOrder() { return this.order; } @@ -201,6 +202,7 @@ public abstract class AbstractHandlerMapping extends ApplicationObjectSupport im * @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 9c3bff5f2a..7b052cca12 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 abstract class HandlerInterceptorAdapter implements HandlerInterceptor { /** * 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 abstract class HandlerInterceptorAdapter implements HandlerInterceptor { /** * This implementation delegates to {@link #preHandle}. */ + @Override public boolean preHandleRender(RenderRequest request, RenderResponse response, Object handler) throws Exception { @@ -72,6 +75,7 @@ public abstract class HandlerInterceptorAdapter implements HandlerInterceptor { /** * This implementation is empty. */ + @Override public void postHandleRender( RenderRequest request, RenderResponse response, Object handler, ModelAndView modelAndView) throws Exception { @@ -80,6 +84,7 @@ public abstract class HandlerInterceptorAdapter implements HandlerInterceptor { /** * 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 abstract class HandlerInterceptorAdapter implements HandlerInterceptor { /** * This implementation delegates to {@link #preHandle}. */ + @Override public boolean preHandleResource(ResourceRequest request, ResourceResponse response, Object handler) throws Exception { @@ -100,6 +106,7 @@ public abstract class HandlerInterceptorAdapter implements HandlerInterceptor { /** * This implementation is empty. */ + @Override public void postHandleResource( ResourceRequest request, ResourceResponse response, Object handler, ModelAndView modelAndView) throws Exception { @@ -108,6 +115,7 @@ public abstract class HandlerInterceptorAdapter implements HandlerInterceptor { /** * 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 abstract class HandlerInterceptorAdapter implements HandlerInterceptor { /** * This implementation delegates to {@link #preHandle}. */ + @Override public boolean preHandleEvent(EventRequest request, EventResponse response, Object handler) throws Exception { @@ -128,6 +137,7 @@ public abstract class HandlerInterceptorAdapter implements HandlerInterceptor { /** * 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 5ef81bb0ae..f7a884dad9 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 class SimplePortletHandlerAdapter implements HandlerAdapter, PortletConte return null; } + @Override public ModelAndView handleResource(ResourceRequest request, ResourceResponse response, Object handler) throws Exception { @@ -98,6 +103,7 @@ public class SimplePortletHandlerAdapter implements HandlerAdapter, PortletConte 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 c9cde4b1b0..62a79e4b71 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 class SimplePortletPostProcessor 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 class SimplePortletPostProcessor return bean; } + @Override public void postProcessBeforeDestruction(Object bean, String beanName) throws BeansException { if (bean instanceof Portlet) { ((Portlet) bean).destroy(); @@ -146,46 +151,57 @@ public class SimplePortletPostProcessor 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 6026dd17b4..b871ed7059 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 class WebRequestHandlerInterceptorAdapter implements HandlerInterceptor { } + @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 class WebRequestHandlerInterceptorAdapter implements HandlerInterceptor { return true; } + @Override public void afterActionCompletion( ActionRequest request, ActionResponse response, Object handler, Exception ex) throws Exception { @@ -91,11 +93,13 @@ public class WebRequestHandlerInterceptorAdapter implements HandlerInterceptor { } } + @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 class WebRequestHandlerInterceptorAdapter implements HandlerInterceptor { (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 class WebRequestHandlerInterceptorAdapter implements HandlerInterceptor { return true; } + @Override public void postHandleResource(ResourceRequest request, ResourceResponse response, Object handler, ModelAndView modelAndView) throws Exception { @@ -123,17 +130,20 @@ public class WebRequestHandlerInterceptorAdapter implements HandlerInterceptor { (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 0489721509..4e4cf8499e 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 @@ public class CommonsPortletMultipartResolver extends CommonsFileUploadSupport return new PortletFileUpload(fileItemFactory); } + @Override public void setPortletContext(PortletContext portletContext) { if (!isUploadTempDirSpecified()) { getFileItemFactory().setRepository(PortletUtils.getTempDir(portletContext)); @@ -113,10 +114,12 @@ public class CommonsPortletMultipartResolver extends CommonsFileUploadSupport } + @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 @@ public class CommonsPortletMultipartResolver extends CommonsFileUploadSupport 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 a46f14b9b1..8ee6e40785 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 @@ public class DefaultMultipartActionRequest extends ActionRequestWrapper implemen } + @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 class DefaultMultipartActionRequest extends ActionRequestWrapper implemen } + @Override public Map getFileMap() { return getMultipartFiles().toSingleValueMap(); } + @Override public MultiValueMap getMultiFileMap() { return getMultipartFiles(); } @@ -138,6 +143,7 @@ public class DefaultMultipartActionRequest extends ActionRequestWrapper implemen 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 271906d4a2..de00d6f077 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 abstract class AbstractController extends PortletContentGenerator impleme } + @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 abstract class AbstractController extends PortletContentGenerator impleme 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 b6e9217d64..9aea2de865 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 @@ import org.springframework.web.portlet.ModelAndView; */ 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 f8a1df3d20..9e41ffc438 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 class PortletWrappingController extends AbstractController this.portletContext = portletContext; } + @Override public void setPortletConfig(PortletConfig portletConfig) { this.portletConfig = portletConfig; } @@ -146,11 +147,13 @@ public class PortletWrappingController extends AbstractController 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 @@ public class PortletWrappingController extends AbstractController return null; } + @Override public ModelAndView handleResourceRequest( ResourceRequest request, ResourceResponse response) throws Exception { @@ -214,6 +218,7 @@ public class PortletWrappingController extends AbstractController return null; } + @Override public void handleEventRequest( EventRequest request, EventResponse response) throws Exception { @@ -242,6 +247,7 @@ public class PortletWrappingController extends AbstractController } + @Override public void destroy() { this.portletInstance.destroy(); } @@ -255,46 +261,57 @@ public class PortletWrappingController extends AbstractController */ 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 918d3ee1fc..e00710e978 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 class SimpleControllerHandlerAdapter implements HandlerAdapter, PortletCo } } + @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 3fa889d8b4..34cf77e22b 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 class AnnotationMethodHandlerAdapter extends PortletContentGenerator 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 class AnnotationMethodHandlerAdapter extends PortletContentGenerator } + @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 class AnnotationMethodHandlerAdapter extends PortletContentGenerator } } + @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 37125cde89..579ef82388 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 @@ public class AnnotationMethodHandlerExceptionResolver extends AbstractHandlerExc 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 7558a92bec..9b77f6d0bf 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 @@ public class DefaultAnnotationHandlerMapping extends AbstractMapBasedHandlerMapp 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 class DefaultAnnotationHandlerMapping extends AbstractMapBasedHandlerMapp this.params = params; } + @Override public boolean match(PortletRequest request) { return PortletAnnotationMappingUtils.checkParameters(this.params, request); } @@ -262,6 +264,7 @@ public class DefaultAnnotationHandlerMapping extends AbstractMapBasedHandlerMapp } } + @Override public void validate(PortletRequest request) throws PortletException { if (!PortletAnnotationMappingUtils.checkHeaders(this.headers, request)) { throw new PortletRequestBindingException("Header conditions \"" + @@ -279,6 +282,7 @@ public class DefaultAnnotationHandlerMapping extends AbstractMapBasedHandlerMapp } } + @Override public int compareTo(Object other) { return (other instanceof SpecialRequestTypePredicate ? -1 : compareParams(other)); } @@ -291,9 +295,11 @@ public class DefaultAnnotationHandlerMapping extends AbstractMapBasedHandlerMapp 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 class DefaultAnnotationHandlerMapping extends AbstractMapBasedHandlerMapp 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 class DefaultAnnotationHandlerMapping extends AbstractMapBasedHandlerMapp 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 class DefaultAnnotationHandlerMapping extends AbstractMapBasedHandlerMapp 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 class DefaultAnnotationHandlerMapping extends AbstractMapBasedHandlerMapp 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 class DefaultAnnotationHandlerMapping extends AbstractMapBasedHandlerMapp 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-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 eaa6d58bc2..e86e9cf5ac 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 @@ import org.springframework.web.servlet.view.tiles2.SpringBeanPreparerFactory; */ 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 f01f25dd1a..b18c89f932 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 @@ -236,6 +236,7 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D this.useMutableTilesContainer = useMutableTilesContainer; } + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } @@ -245,6 +246,7 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D * delegating to the TilesInitializer. * @throws TilesException in case of setup failure */ + @Override public void afterPropertiesSet() throws TilesException { SpringWildcardServletTilesApplicationContext preliminaryContext = @@ -272,6 +274,7 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D * 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 6483616edb..43994b9d49 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,6 +1021,7 @@ public class DispatcherServlet extends FrameworkServlet { @Override protected LocaleContext buildLocaleContext(final HttpServletRequest request) { return new LocaleContext() { + @Override public Locale getLocale() { return localeResolver.resolveLocale(request); } 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 983930714c..1e5d4ec88b 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 final class FlashMap extends HashMap implements Comparabl * 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 ca2a919043..cb08d3e627 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 @@ -1054,6 +1054,7 @@ public abstract class FrameworkServlet extends HttpServletBean { */ 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 044b56d2ae..998a2ff6bd 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 @@ -189,6 +189,7 @@ public abstract class HttpServletBean extends HttpServlet * @throws IllegalArgumentException if environment is not assignable to * {@code ConfigurableWebEnvironment}. */ + @Override public void setEnvironment(Environment environment) { Assert.isInstanceOf(ConfigurableWebEnvironment.class, environment); this.environment = (ConfigurableWebEnvironment)environment; @@ -199,6 +200,7 @@ public abstract class HttpServletBean extends HttpServlet *

If {@code null}, a new environment will be initialized via * {@link #createEnvironment()}. */ + @Override public ConfigurableWebEnvironment 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 9d409a3fec..c072fa1673 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 d842b4d689..42f1dca52d 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 @@ import org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler */ 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 167963844d..05e4c8bf32 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 @@ import org.w3c.dom.Element; */ 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 d1d887700b..9c099ede53 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 @@ import org.springframework.beans.factory.xml.NamespaceHandlerSupport; */ 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 97df07e544..39558faa60 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 @@ -45,6 +45,7 @@ import org.springframework.web.servlet.resource.ResourceHttpRequestHandler; */ 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 e580aea38b..82e455c7a4 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 e85f189126..076147c0e5 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 class WebMvcConfigurationSupport implements ApplicationContextAware, Serv /** * Set the Spring {@link ApplicationContext}, e.g. for resource loading. */ + @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } @@ -432,9 +434,11 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv } 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 ac63b1cbca..abf8217f13 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 abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer { * {@inheritDoc} *

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

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

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

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

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

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

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

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

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

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

This implementation is empty. */ + @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { } @@ -125,6 +137,7 @@ public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer { * {@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 e222c3b126..05461d5013 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 @@ class WebMvcConfigurerComposite implements WebMvcConfigurer { } } + @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 @@ class WebMvcConfigurerComposite implements WebMvcConfigurer { } } + @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 fdef487e48..7020b27118 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 abstract class AbstractHandlerExceptionResolver implements HandlerExcepti this.order = order; } + @Override public int getOrder() { return this.order; } @@ -123,6 +124,7 @@ public abstract class AbstractHandlerExceptionResolver implements HandlerExcepti * 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 ea079c4938..2fcd479401 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 abstract class AbstractHandlerMapping extends WebApplicationObjectSupport this.order = order; } + @Override public final int getOrder() { return this.order; } @@ -293,6 +294,7 @@ public abstract class AbstractHandlerMapping extends WebApplicationObjectSupport * @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 28fbe1efbc..97d7370ee2 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 @@ -83,6 +83,7 @@ public abstract class AbstractHandlerMethodMapping extends AbstractHandlerMap /** * Detects handler methods at initialization. */ + @Override public void afterPropertiesSet() { initHandlerMethods(); } @@ -135,6 +136,7 @@ public abstract class AbstractHandlerMethodMapping extends AbstractHandlerMap final Class userType = ClassUtils.getUserClass(handlerType); Set methods = HandlerMethodSelector.selectMethods(userType, new MethodFilter() { + @Override public boolean matches(Method method) { return getMappingForMethod(method, userType) != null; } @@ -352,6 +354,7 @@ public abstract class AbstractHandlerMethodMapping extends AbstractHandlerMap 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 8716f20cef..bcf6090121 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 class HandlerExceptionResolverComposite implements HandlerExceptionResolv this.order = order; } + @Override public int getOrder() { return this.order; } @@ -64,6 +65,7 @@ public class HandlerExceptionResolverComposite implements HandlerExceptionResolv * 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 c721327101..602886ba29 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 abstract class HandlerInterceptorAdapter implements AsyncHandlerIntercept /** * This implementation is empty. */ + @Override public void postHandle( HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { @@ -50,6 +52,7 @@ public abstract class HandlerInterceptorAdapter implements AsyncHandlerIntercept /** * This implementation is empty. */ + @Override public void afterCompletion( HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { @@ -58,6 +61,7 @@ public abstract class HandlerInterceptorAdapter implements AsyncHandlerIntercept /** * 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 e72e011c7a..e19ebe57f0 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 @@ import org.springframework.web.servlet.ModelAndView; */ 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 class SimpleServletHandlerAdapter implements HandlerAdapter { 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 663786ff29..49e2e3c813 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 class SimpleServletPostProcessor implements 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 class SimpleServletPostProcessor implements return bean; } + @Override public void postProcessBeforeDestruction(Object bean, String beanName) throws BeansException { if (bean instanceof Servlet) { ((Servlet) bean).destroy(); @@ -137,18 +142,22 @@ public class SimpleServletPostProcessor implements 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 8e70a48fa4..69a199ab24 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 class WebRequestHandlerInterceptorAdapter implements AsyncHandlerIntercep } + @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { @@ -56,6 +57,7 @@ public class WebRequestHandlerInterceptorAdapter implements AsyncHandlerIntercep return true; } + @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { @@ -63,12 +65,14 @@ public class WebRequestHandlerInterceptorAdapter implements AsyncHandlerIntercep (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 661bb62ac7..b736a94575 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 @@ import org.springframework.web.servlet.LocaleResolver; */ 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 94c7d03723..007090ad17 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 @@ public class CookieLocaleResolver extends CookieGenerator implements LocaleResol } + @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 class CookieLocaleResolver extends CookieGenerator implements LocaleResol 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 f56590f469..e7397c0a1d 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 class FixedLocaleResolver extends AbstractLocaleResolver { } + @Override public Locale resolveLocale(HttpServletRequest request) { Locale locale = getDefaultLocale(); if (locale == null) { @@ -60,6 +61,7 @@ public class FixedLocaleResolver extends AbstractLocaleResolver { 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 de1bdd57c7..07ba5fc970 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 @@ public class SessionLocaleResolver extends AbstractLocaleResolver { 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 a0ef16cc32..ec2c81639b 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 abstract class AbstractController extends WebContentGenerator implements } + @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 fd8650420c..93222d9697 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 @@ import org.springframework.web.servlet.ModelAndView; */ 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 class HttpRequestHandlerAdapter implements HandlerAdapter { 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 73607f6d7f..73fc89bd51 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 class ServletForwardingController extends AbstractController implements B 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 10dffda157..27700fee32 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 class ServletWrappingController extends AbstractController this.initParameters = initParameters; } + @Override public void setBeanName(String name) { this.beanName = name; } @@ -132,6 +133,7 @@ public class ServletWrappingController extends AbstractController * 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 @@ public class ServletWrappingController extends AbstractController * Destroy the wrapped Servlet instance. * @see javax.servlet.Servlet#destroy() */ + @Override public void destroy() { this.servletInstance.destroy(); } @@ -177,18 +180,22 @@ public class ServletWrappingController extends AbstractController */ 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 6577e2997c..76b70a1f06 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 @@ import org.springframework.web.servlet.ModelAndView; */ 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 50a20e51b9..5eae702cd5 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 class WebContentInterceptor extends WebContentGenerator implements Handle } + @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException { @@ -189,6 +190,7 @@ public class WebContentInterceptor extends WebContentGenerator implements Handle /** * This implementation is empty. */ + @Override public void postHandle( HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { @@ -197,6 +199,7 @@ public class WebContentInterceptor extends WebContentGenerator implements Handle /** * 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 f62226435d..9e4baa213c 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 class AnnotationMethodHandlerAdapter extends WebContentGenerator 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 class AnnotationMethodHandlerAdapter extends WebContentGenerator } + @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 @@ public class AnnotationMethodHandlerAdapter extends WebContentGenerator * 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 @@ public class AnnotationMethodHandlerAdapter extends WebContentGenerator this.request = new ServletServerHttpRequest(request); } + @Override public int compare(RequestSpecificMappingInfo info1, RequestSpecificMappingInfo info2) { int pathComparison = pathComparator.compare(info1.bestMatchedPattern(), info2.bestMatchedPattern()); if (pathComparison != 0) { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerExceptionResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerExceptionResolver.java index d204e33e89..1450d8a968 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerExceptionResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerExceptionResolver.java @@ -177,6 +177,7 @@ public class AnnotationMethodHandlerExceptionResolver extends AbstractHandlerExc 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/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 f7f1c163d8..557992e211 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 @@ public class DefaultAnnotationHandlerMapping extends AbstractDetectingUrlHandler 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/condition/AbstractMediaTypeExpression.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/AbstractMediaTypeExpression.java index 15aee22ec2..7e99bbda92 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 b7c8e0442a..1f6befcbac 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 @@ public class CompositeRequestCondition extends AbstractRequestConditionAn empty {@code CompositeRequestCondition} matches to all requests. */ + @Override public CompositeRequestCondition getMatchingCondition(HttpServletRequest request) { if (isEmpty()) { return this; @@ -155,6 +157,7 @@ public class CompositeRequestCondition extends AbstractRequestCondition set = new LinkedHashSet(this.expressions); set.addAll(other.expressions); @@ -101,6 +102,7 @@ public final class HeadersRequestCondition extends AbstractRequestCondition set = new LinkedHashSet(this.expressions); set.addAll(other.expressions); @@ -92,6 +93,7 @@ public final class ParamsRequestCondition extends AbstractRequestConditionIf neither instance has patterns, use an empty String (i.e. ""). * */ + @Override public PatternsRequestCondition combine(PatternsRequestCondition other) { Set result = new LinkedHashSet(); if (!this.patterns.isEmpty() && !other.patterns.isEmpty()) { @@ -202,6 +203,7 @@ public final class PatternsRequestCondition extends AbstractRequestCondition patternComparator = this.pathMatcher.getPatternComparator(lookupPath); 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 13292f1a76..f34694aae9 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 @@ public final class ProducesRequestCondition extends AbstractRequestCondition 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 8779839fbb..fffbf7c923 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 @@ public final class RequestConditionHolder extends AbstractRequestCondition set = new LinkedHashSet(this.methods); set.addAll(other.methods); @@ -94,6 +95,7 @@ public final class RequestMethodsRequestCondition extends AbstractRequestConditi * @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 @@ public final class RequestMethodsRequestCondition extends AbstractRequestConditi * {@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 9824b80e0e..8eb83966bb 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 abstract class AbstractHandlerMethodAdapter extends WebContentGenerator i this.order = order; } + @Override public int getOrder() { return this.order; } @@ -60,6 +61,7 @@ public abstract class AbstractHandlerMethodAdapter extends WebContentGenerator i * @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 abstract class AbstractHandlerMethodAdapter extends WebContentGenerator i /** * {@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 @@ public abstract class AbstractHandlerMethodAdapter extends WebContentGenerator i /** * {@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 6d0e3941e6..573133ea05 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 final class RequestMappingInfo implements RequestConditionExample: 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 final class RequestMappingInfo implements RequestCondition 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 98130ad84e..1c4f3e3933 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 class AsyncTaskMethodReturnValueHandler implements HandlerMethodReturnVal 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 22471f7c3f..7da354795c 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 @@ import org.springframework.web.method.support.ModelAndViewContainer; */ 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 fbb7c8531a..5f10dfa891 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 @@ import org.springframework.web.method.support.ModelAndViewContainer; */ 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 757d2744dd..8a62923a42 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 class ExceptionHandlerExceptionResolver extends AbstractHandlerMethodExce this.contentNegotiationManager = contentNegotiationManager; } + @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } @@ -213,6 +214,7 @@ public class ExceptionHandlerExceptionResolver extends AbstractHandlerMethodExce 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 e93029aa64..4108828fa4 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 class HttpEntityMethodProcessor extends AbstractMessageConverterMethodPro 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.equals(parameterType) || ResponseEntity.class.equals(parameterType); } + @Override public Object resolveArgument( MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) @@ -94,6 +97,7 @@ public class HttpEntityMethodProcessor extends AbstractMessageConverterMethodPro + " 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 9a5160ade9..ffefd91786 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 @@ import org.springframework.web.servlet.HandlerMapping; */ 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 class MatrixVariableMapMethodArgumentResolver implements HandlerMethodArg 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 5b511116db..e4fd61ceac 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 class MatrixVariableMethodArgumentResolver extends AbstractNamedValueMeth 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 cca424048e..e04782a89f 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 @@ import org.springframework.web.servlet.View; */ 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 a39649551a..a54518b393 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 class ModelAndViewResolverMethodReturnValueHandler implements HandlerMeth /** * 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 52af8e427a..55e59b7dbf 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 @@ import org.springframework.web.servlet.HandlerMapping; */ 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 class PathVariableMapMethodArgumentResolver implements HandlerMethodArgum /** * 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 d93b7746a7..cda9a37ad1 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 class PathVariableMethodArgumentResolver extends AbstractNamedValueMethod 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 89d4849c3d..9cf3a73189 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 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributesModelMap; */ 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 d79a9ef5db..c2b189aeb7 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 class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter i *

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 @@ public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter i return this.beanFactory; } + @Override public void afterPropertiesSet() { if (this.argumentResolvers == null) { List resolvers = getDefaultArgumentResolvers(); @@ -863,6 +865,7 @@ public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter i */ public static final MethodFilter INIT_BINDER_METHODS = new MethodFilter() { + @Override public boolean matches(Method method) { return AnnotationUtils.findAnnotation(method, InitBinder.class) != null; } @@ -873,6 +876,7 @@ public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter i */ 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 cea6c55783..f5c8c00978 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 class RequestPartMethodArgumentResolver extends AbstractMessageConverterM *

  • 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 @@ public class RequestPartMethodArgumentResolver extends AbstractMessageConverterM } } + @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 9b320cedb9..4c8d098864 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 class RequestResponseBodyMethodProcessor extends AbstractMessageConverter 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 class RequestResponseBodyMethodProcessor extends AbstractMessageConverter * 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 class RequestResponseBodyMethodProcessor extends AbstractMessageConverter 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 b219196c59..bc9246c046 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 @@ public class ServletInvocableHandlerMethod extends InvocableHandlerMethod { 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 d0c3a02024..3a6770c793 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 @@ import org.springframework.web.servlet.support.RequestContextUtils; */ 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 class ServletRequestMethodArgumentResolver implements HandlerMethodArgume 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 14c216258f..11e97e8660 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 @@ import org.springframework.web.method.support.ModelAndViewContainer; */ 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 class ServletResponseMethodArgumentResolver implements HandlerMethodArgum * 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 f87811a950..a1800c2858 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 @@ import org.springframework.web.util.UriComponentsBuilder; */ 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 de6a387330..e68d91273e 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 @@ import org.springframework.web.servlet.View; */ 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 153486abb5..d4ffdb8059 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 @@ import org.springframework.web.servlet.RequestToViewNameTranslator; */ 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 ed781d99c7..3ee748d461 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 abstract class AbstractUrlMethodNameResolver implements MethodNameResolve * 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 77fc742104..0c2eff8a4b 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 @@ public class MultiActionController extends AbstractController implements LastMod * 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 bd9405b65b..469d77e2f7 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 class ParameterMethodNameResolver implements MethodNameResolver { } + @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 3cbcb08a8f..08026a8735 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 class PropertiesMethodNameResolver extends AbstractUrlMethodNameResolver 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 d23b050cbc..53b1437cda 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 @@ import org.springframework.web.servlet.FlashMap; */ 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 6db27a10d4..66c811837b 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 class RedirectAttributesModelMap extends ModelMap implements RedirectAttr /** * Return the attributes candidate for flash storage or an empty Map. */ + @Override public Map getFlashAttributes() { return this.flashAttributes; } @@ -65,6 +66,7 @@ public class RedirectAttributesModelMap extends ModelMap implements RedirectAttr * {@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 @@ public class RedirectAttributesModelMap extends ModelMap implements RedirectAttr * {@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 class RedirectAttributesModelMap extends ModelMap implements RedirectAttr * {@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 class RedirectAttributesModelMap extends ModelMap implements RedirectAttr * {@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 class RedirectAttributesModelMap extends ModelMap implements RedirectAttr * {@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 class RedirectAttributesModelMap extends ModelMap implements RedirectAttr return this; } + @Override public Map asMap() { return this; } @@ -149,11 +156,13 @@ public class RedirectAttributesModelMap extends ModelMap implements RedirectAttr } } + @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 e31262c437..5a214c7d0c 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 class DefaultServletHttpRequestHandler implements HttpRequestHandler, Ser * 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 @@ public class DefaultServletHttpRequestHandler implements HttpRequestHandler, Ser } + @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 0a928be3a4..965adae67b 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 class ResourceHttpRequestHandler extends WebContentGenerator implements H this.locations = locations; } + @Override public void afterPropertiesSet() throws Exception { Assert.notEmpty(locations, "Locations list must not be empty"); } @@ -104,6 +105,7 @@ public class ResourceHttpRequestHandler extends WebContentGenerator implements H * 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 9fe88e8ef7..d667e88a81 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 abstract class AbstractFlashMapManager implements FlashMapManager { return this.urlPathHelper; } + @Override public final FlashMap retrieveAndUpdate(HttpServletRequest request, HttpServletResponse response) { List maps = retrieveFlashMaps(request); @@ -178,6 +179,7 @@ public abstract class AbstractFlashMapManager implements FlashMapManager { 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 527f89d633..d3afa478ac 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 @@ public class SessionFlashMapManager extends AbstractFlashMapManager{ /** * 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 f5b45233e1..e1b756b98e 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 @@ -171,6 +171,7 @@ public class BindTag extends HtmlEscapingAwareTag implements EditorAwareTag { 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 2c0056def4..c0cbaa9e11 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 @@ -67,10 +67,12 @@ public class EscapeBodyTag extends HtmlEscapingAwareTag implements BodyTag { 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 6ec63b58c8..b180975eb9 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 @@ -165,15 +165,18 @@ public class EvalTag extends HtmlEscapingAwareTag { 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) { @@ -182,10 +185,12 @@ public class EvalTag extends HtmlEscapingAwareTag { 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 1f8ddd2843..65c9f565e3 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 @@ -111,10 +111,12 @@ public class NestedPathTag extends TagSupport implements TryCatchFinally { 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 b02021fbb6..7105bc71c0 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 @@ public abstract class RequestContextAwareTag extends TagSupport implements TryCa 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 370bf19688..d0a65ad962 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 @@ -157,6 +157,7 @@ public class UrlTag extends HtmlEscapingAwareTag implements ParamAware { ExpressionEvaluationUtils.evaluateBoolean("javaScriptEscape", javaScriptEscape, pageContext); } + @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 a0d569a509..abeebb548f 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 @@ -219,6 +219,7 @@ public abstract class AbstractDataBoundFormElementTag extends AbstractFormTag im * 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 a31cc1ebe6..0bbc79ba6f 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 @@ public abstract class AbstractHtmlElementBodyTag extends AbstractHtmlElementTag // 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 6316ac8b3c..f3da981aa8 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 @@ public abstract class AbstractHtmlElementTag extends AbstractDataBoundFormElemen /** * {@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 d3468aed0b..39a52e0fad 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 @@ -46,6 +46,7 @@ public class ButtonTag extends AbstractHtmlElementTag { /** * 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 e0afe0f431..675292dc08 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 @@ -216,6 +216,7 @@ public class SelectTag extends AbstractHtmlInputElementTag { 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 2666098734..5d73b8e452 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 class CookieThemeResolver extends CookieGenerator implements ThemeResolve } + @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 class CookieThemeResolver extends CookieGenerator implements ThemeResolve 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 75aae57b61..c02bc45aa5 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 @@ import javax.servlet.http.HttpServletResponse; */ 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 686f7a2708..7c9f0089f8 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 c0a66c5216..fe73b6df5c 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 @@ -116,6 +116,7 @@ public abstract class AbstractCachingViewResolver extends WebApplicationObjectSu } + @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 9e17d98f8f..39f2c3b095 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 abstract class AbstractUrlBasedView extends AbstractView implements Initi 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 5ec4806647..fdc3d22879 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 @@ -79,6 +79,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; } @@ -104,6 +105,7 @@ public abstract class AbstractView extends WebApplicationObjectSupport implement /** * Return the content type for this view. */ + @Override public String getContentType() { return this.contentType; } @@ -252,6 +254,7 @@ public abstract class AbstractView extends WebApplicationObjectSupport implement * 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 a8ca84e664..f19239c254 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 class BeanNameViewResolver extends WebApplicationObjectSupport implements 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 cc49726297..8334c0b6d5 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 @@ -111,6 +111,7 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport this.order = order; } + @Override public int getOrder() { return this.order; } @@ -272,6 +273,7 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport this.cnManagerFactoryBean.setServletContext(servletContext); } + @Override public void afterPropertiesSet() throws Exception { if (this.contentNegotiationManager == null) { this.cnManagerFactoryBean.afterPropertiesSet(); @@ -279,6 +281,7 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport } } + @Override public View resolveViewName(String viewName, Locale locale) throws Exception { RequestAttributes attrs = RequestContextHolder.getRequestAttributes(); Assert.isInstanceOf(ServletRequestAttributes.class, attrs); @@ -413,10 +416,12 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport 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 9ffb54e7b7..dd8b1d3912 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 class DefaultRequestToViewNameTranslator implements RequestToViewNameTran * @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 0f96d4832a..8813f4172f 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 class RedirectView extends AbstractUrlBasedView implements SmartView { /** * 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 2726e0537c..3ccf375e06 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 class ResourceBundleViewResolver extends AbstractCachingViewResolver this.order = order; } + @Override public int getOrder() { return this.order; } @@ -180,6 +181,7 @@ public class ResourceBundleViewResolver extends AbstractCachingViewResolver * 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 @@ public class ResourceBundleViewResolver extends AbstractCachingViewResolver /** * 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 56a3a3effb..086d6e204e 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 class UrlBasedViewResolver extends AbstractCachingViewResolver implements * 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 59b45a8a80..67f3ac5192 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 class XmlViewResolver extends AbstractCachingViewResolver this.order = order; } + @Override public int getOrder() { return order; } @@ -86,6 +87,7 @@ public class XmlViewResolver extends AbstractCachingViewResolver * 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 @@ public class XmlViewResolver extends AbstractCachingViewResolver /** * 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 1f04244b7c..21bbd923fe 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 class FreeMarkerConfigurer extends FreeMarkerConfigurationFactory /** * Initialize the {@link TaglibFactory} for the given ServletContext. */ + @Override public void setServletContext(ServletContext servletContext) { this.taglibFactory = new TaglibFactory(servletContext); } @@ -109,6 +110,7 @@ public class FreeMarkerConfigurer extends FreeMarkerConfigurationFactory * @see #createConfiguration * @see #setConfiguration */ + @Override public void afterPropertiesSet() throws IOException, TemplateException { if (this.configuration == null) { this.configuration = createConfiguration(); @@ -129,6 +131,7 @@ public class FreeMarkerConfigurer extends FreeMarkerConfigurationFactory /** * Return the Configuration object wrapped by this bean. */ + @Override public Configuration getConfiguration() { return this.configuration; } @@ -136,6 +139,7 @@ public class FreeMarkerConfigurer extends FreeMarkerConfigurationFactory /** * 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 643231404a..d64e1e0ae3 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 class FreeMarkerView extends AbstractTemplateView { */ 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 ef4faaf2e0..06b3fdabaf 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 @@ import org.springframework.web.servlet.DispatcherServlet; */ 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 da6383a734..42ae8aaeab 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 050aad09cf..f3b76f3730 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 class TilesConfigurer implements ServletContextAware, InitializingBean, D CollectionUtils.mergePropertiesIntoMap(tilesProperties, this.tilesPropertyMap); } + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } @@ -320,6 +321,7 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D * @throws TilesException in case of setup failure * @see #createTilesInitializer() */ + @Override public void afterPropertiesSet() throws TilesException { boolean activateEl = false; if (tilesElPresent) { @@ -376,6 +378,7 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D * 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 5d547a639e..d5394519af 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 class VelocityConfigurer extends VelocityEngineFactory this.velocityEngine = velocityEngine; } + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } @@ -114,6 +115,7 @@ public class VelocityConfigurer extends VelocityEngineFactory * @see #createVelocityEngine * @see #setVelocityEngine */ + @Override public void afterPropertiesSet() throws IOException, VelocityException { if (this.velocityEngine == null) { this.velocityEngine = createVelocityEngine(); @@ -141,6 +143,7 @@ public class VelocityConfigurer extends VelocityEngineFactory } } + @Override public VelocityEngine getVelocityEngine() { return this.velocityEngine; }